From acd6b2b2fec6a7a5db6cfdd115aeba72a1f39e0b Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 5 May 2020 18:04:12 -0700 Subject: [PATCH 01/54] Basic replacement with simulation syntax --- notebooks/examples/EM1D_TD_FWD.ipynb | 52 ++++++++++---- notebooks/examples/EM1D_fwd.ipynb | 100 ++++++++++++++++----------- simpegEM1D/DigFilter.py | 10 +-- simpegEM1D/EM1D.py | 30 ++++---- simpegEM1D/EM1DAnalytics.py | 4 +- simpegEM1D/EM1DSimulation.py | 33 ++++----- simpegEM1D/GlobalEM1D.py | 44 ++++++------ simpegEM1D/IO.py | 31 +++++---- simpegEM1D/Regularization.py | 12 ++-- simpegEM1D/Survey.py | 14 ++-- 10 files changed, 189 insertions(+), 141 deletions(-) diff --git a/notebooks/examples/EM1D_TD_FWD.ipynb b/notebooks/examples/EM1D_TD_FWD.ipynb index 133d110..689a473 100644 --- a/notebooks/examples/EM1D_TD_FWD.ipynb +++ b/notebooks/examples/EM1D_TD_FWD.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "scrolled": true }, @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -56,15 +56,14 @@ " offset=offset,\n", " time = time,\n", ")\n", - "imap = Maps.IdentityMap(mesh1D)\n", - "prob = EM1D(mesh1D, sigmaMap=imap, verbose=False)\n", - "prob.pair(TDsurvey)\n", - "bz = TDsurvey.dpred(sigma)" + "imap = maps.IdentityMap(mesh1D)\n", + "sim = EM1D(mesh1D, survey=TDsurvey, sigmaMap=imap, verbose=False)\n", + "bz = sim.dpred(sigma)" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -88,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -97,22 +96,22 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAccAAAFBCAYAAAACFWR3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hVVdr+8e+TRqhBmnRp0gMBAkhJxFEkNEFERBEbggiI+L6OdcYfKmMbR4pgQVFGRVAQkCIgVkIRSOgdRJGIGgREOgTW748EXogBkpCTfXJyf67rXHDW2WftJ7Mn3uy9117LnHOIiIjI/wnyugARERF/o3AUERFJR+EoIiKSjsJRREQkHYWjiIhIOgpHERGRdEK8LiA3lCpVylWpUsXrMkRExI8kJib+7pwrndFn+SIcq1SpQkJCgtdliIiIHzGzHef7TJdVRURE0vH7cDSzamY2zsymXKhNREQkp/g0HM3sHTNLNrN16drjzGyzmW0zs8cu1Idzbrtzrs/F2kRERHKKr+85jgdGA++dbjCzYGAM0BZIApab2QwgGHg+3ffvcc4l+7hGEZEcc+LECZKSkjh69KjXpUia8PBwKlasSGhoaKa/49NwdM4tMLMq6ZqbAducc9sBzGwS0MU59zzQyZf1iIj4WlJSEkWLFqVKlSqYmdfl5HvOOfbs2UNSUhJVq1bN9Pe8uOdYAdh51vuktLYMmVlJM3sDaGRmj5+vLYPv9TOzBDNL2L17dw6WLyJyfkePHqVkyZIKRj9hZpQsWTLLZ/JePMqR0f9jzrtulnNuD9D/Ym0ZfG8sMBYgOjpa63KJSK5RMPqX7BwPL84ck4BKZ72vCOzyoA4RkYA2bdo0zIxNmzZlu4+77rqLKVMu/GDAc889d877li1bZnt//sKLcFwOXGlmVc0sDOgJzPDFjsyss5mN3b9/vy+6FxHxaxMnTqR169ZMmjTJp/tJH46LFy/26f5yg68f5ZgILAFqmVmSmfVxzqUAg4B5wEbgY+fcel/s3zk30znXLyIi4pL7+mnPYXbuPZwDVYmI+N7BgwdZtGgR48aNOxOO33zzDW3atKF79+7Url2bXr164VzqXadnnnmGpk2bUr9+ffr163em/bQvv/ySG2+88cz7+fPn061bNx577DGOHDlCVFQUvXr1AqBIkSJntnvppZeIjIykYcOGPPbYBZ/c8ys+DUfn3K3OuXLOuVDnXEXn3Li09s+cczWdc9Wdc//yZQ05ZdjsDVz3yre8Mn8LR46f9LocEZELmj59OnFxcdSsWZMSJUqwYsUKAFauXMmIESPYsGED27dvZ9GiRQAMGjSI5cuXs27dOo4cOcKsWbPO6e9vf/sbGzdu5PQAx3fffZe7776bF154gYIFC7Jq1SomTJhwznfmzJnD9OnTWbp0KatXr+aRRx7JhZ88ZwT03Kpm1hnoXKNGjUvu6+ku9Xj+s02M+nIrnyQm8WTHOrSvX1Y33kXkvJ6euZ4Nu/7M0T7rli/G/+tc76LbTZw4kSFDhgDQs2dPJk6cSMeOHWnWrBkVK1YEICoqih9//JHWrVvz9ddf89JLL3H48GH27t1LvXr16Ny585n+zIzevXvzwQcfcPfdd7NkyRLee++9DPd92hdffMHdd99NoUKFAChRokR2f+xcF9Dh6JybCcyMjo7ue6l9lYsoyKhbG3H7VVfw/2asZ8CEFbSsXpKhN9Sj5uVFc6BaEZGcsWfPHr766ivWrVuHmXHy5EnMjA4dOlCgQIEz2wUHB5OSksLRo0cZMGAACQkJVKpUiaFDh2b46MPdd99N586dCQ8P5+abbyYk5MIR4pzLsycQAR2OvtCsaglmDmrFxGU/8fLnW2g/Mp47WlzBkOtqElEw87MviEjgy8wZni9MmTKFO+64gzfffPNM29VXX83ChQsz3P50EJYqVYqDBw8yZcoUunfv/pftypcvT/ny5Rk2bBjz588/0x4aGsqJEyf+MgPN9ddfzzPPPMNtt91GoUKF2Lt3b545e/T7iccvha9Gq4YEB9G7RRW+frgNtzStxPjFP/K3l7/ho+U/ceqUHqkUEW9NnDjxnMEzADfddBMffvhhhtsXL16cvn37EhkZSdeuXWnatOl5++7VqxeVKlWibt26Z9r69etHgwYNzgzIOS0uLo4bbriB6OhooqKiePnlly/hp8pdln5EUiCKjo52vlzPcd3P+xk6Yz0JO/bRoGIET99Qj0aVL/PZ/kTEf23cuJE6dep4XYbPDBo0iEaNGtGnT95a+yGj42Jmic656Iy2D+gzx9xSv0IEk/u3YPgtDfl1/1FufG0xD09eze4Dx7wuTUQkxzRp0oQ1a9Zw++23e12Kz+meYw4xM25sVJG2dcvy6ldbeWfhD8xb/yt/b1eLXs2vIDgob96UFhE5LTEx0esSck1Anzl6MUNOkQIhPN6+DnOHxNKgYgRPfbqeG19bxJqkP3KtBhERuTQBHY45OUNOVlUvXYQP+jRnZM8oftl/lC5jFvHUp+vYf+RErtciIiJZE9Dh6DUzo0tUBb7836u5s0UVPvhuB9f+51umr/z5L1MziYiI/1A45oJi4aEMvaEenw5sTYXi4Qz5aBW93l7KtuSDXpcmIiIZCOhw9LdVOSIrRjB1QCuGda3Pup/3037kAv49b5PmahURn7v33nvZsGGDJ/seOnQoFSpUICoq6szrjz/+4JtvvsHMGDdu3JltV65ciZmdeSZy8uTJ1KtXj6CgIM5+JO+bb74hIiKCRo0aUatWLWJjY/8yH+ylCOhw9PKe4/kEBxm3X3UFX/5vGzo3KM+Yr7+n7fBv+WrTb16XJiIB7O233z7nwf3c9tBDD7Fq1aozr+LFiwMQGRnJRx99dGa7SZMm0bBhwzPv69evz9SpU4mNjf1LnzExMaxcuZLNmzczatQoBg0axJdffpkj9QZ0OPqz0kUL8MotUUzqdxXhocHcMz6B/u8n8tuff53PUEQC2JqPYXh9GFo89c81H19yl4cOHaJjx440bNiQ+vXr89FHH9GmTZszZ15FihTh0UcfpUmTJlx33XUsW7aMNm3aUK1aNWbMSF1ed/z48XTp0oW4uDhq1arF008/fab/Dz74gGbNmhEVFcV9993HyZOpV7/GjRtHzZo1adOmDX379mXQoEEXrbVy5cocPXqU3377Deccc+fOpX379mc+r1OnDrVq1bpoP1FRUTz11FOMHj06S/9bnY/C0WNXVSvJZ4Nj+Hu7Wny9OZnrXvmWCUt3aBo6kfxgzccwczDs3wm41D9nDr7kgJw7dy7ly5dn9erVrFu3jri4uHM+P3ToEG3atCExMZGiRYvyj3/8g/nz5zNt2jSeeuqpM9stW7aMCRMmsGrVKiZPnkxCQgIbN27ko48+YtGiRaxatYrg4GAmTJjArl27ePbZZ/nuu++YP38+mzZtOmefw4cPP3NJ9Zprrjnns+7duzN58mQWL15M48aNz5kcPSsaN278l/1mlyYB8ANhIUEMvKYGHSLL8cTUtTw5bR2frtzFc90iqVGmyMU7EJG86ctn4MSRc9tOHEltb9Aj291GRkby8MMP8+ijj9KpUydiYmLO+TwsLOxMYEZGRlKgQAFCQ0OJjIzkxx9/PLNd27ZtKVmyJADdunVj4cKFhISEkJiYeGb+1SNHjlCmTBmWLVvG1VdffWZi8ZtvvpktW7ac6euhhx7i4YcfzrDeHj16cMstt7Bp0yZuvfVWFi9enK2fOyefAtCZox+pWqowH/ZtzkvdG7D5twN0GBnPyC+2cjzllNeliYgv7E/KWnsm1axZk8TERCIjI3n88cd55plnzvk8NDT0zFJSQUFBZ87UgoKCSElJObNd+uWmzAznHHfeeeeZe4ebN29m6NChlxRMZcuWJTQ0lPnz53Pttddmu5+VK1fm2Ly2AR2O/jZaNTPMjB7Rlfjif66mXf2yDP9iCx1HxZO4Y6/XpYlITouomLX2TNq1axeFChXi9ttv5+GHH2bFihXZ6mf+/Pns3buXI0eOMH36dFq1asW1117LlClTSE5OBmDv3r3s2LGDZs2a8e2337Jv3z5SUlL45JNPsrSvZ555hhdffJHg4OBs1bpmzRqeffZZBg4cmK3vpxfQ4eiPo1Uzq3TRArx6ayPevasph4+fpPsbS/jn9HUcOKoZdkQCxrVPQWjBc9tCC6a2X4K1a9eeGTDzr3/9i3/84x/Z6qd169b07t2bqKgobrrpJqKjo6lbty7Dhg3j+uuvp0GDBrRt25ZffvmFChUq8MQTT9C8eXOuu+466taty9n/7T37nmNUVNQ5l28BWrZsSdeuXf9Sw7Rp06hYsSJLliyhY8eOtGvX7sxn8fHxZx7lGDhwIKNGjbqkM8+zacmqPODQsRRe/nwz4xf/yOVFw3m6Sz3a1SvrdVkikoEsL1m15uPUe4z7k1LPGK996pLuN+aU8ePHk5CQkKXRnwcPHqRIkSKkpKRw4403cs899/xlXUmvZHXJKg3IyQMKFwjh/3WuR5eoCjz2yRruez+RuHpleaZLPcoUC/e6PBG5FA16+EUY5oShQ4fyxRdfcPToUa6//voMzwTzCp055jEnTp7irfjtjPxiKwVCgvhHx7rcHF3xLzfORcQbgb7YcV6lxY4DXGhwEAPa1GDOgzHULluMRz5ZQ+9xy9i597DXpYmIBAyFYx5VrXQRJvW7ime71mfVzj+4fvgC3ln4Ayc1eYCI5/LDFbm8JDvHI6DDMS8+ypEVQUFG76uu4POHYmlerQTPzNpA9zcWs/W3A16XJpJvhYeHs2fPHgWkn3DOsWfPHsLDszY+Q/ccA4Rzjk9X7eLpmes5dOwkg/5Wg/5XVycsJKD//SPid06cOEFSUhJHj2qeZH8RHh5OxYoVCQ0NPaf9QvccFY4B5veDxxg6Yz2z1vxC7bJFeal7AxpULO51WSIifkcDcvKRUkUKMPq2xozt3YR9h4/Tdcwinv9sI0dPaM1IEZHMUjgGqOvrleXzh67mlqaVeHPBduJGLGDp9j1elyUikicoHANYRMFQnu/WgA/vbc5J57hl7Hc89ek6Dh5LufiXRUTyMYVjPtCyRinmDYnl7lZVeP+7HbQbvoD4rbu9LktExG8pHPOJQmGpU9BN6d+CAqFB9B63jEemrGb/EU1kLiKSnsIxn2lyRQk+GxzD/W2q88mKn7l++Ld8seE3r8sSEfErAR2OgT4JQHaFhwbzaFxtpg1oyWWFwrj3vQQenLSSvYeOe12aiIhf0HOO+dzxlFO89s02xny9jWLhoTzTpT4dIstqInMRCXh6zlHOKywkiCHX1WTmA62pcFlBBn64gvs/WEHyAc3uISL5l8JRAKhdthhT72/JY+1r89XmZNq+soDpK3/W/JAiki8pHOWMkOAg+l9dnTkPxlC9dGGGfLSK+95PZPeBY16XJiKSqxSO8hfVSxdhcv+WPNGhNt9s2c31w79lxupdOosUkXxD4SgZCg4y+sVW57PBralcsjCDJ65kwIQV/H5QZ5EiEvgUjnJBNcoU5ZP+LXg0rjZfbkzm+uELmL3mF6/LEhHxKYWjXFRIcBD3t6nOrMGtqZg2onXghyv0XKSIBCyFo2RazcuLMvX+lvy9XS0+X/8r1w//lrnrdBYpIoFH4ShZEhIcxMBrajDzgdaUjQin/wcrGDxxJft0FikiAUThKNlSu2wxpg1oxf+0rclna3+h7fAFfLlRc7SKSGBQOEq2hQYHMfjaK/l0UCtKFQmjz38TeGTKag4c1UofIpK35YlwNLNqZjbOzKac1dbVzN4ys0/N7Hov68vv6pWP4NNBrRjQpjpTEpOIGxHP4u9/97osEZFs83k4mtk7ZpZsZuvStceZ2WYz22Zmj12oD+fcdudcn3Rt051zfYG7gFtyvHDJkgIhwTwSV5vJ/VsSFhLEbW8tZeiM9Rw5ftLr0kREsiw3zhzHA3FnN5hZMDAGaA/UBW41s7pmFmlms9K9ylyk/3+k9SV+oMkVlzF7cGvualmF8Yt/pOOoeFb+tM/rskREssTn4eicWwDsTdfcDNiWdkZ4HJgEdHHOrXXOdUr3Ss6oX0v1IjDHObfCtz+FZEWhsBCG3lCPCfc25+iJk9z0+mL+PW8Tx1NOeV2aiEimeHXPsQKw86z3SWltGTKzkmb2BtDIzB5Pa34AuA7obmb9M/hOPzNLMLOE3bt352DpklmtapRi7kOx3NS4ImO+/p4bRi9k4y9/el2WiMhF5cpix2ZWBZjlnKuf9v5moJ1z7t60972BZs65B3yxfy127L35G37j8alr2X/kOEOuq8l9sdUICc4T48FEJED542LHSUCls95XBHZ5VIvkgrZ1L+fzh2JpW/dy/j1vMze/uYTvdx/0uiwRkQx5FY7LgSvNrKqZhQE9gRk5vRMz62xmY/fv35/TXUs2lCgcxpjbGjOyZxTbdx+iw8h4xi38gVOntBSWiPiX3HiUYyKwBKhlZklm1sc5lwIMAuYBG4GPnXPrc3rfzrmZzrl+EREROd21ZJOZ0SWqAp8/FEurGqV4dtYGer71HT/tOex1aSIiZ+TKPUevmFlnoHONGjX6bt261etyJB3nHJMTk3h25gZOOsfjHepwe/PKmJnXpYlIPnChe44BHY6naUCOf/v5jyM89ska4rf+TusapXixewMqFC/odVkiEuD8cUCOyBkVihfkvXuaMaxrfVb8tI+44Qv4ePlO8sM/3ETEPykcxS+YGbdfdQVzH4ylTvliPPLJGvr8N4HkP496XZqI5EMBHY4arZr3VC5ZiEl9r+KpTnVZtO132g5fwKerftZZpIjkKt1zFL/1/e6DPDx5NSt/+oP29cvyrxsjKVE4zOuyRCRA6J6j5EnVSxdhSv+WPBJXiy82/sb1wxfwxQYtqCwivhfQ4ajLqnlfcJAxoE0NZgxqTakiYdz7XgKPTlmjBZVFxKd0WVXyjGMpJxn5xVbe+PZ7ykUU5D89GnJVtZJelyUieZQuq0pA+L8FlVsQEmzc+tZ3DJu1gaMntKCyiOQshaPkOU2uKMGcB2Po1bwyby/8gc6vLmRtki6di0jOUThKnlQoLIRhXSP57z3N+PPoCW58bREjv9jKiZNaUFlELl1Ah6MG5AS+q2uW5vMhV9OxQTmGf7GF7q8vZluylsISkUsT0OGoVTnyh4hCoYzs2YgxtzVmx97DdBwVz7uLtBSWiGRfQIej5C8dG5Tj8yGxtKxekqdnbuDOd5fx635NPyciWadwlIBSplg479zVlGFd65Pw4z7ajVjA7DW/eF2WiOQxCkcJOKcnMZ89uDVVShVm4IcreOijVfypiQNEJJMCOhw1ICd/q1a6CFP6t+DBa69kxupdtB8Rz3fb93hdlojkAQEdjhqQI6HBQTzUtiZT+rcgNG3igOc+28ixFE0cICLnF9DhKHJao8qX8dmDMdzarDJjF2yny+hFbPr1T6/LEhE/pXCUfKNQWAjP3RjJO3dF8/vBY9zw6iLejt+uRz5E5C8UjpLv/K325cwbEsvVtUozbPZGer29lJ//OOJ1WSLiRxSOki+VLFKAsb2b8NJNDViT9AdxwxfwSWIS+WGVGhG5OIWj5FtmRo+mlZjzYCy1yxXlfyev5v4PVrDn4DGvSxMRjwV0OOpRDsmMyiULMalfCx5vX5uvNiXTbsQCvtjwm9dliYiHAjoc9SiHZFZwkHHf1dWZ8UArShcN5973Enh0yhoOaOIAkXwpoMNRJKtqly3G9IEtGdCmOpMTd9J+ZDxLNXGASL6jcBRJp0BIMI/E1ebj+1oQHGT0TJs44OgJTRwgkl8oHEXOI7pKCT4bfO7EAet36f61SH6gcBS5gMIFUicOePfupuw9fJyuYxYx5uttpJw85XVpIuJDCkeRTLimVhk+HxLL9XXL8u95m+nx5hJ27DnkdVki4iMKR5FMuqxwGKNva8SIW6LYmnyQ9iPjmbjsJ00cIBKAFI4iWWBmdG1UgXlDYomqVJzHp67l3v8mkHzgqNeliUgOUjiKZEP54gX5oE9znupUl4XbfiduRDxz1/3qdVkikkMCOhw1Q474UlCQcU/rqsx6oDXli4fT/4NEHp68WhMHiAQAyw/3S6Kjo11CQoLXZUgAO55yilFfbuW1b7ZRLqIgr/RoSPNqJb0uS0QuwMwSnXPRGX0W0GeOIrklLCSIh9vVYnL/loQEp04c8PxnGzmWookDRPIihaNIDmpyxWVnJg54M23igI2//Ol1WSKSRQpHkRx2euKAd+6K5veDx+kyehFvx2/n1KnAv4UhEigUjiI+8rfalzNvSAxtapVm2OyN3D5uKbv+OOJ1WSKSCQpHER8qWaQAb/Zuwos3RbJq5x/EjVjAzNW7vC5LRC5C4SjiY2bGLU0r89ngGKqVLsIDE1fy0Eer+FOPfIj4LYWjSC6pUqowU/q3YMh1VzJj9S7aj9BakSL+SuEokotCgoMYcl1NpvRvQWjaIx8vzt3E8RSt8iHiTxSOIh5oVPkyZg+OoWfTSrz+zffc+NoitiUf8LosEUmjcBTxSOECITzfrQFjezfhl/1H6ThqIe8t+VGrfIj4AYWjiMeur1eWuUNiaFG9JE99up673l1O8p9a5UPES34fjmZWzczGmdmUs9rqmNkbZjbFzO73sj6RnFCmaDjv3tWUZ7vUY+kPe2g3YoFW+RDxkE/D0czeMbNkM1uXrj3OzDab2TYze+xCfTjntjvn+qRr2+ic6w/0ADKcNFYkrzEzereowqwHYqh4WSH6f5DI3yev5uCxFK9LE8l3fH3mOB6IO7vBzIKBMUB7oC5wq5nVNbNIM5uV7lXmfB2b2Q3AQuBL35UvkvtqlCnC1AEtGXRNDT5ZkUT7kQtI+HGv12WJ5Cs+DUfn3AIg/W91M2Bb2hnhcWAS0MU5t9Y51yndK/kCfc9wzrUEevnuJxDxRmhw6iofH9/XAoAeby7h5XmbOXFSj3yI5AYv7jlWAHae9T4prS1DZlbSzN4AGpnZ42ltbcxslJm9CXx2nu/1M7MEM0vYvXt3DpYvknuiq5RgzoOx3NS4IqO/3ka31xazLfmg12WJBDyfL3ZsZlWAWc65+mnvbwbaOefuTXvfG2jmnHvAVzVosWMJBHPX/cLjU9dy5MRJnuhQh95XXYGZeV2WSJ7lb4sdJwGVznpfEfDJTMxm1tnMxu7fv98X3Yvkqrj65Zg3JJbmVfXIh4iveRGOy4ErzayqmYUBPYEZvtiRc26mc65fRESEL7oXyXVlioUz/u6mPNOlHt9t1yMfIr6SpXA0s8Jpo00zu/1EYAlQy8ySzKyPcy4FGATMAzYCHzvn1melDpH8zMy4o0UVZg8+95GPA1rlQyTHXPCeo5kFkXpm1wtoChwDCgC7SR0IM9Y5tzUX6swWM+sMdK5Ro0bfrVv9tkyRbDuecopRX27ltW+2Ub54QV7pEUWzqiW8LkskT7iUe45fA9WBx4GyzrlKzrkyQAzwHfCCmd2eo9XmIF1WlUAXFpL6yMfk/i0IMuOWsUu0yodIDrjYmWOoc+6C12oys43XNFpV8oNDx1IYNnsDE5ftpE65YozsGUXNy4t6XZaI37qUM8elF+vcn4NRo1UlPzm9ysdbd0ST/OdROr26kLfjt3PqlFb5EMmqi4Vjnn6ISpdVJT9qW/dy5j0US+yVpRk2eyO3j1vKrj+OeF2WSJ5yscuqScAr5/vcOXfez/yJLqtKfuSc4+OEnTw9cwPBQcawrvXpEnXeyahE8p1LuawaDBQBip7nJSJ+ysy4pWll5jwYQ83Li/LgpFU8MHEl+w/77Z0QEb9xsTPHFc65xrlYT47SoxwiqVJOnuLNBdsZPn8LpYsW4D83N6RljVJelyXiqUs5c9Q9R5EAEBIcxMBrajBtQCsKhgVz29tL+dfsDRxLOel1aSJ+6WLheMPFOjCzIjlUi4j4WGTFCGY/EMPtV1Xmrfgf6DJ6EVt+O+B1WSJ+52LhON7M/mNmsWZW+HSjmVUzsz5mNo90ixmLiH8rGBbMsK6RjLszmt0HjtHp1YW8u+gHPfIhcpYLhqNz7lrgS+A+YL2Z7TezPcAHQFngTufcFN+XKSI57do6lzN3SCwxNUrx9MwN3PnuMn7TKh8iQC6s5+glDcgRuTjnHB8u+4lnZ22gYGgwz3eLJK5+Oa/LEvE5f1vPMddoQI7IxZkZvZpfcdYqHyt4ZMpqDh5L8bo0Ec8EdDiKSOZVL12ET+5vycBrqjM5MYkOI+NJ3LHP67JEPKFwFJEzwkKC+Hu72nzUrwUnTzl6vLmE4fO3kHJSq3xI/pKpcDSzcWYWla5tqE8qEhHPNatagjlDYrihYXlGfrmVm99cwo49h7wuSyTXZPbMsR2pj3XccVbbRZ+B9JpW5RDJvmLhoQy/JYpRtzZiW/JBOoyMZ3LCTgJ5EJ/IaZkNx2QgFrjZzMaYWQh5YPYcDcgRuXQ3NCzP3CGx1K8Qwd+nrGHghyv44/Bxr8sS8anMhqM55/50znUGdgPfAkockXyiQvGCfNj3Kh6Jq8Xn638jbkQ8i7f97nVZIj6T2XCccfovzrmhwPPAjz6oR0T8VHCQMaBN6vyshQoE02vcUp77bKPmZ5WAlOVJAMysFLDH5aEbD1rPUSRnHT6ewr9mb2TC0p+oW64Yo26NokYZrWIneUu2JwEws6vM7Bszm2pmjcxsHbAO+M3MNKeqSD5VKCyEf90YyVt3RPPrn0fpOGoh7y/5UYN1JGBc7LLqaOA5YCLwFXCvc64sqYNznvdxbSLi59rWvZy5Q2K4qlpJ/vnpeu4Zv5zkA5qfVfK+i4VjiHPuc+fcZOBX59x3AM65Tb4v7dLpUQ4R3ytTNJzxdzdlaOe6LP5+D3Ej4pm3/levyxK5JBcLx7OnxTiS7jO/v36iRzlEcoeZcVerqsx6oDXlIsK57/1Ezc8qedrFwrGhmf1pZgeABml/P/0+MhfqE5E85MrLizJtQCsGtKnOlMQk2o9cQMKPe70uSyTLLraeY7BzrphzrqhzLiTt76ffh+ZWkSKSd4SFBPFIXG0+uq8FAD3eXMK/523ieIrmZ5W8QxOPi4hPNK1Sgs8Gx9C9SUXGfP093V5fxLbkA16XJZIpCkJkgxQAABUoSURBVEcR8Zmi4aG81L0hb9zehF1/pD7yMX7RD5w65fdDFiSfUziKiM/F1S/L3CExtKxekqEzN3Dnu8v4db8e+RD/pXAUkVxRpmg479zVlGFd65Pw4z7ajVjA7DW/eF2WSIYUjiKSa8yM26+6gtmDW1OlVGEGfriC//l4FQeOnvC6NJFzKBxFJNdVK12EKf1bMPjaK5m+8mfaj4zXIx/iVwI6HDVDjoj/Cg0O4n/a1mRy/5YEmdHjzSX85/PNnDipRz7EewEdjpohR8T/NbniMj57MIZujSvy6lfb6P76YrbvPuh1WZLPBXQ4ikjeUKRACC/f3JDXejXmxz2H6ThqIR8u/UmrfIhnFI4i4jc6RJZj3pBYGl9RnCemraXve4nsOXjM67IkH1I4iohfKRsRzvv3NOcfHeuwYMtu2o2I5+tNyV6XJfmMwlFE/E5QkHFvTDU+HdSKkoXDuHv8cp76dB1Hjp/0ujTJJxSOIuK36pQrxqeDWnFPq6q8t2QHnUcvZP0ujT4X31M4iohfCw8N5qnOdXnvnmb8eeQEN45ZzNvx2zU/q/iUwlFE8oTYmqWZOySW2JqlGTZ7I3e+u4zkPzU/q/iGwlFE8owShcN4644mDOtan+U/7qXdiAXM3/Cb12VJAFI4ikiecnp+1lkPtKZcREH6vpfAk9PWarCO5CiFo4jkSTXKFGXawJb0janKhKU/abCO5Ci/D0czq2Zm48xsSrr2wmaWaGadvKpNRLxVICSYJzvW5f0+GqwjOcun4Whm75hZspmtS9ceZ2abzWybmT12oT6cc9udc30y+OhR4OOcrFdE8qaYK1MH61xdS4N1JGf4+sxxPBB3doOZBQNjgPZAXeBWM6trZpFmNivdq0xGnZrZdcAGQHfiRQRIHawztncTnrsx8sxgnc/X/+p1WZJHhfiyc+fcAjOrkq65GbDNObcdwMwmAV2cc88Dmb1Eeg1QmNRwPWJmnznntM6NSD5nZtzWvDLNqpbgwUkr6fd+Ij2bVuKfnepSuIBP/3MnAcaLe44VgJ1nvU9Ka8uQmZU0szeARmb2OIBz7knn3BDgQ+CtjILRzPqZWYKZJezevTtnfwIR8Ws1yhRh2oBW3N+mOh8l7KTDqHhW/LTP67IkD/EiHC2DtvPePXfO7XHO9XfOVU87uzz7s/HOuVnn+d5Y51y0cy66dOnSl1iyiOQ1YSFBPBpXm0l9ryLlpOPmN5YwfP4WLaYsmeJFOCYBlc56XxHY5UEdIpIPNK9WkjlDYujSsDwjv9xK9zeW8MPvh7wuS/ycF+G4HLjSzKqaWRjQE5jhix2ZWWczG7t/v559EsnPioWH8sotUYy5rTE//n6IDiPjtZiyXJCvH+WYCCwBaplZkpn1cc6lAIOAecBG4GPn3Hpf7N85N9M51y8iIsIX3YtIHtOxQepiyk2uuIwnpq3l3v8m8LsWU5YMWH74l1N0dLRLSEjwugwR8ROnTjnGL/6RF+Zuolh4CC/e1IBr61zudVmSy8ws0TkXndFnfj9DzqXQZVURyUhQkHFP66rMHNSa0kXD6fPfBB6fupbDx1O8Lk38RECHoy6risiF1CpblOkDW3JfbDUmLf+JjqMWsnrnH16XJX4goMNRRORiCoQE83iHOnx471UcO3GSm15fzOivtnJS87PmawEdjrqsKiKZ1aJ6SeY8GEtc/bK8/PkWeo5dws69h70uSzwS0OGoy6oikhURhUJ59dZGvNKjIRt/OUCHkfFMX/mz12WJBwI6HEVEssrM6Na4InMejKFW2aIM+WgVgyeuZP+RE16XJrlI4SgikoFKJQoxqd9V/G/bmsxe+wsdRsbz3fY9XpcluSSgw1H3HEXkUoQEB/HAtVfyyf0tCQ02bn3rO16cu4njKZqfNdAFdDjqnqOI5ISoSsWZPTiGW6Ir8fo339Pt9UVsSz7odVniQwEdjiIiOaVwgRBeuKkBb9zehJ/3HaHTq/FMWLpD87MGKIWjiEgWxNUvy9whsTStUoInp62j3/uJ7D103OuyJIcFdDjqnqOI+MLlxcL5793N+EfHOnyzOZn2IxewaNvvXpclOSigw1H3HEXEV4KCjHtjqjFtQCuKFAjh9nFLef6zjRqsEyACOhxFRHytfoUIZj0Qw63NKvPmgu3c9Ppivt+twTp5ncJRROQSFQwL5rkbI3mzdxN27jtMp1ELmbRMiynnZQpHEZEc0q5eWeY+GEujysV5bOpaBkxYwR+HNVgnL1I4iojkoLIR4XzQpzmPt6/N/A2/0X5kPEu+18w6eU1Ah6NGq4qIF4KCjPuurs60Aa0oGBrMbW+nzqxz4qQG6+QVAR2OGq0qIl6KrBjBrMGt6dEkdWadm15fzA+/H/K6LMmEgA5HERGvFQoL4cXuDXi9V2N27DlMx1HxfLx8pwbr+DmFo4hILmgfWY65Q2JoWLE4j3yyRoN1/JzCUUQkl5SLKMgH9zbnsfa1+WLjb8SNiGfx95pZxx8pHEVEclFwkNH/6upMvb8VhcKC6fX2Ul6Yo2Ww/I3CUUTEA6cH6/RsWpk3vk1dBksz6/iPgA5HPcohIv6sUFgIz3eL5I3bm5C07widRi1kombW8QsBHY56lENE8oK4+mWZNySWxlcU5/Gpa+n/QSL7tAyWpwI6HEVE8orLi4Xz/j3NebJDHb7alEzcyAUs3KrBOl5ROIqI+ImgIKNv7LnLYD2nZbA8oXAUEfEzp5fBuq15ZcYu2M6Nry1iW7IG6+QmhaOIiB86vQzW2N5N2PXHETq9Gs+EpTs0WCeXKBxFRPzY9fXKMndILE2rlODJaeu47/1E9mqwjs8pHEVE/NzlxcL5793N+EfHOny9OZm4ERqs42sKRxGRPCAoyLg3phrTB7aiaPj/DdY5lnLS69ICUkCHoyYBEJFAU6986mCd269KHazT7bXFGqzjAwEdjpoEQEQCUcGwYIZ1jeStO6I1WMdHAjocRUQCWdu6lzPvrME693+gZbByisJRRCQPK5M2WOeJDqnLYHUYGc+yH/Z6XVaep3AUEcnjgoKMfrHV+eT+loSGBNFz7BJGfLGFlJOaWSe7FI4iIgGiYaXizB4cQ5eoCoz4Yiu3vbWUXX8c8bqsPEnhKCISQIoUCGH4LVG80qMh63ftp/3IeOau+9XrsvIchaOISADq1rgiswfHcEXJQvT/IJEnp63l6Ak9E5lZCkcRkQBVpVRhpvRvSb/YakxY+hM3jF7I5l8PeF1WnqBwFBEJYGEhQTzRoQ7/vacZew+d4IbRC3n/Oz0TeTEKRxGRfODqmqWZ82AMzauV5J/T19H/g0T2Hz7hdVl+S+EoIpJPlC5agPF3NeXJDnX4alMyHUbFk7hDz0RmROEoIpKPBAUZfWOrMaV/S4KDjB5vfseYr7dx6pQus57N78PRzKqZ2Tgzm3JWWxszizezN8ysjYfliYjkSQ0rFWfW4Na0r1+Wf8/bzB3vLCP5wFGvy/IbPg1HM3vHzJLNbF269jgz22xm28zssQv14Zzb7pzrk74ZOAiEA0k5W7WISP5QLDyUV29txAvdIknYsZcOI+NZsGW312X5BV+fOY4H4s5uMLNgYAzQHqgL3Gpmdc0s0sxmpXuVOU+/8c659sCjwNM+rF9EJKCZGT2bVWbGoNaUKBzGHe8s44U5mziRz6ee82k4OucWAOnv9jYDtqWdER4HJgFdnHNrnXOd0r2Sz9Pv6aO2Dyjgsx9ARCSfqHl5UT4d2Jpbm1XmjW+/p8ebS9i597DXZXnGi3uOFYCdZ71PSmvLkJmVNLM3gEZm9nhaWzczexN4Hxh9nu/1M7MEM0vYvVuXCURELqZgWDDPd4tk9G2N2PbbQTqMimfO2l+8LssTIR7s0zJoO+8wKefcHqB/urapwNQL7cQ5NxYYCxAdHa1hWCIimdSpQXkaVizOoIkruX/CCno1r8w/O9UlPDTY69JyjRdnjklApbPeVwR2eVCHiIicR6UShZh8XwvuS5t6ruuYRWxLzj9Tz3kRjsuBK82sqpmFAT2BGb7YkZl1NrOx+/fv90X3IiIBLSwkiMc71OHdu5uSfOAYnV9dxMcJO/PF1HO+fpRjIrAEqGVmSWbWxzmXAgwC5gEbgY+dc+t9sX/n3EznXL+IiAhfdC8iki9cU6sMcx6MIapScR6ZsoaHPlrFwWMpXpflUxbI/wIws85A5xo1avTdunWr1+WIiORpJ085xny9jRFfbKFyiUKMvq0x9Svk3ZMPM0t0zkVn9Jnfz5BzKXTmKCKSc4KDjMHXXsmkfi04euIU3V5bzLuLfgjIy6wBHY4iIpLzmlUtwZwHY4i5shRPz9xA3/cS2XfouNdl5SiFo4iIZNllhcN4+85o/tmpLt9uSV3hY/mPgbPCR0CHo0arioj4jpnRp3VVPrm/JWEhQfQc+x2jv9rKyQBY4SOgw1H3HEVEfK9BxeLMeqA1HSPL8fLnW7jjnaV5foWPgA5HERHJHUXDQxnZM4qXbmpA4o59dBy1kO+27/G6rGwL6HDUZVURkdxjZvRoWonpA1tRNDyE297KuwspB3Q46rKqiEjuq122GDMGtaZDZDn+PW8zff67PM+NZg3ocBQREW8UKRDCq7c24pku9Vi47Xc6vbqQVTv/8LqsTFM4ioiIT5gZd7SowpT+LQG4+Y3FjM8jkwYoHEVExKcaVirO7MGtib2yNENnbmDQhys5cPSE12VdUECHowbkiIj4h+KFwnjrjmgea1+buet/5YbRi9j4y59el3VeAR2OGpAjIuI/goKM/ldX58N7m3PoWApdx6QugeWPAjocRUTE/zSvVpLZg2OIrnIZj0xZw98nr+boiZNel3UOhaOIiOS60kUL8N49zRl87ZVMTkyi+xuLSdp32OuyzlA4ioiIJ4KDjP9pW5Nxd0az4/fD3DB6EYu3/e51WUCAh6MG5IiI+L9r61zOp4NaUbJwGLePW8rb8ds9f9wjoMNRA3JERPKGaqWLMG1gK9rVK8uw2Rt5cNIqjhz37j5kQIejiIjkHUUKhPBar8b8vV0tZq7ZxY2vLeKnPd7ch1Q4ioiI3zAzBl5Tg3fvasov+4/SefRCFmzZnet1KBxFRMTvtKlVhhmDWlEuIpy73l3G6998n6v3IRWOIiLil64oWZipA1rSsUF5Xpy7iYEfruDQsZRc2bfCUURE/FahsBBG9YziyQ51mLvuV258bRE//H7I5/sN6HDUoxwiInmfmdE3thrv92nO7gPH6DpmEX8c9u36kOb1syS5ITo62iUkJHhdhoiIXKKkfYdZvG0PPZpWuuS+zCzRORed0Wchl9y7iIhILql4WSF6NC3k8/0E9GVVERGR7FA4ioiIpKNwFBERSUfhKCIiko7CUUREJB2Fo4iISDoKRxERkXQCOhw1Q46IiGRHQIejFjsWEZHsCOhwFBERyY58Mbeqme0Gdpzn4wggo+uuGbWXAn7PwdIu1flq96LPrH4vM9tfbJsLfa7jmnN9ZuW7md02u8c2q+3+dGzz8nHN7PZ57Xf2Cudc6Qw/cc7l6xcwNrPtQILX9Wamdi/6zOr3MrP9xba50Oc6rjnXZ1a+m9lts3tss9HuN8c2Lx/XzG4fSL+zuqwKM7PY7k98UWN2+8zq9zKz/cW2udDnOq4512dWvpvZbbN7bHVcc65P/c5eQL64rJpTzCzBnWd5E8m7dFwDl45tYMqN46ozx6wZ63UB4hM6roFLxzYw+fy46sxRREQkHZ05ioiIpKNwFBERSUfhKCIiko7CMYeYWRszizezN8ysjdf1SM4xs8JmlmhmnbyuRXKOmdVJ+32dYmb3e12P5Awz62pmb5nZp2Z2fXb7UTgCZvaOmSWb2bp07XFmttnMtpnZYxfpxgEHgXAgyVe1Subl0HEFeBT42DdVSnbkxLF1zm10zvUHegB63MMP5NBxne6c6wvcBdyS7Vo0WhXMLJbUYHvPOVc/rS0Y2AK0JTXslgO3AsHA8+m6uAf43Tl3yswuB15xzvXKrfolYzl0XBuQOlVVOKnHeFbuVC8XkhPH1jmXbGY3AI8Bo51zH+ZW/ZKxnDquad/7DzDBObciO7WEZOsnCDDOuQVmViVdczNgm3NuO4CZTQK6OOeeBy50eW0fUMAXdUrW5MRxNbNrgMJAXeCImX3mnDvl08LlonLqd9Y5NwOYYWazAYWjx3Lod9aAF4A52Q1GUDheSAVg51nvk4Dm59vYzLoB7YDiwGjfliaXIEvH1Tn3JICZ3UXa1QGfVieXIqu/s22AbqT+Y/Yzn1YmlyJLxxV4ALgOiDCzGs65N7KzU4Xj+VkGbee9Bu2cmwpM9V05kkOydFzPbODc+JwvRXJYVn9nvwG+8VUxkmOyelxHAaMudacakHN+SUCls95XBHZ5VIvkHB3XwKVjG5g8Oa4Kx/NbDlxpZlXNLAzoCczwuCa5dDqugUvHNjB5clwVjoCZTQSWALXMLMnM+jjnUoBBwDxgI/Cxc269l3VK1ui4Bi4d28DkT8dVj3KIiIikozNHERGRdBSOIiIi6SgcRURE0lE4ioiIpKNwFBERSUfhKCIiko7CUcSPmVlJM1uV9vrVzH4+6/1iH+2zkZm9fYHPS5vZXF/sW8RfaG5VET/mnNsDRAGY2VDgoHPuZR/v9glg2AVq2m1mv5hZK+fcIh/XIuIJnTmK5FFmdjDtzzZm9q2ZfWxmW8zsBTPrZWbLzGytmVVP2660mX1iZsvTXq0y6LMo0MA5tzrt/dVnnamuTPscYDqgNUslYCkcRQJDQ+BBIBLoDdR0zjUD3iZ1CR+AkcBw51xT4Ka0z9KLBs5ehf1hYKBzLgqIAY6ktSekvRcJSLqsKhIYljvnfgEws++Bz9Pa1wLXpP39OqBu6lqwABQzs6LOuQNn9VMO2H3W+0XAK2Y2AZjqnEtKa08Gyuf8jyHiHxSOIoHh2Fl/P3XW+1P83+95ENDCOXeE8zsChJ9+45x7wcxmAx2A78zsOufcprRtLtSPSJ6my6oi+cfnpK5uAICZRWWwzUagxlnbVHfOrXXOvUjqpdTaaR/V5NzLryIBReEokn8MBqLNbI2ZbQD6p98g7aww4qyBN0PMbJ2ZrSb1THFOWvs1wOzcKFrEC1qySkTOYWYPAQeccxd61nEB0MU5ty/3KhPJPTpzFJH0Xufce5jnMLPSwCsKRglkOnMUERFJR2eOIiIi6SgcRURE0lE4ioiIpKNwFBERSUfhKCIiko7CUUREJJ3/D3avatZhbf5MAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -133,6 +132,33 @@ "axes.set_ylabel('Bz (T)')\n", "axes.legend((\"Analytic\", \"simpegEM1D\"))" ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", + " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", + " nan, nan, nan, nan, nan])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -151,7 +177,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index 47e3042..8c67497 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 80, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -16,14 +16,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "/srv/conda/lib/python3.6/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] } ], "source": [ - "from SimPEG import Mesh, Maps\n", + "from discretize import TensorMesh\n", + "from SimPEG import maps\n", "from simpegEM1D import *\n", "import numpy as np\n", "import matplotlib\n", @@ -46,14 +47,14 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "nearthick = np.logspace(-1, 1, 5)\n", "deepthick = np.logspace(1, 2, 10)\n", "hx = np.r_[nearthick, deepthick]\n", - "mesh1D = Mesh.TensorMesh([hx], [0.])\n", + "mesh1D = TensorMesh([hx], [0.])\n", "depth = -mesh1D.gridN[:-1]\n", "LocSigZ = -mesh1D.gridCC\n", "nlay = depth.size\n", @@ -69,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -84,7 +85,21 @@ " frequency = np.logspace(-2, 8, 61),\n", " offset = 8. * np.ones(61),\n", " a = 1.,\n", - " I=1.\n", + " I = 1.\n", + ")\n", + "\n", + "Colesurvey = EM1DSurveyFD(\n", + " rx_location = np.array([0., 0., 0.]),\n", + " src_location = np.array([0., 0., 0.]),\n", + " field_type = 'secondary',\n", + " rx_type = 'Hz',\n", + " src_type = 'VMD',\n", + " depth = depth,\n", + " topo = topo,\n", + " frequency = np.logspace(-2, 8, 61),\n", + " offset = 8. * np.ones(61),\n", + " a = 1.,\n", + " I = 1.\n", ")" ] }, @@ -132,13 +147,13 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "sig_half = 1e-2\n", "chi_half = 0.\n", - "Expmap = Maps.ExpMap(mesh1D)\n", + "Expmap = maps.ExpMap(mesh1D)\n", "tau = np.ones(nlay, dtype=float)*1e-1\n", "eta = np.ones(nlay, dtype=float)*0.5\n", "c = np.ones(nlay, dtype=float)*0.88" @@ -146,7 +161,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -155,47 +170,39 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Conductivity\n", - "prob = EM1D(\n", - " mesh1D, sigmaMap=Expmap,\n", + "simFD = EM1D(\n", + " mesh1D, survey=FDsurvey, sigmaMap=Expmap,\n", " chi=np.zeros(FDsurvey.n_layer)\n", ")\n", - "if prob.ispaired:\n", - " prob.unpair()\n", - "if FDsurvey.ispaired:\n", - " FDsurvey.unpair()\n", - "prob.pair(FDsurvey)\n", - "Hz = FDsurvey.dpred(m_1D)" + "\n", + "Hz = simFD.dpred(m_1D)" ] }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Frequency-dependent conductivity\n", - "probcole = EM1D(\n", - " mesh1D, sigmaMap=Expmap,\n", + "simCole = EM1D(\n", + " mesh1D, survey=Colesurvey, sigmaMap=Expmap,\n", " eta=eta, tau=tau, c=c,\n", " chi=np.zeros(FDsurvey.n_layer)\n", ")\n", - "if probcole.ispaired:\n", - " probcole.unpair()\n", - "if FDsurvey.ispaired:\n", - " FDsurvey.unpair()\n", - "probcole.pair(FDsurvey)\n", - "HzCole = FDsurvey.dpred(m_1D)\n", + "\n", + "HzCole = simCole.dpred(m_1D)\n", "Hzanal = EM1DAnalytics.Hzanal(sig_half, FDsurvey.frequency, FDsurvey.offset, 'secondary')" ] }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -204,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -213,27 +220,29 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 91, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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ePnwk7Qr3oulo3tCw6zdcKtV057+GTOS94WGZuPeHRQEgwbB7bdD+/bw/vvQujW0bJnFCwY2yyEwxhgDJOcDhIXB5s3w179C27bwxhs6EaBSJZ0cAHofPXpUC+qsXq0P1h98oD0Hn0//lV6zQikbd5yfBrzL1LgneeopWJMQSofoBXw0YAOjRl08ASG9oXsRPXbDDXDPPX7+4OfO6YpFderoh2/aFH77zc9vEgAyMq5QUDbLITDGGN/++EPkqad0EoCnEnCDBiLvvCNy8KD3evvhHcZJxBspxtsPHZKYildLbJHisvGd9amG41et0jpERYqIlCundYgyOslg1Sptz3vv+flDp50J8fzz+kYlSoi88srF544b5+cG5DxsLQMLCIwxJi1v+XUzZ4o0barrB4HINdfon88/n3yOrzr8EW+kOPDbb8m//PbbPhMRBw4UadQo+b77/POXzuNr21ZnCp4755/vIYm3Rn7wgcjll2sD77tPvC6IEEAsILCAwBhjLuK5r33xhci8eSJ160pSov3jj4vMmuV91b1L1huoUEF/AUQmT75kOy5cEBkzJrk34u9/931uRISek6sP5zExIl276htfcYV2Z6xalYsN8B8LCCwgMMaYi8TEiDz7bPKNOChIpG9fkWPH0l+p75IaN9YL9umT4baEhenQQbFiOoywYIH383r1EilTRuTEiQxf2n8eeECSxk+uv15k2jSRsWPTiY7yn4wGBAGZVOic2+ec+9E5F5m4PZbXbTLGmPzCW8XglSs1Ga96dZgyRacLAgwbBlOnQvnyPisGX6pWkGYUbtqk9YRXrLj4zb3wTGNcskTz+IoVgwcegPnzU5+3d6+24amntMpxrgoP14zJ4cOhTBlwTldZHD9e10VYsiT1h2naNJcb6GcZiRry2wbsAxpk9vesh8AYUxikfLKPjhZ54gmtGAwioaEikyZ5HxbI8puVKqUX37o1w90KaYcgvvlGcxjKlxfZty95/7PPag/CwYPZaGNW+OouefNNkU6dknsNGjXSRufj3AJyq4fAOVfFOTfFObfeOXfWOSfOuWo+zr3GOfepc+6kc+6Uc26xc65qdttgjDGFjrdugMR5e6EbxrN8UDj33ANXXAEzZ8IT14ez56nxzLp+POtGh6daSPCte8P5+ckslur99lsICdH5iPXrZ7hbYciQ1PUDbrtN1yBK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\n", + "image/png": "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i+yFF15wIOI2Y8aMOL995jX2dwrY5CHaRPUASEZoVT+R5Kg/XJbJfyt9+vSp8/uPfvQj7r777prfT548yYYNG5gzZw5NmjTh9OnTNcdGjRrF888/D8BXX33Fk08+yfLly/n000/rzCTYtWtXzGP1W7ZsAeD111+nVatWdY5t27aNe+65J+YegLNnz/Loo49y3333RT0TIdsoAJCMqZ3oV1KiBl4kVtVj/tkyXLZmzRq6du3KoUOHeOqpp1i8eDH/8A//wNSpUwH48ssvOXPmDA8//DAPP/xwyGucPXuW2bNns2jRIubNm8fQoUM5/4LIRMAAABrJSURBVPzz2b9/PxMmTIhrWmEgEKBHjx6MGTOmwbGdO3cCsScAvvfee7zwwgvMnTs35PHqp+wmTbI31U4BgGRMNj25iOSiSC/BysS/pf79+9OrVy8Arr32Wq644gpmzpzJLbfcQtu2bfna175GkyZN+PGPf1wTFNTXpEkTVq5cydSpU+s0ridOnIi7XIFAgKuuuirssZYtW9K3b9+afVOnTmXbtm0AHDlyhPLyco4ePUrTpk0B2LFjB2PHjqWyspKioiLGjBnD448/zrx589i7dy/l5eV89NFH9O7dm0mTJtV81zlz5tCqVSvmzZvH8ePHmT17Nps3b+bw4cNcc801LF68OK0BgwIAyYhse3IRyUWzZjXcly2BdMuWLXniiScYP348ixcvZubMmbRt25bhw4ezdetWBg0aFLaxq6iooHnz5nX2LVu2LK5yHDhwgM8//zziDIB+/frVud/y5cuBYBLj+PHjWbJkSU3jD3D55ZczYcIELrvsMmbMmFGzv6ysjIqKCl555RXatWtH3759GTRoUJ3jP/nJTwC4/fbbmT59Oj//+c9xd8aOHctrr73GjTfeGNf3jIcCAEmZSJn+kF1PLiKSfOPGjWPIkCE8+eST3H333bRu3ZqnnnqKq6++muuvv57vf//7dOnShfLycjZv3syZM2d4/PHHGTNmDM899xwDBgygV69erF69mrfffjuuMlSP/4cKAM6ePcv27du5/fbbGxzbuXMnkyZNYsmSJQwbNqzB8bKyMm699dYG+/7whz/Qrl07jh8/zr59++r0LJSVlTFo0CA2bNjAW2+9xf79+7nvvvsAOHbsGMF8vfRRACApU386X/2n/vqy5clFRJLnkUce4frrr+eX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\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -248,27 +257,29 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 93, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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ihXp5y1evJh//OMfdOrUiTfeeIOEhAQGDhzImTNnqFOnTo5t27p1KydOnKBOnTocOXIk2/H4+HgaN27su19GAFhAkAehMptg61a45RadYrhkCTRvHugWGWN8ZuBASO2mDpjGjWHiRJ9dbsiQIfTu3RuA5s2b8+233zJ16lS2b99O2bJlAfj7778ZMGAAO3fupHr16gDcdNNN3HTTTenXadmyJbVr16ZVq1asWbMm/an+xRdfpF69esydOxcntRxrw4YNadas2XkDgrQhgeHDhzN8+HC35wwcOPACPn3gWUCQR66zCUaMCL5gYNMmDQYSE7UH4+qrA90iY4zJWceOHdO/j4yMpEqVKjRp0iQ9GACoW7cuALt27UoPCM6dO8eECROYOXMmO3fu5MyZM+nnb968mSZNmpCcnMyqVat4/vnn04MBgKZNm3rVzb9mzRoAFi5cSPEsS8CuW7eOAQMGWA9BQZV1NkGghwZc/fqrBgMREbB0KdSvH+gWGWN8zodP5sEiMjIy089FixZ1uw/IdNN//vnnmTRpEiNHjqRly5aUKVOG3bt307Vr1/TzEhISSExMpEqVKtne96KLLjpv2+Lj44mKiqJDhw7Zjm3atAkI7YRCsIAgT4J5NsGaNZo0WKwYxMTAlVcGtj3GGJPfPvvsM3r37p2pK//EiROZzqlUqRJFihRh//792V6/b98+qlWrluN7xMfHc/3113s8VqxYMa666qr0fb1792bdunUAHDlyhISEBI4ePUqhQoW8/lz+ZrMM8mDlyuCcTfDLL5pAWKoU/PCDBQPGmILh1KlTFClSJNO+tBkKaQoVKkTz5s2ZM2cOIpK+Py4uju3bt+d4/X379rF3794cZxjUr18/UxtmzpxJfHw88+bNo1y5csyZMyeogwGwHoI8cbciYKCHDH76ScsRV66sPQOpQ2vGGBP2OnTowIcffkjDhg2pXbs2X331Ff/973+znffSSy9x66230qVLF/r06UNCQgKjRo3i4osvJiLC8/NxWv6Au4AgJSWF9evXc6+bsq+bNm2iR48eTJ06lRtuuOECPqF/WA9BGFi6FNq3h0su0cWKLBgwxhQkkyZNolOnTrzwwgvcfffdHD9+nFmzZmU7r127dnzyySds2rSJLl26MG7cON544w0uvvhiypUr5/H6aTMM3CUNbtmyhVOnTmU7FhcXR/fu3fn4449DIhgAcFy7TsJd8+bNZdWqVYFuhk99/z106gRRUfr9JZcEukXGGF/atGlTprFp41u7d++mdu3avPDCCz5bh2DZsmX079+fOXPmnHc6oy+c72/EcZw4ETnvxHMbMghhCxboegR16mgw4CZ51hhjTKrTp0/zzDPP0LZtWypVqsQff/zB+PHjKVmyJI888ojP3qd79+4UL16cnj17Apq/8PPPP2fLcwg2QRsQOI4zDHgAuALoKiLzshzfAZwFTqfueltE3vdrIwPo66+hRw9o2FArEFasGOgWGWNMcCtUqBB79+6lf//+HDx4kFKlStGqVSu++OILLvFh9+qBAwd8di1/CtqAAFgCfA5Mz+Gcu0UkwKW6/O/LL3XZ4qZNYdEiKF8+0C0yxpjgV7RoUebOnRvoZgQtr5IKHcep6jjOJMdxVjiOc8pxHHEcp4aHcy93HOdLx3GOOo5zzHH+f3v3HlxVee5x/Ps0hFsgnGAKerRUkINB4AyCgGg5ggpGhtEiF+sFzugBTrF0pIzTHhURkDJCi0o5FRFbBEqRUhDtOP5BBZSpohLcRS5iuMltQCIXBwMayHP+WElO7tnJ3jt77+T3mVmTrHetvdbDw072k3e961221syqv8GzEu7+obvvq3nPxuXPf4af/AT69oX161UMiIhIdIR7l0FnYDRwGthc1U5m1hLYAGQRdPePIejy32hmaZGFWqllZvapmS0zsytjcPyEsnQpjBkDP/pR0DNQajZPERGRiIR7yeA9d28PYGbjgCFV7Dce6ARc6+57i/bfDuQC/w08V9S2Daiq1+B6dz8cRky3uPsXZtYEeAL4K1D5NFINwCuvwIQJwZTEb7wBLVvGOyIREWlIwuohcPfCMI93F7CluBgoeu0B4B/A3aXaerl7ZhVLOMUA7v5F0deLwPNAPzNL7CGcdfT738P48ZCdDX/7m4oBERGJvmhPTNQN2FFJ+07gumidxMzSzKz01fMHgB3uXhCtcySK55+HSZOCuQZefx3KPWRLREQkKqJdELQlGGdQ3ikgo5L2KpnZVDM7QnAZ4BUzO2Jmlxdtbk8wLmG7mX1K0DMxqorjTDCzrWa2NdluBZkzB6ZMgREjYPXq4IFFIiIisRCL2w4rm/rQKmmr/iDus4BZVWzbD4T1nEl3fxl4GYKZCmsbR7w88wxMmxbcXrhsGTRJ5BtERUQk6UW7h+A0QS9BeRlU3nMg5bjDU08FxcDYsbB8uYoBERGJvWh/1OwkGEdQ3nXAriifq8Fxh1/9Cn7zGxg3DhYtgmoewCUiIhI10f64eRO40cw6FTcUTWB0c9E2qYI7/OIXQTHwyCMqBkREpH6F3UNgZiOLvu1d9PVOMzsJnHT3d4vaFgOTgDfMbCrBeIJngMPAouiE3PAUFsLPfgYvvQSTJ8Nzz4HVetSFiIhI3dXmb9DVRctPi9ZfLFqfUbyDu38D3Ap8DiwHVgAHgFvd/Vw0Am5oLl0K5hh46aXgcoGKARFp6F599VXMjL1799a8cwJZvHgxZkZOTk6FbXl5eZhZ1B6hHA9h9xC4e1gfU+5+CBhR54gakYsX4aGH4E9/CgYRTp+uYkBEJFGFQiGaNGlC9+7dK90GcP31Yd0Al5A0fj1OCgrgwQfhL3+BX/8anngi3hGJiEh1QqEQXbt2pVklk8I0hIJAw9bi4Lvv4N57g2Lgt79VMSAi9WjuXNi4sWzbxo1Be5xMnz4dM+Ozzz7jjjvuIC0tjQ4dOrBkyRIAli9fTlZWFq1atWLQoEHs21f2Qbh79+5lzJgxdOzYkRYtWtCpUycmTpzI6dMV73ZfuXIlWVlZNG/enB49evDmm28ycOBABg4cWG2M7s727dur/MAPhUK0adOGjh071i0JCUA9BPXswgUYORLeegt+9zv4+c/jHZGINCp9+sDo0cFfJIMGBcVA8XqcjRo1ivHjx/PYY4/x4osv8vDDD5Obm8umTZt49tlnKSgo4NFHH+X+++/nww8/LHndsWPHuOqqq3jhhRfIyMhg//79zJ49m6FDh/LBBx+U7Ld+/XoeeOAB7rrrLubNm0deXh6TJ0/mwoULdOnSpdrYcnNzOXfuHF26dOHMmTMVtodCIXr27Bm9ZMSDuzeapXfv3h5P33zjPmSIO7gvWhTXUEQkSezatSv6B92wwT0z0/2pp4KvGzZE/xzVWLJkiQOem5vr7u5PP/20A7506dKSfU6dOuUpKSnetm1bP3v2bEn7/PnzHfCDBw9WefyCggLfvHmzA75t27aS9v79+3u3bt28sLCwpC0nJ8cBv+WWW6qNedWqVU5w51yVy+TJk2ubiqio6T0CbPUwPiN1yaCenDsHw4bB+vXwxz8GjzIWEYmLQYNg4sRgjvSJE4P1BHDnnXeWfJ+RkUG7du248cYbSU9PL2nPysoC4PDh/38w7nfffcfs2bPJysqiRYsWpKamMmDAAAD27NkDwKVLl9i6dSsjRozASo3e7tWrV1jd/J988gkAb7/9Nhs3biyzzJ8/H6DWPQQfffQRV155ZZn1li1b0rNnT7p27Uq/fv3Izc2t1TEjoUsG9eDrr2HoUNiyJbij4P774x2RiDRqGzfCwoXBPOkLFwYFQQIUBRkZZZ+B17Rp00rbAC5cuFDS9vjjj7NgwQKmTZvGTTfdROvWrTly5Aj33HNPyX55eXkUFBTQrl27Cudt3759jbGFQiE6duxIdnZ2hW27d+8Gaj+gMCcnh969e5dZHzJkCOvWrQPgoYceYvbs2SVjKWJNBUGMnT4N2dmwbRusWhU8uVBEJG5KjxkoLgRKryeh1157jbFjxzJ16tSStnPnyk59k5mZSWpqKl9++WWF1584cYIOHTpUe45QKET//v2r3NasWTO6du1a0jZ27Fi2b98OwJkzZ8jLy+Ps2bOkpKSU7FNZQdCjR4+S9auvvrrCAMpY0iWDGMrLg9tug1AI1q5VMSAiCeDjj8t++A8aFKx//HF844pAfn4+qampZdrK/1WdkpLCDTfcwJo1awguqwdycnI4cOBAtcc/ceIEx48fr/YOg27dupWJYdmyZYRCIdatW0ebNm1Ys2ZNmWKg+NxVFQSHDh1i+fLljKjHDw71EMTIiRNw++2wdy+88UbQSyAiEne//GXFtgS5ZFBX2dnZLF26lB49etC5c2fWrl3L+++/X2G/GTNmMGTIEIYPH86ECRPIy8tj+vTpXH755XyvmofHFI8fqKwgKCwsZMeOHdx3330Vtu3evZtRo0axaNEibr755jLbvv32W3bu3FlSEBSvT58+nTlz5tC6dWtmzZrF3XffXatcREIFQQwcOxb0DBw6FNxeeOut8Y5IRKThWrBgAe7Ok08+CcDQoUNZuXIlffv2LbPf4MGDWbFiBTNmzGD48OF07tyZefPmMXPmTNq0aVPl8YsnHaps0ODnn39Ofn5+hW05OTmMHTuWFStWVPq67du3c9lll3HFFVeUrKenp7NrVxwfDBzOrQgNZamP2w4PHnS/5hr3Vq3c33sv5qcTkQYuJrcdSonDhw97s2bNfObMmVE75qZNm7x79+6+Z8+eKvdZuHChDxs2rMx6dnZ2nc4XrdsO1UMQRfv2Bb0BX38Nf/879OsX74hERKTY+fPnmTJlCrfffjuZmZns37+fuXPn0rJlS8aNGxe184wcOZLmzZszevRoIBi/sGXLljJjDHJycujVq1eZ9T59+kQthrpQQRAln30WXCb49lvYsAGSeDprEZEGKSUlhePHjzNp0iS++uor0tLSGDBgAKtXry7puo+GkydP1rjP4sWLq12PBxUEUfDpp8EAQjPYtAkqeRCWiIjEWdOmTXn99dfjHUbC0m2HEdq2DQYOhCZN4N13VQyIiEhyUkEQgS1bgjEDrVrBe+/BtdfGOyIREZG6UUFQR7t2weDBkJkJmzfDNdfEOyIREZG6U0FQR126wCOPBD0DNcx4KSIikvA0qLCOmjSBOXPiHYWINAbuXuYJfSLFvNQ0zJFSD4GISAJLTU3l/Pnz8Q5DEtT58+crPMehrlQQiIgksHbt2nH06FHy8/Oj+tegJDd3Jz8/n6NHj1b6SOe60CUDEZEElp6eDsCxY8coKCiIczSSSFJTU2nfvn3JeyRSKghERBJcenp61H7pi1RFlwxEREREBYGIiIioIBARERFUEIiIiAgqCERERAQVBCIiIgJYY5rowsxOAl/EO456lgnkxTuIJKccRofyGDnlMHKNMYc/dPfv17RToyoIGiMz2+ruN8Q7jmSmHEaH8hg55TByymHVdMlAREREVBCIiIiICoLG4OV4B9AAKIfRoTxGTjmMnHJYBY0hEBEREfUQiIiIiAoCERERQQWBlGNmT5jZHjMrNLMfxzueZKCcRc7M3jGzf5pZyMw2m1nPeMeUbMzsYNH7MFS0jIt3TMnGzP61VP5CZpZrZhfNrG28Y6sPTeIdgCScd4BVwB/iHUgSUc4id4+7nwUws+HAq4CKgtq7191D8Q4iWbn7MUq978zsf4Cb3P1U/KKqP+ohSGBmdpWZLTCzD8ws38zczK6uYt8fmNlfzeysmX1tZmvNrENtz+nuH7r7vkhjT2TRzmtjyFl5Mcjh2VKr6TEMPWHE4+e7IYpxHh+mERX6KggSW2dgNHAa2FzVTmbWEtgAZAH/CYwB/g3YaGZp9RBnslFeIxf1HJrZCjM7AjwDPBijuBNJLN6Hy8zsUzNbZmZXxibshBOTn2cz+w+gNfBWDGJOTO6uJUEX4Hulvh8HOHB1Jfs9ClwCOpdq6whcBKaUattGMId3ZcsPyh1zE/DjeOcgGfLaGHJWXzksdby34v1vTLYcEsxXD8Gl4GnAB/H+NyZjHkttWwo8G+9/X30u6iFIYO5eGOaudwFb3H1vqdceAP4B3F2qrZe7Z1axHI5u9Ikr2nltjGKcwz8Ag83sssiiTGwx+Pn+oujrReB5oJ+ZpUYv4sQUi/eimaUDI2hElwtAlwwaim7AjkradwLX1XMsDYnyGrkac2hmGWZ2RaltI4AvgUYxkCsM4eQwzcz+pdS2B4Ad7l5QD/Eli9r8PN8H5Lh7bsyjSiC6y6BhaEtw/ay8U0BGbQ5kZlOBnwLfB7qb2f8CN7j78YijTD5h5VU5q1Y4OcwAVplZc6CQoBgY5kX9thJWDtsDa8wsBTDgMDCqfsJLGrX5PflfwIKYR5RgVBA0HJX98rRaH8R9FjAr8nAajBrzqpzVqNocuvt+oE/9hZOUwsnh9fUXTtIK6/eku/eth1gSji4ZNAynCarf8jKovCKW8CivkVMOI6ccRofyWAMVBA3DToLrY+VdB+yq51gaEuU1csph5JTD6FAea6CCoGF4E7jRzDoVNxRNzHFz0TapG+U1csph5JTD6FAea6DHHyc4MxtZ9O1tBAPXHgFOAifd/d2ifdKAfwLngakE18meIZhU49/d/Vx9x53olNfIKYeRUw6jQ3mMDhUECc7MqvoPetfdB5barwPBvceDCQbJvANMdveDsY4xGSmvkVMOI6ccRofyGB0qCERERERjCEREREQFgYiIiKCCQERERFBBICIiIqggEBEREVQQiIiICCoIREREBBUEIiIiggoCERERQQWBiIiIAP8HlJGI/huqHjgAAAAASUVORK5CYII=\n", + "image/png": "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Dnr16kW7du3o3bs399xzD8ePHw/sa+3atfTt25esrCwGDhzIyy+/zOjRoxk9enSdMbo7JSUlMROAUChEdnY2vXr1atiLkAJNOUmxP7A7Svke4PpENmRm9wK3AePc/UT1OncvA/4E/M9I23GERxCCB4XC9Xeb2Q4z21FWVpZIGCIizcuwYTBz5j+ThC1bwsvDhqU2rogZM2bw9a9/nQ0bNjB06FC++93vMn/+fB5//HEefvhhnn76afbu3cu3vvWtGut9/PHH5Obmsnz5cjZu3MjChQvZtGkTkyZNqtHutdde4/bbb6dv374UFRVx3333MWfOHPbt21dvbPv37+f06dP06dOHEydOBB6hUIhBgwYl9fVodO6etAdwJ+BAzyh154GHo5QvAS4ksI/cyD7eA0KRx45aba4D3gT2Req/HM+2hw4d6iIimeTdd99N7gY3b3bv0sX9gQfCz5s3J3f7cXj66acd8P3797u7+89//nMH/Nlnn61qc+zYMW/ZsqVfeeWVfvLkyaryX//61w74hx9+GHP7n332mW/bts0B37lzZ1X5TTfd5P379/dLly5VlRUXFzvgX/3qV+uM+be//a1HfptiPubMmZPoS3HZ6vt81P79rP5IxhyERHiUsoTmB7j74frWcff9wPBEtisiIsCYMXDPPbB4MTzwQHg5Tdxyyy1V/87JyeGqq65i8ODBdOrUqaq8b9++ABw6dIhrrrkGgPPnz7N06VJWr17NwYMHOXv2bFX7vXv3MnjwYC5evMiOHTuYN28e1c+KHzJkSFyHBXbt2gXAq6++SlZWVo26kpISZs+enfAIwp/+9CemTp3KX//616rl0aNH06dPH86dO0enTp14/vnnue666xLabryaMkE4DlwZpTwnUiciIqm2ZQs8/ng4OXj88XCCkCZJQk5OTo3lNm3aRC0DaiQB8+bNo7CwkIULFzJ8+HA6duzI4cOHufXWW6valZeX89lnn3HVVVcF9tutW7d6YwuFQvTq1YuJEycG6kpLS4HEJygWFxczdOjQGsvjx49nw4YNAHznO9/hoYceqpqLkWxNmSDsITwPobbrgXebMA4REYmmcs7Bf/3XPxOD6ssZ6oUXXqCgoIAFCxZUlZ0+fbpGmy5dutC6dWs++eSTwPpHjx6lR4+6z5QPhULcdNNNMevatm1Lv379qsoKCgooKSkB4MSJ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\n", "text/plain": [ "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -280,6 +291,13 @@ "ax.loglog(FDsurvey.frequency, abs(HzCole[FDsurvey.n_frequency:]), 'rx')\n", "legend(('Real $H_{z}$', 'Real $H_{z \\ IP}$', 'Imag $H_{z}$', 'Imag $H_{z \\ IP}$'))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -298,7 +316,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/simpegEM1D/DigFilter.py b/simpegEM1D/DigFilter.py index 0376693..4b53093 100644 --- a/simpegEM1D/DigFilter.py +++ b/simpegEM1D/DigFilter.py @@ -2,7 +2,7 @@ from scipy.constants import mu_0 from scipy.interpolate import interp1d from scipy.constants import pi -from SimPEG import Utils +from SimPEG.utils import mkvc def EvalDigitalFilt(base, weight, fun, r): @@ -37,7 +37,7 @@ def transFilt(hz, wt, tbase, omega_int, t, tol=1e-12): # Determine required frequencies # Calculate the frequency domain data - hziw = Utils.mkvc(hz.imag)/omega_int + hziw = mkvc(hz.imag)/omega_int # Clean the low frequency results idKeep = [idx for idx in range(len(hz)) if abs(hz.imag)[idx] > tol] @@ -77,7 +77,7 @@ def transFiltInterp(hz, wt, tbase, omega, omega_int, t, tol=1e-12): # Determine required frequencies # Calculate the frequency domain data - hziw = Utils.mkvc(hz.imag)/omega + hziw = mkvc(hz.imag)/omega # Clean the low frequency results idKeep = [idx for idx in range(len(hz)) if abs(hz.imag)[idx] > tol] @@ -121,7 +121,7 @@ def transFiltImpulse(hz, wt, tbase, omega_int, t, tol=1e-12): # Determine required frequencies # Calculate the frequency domain data - hzr = -Utils.mkvc(hz.real) + hzr = -mkvc(hz.real) # Clean the low frequency results idKeep = [idx for idx in range(len(hz)) if abs(hz.imag)[idx] > tol] @@ -161,7 +161,7 @@ def transFiltImpulseInterp(hz, wt, tbase, omega, omega_int, t, tol=1e-12): # Determine required frequencies # Calculate the frequency domain data - hzr = -Utils.mkvc(hz.real) + hzr = -mkvc(hz.real) # Clean the low frequency results # idKeep = [idx for idx in range(len(hz)) if abs(hz.imag)[idx] > tol] diff --git a/simpegEM1D/EM1D.py b/simpegEM1D/EM1D.py index 026d6fe..17b7114 100644 --- a/simpegEM1D/EM1D.py +++ b/simpegEM1D/EM1D.py @@ -1,4 +1,4 @@ -from SimPEG import Maps, Utils, Problem, Props +from SimPEG import maps, utils, simulation, props import numpy as np from .Survey import BaseEM1DSurvey from scipy.constants import mu_0 @@ -15,13 +15,13 @@ rte_fortran = None -class EM1D(Problem.BaseProblem): +class EM1D(simulation.BaseSimulation): """ Pseudo analytic solutions for frequency and time domain EM problems assumingLayered earth (1D). """ surveyPair = BaseEM1DSurvey - mapPair = Maps.IdentityMap + mapPair = maps.IdentityMap chi = None hankel_filter = 'key_101_2009' # Default: Hankel filter hankel_pts_per_dec = None # Default: Standard DLF @@ -31,36 +31,36 @@ class EM1D(Problem.BaseProblem): _Jmatrix_height = None _pred = None - sigma, sigmaMap, sigmaDeriv = Props.Invertible( + sigma, sigmaMap, sigmaDeriv = props.Invertible( "Electrical conductivity at infinite frequency(S/m)" ) - chi = Props.PhysicalProperty( + chi = props.PhysicalProperty( "Magnetic susceptibility", default=0. ) - eta, etaMap, etaDeriv = Props.Invertible( + eta, etaMap, etaDeriv = props.Invertible( "Electrical chargeability (V/V), 0 <= eta < 1", default=0. ) - tau, tauMap, tauDeriv = Props.Invertible( + tau, tauMap, tauDeriv = props.Invertible( "Time constant (s)", default=1. ) - c, cMap, cDeriv = Props.Invertible( + c, cMap, cDeriv = props.Invertible( "Frequency Dependency, 0 < c < 1", default=0.5 ) - h, hMap, hDeriv = Props.Invertible( + h, hMap, hDeriv = props.Invertible( "Receiver Height (m), h > 0", ) def __init__(self, mesh, **kwargs): - Problem.BaseProblem.__init__(self, mesh, **kwargs) + simulation.BaseSimulation.__init__(self, mesh, **kwargs) # Check input arguments. If self.hankel_filter is not a valid filter, # it will set it to the default (key_201_2009). @@ -494,7 +494,7 @@ def forward(self, m, output_type='response'): # @profile def fields(self, m): f = self.forward(m, output_type='response') - self.survey._pred = Utils.mkvc(self.survey.projectFields(f)) + self.survey._pred = utils.mkvc(self.survey.projectFields(f)) return f def getJ_height(self, m, f=None): @@ -502,7 +502,7 @@ def getJ_height(self, m, f=None): """ if self.hMap is None: - return Utils.Zero() + return utils.Zero() if self._Jmatrix_height is not None: return self._Jmatrix_height @@ -523,7 +523,7 @@ def getJ_height(self, m, f=None): def getJ_sigma(self, m, f=None): if self.sigmaMap is None: - return Utils.Zero() + return utils.Zero() if self._Jmatrix_sigma is not None: return self._Jmatrix_sigma @@ -583,7 +583,7 @@ def depth_of_investigation_christiansen_2012(self, std, thres_hold=0.8): pred = self.survey._pred.copy() delta_d = std * np.log(abs(self.survey.dobs)) J = self.getJ(self.model) - J_sum = abs(Utils.sdiag(1/delta_d/pred) * J).sum(axis=0) + J_sum = abs(utils.sdiag(1/delta_d/pred) * J).sum(axis=0) S = np.cumsum(J_sum[::-1])[::-1] active = S-thres_hold > 0. doi = abs(self.survey.depth[active]).max() @@ -597,7 +597,7 @@ def get_threshold(self, uncert): def get_JtJdiag(self, uncert): J = self.getJ(self.model) - JtJdiag = (np.power((Utils.sdiag(1./uncert)*J), 2)).sum(axis=0) + JtJdiag = (np.power((utils.sdiag(1./uncert)*J), 2)).sum(axis=0) return JtJdiag if __name__ == '__main__': diff --git a/simpegEM1D/EM1DAnalytics.py b/simpegEM1D/EM1DAnalytics.py index 318d385..54e91c0 100644 --- a/simpegEM1D/EM1DAnalytics.py +++ b/simpegEM1D/EM1DAnalytics.py @@ -1,5 +1,5 @@ import numpy as np -from SimPEG import Utils +from SimPEG import utils from scipy.constants import mu_0, pi from scipy.special import erf import matplotlib.pyplot as plt @@ -109,7 +109,7 @@ def ColeCole(f, sig_inf=1e-2, eta=0.1, tau=0.1, c=1): sigma = np.zeros((f.size,sig_inf.size), dtype=complex) for i in range(f.size): w = 2*np.pi*f[i] - sigma[i,:] = Utils.mkvc(sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c)) + sigma[i,:] = utils.mkvc(sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c)) return sigma diff --git a/simpegEM1D/EM1DSimulation.py b/simpegEM1D/EM1DSimulation.py index 981beaa..d82f1de 100644 --- a/simpegEM1D/EM1DSimulation.py +++ b/simpegEM1D/EM1DSimulation.py @@ -1,5 +1,6 @@ import numpy as np -from SimPEG import Mesh, Maps, Utils +from discretize import TensorMesh +from SimPEG import maps, utils from .EM1DAnalytics import skin_depth, diffusion_distance from .EM1D import EM1D from .Survey import EM1DSurveyFD, EM1DSurveyTD @@ -45,7 +46,7 @@ def get_vertical_discretization_time( def set_mesh_1d(hz): - return Mesh.TensorMesh([hz], x0=[0]) + return TensorMesh([hz], x0=[0]) def run_simulation_FD(args): @@ -83,7 +84,7 @@ def run_simulation_FD(args): if not invert_height: # Use Exponential Map # This is hard-wired at the moment - expmap = Maps.ExpMap(mesh_1d) + expmap = maps.ExpMap(mesh_1d) prob = EM1D( mesh_1d, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c @@ -95,14 +96,14 @@ def run_simulation_FD(args): prob.pair(FDsurvey) if jac_switch == 'sensitivity_sigma': drespdsig = prob.getJ_sigma(np.log(sigma)) - return Utils.mkvc(drespdsig * prob.sigmaDeriv) - # return Utils.mkvc(drespdsig) + return utils.mkvc(drespdsig * prob.sigmaDeriv) + # return utils.mkvc(drespdsig) else: resp = FDsurvey.dpred(np.log(sigma)) return resp else: - wires = Maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = Maps.ExpMap(mesh_1d) + wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) + expmap = maps.ExpMap(mesh_1d) sigmaMap = expmap * wires.sigma prob = EM1D( mesh_1d, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', @@ -116,11 +117,11 @@ def run_simulation_FD(args): m = np.r_[np.log(sigma), h] if jac_switch == 'sensitivity_sigma': drespdsig = prob.getJ_sigma(m) - return Utils.mkvc(drespdsig * Utils.sdiag(sigma)) - # return Utils.mkvc(drespdsig) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + # return utils.mkvc(drespdsig) elif jac_switch == 'sensitivity_height': drespdh = prob.getJ_height(m) - return Utils.mkvc(drespdh) + return utils.mkvc(drespdh) else: resp = FDsurvey.dpred(m) return resp @@ -180,7 +181,7 @@ def run_simulation_TD(args): if not invert_height: # Use Exponential Map # This is hard-wired at the moment - expmap = Maps.ExpMap(mesh_1d) + expmap = maps.ExpMap(mesh_1d) prob = EM1D( mesh_1d, sigmaMap=expmap, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c @@ -192,13 +193,13 @@ def run_simulation_TD(args): prob.pair(TDsurvey) if jac_switch == 'sensitivity_sigma': drespdsig = prob.getJ_sigma(np.log(sigma)) - return Utils.mkvc(drespdsig * prob.sigmaDeriv) + return utils.mkvc(drespdsig * prob.sigmaDeriv) else: resp = TDsurvey.dpred(np.log(sigma)) return resp else: - wires = Maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = Maps.ExpMap(mesh_1d) + wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) + expmap = maps.ExpMap(mesh_1d) sigmaMap = expmap * wires.sigma prob = EM1D( mesh_1d, sigmaMap=sigmaMap, hMap=wires.h, @@ -213,10 +214,10 @@ def run_simulation_TD(args): m = np.r_[np.log(sigma), h] if jac_switch == 'sensitivity_sigma': drespdsig = prob.getJ_sigma(m) - return Utils.mkvc(drespdsig * Utils.sdiag(sigma)) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) elif jac_switch == 'sensitivity_height': drespdh = prob.getJ_height(m) - return Utils.mkvc(drespdh) + return utils.mkvc(drespdh) else: resp = TDsurvey.dpred(m) return resp diff --git a/simpegEM1D/GlobalEM1D.py b/simpegEM1D/GlobalEM1D.py index 37dbc47..2ca0da8 100644 --- a/simpegEM1D/GlobalEM1D.py +++ b/simpegEM1D/GlobalEM1D.py @@ -9,7 +9,7 @@ import numpy as np import scipy.sparse as sp -from SimPEG import Problem, Props, Utils, Maps, Survey +from SimPEG import simulation, props, utils, maps, survey from .Survey import EM1DSurveyFD, EM1DSurveyTD from .EM1DSimulation import run_simulation_FD, run_simulation_TD import properties @@ -20,33 +20,33 @@ def dot(args): return np.dot(args[0], args[1]) -class GlobalEM1DProblem(Problem.BaseProblem): +class GlobalEM1DProblem(simulation.BaseSimulation): """ The GlobalProblem allows you to run a whole bunch of SubProblems, potentially in parallel, potentially of different meshes. This is handy for working with lots of sources, """ - sigma, sigmaMap, sigmaDeriv = Props.Invertible( + sigma, sigmaMap, sigmaDeriv = props.Invertible( "Electrical conductivity (S/m)" ) - h, hMap, hDeriv = Props.Invertible( + h, hMap, hDeriv = props.Invertible( "Receiver Height (m), h > 0", ) - chi = Props.PhysicalProperty( + chi = props.PhysicalProperty( "Magnetic susceptibility (H/m)", ) - eta = Props.PhysicalProperty( + eta = props.PhysicalProperty( "Electrical chargeability (V/V), 0 <= eta < 1" ) - tau = Props.PhysicalProperty( + tau = props.PhysicalProperty( "Time constant (s)" ) - c = Props.PhysicalProperty( + c = props.PhysicalProperty( "Frequency Dependency, 0 < c < 1" ) @@ -62,7 +62,7 @@ class GlobalEM1DProblem(Problem.BaseProblem): invert_height = None def __init__(self, mesh, **kwargs): - Utils.setKwargs(self, **kwargs) + utils.setKwargs(self, **kwargs) self.mesh = mesh if PARALLEL: if self.parallel: @@ -315,7 +315,7 @@ def getJ_height(self, m): Compute d F / d height """ if self.hMap is None: - return Utils.Zero() + return utils.Zero() if self._Jmatrix_height is not None: return self._Jmatrix_height @@ -369,7 +369,7 @@ def Jvec(self, m, v, f=None): # # Extra division of sigma is because: # # J_sigma = dF/dlog(sigma) # # And here sigmaMap also includes ExpMap - # v_sigma = Utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) + # v_sigma = utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) # V_sigma = v_sigma.reshape((self.n_sounding, self.n_layer)) # pool = Pool(self.n_cpu) @@ -391,7 +391,7 @@ def Jvec(self, m, v, f=None): # pool.close() # pool.join() # else: - Jv = J_sigma*(Utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) + Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) if self.hMap is not None: Jv += J_height*(self.hDeriv * v) return Jv @@ -424,7 +424,7 @@ def Jtvec(self, m, v, f=None): # Extra division of sigma is because: # J_sigma = dF/dlog(sigma) # And here sigmaMap also includes ExpMap - Jtv = self.sigmaDeriv.T * (Utils.sdiag(1./self.sigma) * (J_sigma.T*v)) + Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) if self.hMap is not None: Jtv += self.hDeriv.T*(J_height.T*v) return Jtv @@ -435,14 +435,14 @@ def getJtJdiag(self, m, W=None, threshold=1e-8): trace of sensitivity matrix (J) """ J_sigma = self.getJ_sigma(m) - J_matrix = J_sigma*(Utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) + J_matrix = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) if self.hMap is not None: J_height = self.getJ_height(m) J_matrix += J_height*self.hDeriv if W is None: - W = Utils.speye(J_matrix.shape[0]) + W = utils.speye(J_matrix.shape[0]) J_matrix = W*J_matrix JtJ_diag = (J_matrix.T*J_matrix).diagonal() @@ -647,7 +647,7 @@ def run_simulation(self, args): # return self._Jmatrix -class GlobalEM1DSurvey(Survey.BaseSurvey, properties.HasProperties): +class GlobalEM1DSurvey(survey.BaseSurvey, properties.HasProperties): # This assumes a multiple sounding locations rx_locations = properties.Array( @@ -664,7 +664,7 @@ class GlobalEM1DSurvey(Survey.BaseSurvey, properties.HasProperties): _pred = None - @Utils.requires('prob') + @utils.requires('prob') def dpred(self, m, f=None): """ Return predicted data. @@ -726,8 +726,8 @@ def set_ij_n_layer(self, n_layer=None): np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + shift_for_I ) - J.append(Utils.mkvc(J_temp)) - I.append(Utils.mkvc(I_temp)) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) shift_for_J += m shift_for_I = I_temp[-1, -1] + 1 J = np.hstack(J).astype(int) @@ -752,8 +752,8 @@ def set_ij_height(self): np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + shift_for_I ) - J.append(Utils.mkvc(J_temp)) - I.append(Utils.mkvc(I_temp)) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) shift_for_J += m shift_for_I = I_temp[-1, -1] + 1 J = np.hstack(J).astype(int) @@ -863,7 +863,7 @@ class GlobalEM1DSurveyTD(GlobalEM1DSurvey): ) def __init__(self, **kwargs): - GlobalEM1DSurvey.__init__(self, **kwargs) + GlobalEM1Dsurvey.__init__(self, **kwargs) self.set_parameters() def set_parameters(self): diff --git a/simpegEM1D/IO.py b/simpegEM1D/IO.py index f521db0..c4cd0ab 100644 --- a/simpegEM1D/IO.py +++ b/simpegEM1D/IO.py @@ -2,7 +2,8 @@ import numpy as np from scipy.spatial import cKDTree as kdtree import scipy.sparse as sp -from SimPEG import Utils, Mesh +from SimPEG import utils +from discretize import TensorMesh from .EM1DSimulation import set_mesh_1d import matplotlib.pyplot as plt from matplotlib.colors import LogNorm @@ -141,8 +142,8 @@ def plot_plan( contourOpts['cmap'] = cmap - im = Utils.plot2Ddata( - self.topography[:, :2], Utils.mkvc(physical_property_matrix[i_layer, :]), scale=scale, + im = utils.plot2Ddata( + self.topography[:, :2], utils.mkvc(physical_property_matrix[i_layer, :]), scale=scale, ncontour=ncontour, ax=ax, contourOpts=contourOpts, dataloc=False, ) @@ -220,15 +221,15 @@ def plot_section( norm=None contourOpts['cmap'] = cmap - im = Utils.plot2Ddata( - yz, Utils.mkvc(physical_property_matrix[:, ind_line]), scale='log', ncontour=40, dataloc=False, ax=ax, + im = utils.plot2Ddata( + yz, utils.mkvc(physical_property_matrix[:, ind_line]), scale='log', ncontour=40, dataloc=False, ax=ax, contourOpts=contourOpts ) ax.fill_between(self.topography[ind_line, 1], self.topography[ind_line, 2], y2=yz[:,1].max(), color='w') out = ax.scatter( yz[:, 0], yz[:, 1], - c=Utils.mkvc(physical_property_matrix[:, ind_line]), s=0.1, vmin=vmin, vmax=vmax, + c=utils.mkvc(physical_property_matrix[:, ind_line]), s=0.1, vmin=vmin, vmax=vmax, cmap=cmap, alpha=1, norm=norm ) elif plot_type == "pcolor": @@ -314,8 +315,8 @@ def get_3d_mesh( hy = [(dy, npad_y, -1.2), (dy, ny), (dy, npad_y, -1.2)] hz = [(dz, npad_z, -1.2), (dz, nz)] - zmin = self.topography[:, 2].max() - Utils.meshTensor(hz).sum() - self._mesh_3d = Mesh.TensorMesh([hx, hy, hz], x0=[xmin, ymin, zmin]) + zmin = self.topography[:, 2].max() - utils.meshTensor(hz).sum() + self._mesh_3d = TensorMesh([hx, hy, hz], x0=[xmin, ymin, zmin]) return self.mesh_3d @@ -332,29 +333,29 @@ def get_interpolation_matrix( ): tree_2d = kdtree(self.topography[:, :2]) - xy = Utils.ndgrid(self.mesh_3d.vectorCCx, self.mesh_3d.vectorCCy) + xy = utils.ndgrid(self.mesh_3d.vectorCCx, self.mesh_3d.vectorCCy) distance, inds = tree_2d.query(xy, k=npts) if epsilon is None: epsilon = np.min([self.mesh_3d.hx.min(), self.mesh_3d.hy.min()]) w = 1. / (distance + epsilon)**2 - w = Utils.sdiag(1./np.sum(w, axis=1)) * (w) - I = Utils.mkvc( + w = utils.sdiag(1./np.sum(w, axis=1)) * (w) + I = utils.mkvc( np.arange(inds.shape[0]).reshape([-1, 1]).repeat(npts, axis=1) ) - J = Utils.mkvc(inds) + J = utils.mkvc(inds) self._P = sp.coo_matrix( - (Utils.mkvc(w), (I, J)), + (utils.mkvc(w), (I, J)), shape=(inds.shape[0], self.topography.shape[0]) ) - mesh_1d = Mesh.TensorMesh([np.r_[self.hz[:-1], 1e20]]) + mesh_1d = TensorMesh([np.r_[self.hz[:-1], 1e20]]) z = self.P*self.topography[:, 2] - self._actinds = Utils.surface2ind_topo(self.mesh_3d, np.c_[xy, z]) + self._actinds = utils.surface2ind_topo(self.mesh_3d, np.c_[xy, z]) Z = np.empty(self.mesh_3d.vnC, dtype=float, order='F') Z = self.mesh_3d.gridCC[:, 2].reshape( diff --git a/simpegEM1D/Regularization.py b/simpegEM1D/Regularization.py index 1ce966d..7ed8fbc 100644 --- a/simpegEM1D/Regularization.py +++ b/simpegEM1D/Regularization.py @@ -1,7 +1,9 @@ import scipy as sp import numpy as np -from SimPEG.regularization import Sparse, SparseSmall, SparseDeriv, Simple -from SimPEG import Mesh, Utils +from SimPEG.regularization.sparse import Sparse, SparseSmall, SparseDeriv +from SimPEG.regularization.tikhonov import Simple +from SimPEG import utils +from discretize import TensorMesh def get_2d_mesh(n_sounding, hz): @@ -13,7 +15,7 @@ def get_2d_mesh(n_sounding, hz): """ hx = np.ones(n_sounding) - return Mesh.TensorMesh([hz, hx]) + return TensorMesh([hz, hx]) class LateralConstraint(Sparse): @@ -72,8 +74,8 @@ def get_grad_horizontal( A = sp.sparse.csr_matrix((avg, (row, col)), shape=(nN, nStn)) # Kron vertically for nCz - Grad = sp.sparse.kron(D, Utils.speye(hz.size)) - Avg = sp.sparse.kron(A, Utils.speye(hz.size)) + Grad = sp.sparse.kron(D, utils.speye(hz.size)) + Avg = sp.sparse.kron(A, utils.speye(hz.size)) # Override the gradient operator in y-drection # This is because of ordering ... See def get_2d_mesh diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index 6856c06..d2e3794 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -1,4 +1,4 @@ -from SimPEG import Maps, Survey, Utils +from SimPEG import maps, survey, utils import numpy as np import scipy.sparse as sp from scipy.constants import mu_0 @@ -19,7 +19,7 @@ ) -class BaseEM1DSurvey(Survey.BaseSurvey, properties.HasProperties): +class BaseEM1DSurvey(survey.BaseSurvey, properties.HasProperties): """ Base EM1D Survey @@ -60,7 +60,7 @@ class BaseEM1DSurvey(Survey.BaseSurvey, properties.HasProperties): half_switch = properties.Bool("Switch for half-space", default=False) def __init__(self, **kwargs): - Survey.BaseSurvey.__init__(self, **kwargs) + survey.BaseSurvey.__init__(self, **kwargs) @property def h(self): @@ -118,7 +118,7 @@ def src_paths_on_x(self): return self._src_paths - @Utils.requires('prob') + @utils.requires('prob') def dpred(self, m, f=None): """ Computes predicted data. @@ -128,7 +128,7 @@ def dpred(self, m, f=None): if f is None: f = self.prob.fields(m) - return Utils.mkvc(self.projectFields(f)) + return utils.mkvc(self.projectFields(f)) class EM1DSurveyFD(BaseEM1DSurvey): @@ -201,7 +201,7 @@ def projectFields(self, u): ) else: resp = np.vstack( - (Utils.sdiag(factor)*ureal, Utils.sdiag(factor)*uimag) + (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) ) else: raise NotImplementedError() @@ -534,7 +534,7 @@ def projectFields(self, u): resp[:, i] = np.r_[resp_i, resp_dual_moment_i] return resp * (-2.0/np.pi) * mu_0 - @Utils.requires('prob') + @utils.requires('prob') def dpred(self, m, f=None): """ Computes predicted data. From 72c26b767d592d36a4eb06f24126a94cf523dd45 Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 6 May 2020 15:18:14 -0700 Subject: [PATCH 02/54] create a simulation class (not cleaned up yet) --- notebooks/examples/EM1D_TD_FWD.ipynb | 87 ++- notebooks/examples/EM1D_fwd.ipynb | 189 ++++-- simpegEM1D/EM1D.py | 9 +- simpegEM1D/EM1DSimulation.py | 2 +- simpegEM1D/GlobalEM1D.py | 10 +- simpegEM1D/Survey.py | 381 ++++++------ simpegEM1D/__init__.py | 2 +- simpegEM1D/simulation.py | 836 +++++++++++++++++++++++++++ 8 files changed, 1238 insertions(+), 278 deletions(-) create mode 100644 simpegEM1D/simulation.py diff --git a/notebooks/examples/EM1D_TD_FWD.ipynb b/notebooks/examples/EM1D_TD_FWD.ipynb index 689a473..c95deec 100644 --- a/notebooks/examples/EM1D_TD_FWD.ipynb +++ b/notebooks/examples/EM1D_TD_FWD.ipynb @@ -18,10 +18,16 @@ "source": [ "from SimPEG import *\n", "from simpegEM1D import (\n", - " EM1D, EM1DSurveyTD, Utils1D, get_vertical_discretization_time, \n", + " Utils1D, get_vertical_discretization_time, \n", " set_mesh_1d, skytem_HM_2015\n", ")\n", + "from simpegEM1D.simulation import EM1DTMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyTD\n", + "from simpegEM1D import EM1DAnalytics\n", "import numpy as np\n", + "from simpegEM1D import skytem_HM_2015\n", + "from simpegEM1D.DigFilter import setFrequency, transFilt\n", + "from scipy.constants import mu_0\n", "%pylab inline" ] }, @@ -29,9 +35,24 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.08568701e-12 6.05308651e-12 4.47918289e-12 3.28434137e-12\n", + " 2.39082145e-12 1.73041915e-12 1.24673427e-12 8.95008883e-13\n", + " 6.40665731e-13 4.57562169e-13 3.26195179e-13 2.32213450e-13\n", + " 1.65119120e-13 1.17304714e-13 8.32766395e-14 5.90851502e-14\n", + " 4.19025878e-14 2.97060668e-14 2.10535441e-14 1.49178592e-14\n", + " 1.05684045e-14 7.48600648e-15 5.30202123e-15 3.75485979e-15\n", + " 2.65897727e-15 1.88283018e-15 1.33317778e-15 9.43952283e-16\n", + " 6.68343667e-16 4.73196098e-16 3.35023064e-16]\n" + ] + } + ], "source": [ - "from simpegEM1D import skytem_HM_2015\n", "time = np.logspace(-5, -2, 31)\n", "# three layers\n", "hz = np.array([10, 10, 10])\n", @@ -57,8 +78,10 @@ " time = time,\n", ")\n", "imap = maps.IdentityMap(mesh1D)\n", - "sim = EM1D(mesh1D, survey=TDsurvey, sigmaMap=imap, verbose=False)\n", - "bz = sim.dpred(sigma)" + "sim = EM1DTMSimulation(mesh1D, survey=TDsurvey, sigmaMap=imap, verbose=False)\n", + "bz = sim.dpred(sigma)\n", + "print(np.shape(bz))\n", + "print(bz)" ] }, { @@ -67,9 +90,6 @@ "metadata": {}, "outputs": [], "source": [ - "from simpegEM1D import EM1DAnalytics\n", - "from simpegEM1D.DigFilter import setFrequency, transFilt\n", - "from scipy.constants import mu_0\n", "def bz_analytic_solution(r, t, sigma):\n", " \"\"\"\n", " r: offset bewteen VMD soure and Bz receiver (m)\n", @@ -89,29 +109,47 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.09316857e-12 6.06698620e-12 4.49551685e-12 3.29172016e-12\n", + " 2.39503887e-12 1.73740816e-12 1.25093533e-12 8.95539752e-13\n", + " 6.43131939e-13 4.59430578e-13 3.26462306e-13 2.32942155e-13\n", + " 1.65831926e-13 1.17543076e-13 8.34320390e-14 5.93153625e-14\n", + " 4.20071771e-14 2.96975019e-14 2.11024543e-14 1.49397731e-14\n", + " 1.05327498e-14 7.47226130e-15 5.28550866e-15 3.72160909e-15\n", + " 2.62520779e-15 1.85067287e-15 1.29653552e-15 9.04398964e-16\n", + " 6.30339448e-16 4.34161312e-16 2.94066345e-16]\n" + ] + } + ], "source": [ - "bz_analytic = bz_analytic_solution(offset, time, sigma_half)" + "bz_analytic = bz_analytic_solution(offset, time, sigma_half)\n", + "print(np.shape(bz_analytic))\n", + "print(bz_analytic)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -124,8 +162,8 @@ ], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", - "axes.plot(TDsurvey.time, bz_analytic, '-')\n", - "axes.plot(TDsurvey.time, bz, 'o')\n", + "axes.loglog(TDsurvey.time, bz_analytic, '-')\n", + "axes.loglog(TDsurvey.time, bz, 'o')\n", "axes.set_xscale('log')\n", "axes.set_yscale('log')\n", "axes.set_xlabel('Time (s)')\n", @@ -135,22 +173,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,\n", - " nan, nan, nan, nan, nan])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [] }, { diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index 8c67497..75ec570 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -11,21 +11,14 @@ "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", - "`%matplotlib` prevents importing * from pylab and numpy\n", - " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" - ] } ], "source": [ "from discretize import TensorMesh\n", "from SimPEG import maps\n", - "from simpegEM1D import *\n", + "from simpegEM1D.simulation import EM1DFMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyFD\n", + "from simpegEM1D import EM1DAnalytics\n", "import numpy as np\n", "import matplotlib\n", "%pylab inline" @@ -72,7 +65,31 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[1.00000000e-02 1.46779927e-02 2.15443469e-02 3.16227766e-02\n", + " 4.64158883e-02 6.81292069e-02 1.00000000e-01 1.46779927e-01\n", + " 2.15443469e-01 3.16227766e-01 4.64158883e-01 6.81292069e-01\n", + " 1.00000000e+00 1.46779927e+00 2.15443469e+00 3.16227766e+00\n", + " 4.64158883e+00 6.81292069e+00 1.00000000e+01 1.46779927e+01\n", + " 2.15443469e+01 3.16227766e+01 4.64158883e+01 6.81292069e+01\n", + " 1.00000000e+02 1.46779927e+02 2.15443469e+02 3.16227766e+02\n", + " 4.64158883e+02 6.81292069e+02 1.00000000e+03 1.46779927e+03\n", + " 2.15443469e+03 3.16227766e+03 4.64158883e+03 6.81292069e+03\n", + " 1.00000000e+04 1.46779927e+04 2.15443469e+04 3.16227766e+04\n", + " 4.64158883e+04 6.81292069e+04 1.00000000e+05 1.46779927e+05\n", + " 2.15443469e+05 3.16227766e+05 4.64158883e+05 6.81292069e+05\n", + " 1.00000000e+06 1.46779927e+06 2.15443469e+06 3.16227766e+06\n", + " 4.64158883e+06 6.81292069e+06 1.00000000e+07 1.46779927e+07\n", + " 2.15443469e+07 3.16227766e+07 4.64158883e+07 6.81292069e+07\n", + " 1.00000000e+08]\n" + ] + } + ], "source": [ "FDsurvey = EM1DSurveyFD(\n", " rx_location = np.array([0., 0., 0.]),\n", @@ -100,7 +117,10 @@ " offset = 8. * np.ones(61),\n", " a = 1.,\n", " I = 1.\n", - ")" + ")\n", + "\n", + "print(np.shape(FDsurvey.frequency))\n", + "print(FDsurvey.frequency)" ] }, { @@ -170,48 +190,123 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[-5.46799058e-17-1.96234252e-12j -1.16896402e-16-2.88032431e-12j\n", + " -2.50681887e-16-4.22773603e-12j -5.38655317e-16-6.20546187e-12j\n", + " -1.15903476e-15-9.10835352e-12j -2.49280581e-15-1.33691751e-11j\n", + " -5.35440132e-15-1.96230780e-11j -1.14648491e-14-2.88021529e-11j\n", + " -2.43827071e-14-4.22739644e-11j -5.11171297e-14-6.20442205e-11j\n", + " -1.04109185e-13-9.10528105e-11j -2.01013662e-13-1.33607199e-10j\n", + " -3.58829149e-13-1.96026112e-10j -6.06720506e-13-2.87606012e-10j\n", + " -1.06394230e-12-4.21978042e-10j -1.88584081e-12-6.19036850e-10j\n", + " -3.33558439e-12-9.08050705e-10j -5.90958825e-12-1.33179306e-09j\n", + " -1.04968251e-11-1.95296525e-09j -1.86339180e-11-2.86329900e-09j\n", + " -3.30761887e-11-4.19693573e-09j -5.87189264e-11-6.14991769e-09j\n", + " -1.04226195e-10-9.00846260e-09j -1.84935729e-10-1.31899359e-08j\n", + " -3.27993936e-10-1.93020685e-08j -5.81400117e-10-2.82282279e-08j\n", + " -1.02990773e-09-4.12496321e-08j -1.82292821e-09-6.02194990e-08j\n", + " -3.22336302e-09-8.78093657e-08j -5.69275377e-09-1.27854148e-07j\n", + " -1.00390953e-08-1.85829392e-07j -1.76720061e-08-2.69500033e-07j\n", + " -3.10401974e-08-3.89781198e-07j -5.43749881e-08-5.61840573e-07j\n", + " -9.49400531e-08-8.06433738e-07j -1.65102293e-07-1.15137109e-06j\n", + " -2.85699664e-07-1.63281838e-06j -4.91382245e-07-2.29574962e-06j\n", + " -8.38792464e-07-3.19217123e-06j -1.41847289e-06-4.37453520e-06j\n", + " -2.37086483e-06-5.87985144e-06j -3.90488430e-06-7.69730526e-06j\n", + " -6.31284960e-06-9.70911744e-06j -9.96569115e-06-1.15928368e-05j\n", + " -1.52549352e-05-1.26783691e-05j -2.24233036e-05-1.17757633e-05j\n", + " -3.12054975e-05-7.04803009e-06j -4.02239115e-05+3.88605557e-06j\n", + " -4.62349237e-05+2.32906067e-05j -4.37081555e-05+5.17274430e-05j\n", + " -2.58109982e-05+8.56119100e-05j 1.19223605e-05+1.15323668e-04j\n", + " 6.56056428e-05+1.27189018e-04j 1.19607359e-04+1.12212357e-04j\n", + " 1.54009845e-04+7.71012129e-05j 1.62201830e-04+4.27991495e-05j\n", + " 1.57645995e-04+2.42228201e-05j 1.55099666e-04+1.69490802e-05j\n", + " 1.55346211e-04+1.20096985e-05j 1.55438183e-04+8.12727627e-06j\n", + " 1.55423866e-04+5.53589383e-06j]\n" + ] + } + ], "source": [ "# Conductivity\n", - "simFD = EM1D(\n", + "simFD = EM1DFMSimulation(\n", " mesh1D, survey=FDsurvey, sigmaMap=Expmap,\n", " chi=np.zeros(FDsurvey.n_layer)\n", ")\n", "\n", - "Hz = simFD.dpred(m_1D)" + "# Hz = simFD.dpred(m_1D)\n", + "Hz = simFD.fields(m_1D)\n", + "print(np.shape(Hz))\n", + "print(Hz)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[ 5.53757290e-15-9.82263144e-13j 1.13879984e-14-1.44243389e-12j\n", + " 2.33869700e-14-2.11861458e-12j 4.80265611e-14-3.11270526e-12j\n", + " 9.85321185e-14-4.57529619e-12j 2.01925484e-13-6.72974845e-12j\n", + " 4.13070866e-13-9.90931818e-12j 8.42699459e-13-1.46159963e-11j\n", + " 1.71187054e-12-2.16175922e-11j 3.45402835e-12-3.21164614e-11j\n", + " 6.89324945e-12-4.80592236e-11j 1.35141956e-11-7.27264954e-11j\n", + " 2.57469873e-11-1.11841532e-10j 4.69381200e-11-1.75456456e-10j\n", + " 8.03625965e-11-2.80588017e-10j 1.26323796e-10-4.53489970e-10j\n", + " 1.80484076e-10-7.29084498e-10j 2.34605771e-10-1.15219144e-09j\n", + " 2.81668418e-10-1.78240651e-09j 3.17628539e-10-2.70633190e-09j\n", + " 3.40249353e-10-4.05412480e-09j 3.46382970e-10-6.01972956e-09j\n", + " 3.29112985e-10-8.88867071e-09j 2.74424515e-10-1.30783931e-08j\n", + " 1.56052188e-10-1.91970525e-08j -7.34649201e-11-2.81285629e-08j\n", + " -4.98587742e-10-4.11547143e-08j -1.26861497e-09-6.01292914e-08j\n", + " -2.64647850e-09-8.77243958e-08j -5.09387832e-09-1.27775521e-07j\n", + " -9.41909607e-09-1.85758825e-07j -1.70321780e-08-2.69439907e-07j\n", + " -3.03824285e-08-3.89734624e-07j -5.37019594e-08-5.61811467e-07j\n", + " -9.42554839e-08-8.06426882e-07j -1.64411243e-07-1.15139217e-06j\n", + " -2.85008894e-07-1.63287394e-06j -4.90700650e-07-2.29584692e-06j\n", + " -8.38131544e-07-3.19231789e-06j -1.41784724e-06-4.37473857e-06j\n", + " -2.37029252e-06-5.88011751e-06j -3.90438704e-06-7.69763704e-06j\n", + " -6.31245224e-06-9.70951271e-06j -9.96542029e-06-1.15932852e-05j\n", + " -1.52548159e-05-1.26788492e-05j -2.24233543e-05-1.17762397e-05j\n", + " -3.12057216e-05-7.04845415e-06j -4.02242882e-05+3.88574150e-06j\n", + " -4.62353997e-05+2.32904563e-05j -4.37086455e-05+5.17274855e-05j\n", + " -2.58114013e-05+8.56121270e-05j 1.19221248e-05+1.15323983e-04j\n", + " 6.56055912e-05+1.27189320e-04j 1.19607430e-04+1.12212552e-04j\n", + " 1.54009937e-04+7.71012871e-05j 1.62201883e-04+4.27991566e-05j\n", + " 1.57646011e-04+2.42228164e-05j 1.55099671e-04+1.69490808e-05j\n", + " 1.55346214e-04+1.20096993e-05j 1.55438184e-04+8.12727655e-06j\n", + " 1.55423867e-04+5.53589397e-06j]\n" + ] + } + ], "source": [ "# Frequency-dependent conductivity\n", - "simCole = EM1D(\n", + "simCole = EM1DFMSimulation(\n", " mesh1D, survey=Colesurvey, sigmaMap=Expmap,\n", " eta=eta, tau=tau, c=c,\n", " chi=np.zeros(FDsurvey.n_layer)\n", ")\n", "\n", - "HzCole = simCole.dpred(m_1D)\n", - "Hzanal = EM1DAnalytics.Hzanal(sig_half, FDsurvey.frequency, FDsurvey.offset, 'secondary')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "Hz_r = Hz.reshape((2, 61))[0,:]" + "# HzCole = simCole.dpred(m_1D)\n", + "HzCole = simCole.fields(m_1D)\n", + "Hzanal = EM1DAnalytics.Hzanal(sig_half, FDsurvey.frequency, FDsurvey.offset, 'secondary')\n", + "print(np.shape(HzCole))\n", + "print(HzCole)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -220,22 +315,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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i+yFF15wIOI2Y8aMOL995jX2dwrY5CHaRPUASEZoVT+R5Kg/XJbJfyt9+vSp8/uPfvQj7r777prfT548yYYNG5gzZw5NmjTh9OnTNcdGjRrF888/D8BXX33Fk08+yfLly/n000/rzCTYtWtXzGP1W7ZsAeD111+nVatWdY5t27aNe+65J+YegLNnz/Loo49y3333RT0TIdsoAJCMqZ3oV1KiBl4kVtVj/tkyXLZmzRq6du3KoUOHeOqpp1i8eDH/8A//wNSpUwH48ssvOXPmDA8//DAPP/xwyGucPXuW2bNns2jRIubNm8fQoUM5/4LIRMAAABrJSURBVPzz2b9/PxMmTIhrWmEgEKBHjx6MGTOmwbGdO3cCsScAvvfee7zwwgvMnTs35PHqp+wmTbI31U4BgGRMNj25iOSiSC/BysS/pf79+9OrVy8Arr32Wq644gpmzpzJLbfcQtu2bfna175GkyZN+PGPf1wTFNTXpEkTVq5cydSpU+s0ridOnIi7XIFAgKuuuirssZYtW9K3b9+afVOnTmXbtm0AHDlyhPLyco4ePUrTpk0B2LFjB2PHjqWyspKioiLGjBnD448/zrx589i7dy/l5eV89NFH9O7dm0mTJtV81zlz5tCqVSvmzZvH8ePHmT17Nps3b+bw4cNcc801LF68OK0BgwIAyYhse3IRyUWzZjXcly2BdMuWLXniiScYP348ixcvZubMmbRt25bhw4ezdetWBg0aFLaxq6iooHnz5nX2LVu2LK5yHDhwgM8//zziDIB+/frVud/y5cuBYBLj+PHjWbJkSU3jD3D55ZczYcIELrvsMmbMmFGzv6ysjIqKCl555RXatWtH3759GTRoUJ3jP/nJTwC4/fbbmT59Oj//+c9xd8aOHctrr73GjTfeGNf3jIcCAEmZSJn+kF1PLiKSfOPGjWPIkCE8+eST3H333bRu3ZqnnnqKq6++muuvv57vf//7dOnShfLycjZv3syZM2d4/PHHGTNmDM899xwDBgygV69erF69mrfffjuuMlSP/4cKAM6ePcv27du5/fbbGxzbuXMnkyZNYsmSJQwbNqzB8bKyMm699dYG+/7whz/Qrl07jh8/zr59++r0LJSVlTFo0CA2bNjAW2+9xf79+7nvvvsAOHbsGMF8vfRRACApU386X/2n/vqy5clFRJLnkUce4frrr+eX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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -248,31 +343,31 @@ ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", - "ax.loglog(FDsurvey.frequency, abs(Hz[:FDsurvey.n_frequency]), 'b-')\n", - "ax.loglog(FDsurvey.frequency, abs(Hzanal.real), 'bx')\n", - "ax.loglog(FDsurvey.frequency, abs(Hz[FDsurvey.n_frequency:]), 'r-')\n", - "ax.loglog(FDsurvey.frequency, abs(Hzanal.imag), 'rx')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.real(Hz)), 'b-')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.real(Hzanal)), 'bx')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.imag(Hz)), 'r-')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.imag(Hzanal)), 'rx')\n", "legend(('Real $H_{z}$', 'Real $H_{z \\ true}$', 'Imag $H_{z}$', 'Imag $H_{z \\ true}$'))" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 11, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAE3CAYAAADPOLmGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3de3RU9b3//+eba4BCjIDI+aYIGCkIeLiEVuEHBctNehYUuXRZj+m3rdra0sJxSVdBpHjga9UipSvfhSJ1qShf7LEB1NWvX5YLKHJUWgmMKZhy8YJQCyblUjBcBN6/P2aSJtkzyUyYZGbi67HWrGF/Pp+99/szF+adz/7svc3dEREREamuRaoDEBERkfSjBEFEREQClCCIiIhIgBIEERERCVCCICIiIgGtUh1AOunSpYv37Nkz1WGIiIg0ieLi4nJ37xqtTglCNT179mTHjh2pDkNERKRJmNnBWHU6xCAiIiIBShBEREQkQAmCiIiIBChBEBERkQAlCCIiIhKgBEFEREQCdJqjiEiGO3nyJOXl5Zw/fz7VoUiaaNOmDV26dCE7O7vB21CCICKSwc6ePcvRo0fJzc2lXbt2mFmqQ5IUc3fOnDnD4cOHadu2LVlZWQ3ajg4xiIhksLKyMrp27Ur79u2VHAgAZkb79u3p0qULZWVlDd6OEgQRkQx29uxZvvCFL6Q6DElDHTt25OzZsw1eXwmCiEgGu3DhAq1a6WixBLVq1YoLFy40eH0lCCIiGU6HFiSay/1cKEEQERGRACUIIiIiEqAEQURERAKUIIiISFp55plnMLOqR5s2bbj22muZP3/+Zc3Kr8+iRYviPm6/atUqzIzi4uJAXXl5OWbGAw88kOwQm5SmvoqISFp68cUXyc3N5dSpU6xfv55f/OIXnDp1isLCwlSHRigUolWrVgwYMCBqHcDgwYObOqykUoIgIiJpadCgQeTl5QEwbtw49u/fz1NPPcWvf/1rWrRI7QB4KBSiX79+tG3bNmodZH6CoEMMIiKSEYYMGcKZM2coLy+vUf7OO+8wefJkcnJyaNeuHSNGjGDbtm1V9QcOHOCOO+6gV69etGvXjt69e3PPPfdw/PjxBsXh7pSUlMRMAEKhENnZ2fTq1atB208XShBERCQjfPjhh2RnZ9O5c+eqsp07dzJ8+HCOHTvGqlWrKCoqonPnzowdO7ZqfsDHH39Mbm4uy5cvZ+PGjSxcuJBNmzYxadKkBsWxf/9+Tp8+TZ8+fThx4kTgEQqFGDRoUFL6nEo6xCAi0szMmQORUe6UGTQIli+/vG1cvHiRCxcuVM1BKCoqYvny5bRs2bKqzdy5c+nRowebN2+mTZs2AEyYMIEBAwawePFiNmzYwKhRoxg1alTVOsOHDycvL4+RI0eya9euhA8FVB5CWLBgAQsWLIjaZs6cOYl2N+0oQRARkbTUt2/fGss//OEPmTVrVtXymTNn2Lp1K/Pnz6dFixY1Lis8duxY1qxZA8D58+dZunQpq1ev5uDBgzXOhNi7d2/CCcKuXbsAePXVVwN3SiwpKWH27NkaQRARkfRzuX+5p4v169eTm5tLWVkZy5YtY8WKFXzlK1+hoKAAgGPHjnHx4kUWL17M4sWLo27j0qVLzJs3j8LCQhYuXMjw4cPp2LEjhw8f5tZbb23QaZOhUIhevXoxceLEQF1paSmQ+RMUQQmCiIikqQEDBlSdxXDzzTdzww03MHfuXKZNm0aHDh244ooraNGiBT/60Y+qkobaWrRowQsvvEBBQUGNwwGnT59ucFyhUIibbropZl3btm3p169fVVlBQQElJSUAnDhxgvLyck6ePFnjUEk6UoIgIiJpr23btvzyl79kypQprFixgrlz59KhQwdGjhzJO++8w5AhQ2Ke+lhRUUHr1q1rlD399NMNiuPo0aMcOXKkzjMY+vfvX2N/q1evBsKTLKdMmcLKlSvTPjkAJQgiIpIhJk+ezLBhw1i6dCmzZs2iXbt2LFu2jFGjRjFhwgS+973v0b17d8rLy9m5cycXL17k4YcfZuLEiTz77LMMHDiQvLw81q1bx5tvvtmgGCrnH0RLEC5dusTu3bu57bbbAnWlpaXMmDGDlStXMmLEiAbtu6ll7GmOZjbRzHaYWYmZbTezf42UZ5nZBjMrNbOQmW00s96pjldERC7fkiVL+OSTT3jiiSeA8LUR3n77bTp37sxPfvITxo8fz+zZs/nzn/9cdeZCYWEhkydP5v777+eb3/wmp06dYu3atQ3af+UZDNEmIe7bt4+KiopAXXFxMdOnT+f555/PmOQAwNw91TEkzMxygAPA/+fupWY2HHjS3QeYWRbwVXffGGk7C7jV3W+ub7v5+fm+Y8eORo1dRCSZSktLaxzvlvSydetWZs2aRVFREX369Gny/df3+TCzYnfPj1bXZCMIZpZrZoVm9paZVZiZm1nPGG2/aGa/M7OTZvYPM1tnZj2qNbkW+Lu7lwK4+5tADzMb4u5nK5ODiO2ARhBERKTJTZ8+nRMnTjBz5kwGDRrE0KFD+eyzz1IdVlyacg5CHjATKAa2AeOjNTKz9sBm4BzwbcCBJcAWM7vB3T8F9gNXmtkId3/DzCYDHYGewM5am/wx8FLyuyMiIlK3srKyVIfQYE2ZILzu7t0AzOxOYiQIwF2E/+L/krsfiLQvIZwUfB9Y5u4nzexW4H+ZWUfgv4F3gRppmZnNA/oAX2uE/oiIiDRbTZYguPulOJtOBrZXJgeRdT8wszeAKcCySNnrwGgAM2sLHAFKK9cxs/uAacBYd69IRh9EREQ+L9LxLIb+wO4o5XuA6ysXzKx7tboHgM3VRhzuBW4Dxrn7ibp2ZmZ3R86G2JHJQ0EiIiLJlI4JwpVAtHtwHgNyqi3/p5n9xcwOANcA34PwZEjgMeAKwvMWQmYW89QEd3/S3fPdPb9r165J64SIiEgmS9cLJUU799JqNHC/K+qK7odrtxUREZHEpOMIwnHCowi15RB9ZEFERESSLB0ThD2E5yHUdj3hMxVERESkkaVjgvAycGP1yyNHLqg0IlInIiIijaxJ5yCY2fTIP4dGnm8xszKgzN23RspWAbOAl8xsAeH5CIuBQ8DKpoxXRETk86qpJym+WGt5ReR5K5FrGrj7p2Z2M/Ar4DnCEw43AXPcveE38BYREZG4NWmC4O5xnV3g7h8RvsiRiIiIpEA6zkEQERGRFFOCICIiaeWZZ57BzKoebdq04dprr2X+/PmcPXu20fa7aNEizOK7jM6qVaswM4qLiwN15eXlmBkPPPBAskNsUul6oSQREfmce/HFF8nNzeXUqVOsX7+eX/ziF5w6dYrCwsJUh0YoFKJVq1YMGDAgah3A4MGDmzqspFKCICIiaWnQoEHk5eUBMG7cOPbv389TTz3Fr3/9a1q0SO0AeCgUol+/frRt2zZqHWR+gqBDDCIiAsCjj8KWLTXLtmwJl6eDIUOGcObMGcrLy2uUv/POO0yePJmcnBzatWvHiBEj2LZtW1X9gQMHuOOOO+jVqxft2rWjd+/e3HPPPRw/3rCL87o7JSUlMROAUChEdnY2vXr1atD204USBBERAWDYMJg5859JwpYt4eVhw1IbV6UPP/yQ7OxsOnfuXFW2c+dOhg8fzrFjx1i1ahVFRUV07tyZsWPHVs0P+Pjjj8nNzWX58uVs3LiRhQsXsmnTJiZNmtSgOPbv38/p06fp06cPJ06cCDxCoRCDBg1KSp9TSYcYREQEgDFj4L/+K5wU3HMPPP54eHnMmNTEc/HiRS5cuFA1B6GoqIjly5fTsmXLqjZz586lR48ebN68mTZt2gAwYcIEBgwYwOLFi9mwYQOjRo1i1KhRVesMHz6cvLw8Ro4cya5duxI+FFB5CGHBggUsWLAgaps5c+Yk2t20owRBRESqjBkTTg4WL4YHHkhdcgDQt2/fGss//OEPmTVrVtXymTNn2Lp1K/Pnz6dFixZcuHChqm7s2LGsWbMGgPPnz7N06VJWr17NwYMHa5wJsXfv3oQThF27dgHw6quvkpWVVaOupKSE2bNnJzyC8Kc//YmpU6fy17/+tWp59OjR9OnTh3PnztGpUyeef/55rrvuuoS2ezmUIIiISJUtW8IjBw88EH4eMyZ1ScL69evJzc2lrKyMZcuWsWLFCr7yla9QUFAAwLFjx7h48SKLFy9m8eLFUbdx6dIl5s2bR2FhIQsXLmT48OF07NiRw4cPc+uttzbotMlQKESvXr2YOHFioK60tBRIfIJicXExQ4cOrbE8fvx4NmzYAMB3vvMdHnroIZ5++umE420oJQgiIgL8c85B5WGFMWNqLje1AQMGVJ3FcPPNN3PDDTcwd+5cpk2bRocOHbjiiito0aIFP/rRj6qShtpatGjBCy+8QEFBQY3DAadPN/zK/aFQiJtuuilmXdu2benXr19VWUFBASUlJQCcOHGC8vJyTp48WeNQSbQEYeDAgVXLPXv25L333mtwzA2hSYoiIgLA22/XTAYq5yS8/XZq4wJo27Ytv/zlL/nkk09YsSJ8G58OHTowcuRI3nnnHYYMGUJ+fn7gAVBRUUHr1q1rbK+hf4kfPXqUI0eO1HkGQ//+/Wvsb/Xq1YRCITZs2EB2djZFRUU1kgOoO0H46KOPeO6555g2rWnvQKARBBERAeCnPw2WpfIQQ22TJ09m2LBhLF26lFmzZtGuXTuWLVvGqFGjmDBhAt/73vfo3r075eXl7Ny5k4sXL/Lwww8zceJEnn32WQYOHEheXh7r1q3jzTffbFAMlfMPoiUIly5dYvfu3dx2222ButLSUmbMmMHKlSsZMWJEjbpz586xZ8+eqgShcnnRokU88sgjdOzYkSVLljBlypQGxdxQShBERCRjLFmyhAkTJvDEE0/wH//xHwwZMoS3336bBx98kJ/85CecPHmSrl27MmTIEH7wgx8AUFhYiLtz//33AzBp0iTWrl3Ll7/85YT3X3kGQ7RJiPv27aOioiJQV1xcTEFBAWvWrIm6XklJCZ07d6Z79+5Vy506deLdd99NOL5kMndPaQDpJD8/33fs2JHqMERE4lZaWlrjeLekl61btzJr1iyKioro06dP1DZPPPEEv//973nllVeqll966SVeffXVy95/fZ8PMyt29/xodRpBEBERaSTTp08nKyuLmTNnAtCyZUu2b99eY45CcXExQ4YMqbE8LA2uTqUEQUREpJGUlZXV22bVqlV1LqeKzmIQERGRACUIIiIiEqAEQURERAIyNkEws01m9o6Zhcxsm5kNqlbXxsyWm9l+M9tjZv83lbGKiIhkmkyepHiru58EMLOpwDNAZZLwENAG+JK7XzKz7qkJUUREJDM12QiCmeWaWaGZvWVmFWbmZtYzRtsvmtnvzOykmf3DzNaZWY/qbSqTg4hO1dZtD9wN/MzdL0Xa/i3pHRIREWnGmvIQQx4wEzgObIvVKPIDvxnoC3wbuAO4DthiZh1qtV1jZoeBxcC/V9vPceBnZva2mb1pZk17fUoREZEM15SHGF53924AZnYnMD5Gu7uA3oQPDxyItC8B9gPfB5ZVNnT326tt7xHg60BroAfwnrvPN7O+wDYz2+3uTXsrLBERkQzVZCMIlcP9cZgMbK9MDiLrfgC8AcQaCXgKGGdmnYGDgAPPRdb9CxACErs5t4iIyOdYOp7F0B/YHaV8D3A9gJnl1Jp4OA34BDjm7uXARmBipG13YADw52g7M7O7zWyHme2I54pXIiIinwfpeBbDlYTnENR2DMiJ/DsH+K2ZZQGXCCcH/+b/vPPUPcBTZva/IvX3ufveaDtz9yeBJyF8s6ak9UJERCSDpWOCAOFDBLVZVaX7+0DMO1m4+4fA15IfloiIyOdDOh5iOE54FKG2HKKPLIiISDPyzDPPYGYcOHCg/sZpZNWqVZgZxcXFgbry8nLMjAceeCAFkTVMOiYIewjPQ6jteuDdJo5FREQkLqFQiFatWjFgwICodQCDB2fOfPl0TBBeBm40s96VBZELKo2I1ImIiKSdUChEv379aNu2bdQ6UIIQk5lNN7PpwNBI0S2Rsq9Wa7YK+BB4ycymmNlk4CXgELCyKeMVEZHUW7RoEWbGX/7yFyZMmECHDh3o0aMHTz/9NADPPfccffv25Qtf+AJjxozhvfdqXvLmwIED3HHHHfTq1Yt27drRu3dv7rnnHo4fDx61Xrt2LX379iUrK4uBAwfy8ssvM3r0aEaPHl1njO5OSUlJzAQgFAqRnZ1Nr169GvYipEBTT1J8sdbyisjzVmA0gLt/amY3A78ifC0DAzYBc9z9dBPFKSIiaWbGjBncdddd3HfffaxYsYLvfve77N+/nz/84Q88/PDDfPbZZ8yePZtvfetb/PGPf6xa7+OPPyY3N5fly5eTk5PD+++/z0MPPcSkSZN46623qtq99tpr3H777UyePJnHHnuM8vJy5syZw9mzZ+nTp0+dse3fv5/Tp0/Tp08fTpw4EagPhUIMGjQoyprpq0kTBHe3+luBu39E+NoGIiKSqDlzIDKknTKDBsHy5Und5Ny5cykoKAAgPz+fV155hZUrV/LBBx/QqVP4ljx/+9vfmD17NgcPHuSaa64BYNSoUYwaNapqO8OHDycvL4+RI0eya9euqr/6f/7zn3P99dezfv16zMI/VwMHDmTo0KH1JgiVhxAWLFjAggULoraZM2fOZfS+6aXraY4iIiI13HLLLVX/zsnJ4aqrrmLw4MFVyQFA3759ATh06FBVgnD+/HmWLl3K6tWrOXjwIGfPnq1qv3fvXgYPHszFixfZsWMH8+bNq0oOAIYMGRLXYYFdu3YB8Oqrr5KVlVWjrqSkhNmzZ2sEQUREUizJf7mni5ycnBrLbdq0iVoG1EgC5s2bR2FhIQsXLmT48OF07NiRw4cPc+utt1a1Ky8v57PPPuOqq64K7Ldbt271xhYKhejVqxcTJ04M1JWWlgKZNUERlCCIiEgz98ILL1BQUFBj6P/06ZpT2rp06ULr1q355JNPAusfPXqUHj161LmPUCjETTfdFLOubdu29OvXr6qsoKCAkpISAE6cOEF5eTknT56kZcuWcfersaXjaY4iIiJJU1FRQevWrWuUVZ4BUally5bk5+dTVFTEP6/aD8XFxXzwwQd1bv/o0aMcOXKkzjMY+vfvXyOG1atXEwqF2LBhA9nZ2RQVFaVVcgAaQRARkWZu4sSJPPvsswwcOJC8vDzWrVvHm2++GWj34IMPMn78eKZOncrdd99NeXk5ixYt4uqrr6ZFi9h/T1fOP4iWIFy6dIndu3dz2223BepKS0uZMWMGK1euZMSIEZfRw8ahEQQREWnWCgsLmTx5Mvfffz/f/OY3OXXqFGvXrg20GzduHGvWrKG0tJSpU6fyyCOP8Nhjj3H11VeTnZ0dc/uVZzBEm4S4b98+KioqAnXFxcVMnz6d559/Pi2TAwCrPpTyeZefn+87duxIdRgiInErLS2tcWxbkuvw4cPk5eVx//33J+0+Clu3bmXWrFkUFRXVe/rk5arv82Fmxe6eH61OhxhERESAM2fOcO+99zJ27Fi6dOnC+++/z6OPPkr79u258847k7af6dOnk5WVxcyZM4Hw/Ift27cH5kmkmhIEERERwj/UR44cYdasWfz973+nQ4cOjBw5khdffJHu3bsnbT9lZWVJ21ZjUoIgIiJC+BoK69evT3UYaUOTFEVERCRACYKIiIgEKEEQERGRACUIIiIiEqAEQURERAKUIIiIiEiAEgQREREJUIIgIiIiAUoQREREJCDjEgQzyzKzDWZWamYhM9toZr1rtbnWzP7bzPaZ2S4zi3ojChEREYku4xKEiMfdvZ+7DwJeAX5Tq/4J4Bl37wP8FFhjZtbUQYqIiGSqy04QzCzXzArN7C0zqzAzN7OeMdp+0cx+Z2YnzewfZrbOzHoksj93P+vuG6sVbQeqRhDMrCtwI/BspP1rkaqhiexHRERS45lnnsHMOHDgQKpDSciqVaswM4qLiwN15eXlmFnSbhndFJIxgpAHzASOA9tiNTKz9sBmoC/wbeAO4Dpgi5l1uIz9/xh4qdpyD+Bjd/+sWtnBSLmIiEijCIVCtGrVigEDBkStAxg8eHBTh9Vgybib4+vu3g3AzO4Exsdodxfhv/S/5O4HIu1LgP3A94FlkbKdxP4xH+zuhyoXzGwe0Af4Wj0x6vCCiIg0qlAoRL9+/Wjbtm3UOsisBOGyRxDc/VKcTScD2yuTg8i6HwBvAFOqlQ1x9y4xHtWTg/uAacAt7l5RbT8fAf9iZq2rlV0TKRcRkVgefRS2bKlZtmVLuDyFFi1ahJnxl7/8hQkTJtChQwd69OjB008/DcBzzz1H3759+cIXvsCYMWN47733aqx/4MAB7rjjDnr16kW7du3o3bs399xzD8ePHw/sa+3atfTt25esrCwGDhzIyy+/zOjRoxk9enSdMbo7JSUlMROAUChEdnY2vXr1atiLkAJNOUmxP7A7Svke4PpENmRm9wK3AePc/UT1OncvA/4E/M9I23GERxCCB4XC9Xeb2Q4z21FWVpZIGCIizcuwYTBz5j+ThC1bwsvDhqU2rogZM2bw9a9/nQ0bNjB06FC++93vMn/+fB5//HEefvhhnn76afbu3cu3vvWtGut9/PHH5Obmsnz5cjZu3MjChQvZtGkTkyZNqtHutdde4/bbb6dv374UFRVx3333MWfOHPbt21dvbPv37+f06dP06dOHEydOBB6hUIhBgwYl9fVodO6etAdwJ+BAzyh154GHo5QvAS4ksI/cyD7eA0KRx45aba4D3gT2Req/HM+2hw4d6iIimeTdd99N7gY3b3bv0sX9gQfCz5s3J3f7cXj66acd8P3797u7+89//nMH/Nlnn61qc+zYMW/ZsqVfeeWVfvLkyaryX//61w74hx9+GHP7n332mW/bts0B37lzZ1X5TTfd5P379/dLly5VlRUXFzvgX/3qV+uM+be//a1HfptiPubMmZPoS3HZ6vt81P79rP5IxhyERHiUsoTmB7j74frWcff9wPBEtisiIsCYMXDPPbB4MTzwQHg5Tdxyyy1V/87JyeGqq65i8ODBdOrUqaq8b9++ABw6dIhrrrkGgPPnz7N06VJWr17NwYMHOXv2bFX7vXv3MnjwYC5evMiOHTuYN28e1c+KHzJkSFyHBXbt2gXAq6++SlZWVo26kpISZs+enfAIwp/+9CemTp3KX//616rl0aNH06dPH86dO0enTp14/vnnue666xLabryaMkE4DlwZpTwnUiciIqm2ZQs8/ng4OXj88XCCkCZJQk5OTo3lNm3aRC0DaiQB8+bNo7CwkIULFzJ8+HA6duzI4cOHufXWW6valZeX89lnn3HVVVcF9tutW7d6YwuFQvTq1YuJEycG6kpLS4HEJygWFxczdOjQGsvjx49nw4YNAHznO9/hoYceqpqLkWxNmSDsITwPobbrgXebMA4REYmmcs7Bf/3XPxOD6ssZ6oUXXqCgoIAFCxZUlZ0+fbpGmy5dutC6dWs++eSTwPpHjx6lR4+6z5QPhULcdNNNMevatm1Lv379qsoKCgooKSkB4MSJ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\n", + "image/png": "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zJgxtGjRgtKlS/Prr7/Ss2fPHC0rjI2NpUaNGnTo0CHda1u2bAGynwC4fv16mjZtmup5u3btWLJkCQC33XYb48aNY8aMGdlub07ZACAf2bZNO//jx3WbghT/rYWkULkLMaYgyWjjrLz+/7+GDRtSu3ZtANq0acOll17K0KFDueGGGyhZsiTlypUjIiKCe++99+ygIK2IiAjmzp3LgAEDGDVq1NnjR48ezXG7YmNjucrH3VNsbCxFixalfv36Z48NGDCAuLg4AA4dOsT+/fs5fPgwhVLsC+NtAHDJJZecfV69enV27tyZ4zbnhA0A8gnP1gSJibrW/9JLg92ijIXSXYgxBcmwYemPhcLgu2jRokycOJFu3boxdepUhg4dSsmSJWnZsiWbNm2iSZMmRPjYrez48eNEpinHntM76b1797Jnz54MVwA0aNAg1efNnj0b0CTGbt26M+gp9QAAGi1JREFUMW3atFSdP2iH371791TPhw8fDsCuXbt48803mTx5co7anFM2AMgHYmM12z8yUjvWFAPToMoo0x9C5y7EGBMaunbtSvPmzZk0aRL33XcfxYsX59lnn+Waa66hffv23H777Zx33nns37+fDRs2kJCQwDPPPEOHDh2YNWsWl1xyCbVr12bRokV8+eWXOWqDZ/7f2wAgMTGR7777jn79+qV7bcuWLfTu3Ztp06Zx9dVXp3rt1KlTfP/992cjAJ7nY8eOZfz48ZQuXZonn3ySbt265ajNOWUDgDC3di20awelS2vYPymaFhLSLudLe9efVijchRhjguvJJ5+kffv2vPLKK9x///00adKEtWvX8thjj/Gf//yHw4cPU7lyZZo0acLdd98NwJQpUxARRo4cCUCnTp2YM2cOl19+ebY/31Pkx1uS37Zt2zh+/Hi619avX8+AAQN4++23vb4vLi6OihUrct555519XqZMGTZv3pzt9vmVt6UBofAARgBbgUSgu5fXVwKbgFjgM6BRZtfMb8sAP/9cpHRpkRo1RH76Kdit8c6zvG/06NTL/owxWROoZYDGP1atWiUNGzaUrVu3+jzn5Zdfls6dO6d63qFDB7+1IT8uA1wJvAO87uP1niJyGMA51wOYCeSDygxZs2oVdO4M558PK1dC1arBbpF3lulvjMnPevXqRbFixeiTtGNZoUKFWLNmTaocgfXr19OkSZNUz5uH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\n", "text/plain": [ "
" ] @@ -285,10 +380,10 @@ ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", - "ax.loglog(FDsurvey.frequency, abs(Hz[:FDsurvey.n_frequency]), 'b-')\n", - "ax.loglog(FDsurvey.frequency, abs(HzCole[:FDsurvey.n_frequency]), 'bx')\n", - "ax.loglog(FDsurvey.frequency, abs(Hz[FDsurvey.n_frequency:]), 'r-')\n", - "ax.loglog(FDsurvey.frequency, abs(HzCole[FDsurvey.n_frequency:]), 'rx')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.real(HzCole)), 'b-')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.real(Hzanal)), 'bx')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.imag(HzCole)), 'r-')\n", + "ax.loglog(FDsurvey.frequency, np.abs(np.imag(Hzanal)), 'rx')\n", "legend(('Real $H_{z}$', 'Real $H_{z \\ IP}$', 'Imag $H_{z}$', 'Imag $H_{z \\ IP}$'))" ] }, diff --git a/simpegEM1D/EM1D.py b/simpegEM1D/EM1D.py index 17b7114..7cf28cb 100644 --- a/simpegEM1D/EM1D.py +++ b/simpegEM1D/EM1D.py @@ -1,6 +1,7 @@ -from SimPEG import maps, utils, simulation, props +from SimPEG import maps, utils, props +from SimPEG.simulation import BaseSimulation import numpy as np -from .Survey import BaseEM1DSurvey +from .survey import BaseEM1DSurvey from scipy.constants import mu_0 from .RTEfun_vec import rTEfunfwd, rTEfunjac from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline @@ -15,7 +16,7 @@ rte_fortran = None -class EM1D(simulation.BaseSimulation): +class EM1D(BaseSimulation): """ Pseudo analytic solutions for frequency and time domain EM problems assumingLayered earth (1D). @@ -60,7 +61,7 @@ class EM1D(simulation.BaseSimulation): ) def __init__(self, mesh, **kwargs): - simulation.BaseSimulation.__init__(self, mesh, **kwargs) + BaseSimulation.__init__(self, mesh, **kwargs) # Check input arguments. If self.hankel_filter is not a valid filter, # it will set it to the default (key_201_2009). diff --git a/simpegEM1D/EM1DSimulation.py b/simpegEM1D/EM1DSimulation.py index d82f1de..de51130 100644 --- a/simpegEM1D/EM1DSimulation.py +++ b/simpegEM1D/EM1DSimulation.py @@ -3,7 +3,7 @@ from SimPEG import maps, utils from .EM1DAnalytics import skin_depth, diffusion_distance from .EM1D import EM1D -from .Survey import EM1DSurveyFD, EM1DSurveyTD +from .survey import EM1DSurveyFD, EM1DSurveyTD def get_vertical_discretization_frequency( diff --git a/simpegEM1D/GlobalEM1D.py b/simpegEM1D/GlobalEM1D.py index 2ca0da8..747331f 100644 --- a/simpegEM1D/GlobalEM1D.py +++ b/simpegEM1D/GlobalEM1D.py @@ -9,8 +9,10 @@ import numpy as np import scipy.sparse as sp -from SimPEG import simulation, props, utils, maps, survey -from .Survey import EM1DSurveyFD, EM1DSurveyTD +from SimPEG import props, utils, maps, survey +from SimPEG.simulation import BaseSimulation +from SimPEG.survey import BaseSurvey +from .survey import EM1DSurveyFD, EM1DSurveyTD from .EM1DSimulation import run_simulation_FD, run_simulation_TD import properties import warnings @@ -20,7 +22,7 @@ def dot(args): return np.dot(args[0], args[1]) -class GlobalEM1DProblem(simulation.BaseSimulation): +class GlobalEM1DProblem(BaseSimulation): """ The GlobalProblem allows you to run a whole bunch of SubProblems, potentially in parallel, potentially of different meshes. @@ -647,7 +649,7 @@ def run_simulation(self, args): # return self._Jmatrix -class GlobalEM1DSurvey(survey.BaseSurvey, properties.HasProperties): +class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): # This assumes a multiple sounding locations rx_locations = properties.Array( diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index d2e3794..b7e19e5 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -1,4 +1,5 @@ -from SimPEG import maps, survey, utils +from SimPEG import maps, utils +from SimPEG.survey import BaseSurvey import numpy as np import scipy.sparse as sp from scipy.constants import mu_0 @@ -19,7 +20,7 @@ ) -class BaseEM1DSurvey(survey.BaseSurvey, properties.HasProperties): +class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): """ Base EM1D Survey @@ -60,7 +61,7 @@ class BaseEM1DSurvey(survey.BaseSurvey, properties.HasProperties): half_switch = properties.Bool("Switch for half-space", default=False) def __init__(self, **kwargs): - survey.BaseSurvey.__init__(self, **kwargs) + BaseSurvey.__init__(self, **kwargs) @property def h(self): @@ -118,17 +119,17 @@ def src_paths_on_x(self): return self._src_paths - @utils.requires('prob') - def dpred(self, m, f=None): - """ - Computes predicted data. - Here we do not store predicted data - because projection (`d = P(f)`) is cheap. - """ + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Here we do not store predicted data + # because projection (`d = P(f)`) is cheap. + # """ - if f is None: - f = self.prob.fields(m) - return utils.mkvc(self.projectFields(f)) + # if f is None: + # f = self.prob.fields(m) + # return utils.mkvc(self.projectFields(f)) class EM1DSurveyFD(BaseEM1DSurvey): @@ -165,54 +166,54 @@ def nD(self): ): return int(self.n_frequency) - @property - def hz_primary(self): - # Assumes HCP only at the moment - if self.src_type == 'VMD': - return -1./(4*np.pi*self.offset**3) - elif self.src_type == 'CircularLoop': - return self.I/(2*self.a) * np.ones_like(self.frequency) - else: - raise NotImplementedError() - - def projectFields(self, u): - """ - Decompose frequency domain EM responses as real and imaginary - components - """ - - ureal = (u.real).copy() - uimag = (u.imag).copy() - - if self.rx_type == 'Hz': - factor = 1. - elif self.rx_type == 'ppm': - factor = 1./self.hz_primary * 1e6 - - if self.switch_real_imag == 'all': - ureal = (u.real).copy() - uimag = (u.imag).copy() - if ureal.ndim == 1 or 0: - resp = np.r_[ureal*factor, uimag*factor] - elif ureal.ndim == 2: - if np.isscalar(factor): - resp = np.vstack( - (factor*ureal, factor*uimag) - ) - else: - resp = np.vstack( - (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - ) - else: - raise NotImplementedError() - elif self.switch_real_imag == 'real': - resp = (u.real).copy() - elif self.switch_real_imag == 'imag': - resp = (u.imag).copy() - else: - raise NotImplementedError() - - return resp + # @property + # def hz_primary(self): + # # Assumes HCP only at the moment + # if self.src_type == 'VMD': + # return -1./(4*np.pi*self.offset**3) + # elif self.src_type == 'CircularLoop': + # return self.I/(2*self.a) * np.ones_like(self.frequency) + # else: + # raise NotImplementedError() + + # def projectFields(self, u): + # """ + # Decompose frequency domain EM responses as real and imaginary + # components + # """ + + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + + # if self.rx_type == 'Hz': + # factor = 1. + # elif self.rx_type == 'ppm': + # factor = 1./self.hz_primary * 1e6 + + # if self.switch_real_imag == 'all': + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + # if ureal.ndim == 1 or 0: + # resp = np.r_[ureal*factor, uimag*factor] + # elif ureal.ndim == 2: + # if np.isscalar(factor): + # resp = np.vstack( + # (factor*ureal, factor*uimag) + # ) + # else: + # resp = np.vstack( + # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) + # ) + # else: + # raise NotImplementedError() + # elif self.switch_real_imag == 'real': + # resp = (u.real).copy() + # elif self.switch_real_imag == 'imag': + # resp = (u.imag).copy() + # else: + # raise NotImplementedError() + + # return resp class EM1DSurveyTD(BaseEM1DSurvey): @@ -416,132 +417,132 @@ def set_frequency(self, pts_per_dec=-1): self.frequency = frequency self.ftarg = ftarg - def projectFields(self, u): - """ - Transform frequency domain responses to time domain responses - """ - # Compute frequency domain reponses right at filter coefficient values - # Src waveform: Step-off - - if self.use_lowpass_filter: - factor = self.lowpass_filter.copy() - else: - factor = np.ones_like(self.frequency, dtype=complex) - - if self.rx_type == 'Bz': - factor *= 1./(2j*np.pi*self.frequency) - - if self.wave_type == 'stepoff': - # Compute EM responses - if u.size == self.n_frequency: - resp, _ = fourier_dlf( - u.flatten()*factor, self.time, - self.frequency, self.ftarg - ) - # Compute EM sensitivities - else: - resp = np.zeros( - (self.n_time, self.n_layer), dtype=np.float64, order='F') - # ) - # TODO: remove for loop - for i in range(self.n_layer): - resp_i, _ = fourier_dlf( - u[:, i]*factor, self.time, - self.frequency, self.ftarg - ) - resp[:, i] = resp_i - - # Evaluate piecewise linear input current waveforms - # Using Fittermann's approach (19XX) with Gaussian Quadrature - elif self.wave_type == 'general': - # Compute EM responses - if u.size == self.n_frequency: - resp_int, _ = fourier_dlf( - u.flatten()*factor, self.time_int, - self.frequency, self.ftarg - ) - # step_func = interp1d( - # self.time_int, resp_int - # ) - step_func = iuSpline( - np.log10(self.time_int), resp_int - ) - - resp = piecewise_pulse_fast( - step_func, self.time, - self.time_input_currents, self.input_currents, - self.period, n_pulse=self.n_pulse - ) - - # Compute response for the dual moment - if self.moment_type == "dual": - resp_dual_moment = piecewise_pulse_fast( - step_func, self.time_dual_moment, - self.time_input_currents_dual_moment, - self.input_currents_dual_moment, - self.period_dual_moment, - n_pulse=self.n_pulse - ) - # concatenate dual moment response - # so, ordering is the first moment data - # then the second moment data. - resp = np.r_[resp, resp_dual_moment] - - # Compute EM sensitivities - else: - if self.moment_type == "single": - resp = np.zeros( - (self.n_time, self.n_layer), - dtype=np.float64, order='F' - ) - else: - # For dual moment - resp = np.zeros( - (self.n_time+self.n_time_dual_moment, self.n_layer), - dtype=np.float64, order='F') - - # TODO: remove for loop (?) - for i in range(self.n_layer): - resp_int_i, _ = fourier_dlf( - u[:, i]*factor, self.time_int, - self.frequency, self.ftarg - ) - # step_func = interp1d( - # self.time_int, resp_int_i - # ) - - step_func = iuSpline( - np.log10(self.time_int), resp_int_i - ) - - resp_i = piecewise_pulse_fast( - step_func, self.time, - self.time_input_currents, self.input_currents, - self.period, n_pulse=self.n_pulse - ) - - if self.moment_type == "single": - resp[:, i] = resp_i - else: - resp_dual_moment_i = piecewise_pulse_fast( - step_func, - self.time_dual_moment, - self.time_input_currents_dual_moment, - self.input_currents_dual_moment, - self.period_dual_moment, - n_pulse=self.n_pulse - ) - resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - return resp * (-2.0/np.pi) * mu_0 - - @utils.requires('prob') - def dpred(self, m, f=None): - """ - Computes predicted data. - Predicted data (`_pred`) are computed and stored - when self.prob.fields(m) is called. - """ - if f is None: - f = self.prob.fields(m) - - return self._pred + # def projectFields(self, u): + # """ + # Transform frequency domain responses to time domain responses + # """ + # # Compute frequency domain reponses right at filter coefficient values + # # Src waveform: Step-off + + # if self.use_lowpass_filter: + # factor = self.lowpass_filter.copy() + # else: + # factor = np.ones_like(self.frequency, dtype=complex) + + # if self.rx_type == 'Bz': + # factor *= 1./(2j*np.pi*self.frequency) + + # if self.wave_type == 'stepoff': + # # Compute EM responses + # if u.size == self.n_frequency: + # resp, _ = fourier_dlf( + # u.flatten()*factor, self.time, + # self.frequency, self.ftarg + # ) + # # Compute EM sensitivities + # else: + # resp = np.zeros( + # (self.n_time, self.n_layer), dtype=np.float64, order='F') + # # ) + # # TODO: remove for loop + # for i in range(self.n_layer): + # resp_i, _ = fourier_dlf( + # u[:, i]*factor, self.time, + # self.frequency, self.ftarg + # ) + # resp[:, i] = resp_i + + # # Evaluate piecewise linear input current waveforms + # # Using Fittermann's approach (19XX) with Gaussian Quadrature + # elif self.wave_type == 'general': + # # Compute EM responses + # if u.size == self.n_frequency: + # resp_int, _ = fourier_dlf( + # u.flatten()*factor, self.time_int, + # self.frequency, self.ftarg + # ) + # # step_func = interp1d( + # # self.time_int, resp_int + # # ) + # step_func = iuSpline( + # np.log10(self.time_int), resp_int + # ) + + # resp = piecewise_pulse_fast( + # step_func, self.time, + # self.time_input_currents, self.input_currents, + # self.period, n_pulse=self.n_pulse + # ) + + # # Compute response for the dual moment + # if self.moment_type == "dual": + # resp_dual_moment = piecewise_pulse_fast( + # step_func, self.time_dual_moment, + # self.time_input_currents_dual_moment, + # self.input_currents_dual_moment, + # self.period_dual_moment, + # n_pulse=self.n_pulse + # ) + # # concatenate dual moment response + # # so, ordering is the first moment data + # # then the second moment data. + # resp = np.r_[resp, resp_dual_moment] + + # # Compute EM sensitivities + # else: + # if self.moment_type == "single": + # resp = np.zeros( + # (self.n_time, self.n_layer), + # dtype=np.float64, order='F' + # ) + # else: + # # For dual moment + # resp = np.zeros( + # (self.n_time+self.n_time_dual_moment, self.n_layer), + # dtype=np.float64, order='F') + + # # TODO: remove for loop (?) + # for i in range(self.n_layer): + # resp_int_i, _ = fourier_dlf( + # u[:, i]*factor, self.time_int, + # self.frequency, self.ftarg + # ) + # # step_func = interp1d( + # # self.time_int, resp_int_i + # # ) + + # step_func = iuSpline( + # np.log10(self.time_int), resp_int_i + # ) + + # resp_i = piecewise_pulse_fast( + # step_func, self.time, + # self.time_input_currents, self.input_currents, + # self.period, n_pulse=self.n_pulse + # ) + + # if self.moment_type == "single": + # resp[:, i] = resp_i + # else: + # resp_dual_moment_i = piecewise_pulse_fast( + # step_func, + # self.time_dual_moment, + # self.time_input_currents_dual_moment, + # self.input_currents_dual_moment, + # self.period_dual_moment, + # n_pulse=self.n_pulse + # ) + # resp[:, i] = np.r_[resp_i, resp_dual_moment_i] + # return resp * (-2.0/np.pi) * mu_0 + + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Predicted data (`_pred`) are computed and stored + # when self.prob.fields(m) is called. + # """ + # if f is None: + # f = self.prob.fields(m) + + # return self._pred diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index dbeac4f..3338ef9 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,5 +1,5 @@ from .EM1D import EM1D -from .Survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD +from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD from .DigFilter import * from .EM1DAnalytics import * from .RTEfun import rTEfunfwd, rTEfunjac diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py new file mode 100644 index 0000000..0469d17 --- /dev/null +++ b/simpegEM1D/simulation.py @@ -0,0 +1,836 @@ +from SimPEG import maps, utils, props +from SimPEG.simulation import BaseSimulation +import numpy as np +from .survey import BaseEM1DSurvey +from scipy.constants import mu_0 +from .RTEfun_vec import rTEfunfwd, rTEfunjac +from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline +import properties + +from empymod import filters +from empymod.transform import dlf, fourier_dlf, get_dlf_points +from empymod.utils import check_hankel + +try: + from simpegEM1D.m_rTE_Fortran import rte_fortran +except ImportError as e: + rte_fortran = None + + +class BaseEM1DSimulation(BaseSimulation): + """ + Pseudo analytic solutions for frequency and time domain EM problems + assumingLayered earth (1D). + """ + surveyPair = BaseEM1DSurvey + mapPair = maps.IdentityMap + chi = None + hankel_filter = 'key_101_2009' # Default: Hankel filter + hankel_pts_per_dec = None # Default: Standard DLF + verbose = False + fix_Jmatrix = False + _Jmatrix_sigma = None + _Jmatrix_height = None + _pred = None + + sigma, sigmaMap, sigmaDeriv = props.Invertible( + "Electrical conductivity at infinite frequency(S/m)" + ) + + rho, rhoMap, rhoDeriv = props.Invertible( + "Electrical resistivity (Ohm m)" + ) + + props.Reciprocal(sigma, rho) + + chi = props.PhysicalProperty( + "Magnetic susceptibility", + default=0. + ) + + eta, etaMap, etaDeriv = props.Invertible( + "Electrical chargeability (V/V), 0 <= eta < 1", + default=0. + ) + + tau, tauMap, tauDeriv = props.Invertible( + "Time constant (s)", + default=1. + ) + + c, cMap, cDeriv = props.Invertible( + "Frequency Dependency, 0 < c < 1", + default=0.5 + ) + + h, hMap, hDeriv = props.Invertible( + "Receiver Height (m), h > 0", + ) + + survey = properties.Instance( + "a survey object", BaseEM1DSurvey, required=True + ) + + def __init__(self, mesh, **kwargs): + BaseSimulation.__init__(self, mesh, **kwargs) + + # Check input arguments. If self.hankel_filter is not a valid filter, + # it will set it to the default (key_201_2009). + + ht, htarg = check_hankel( + 'dlf', + { + 'dlf': self.hankel_filter, + 'pts_per_dec': 0 + }, + 1 + ) + + self.fhtfilt = htarg['dlf'] # Store filter + self.hankel_pts_per_dec = htarg['pts_per_dec'] # Store pts_per_dec + if self.verbose: + print(">> Use "+self.hankel_filter+" filter for Hankel Transform") + + # if self.hankel_pts_per_dec != 0: + # raise NotImplementedError() + + def hz_kernel_vertical_magnetic_dipole( + self, lamda, f, n_layer, sig, chi, depth, h, z, + flag, I, output_type='response' + ): + + """ + Kernel for vertical magnetic component (Hz) due to + vertical magnetic diopole (VMD) source in (kx,ky) domain + + """ + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 + + n_frequency = self.survey.n_frequency + n_layer = self.survey.n_layer + n_filter = self.n_filter + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, self.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, self.survey.half_switch, drTE, + n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, + self.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, self.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel * I + + # Note + # Here only computes secondary field. + # I am not sure why it does not work if we add primary term. + # This term can be analytically evaluated, where h = 0. + # kernel = ( + # 1./(4*np.pi) * + # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 + # ) + + # TODO: make this to take a vector rather than a single frequency + def hz_kernel_circular_loop( + self, lamda, f, n_layer, sig, chi, depth, h, z, I, a, + flag, output_type='response' + ): + + """ + + Kernel for vertical magnetic component (Hz) at the center + due to circular loop source in (kx,ky) domain + + .. math:: + + H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + + \\r_{TE}e^{u_0|z-h|}] + \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda + + """ + + n_frequency = self.survey.n_frequency + n_layer = self.survey.n_layer + n_filter = self.n_filter + + w = 2*np.pi*f + u0 = lamda + radius = np.empty([n_frequency, n_filter], order='F') + radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) + + coefficient_wavenumber = I*radius*0.5*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.empty( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + drTE[:, :] = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, + self.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, self.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE[:, :] = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, self.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, self.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + if flag == 'secondary': + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + kernel = rTE * ( + np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) + ) * coefficient_wavenumber + + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + + def hz_kernel_horizontal_electric_dipole( + self, lamda, f, n_layer, sig, chi, depth, h, z, + flag, output_type='response' + ): + + """ + Kernel for vertical magnetic field (Hz) due to + horizontal electric diopole (HED) source in (kx,ky) domain + + """ + n_frequency = self.survey.n_frequency + n_layer = self.survey.n_layer + n_filter = self.n_filter + + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], dtype=np.complex128, + order='F' + ) + if rte_fortran is None: + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, self.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, self.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, + self.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, self.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + + # make it as a property? + + def sigma_cole(self): + """ + Computes Pelton's Cole-Cole conductivity model + in frequency domain. + + Parameter + --------- + + n_filter: int + the number of filter values + f: ndarray + frequency (Hz) + + Return + ------ + + sigma_complex: ndarray (n_layer x n_frequency x n_filter) + Cole-Cole conductivity values at given frequencies + + """ + n_layer = self.survey.n_layer + n_frequency = self.survey.n_frequency + n_filter = self.n_filter + f = self.survey.frequency + + sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) + if np.isscalar(self.eta): + eta = self.eta + tau = self.tau + c = self.c + else: + eta = np.tile(self.eta.reshape([-1, 1]), (1, n_frequency)) + tau = np.tile(self.tau.reshape([-1, 1]), (1, n_frequency)) + c = np.tile(self.c.reshape([-1, 1]), (1, n_frequency)) + + w = np.tile( + 2*np.pi*f, + (n_layer, 1) + ) + + sigma_complex = np.empty( + [n_layer, n_frequency], dtype=np.complex128, order='F' + ) + sigma_complex[:, :] = ( + sigma - + sigma*eta/(1+(1-eta)*(1j*w*tau)**c) + ) + + sigma_complex_tensor = np.empty( + [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' + ) + sigma_complex_tensor[:, :, :] = np.tile(sigma_complex.reshape( + (n_layer, n_frequency, 1)), (1, 1, n_filter) + ) + + return sigma_complex_tensor + + @property + def n_filter(self): + """ Length of filter """ + return self.fhtfilt.base.size + + def forward(self, m, output_type='response'): + """ + Return Bz or dBzdt + """ + + self.model = m + + n_frequency = self.survey.n_frequency + flag = self.survey.field_type + n_layer = self.survey.n_layer + depth = self.survey.depth + I = self.survey.I + n_filter = self.n_filter + + # Get lambd and offset, will depend on pts_per_dec + if self.survey.src_type == "VMD": + r = self.survey.offset + else: + # a is the radius of the loop + r = self.survey.a * np.ones(n_frequency) + + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([self.survey.frequency.size, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, r, self.hankel_pts_per_dec + ) + + # TODO: potentially store + f = np.empty([self.survey.frequency.size, n_filter], order='F') + f[:, :] = np.tile( + self.survey.frequency.reshape([-1, 1]), (1, n_filter) + ) + # h is an inversion parameter + if self.hMap is not None: + h = self.h + else: + h = self.survey.h + + z = h + self.survey.dz + + chi = self.chi + + if np.isscalar(self.chi): + chi = np.ones_like(self.sigma) * self.chi + + # TODO: potentially store + sig = self.sigma_cole() + + if output_type == 'response': + # for simulation + if self.survey.src_type == 'VMD': + hz = self.hz_kernel_vertical_magnetic_dipole( + lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) + + # kernels for each bessel function + # (j0, j1, j2) + PJ = (hz, None, None) # PJ0 + + elif self.survey.src_type == 'CircularLoop': + hz = self.hz_kernel_circular_loop( + lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 + + # TODO: This has not implemented yet! + elif self.survey.src_type == "piecewise_line": + # Need to compute y + hz = self.hz_kernel_horizontal_electric_dipole( + lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 + + else: + raise Exception("Src options are only VMD or CircularLoop!!") + + elif output_type == 'sensitivity_sigma': + + # for simulation + if self.survey.src_type == 'VMD': + hz = self.hz_kernel_vertical_magnetic_dipole( + lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) + + PJ = (hz, None, None) # PJ0 + + elif self.survey.src_type == 'CircularLoop': + + hz = self.hz_kernel_circular_loop( + lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + + PJ = (None, hz, None) # PJ1 + + else: + raise Exception("Src options are only VMD or CircularLoop!!") + + r = np.tile(r, (n_layer, 1)) + + elif output_type == 'sensitivity_height': + + # for simulation + if self.survey.src_type == 'VMD': + hz = self.hz_kernel_vertical_magnetic_dipole( + lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) + + PJ = (hz, None, None) # PJ0 + + elif self.survey.src_type == 'CircularLoop': + + hz = self.hz_kernel_circular_loop( + lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + + PJ = (None, hz, None) # PJ1 + + else: + raise Exception("Src options are only VMD or CircularLoop!!") + + # Carry out Hankel DLF + # ab=66 => 33 (vertical magnetic src and rec) + # For response + # HzFHT size = (n_frequency,) + # For sensitivity + # HzFHT size = (n_layer, n_frequency) + + HzFHT = dlf(PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, + ang_fact=None, ab=33) + + if output_type == "sensitivity_sigma": + return HzFHT.T + + return HzFHT + + # @profile + def fields(self, m): + f = self.forward(m, output_type='response') + # self.survey._pred = utils.mkvc(self.survey.projectFields(f)) + return f + + def getJ_height(self, m, f=None): + """ + + """ + if self.hMap is None: + return utils.Zero() + + if self._Jmatrix_height is not None: + return self._Jmatrix_height + else: + + if self.verbose: + print(">> Compute J height ") + + dudz = self.forward(m, output_type="sensitivity_height") + + self._Jmatrix_height = ( + self.survey.projectFields(dudz) + ).reshape([-1, 1]) + + return self._Jmatrix_height + + # @profile + def getJ_sigma(self, m, f=None): + + if self.sigmaMap is None: + return utils.Zero() + + if self._Jmatrix_sigma is not None: + return self._Jmatrix_sigma + else: + + if self.verbose: + print(">> Compute J sigma") + + dudsig = self.forward(m, output_type="sensitivity_sigma") + + self._Jmatrix_sigma = self.survey.projectFields(dudsig) + if self._Jmatrix_sigma.ndim == 1: + self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) + return self._Jmatrix_sigma + + def getJ(self, m, f=None): + return ( + self.getJ_sigma(m, f=f) * self.sigmaDeriv + + self.getJ_height(m, f=f) * self.hDeriv + ) + + def Jvec(self, m, v, f=None): + """ + Computing Jacobian^T multiplied by vector. + """ + + J_sigma = self.getJ_sigma(m, f=f) + J_height = self.getJ_height(m, f=f) + Jv = np.dot(J_sigma, self.sigmaMap.deriv(m, v)) + if self.hMap is not None: + Jv += np.dot(J_height, self.hMap.deriv(m, v)) + return Jv + + def Jtvec(self, m, v, f=None): + """ + Computing Jacobian^T multiplied by vector. + """ + + J_sigma = self.getJ_sigma(m, f=f) + J_height = self.getJ_height(m, f=f) + Jtv = self.sigmaDeriv.T*np.dot(J_sigma.T, v) + if self.hMap is not None: + Jtv += self.hDeriv.T*np.dot(J_height.T, v) + return Jtv + + @property + def deleteTheseOnModelUpdate(self): + toDelete = [] + if self.fix_Jmatrix is False: + if self._Jmatrix_sigma is not None: + toDelete += ['_Jmatrix_sigma'] + if self._Jmatrix_height is not None: + toDelete += ['_Jmatrix_height'] + return toDelete + + def depth_of_investigation_christiansen_2012(self, std, thres_hold=0.8): + pred = self.survey._pred.copy() + delta_d = std * np.log(abs(self.survey.dobs)) + J = self.getJ(self.model) + J_sum = abs(utils.sdiag(1/delta_d/pred) * J).sum(axis=0) + S = np.cumsum(J_sum[::-1])[::-1] + active = S-thres_hold > 0. + doi = abs(self.survey.depth[active]).max() + return doi, active + + def get_threshold(self, uncert): + _, active = self.depth_of_investigation(uncert) + JtJdiag = self.get_JtJdiag(uncert) + delta = JtJdiag[active].min() + return delta + + def get_JtJdiag(self, uncert): + J = self.getJ(self.model) + JtJdiag = (np.power((utils.sdiag(1./uncert)*J), 2)).sum(axis=0) + return JtJdiag + + + def dpred(self, m, f=None): + """ + Computes predicted data. + Here we do not store predicted data + because projection (`d = P(f)`) is cheap. + """ + + if f is None: + f = self.fields(m) + return utils.mkvc(self.projectFields(f)) + + + +class EM1DFMSimulation(BaseEM1DSimulation): + + def __init__(self, mesh, **kwargs): + BaseEM1DSimulation.__init__(self, mesh, **kwargs) + + + @property + def hz_primary(self): + # Assumes HCP only at the moment + if self.survey.src_type == 'VMD': + return -1./(4*np.pi*self.survey.offset**3) + elif self.survey.src_type == 'CircularLoop': + return self.I/(2*self.survey.a) * np.ones_like(self.survey.frequency) + else: + raise NotImplementedError() + + + def projectFields(self, u): + """ + Decompose frequency domain EM responses as real and imaginary + components + """ + + ureal = (u.real).copy() + uimag = (u.imag).copy() + + if self.survey.rx_type == 'Hz': + factor = 1. + elif self.survey.rx_type == 'ppm': + factor = 1./self.hz_primary * 1e6 + + if self.survey.switch_real_imag == 'all': + ureal = (u.real).copy() + uimag = (u.imag).copy() + if ureal.ndim == 1 or 0: + resp = np.r_[ureal*factor, uimag*factor] + elif ureal.ndim == 2: + if np.isscalar(factor): + resp = np.vstack( + (factor*ureal, factor*uimag) + ) + else: + resp = np.vstack( + (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) + ) + else: + raise NotImplementedError() + elif self.survey.switch_real_imag == 'real': + resp = (u.real).copy() + elif self.survey.switch_real_imag == 'imag': + resp = (u.imag).copy() + else: + raise NotImplementedError() + + return resp + + + + + + +class EM1DTMSimulation(BaseEM1DSimulation): + + + + + + def __init__(self, mesh, **kwargs): + BaseEM1DSimulation.__init__(self, mesh, **kwargs) + + + def projectFields(self, u): + """ + Transform frequency domain responses to time domain responses + """ + # Compute frequency domain reponses right at filter coefficient values + # Src waveform: Step-off + + if self.survey.use_lowpass_filter: + factor = self.survey.lowpass_filter.copy() + else: + factor = np.ones_like(self.survey.frequency, dtype=complex) + + if self.survey.rx_type == 'Bz': + factor *= 1./(2j*np.pi*self.survey.frequency) + + if self.survey.wave_type == 'stepoff': + # Compute EM responses + if u.size == self.survey.n_frequency: + resp, _ = fourier_dlf( + u.flatten()*factor, self.survey.time, + self.survey.frequency, self.survey.ftarg + ) + # Compute EM sensitivities + else: + resp = np.zeros( + (self.survey.n_time, self.survey.n_layer), dtype=np.float64, order='F') + # ) + # TODO: remove for loop + for i in range(self.survey.n_layer): + resp_i, _ = fourier_dlf( + u[:, i]*factor, self.survey.time, + self.survey.frequency, self.survey.ftarg + ) + resp[:, i] = resp_i + + # Evaluate piecewise linear input current waveforms + # Using Fittermann's approach (19XX) with Gaussian Quadrature + elif self.survey.wave_type == 'general': + # Compute EM responses + if u.size == self.survey.n_frequency: + resp_int, _ = fourier_dlf( + u.flatten()*factor, self.survey.time_int, + self.survey.frequency, self.survey.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int + # ) + step_func = iuSpline( + np.log10(self.survey.time_int), resp_int + ) + + resp = piecewise_pulse_fast( + step_func, self.survey.time, + self.survey.time_input_currents, + self.survey.input_currents, + self.survey.period, + n_pulse=self.survey.n_pulse + ) + + # Compute response for the dual moment + if self.survey.moment_type == "dual": + resp_dual_moment = piecewise_pulse_fast( + step_func, self.survey.time_dual_moment, + self.survey.time_input_currents_dual_moment, + self.survey.input_currents_dual_moment, + self.survey.period_dual_moment, + n_pulse=self.survey.n_pulse + ) + # concatenate dual moment response + # so, ordering is the first moment data + # then the second moment data. + resp = np.r_[resp, resp_dual_moment] + + # Compute EM sensitivities + else: + if self.survey.moment_type == "single": + resp = np.zeros( + (self.survey.n_time, self.survey.n_layer), + dtype=np.float64, order='F' + ) + else: + # For dual moment + resp = np.zeros( + (self.survey.n_time+self.survey.n_time_dual_moment, self.survey.n_layer), + dtype=np.float64, order='F') + + # TODO: remove for loop (?) + for i in range(self.survey.n_layer): + resp_int_i, _ = fourier_dlf( + u[:, i]*factor, self.survey.time_int, + self.survey.frequency, self.survey.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int_i + # ) + + step_func = iuSpline( + np.log10(self.survey.time_int), resp_int_i + ) + + resp_i = piecewise_pulse_fast( + step_func, self.survey.time, + self.survey.time_input_currents, self.survey.input_currents, + self.survey.period, n_pulse=self.survey.n_pulse + ) + + if self.survey.moment_type == "single": + resp[:, i] = resp_i + else: + resp_dual_moment_i = piecewise_pulse_fast( + step_func, + self.survey.time_dual_moment, + self.survey.time_input_currents_dual_moment, + self.survey.input_currents_dual_moment, + self.survey.period_dual_moment, + n_pulse=self.survey.n_pulse + ) + resp[:, i] = np.r_[resp_i, resp_dual_moment_i] + return resp * (-2.0/np.pi) * mu_0 + + + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Predicted data (`_pred`) are computed and stored + # when self.prob.fields(m) is called. + # """ + # if f is None: + # f = self.fields(m) + + # return f + + + + +if __name__ == '__main__': + main() From d8f36884a5581a5be0e14316312c934208ad03e0 Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 6 May 2020 16:49:01 -0700 Subject: [PATCH 03/54] basic inversion possible --- .../EM1D_inversion_FD_height_correction.ipynb | 116 ++++++----- .../examples/EM1D_inversion_TD_layers.ipynb | 185 ++++++++---------- simpegEM1D/__init__.py | 2 +- simpegEM1D/simulation.py | 4 +- 4 files changed, 138 insertions(+), 169 deletions(-) diff --git a/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb b/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb index 57872bd..8b9db1d 100644 --- a/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb +++ b/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb @@ -16,7 +16,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/sgkang/anaconda3/lib/python3.6/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi', 'erf']\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] @@ -24,6 +24,7 @@ ], "source": [ "from SimPEG import *\n", + "from discretize import TensorMesh\n", "from simpegEM1D import *\n", "from scipy.constants import mu_0\n", "import numpy as np\n", @@ -51,8 +52,8 @@ ")\n", "\n", "chi_half = 0.\n", - "wires = Maps.Wires(('sigma', mesh1D.nC),('h', 1))\n", - "expmap = Maps.ExpMap(mesh1D)\n", + "wires = maps.Wires(('sigma', mesh1D.nC),('h', 1))\n", + "expmap = maps.ExpMap(mesh1D)\n", "# expmap_h = Maps.ExpMap(nP=1)\n", "sigmaMap = expmap * wires.sigma\n", "# hMap = expmap_h*wires.h\n", @@ -74,7 +75,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 2, @@ -83,7 +84,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVYAAAHsCAYAAACJ/oWQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHVpJREFUeJzt3X+8ZXVd7/HXWyYR9ZFIRALDBOqAgdaAp7n0U1AU5HYdf2SNWKaVJw3TsvvwEWFm1ztZpqU+zB+jkXkFuVQqBBQ51WhipJNOBAg6isYMakPeyJ8g8Ll/rHVie9xzzj5zvufsfc68no/Hepy9vuu71/6cM3ve53u+a+21UlVIktq5z7gLkKTVxmCVpMYMVklqzGCVpMYMVklqzGCVpMZWTLAmOSvJTUl2Jfm1cdcjSfuSlXAea5KDgE8Ajwd2Ax8BnlFVN4y1MEkaYqWMWDcCu6rq01V1J3AxsGnMNUnSUCslWI8GbhlY3923SdLEWTPuAlpJMg1MAzzgAQ949CMe8YgxV9TOTTfdBMAJJ5ww5kqkA9s//dM/3VZV3zlfv5USrHuAYwbW1/Zt/6WqtgJbAaampmrHjh3LV90SO+200wDYvn37WOuQDnRJPjtKv5UyFfARYH2S45LcF9gMXDbmmiRpqBUxYq2qu5K8ALgKOAi4oKquH3NZkjTUighWgKq6Erhy3HVI0nxWylSAJK0YBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjBqskNWawSlJjExGsSZ6e5Pok9ySZmrXtvCS7ktyU5Mxx1ShJo1oz7gJ61wFPBd4y2JjkRGAzcBJwFLAtyfFVdffylyhJo5mIEWtVfbyqbhqyaRNwcVXdUVU3A7uAjctbnSQtzEQE6xyOBm4ZWN/dt0nSxFq2qYAk24CHDNl0flVd2mD/08A0wLp16xa7O0nab8sWrFV1xn48bQ9wzMD62r5t2P63AlsBpqamaj9eS5KamPSpgMuAzUkOTnIcsB748JhrkqQ5TUSwJnlKkt3ADwBXJLkKoKquBy4BbgD+CjjXMwIkTbqJON2qqt4DvGcf27YAW5a3IknafxMxYpWk1cRglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJamwigjXJ7yW5Mcm1Sd6T5NCBbecl2ZXkpiRnjrNOSRrFRAQr8D7gkVX1vcAngPMAkpwIbAZOAs4C3pjkoLFVKUkjmIhgraq/rqq7+tVrgLX9403AxVV1R1XdDOwCNo6jRkka1UQE6yw/C/xl//ho4JaBbbv7NkmaWGuW64WSbAMeMmTT+VV1ad/nfOAu4ML92P80MA2wbt26RVQqSYuzbMFaVWfMtT3Js4EfAx5XVdU37wGOGei2tm8btv+twFaAqampGtZHkpbDREwFJDkLeAnwpKr66sCmy4DNSQ5OchywHvjwOGqUpFEt24h1Hm8ADgbelwTgmqp6XlVdn+QS4Aa6KYJzq+ruMdYpSfOaiGCtqofPsW0LsGUZy5lIO3fu5LTTTht3GdKCnHPOOUxPT4+7jGU3EcGquZ1zzjnjLkFasJ07dwIYrJpM09PTB+SbUyvbgfwX1kQcvJKk1cRglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJasxglaTGDFZJamwigjXJK5Jcm2Rnkr9OclTfniSvT7Kr337KuGuVpPlMRLACv1dV31tVG4DLgZf17U8E1vfLNPCmMdUnSSObiGCtqv8cWH0AUP3jTcA7qnMNcGiSI5e9QElagDXjLmBGki3A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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -105,19 +106,15 @@ "metadata": {}, "outputs": [], "source": [ - "prob = EM1D(\n", - " mesh1D, sigmaMap=sigmaMap, hMap=wires.h,\n", + "sim = EM1DFMSimulation(\n", + " mesh1D, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h,\n", " chi= np.zeros(FDsurvey.n_layer)\n", ")\n", - "if prob.ispaired:\n", - " prob.unpair()\n", - "if FDsurvey.ispaired:\n", - " FDsurvey.unpair()\n", - "prob.pair(FDsurvey) \n", - "d_true = FDsurvey.dpred(m_true)\n", + " \n", + "d_true = sim.dpred(m_true)\n", "# d_p = FDsurvey.dpred(m_dx_p)\n", "# d_n = FDsurvey.dpred(m_dx_n)\n", - "d_dh = FDsurvey.dpred(m_true_dh)\n", + "d_dh = sim.dpred(m_true_dh)\n", "# J_h_diff = (d_p-d_n) / (dh)\n", "# plt.plot(J_h_diff, 'k')\n", "# plt.plot(prob.getJ_height(m_true), 'bx')" @@ -130,7 +127,7 @@ "outputs": [ { "data": { - "image/png": "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GTz00ENs2rSJO++8k6effpoaNWr4XZpI2NEWnEgJ+fbbb7nxxhu59dZbqV69OkuWLGH8+PEKN5FiooATKWb79u1j8ODBXHrppaSlpfH888+TkZHBNddc43dpImFNXZQixei9997jgQceYN26dXTv3p1//OMf1KpVK/8HisgJ0xacSDFYv349HTt2pH379px88skEAgEmT56scBMpQQo4kSJ04MABRowYQcOGDZk/fz6jRo1ixYoVOo2NiA/URSlSRObOncuAAQP45ptvuPXWW3n22WepU6dO/g8UkWKhLTiRE7Rp0ybi4+Np3bo1zjk+/PBDpk+frnAT8ZkCTuQ4HTp0iH/+8580aNCAWbNmMXz4cD777DPatGnjd2kigrooRY7LwoUL6d+/P1988QU333wzL7zwAnXr1vW7LBHJQ1twIoXwww8/0LNnT6Kjo/nll1+YOXMms2bNUriJhCAFnEgBZGZm8uKLL1K/fn2Sk5MZNGgQX3zxBe3bt/e7NBE5CnVRiuTj448/JiEhgRUrVnDDDTfw0ksv8ac//cnvskQkH9qCEzmKHTt2cNddd9GsWTO2b99OcnIyc+bMUbiJlBIKOJHfyM7O5pVXXqF+/fpMnDiRRx99lNWrV3PbbbdhZn6XJyIFpC5KkTyWL19Ov379WLZsGS1atODll1/mkksu8bssETkO2oITAXbv3s2AAQOIiopiw4YNTJo0idTUVIWbSCmmgJMyzTnH66+/Tv369UlKSmLAgAF89dVX9OjRI+S7I0eNGkUgEDiiLRAIMGrUKJ8qEgktCjgpsz777DOuv/56evfuTb169cjIyOCFF16gatWqfpdWIFFRUcTHxx8OuUAgQHx8PFFRUT5XJhIaFHBS5vz888888sgjNG3alC+//JJXX32VJUuW0LRpU79LK5SYmBiSk5OJj49n8ODBxMfHk5ycTExMjN+liYQEBZyUGc45pk2bRoMGDXjuuefo27cvX3/9NX379qVcudL5rxATE0NCQgLDhw8nISFB4SaSR+n8rxYppK+//prWrVvTpUsXatasSVpaGmPHjqV69ep+l3ZCAoEASUlJJCYmkpSU9Lt9ciJlmQJOwtqvv/7KwIEDueyyy0hPT2fMmDEsW7aMq666yu/STljOPrfk5GSGDRt2uLtSISfiyTfgzOw1M9tmZp/naTvDzOaa2bfBn9WC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\n", + "image/png": "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ZO0LL1h7993Wlinj/HtdfbW1Awda+/HH1paSTbZY5BRquZ6n5iadpyarV69m8ODBbNy4kfbt2/Paa69x4403ul1WkTp1ChYtgunT4fPPnW7F4GB49FF44AG49FK3K5TcHDgAixc7/45LlsDx486/W2godOkC998PtWq5XWXJldN5ago18Un79+/nueeeY8aMGdSpU4d//etfhIWF+fw1zi7GN984x8lmzYJff4VrroH+/Z2bn+e4Xzt1yhmdumiRc9u1y2m//XYn4Dp3hltuyTx2J7lTqEmJkZaWxrRp0xgxYgTHjx/nr3/9K1FRUVSqVMnt0orEkSPOoI/p0yE5GcqVg65dnb2ytm2dEXbiP6yFjRszAy5joM9112UONLn3Xihlg3jzTaEmJUJSUhKDBw8mOTmZkJAQpkyZwk033eR2WYUuPR1WrHD2yt5/H06ehMaNYcAAiIiAmjXdrlCKy9698MknTsAtXQonTjinB7Rv7wRcx45Qo4bbVfoehZr4tEOHDjFixAimTZtGrVq1mDx5Mj169PC7rsbdu2HmTPj3v2HbNqhcGXr1cvbKAgPV/VTanTgBy5Zl7sXt3euce3jXXZl7cQ0bajsBhZr4qPT0dGbMmMFzzz3H4cOH+fOf/8zYsWOpXLmy26UVmlOnYOFCZ69syRKn+ykkxAmy7t016EOyl54OX3/thNvChbB+vdN+442ZAXfPPU53dWmkUBOfs2HDBgYPHsyaNWu4++67eeONN2jSpInbZRWajRudIJs92xn0Ubt25qCPG25wuzopaXbvho8/dgJu+XI4fRqqVoUOHZzBJu3bO49LC4Wa+IyjR48yevRoXnvtNapXr050dDR9+/alTJmSf2m/I0fgvfecMMsY9NGtm7NXdt99GvQhheP4cef426JFTtAdOABly0LLls4eXJcu/v+Hk0JNXGetZc6cOQwbNox9+/YxaNAgJk6cSLVqJfsKROnpznDtt9+GDz5wBn3cckvmoA8d5JeilJbmjKBcuNAJuU2bnPabbsoMuDvv9L8/qBRq4orExEQSEhK47rrrePPNN0lISCAwMJA33niDoKAgt8u7KLt3w4wZzqCP7duhSpXMQR+33aaD+eKObdsyuylXrHDmAq1RwxlF2aWLc5rI5Ze7XeXFU6hJsUtMTKR169acOnUKay2XX345//jHP3jssccIKKF/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\n", "text/plain": [ "
" ] @@ -156,7 +153,7 @@ "metadata": {}, "outputs": [], "source": [ - "from SimPEG import Regularization" + "from SimPEG import regularization, data" ] }, { @@ -170,74 +167,75 @@ "name": "stdout", "output_type": "stream", "text": [ - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", "model has any nan: 0\n", "=============================== Projected GNCG ===============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 3.28e-01 4.36e+02 0.00e+00 4.36e+02 4.01e+01 0 \n", - " 1 3.28e-01 2.49e+02 1.22e+01 2.53e+02 2.75e+01 2 \n", - " 2 1.64e-01 1.77e+02 5.59e+01 1.86e+02 7.53e+01 1 Skip BFGS \n", - " 3 1.64e-01 1.56e+02 1.20e+02 1.76e+02 1.07e+02 0 \n", - " 4 8.21e-02 4.19e+01 1.06e+02 5.07e+01 3.71e+01 0 \n", - " 5 8.21e-02 1.13e+01 1.12e+02 2.05e+01 1.21e+01 0 \n", + " 0 3.56e+00 4.42e+02 0.00e+00 4.42e+02 3.90e+01 0 \n", + " 1 3.56e+00 2.92e+02 3.98e+00 3.06e+02 2.15e+01 1 \n", + " 2 1.78e+00 2.44e+02 1.42e+01 2.69e+02 3.15e+01 0 Skip BFGS \n", + " 3 1.78e+00 1.02e+02 4.81e+01 1.87e+02 2.17e+01 0 \n", + " 4 8.89e-01 6.26e+01 6.18e+01 1.18e+02 1.66e+01 0 \n", + " 5 8.89e-01 1.43e+01 8.60e+01 9.08e+01 8.66e+00 0 \n", + " 6 4.44e-01 1.09e+01 8.70e+01 4.96e+01 8.91e+00 0 \n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 4.3743e+01\n", - "1 : |xc-x_last| = 2.2077e+00 <= tolX*(1+|x0|) = 4.7106e+00\n", - "0 : |proj(x-g)-x| = 1.2056e+01 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 1.2056e+01 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 6\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 4.4342e+01\n", + "1 : |xc-x_last| = 1.1550e+00 <= tolX*(1+|x0|) = 4.7106e+00\n", + "0 : |proj(x-g)-x| = 8.9111e+00 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 8.9111e+00 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 7\n", "------------------------- DONE! -------------------------\n" ] } ], "source": [ - "FDsurvey.dtrue = d_true\n", "std = 0.07\n", "floor = 0.\n", "np.random.seed(1)\n", - "uncert = std*abs(FDsurvey.dtrue)+floor\n", - "noise = std*FDsurvey.dtrue*np.random.randn(FDsurvey.dtrue.size)\n", - "FDsurvey.dobs = FDsurvey.dtrue+noise\n", - "dmisfit = DataMisfit.l2_DataMisfit(FDsurvey)\n", - "dmisfit.W = 1./(abs(FDsurvey.dobs)*std+floor)\n", + "uncert = std*abs(d_true)+floor\n", + "noise = std*np.abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise\n", + "dataObj = data.Data(FDsurvey, dobs=d_obs, noise_floor=uncert)\n", + "\n", + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", + "dmisfit.W = utils.sdiag(1/uncert)\n", "m0 = np.r_[np.log(np.ones_like(sig)*sig_half), 45.]\n", - "reg_sigma = Regularization.Sparse(\n", + "reg_sigma = regularization.Sparse(\n", " mesh1D, mapping=wires.sigma, cell_weights=mesh1D.vol,\n", " alpha_s = 0.01\n", ")\n", "p=0.\n", "qx, qz = 1., 1.\n", "reg_sigma.norms = np.c_[p, qx, qz, 0.]\n", - "IRLS = Directives.Update_IRLS(\n", - " maxIRLSiter=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, \n", - " betaSearch=False,\n", + "IRLS = directives.Update_IRLS(\n", + " max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, \n", + " beta_tol=1e-2,\n", " chifact_start = 1.\n", ")\n", - "mesh_h = Mesh.TensorMesh([1])\n", - "reg_h = Regularization.Sparse(\n", + "mesh_h = TensorMesh([1])\n", + "reg_h = regularization.Sparse(\n", " mesh_h, mapping=wires.h, \n", " alpha_s = 1.\n", ")\n", "reg = reg_sigma + reg_h\n", - "opt = Optimization.ProjectedGNCG(maxIter = 40)\n", + "opt = optimization.ProjectedGNCG(maxIter = 40)\n", "opt.maxIterLS = 5\n", - "invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", - "beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=2)\n", - "betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", - "target = Directives.TargetMisfit()\n", - "update_sense = Directives.UpdateSensitivityWeights()\n", - "inv = Inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2, coolingRate=2)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", + "target = directives.TargetMisfit()\n", + "update_sense = directives.UpdateSensitivityWeights()\n", + "inv = inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS])\n", "\n", - "prob.counter = opt.counter = Utils.Counter()\n", + "# prob.counter = opt.counter = utils.Counter()\n", "opt.LSshorten = 0.5\n", "opt.remember('xc')\n", "mopt = inv.run(m0)" @@ -253,7 +251,7 @@ "output_type": "stream", "text": [ "[45.]\n", - "[30.86179626]\n", + "[31.38778403]\n", "30.0\n" ] } @@ -280,7 +278,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/sgkang/anaconda3/lib/python3.6/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['inv', 'floor', 'beta', 'std', 'axes']\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['floor', 'inv', 'beta', 'std', 'axes']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] @@ -288,7 +286,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 8, @@ -297,7 +295,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVYAAAHsCAYAAACJ/oWQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3X2YXWV97//3N88JCQQGYhJIDCqxQDmNZqRibY2FYuQHolItxNOe2J6mevTYntLLq5TWMx5/1B5rWuLFAZ0WG/rDhKZNRYhSKPQMtoLFCR2IoImowSSTh8lgwoQk85Dcvz/WHmYTJjM7mXtm75m8X9e1r9l73Wvu/V2z9nxmzXq6I6WEJCmfcdUuQJLGGoNVkjIzWCUpM4NVkjIzWCUpM4NVkjIbNcEaEUsjYnNEPBcRf1jteiTpeGI0nMcaEeOBLcCvANuB7wA3pJSerWphktSP0bLFeinwXErpRymlLuAe4Noq1yRJ/RotwXousK3s9fbSNEmqOROqXUAuEbECWAEwZcqMxWeeuZAzz4SODujpgXPOgbY2mDoVxo+HAwfgrLNg/344ehTq6mDvXjjttKK/l16Cs8+G9nYYNw7OOANeeAGmT4cjR+DQob4+J0yAGTPgpz8tvnZ3w+HDfe0TJxb97tsHp58OnZ3Fo7d98uTi8eKLMHNm8d7d3X3tU6YUfXR0kGWZNm/eCyQuuOCcUbdMs/dvprsbDs1/45hfTy5T7S3Tpk0b96aUzhksj0ZLsO4A5pW9Pq807WUppUagEaC+vj41NzePXHWjzJIlSwBoamqqah0npVQ7o7F2jXoR8Xwl842WXQHfAS6IiPMjYhJwPXBflWuSpH6Nii3WlFJPRHwceBAYD3w5pfRMlcuSpH6NimAFSCl9A/hGteuQpMGMmmDVCWpshDVr+m26taWleNK7v3I0aWmBRYuqXYU0oPENDQ3VriG7lSsbG9rbV1BXB+vWwQMPwMKFsHJlcVRy2za4+26YMwfuuqs4DjJvHtx6a3GEcMsWWLsWFiyA22+HJ54ojgjedltx9PGpp4p+e/vctAmmTYM77ije/7HHYP36vvbNmyGiyLpJk+CRR+Dee/vat26FgwfhzjuLo6D33w8bNvS1t7YWda9eTcXLdO5f3sjpP2zh+c7Z9ByBg4dgz57iiOj27YmeI6dx1lkz2LGjOOJ54EDpiOg02L4NDrwE48YX7w2w/0XYW9Z+8GAxfedOiHGw76fFUeDe9sOH4chR2LWzOMLa3l48ets7u6CnG3btggkTYU9bcZS4t727u/hZ795d/Mx27YJ9+2HKa2fzwJnL2DJj8ZhYT2PxszeWl2nVqk/vbGhoaBwsg0bFlVcnyrMCGPDo+ag+K0CqoojYmFKqH2y+0XJWgCSNGgarJGVmsEpSZp4VUE0DHLkfMo+eS1XjWQFVPIp52fob6flOC3snzM5/BH3qbHo+sIzPPbL4Vcu0alU3HR0XsnTpW0blkdmxeLTZZRody+RZAaPhrIAqXffuWQHSyfGsAEmqEoNVkjIzWCUpM4NVkjIzWCUpM89jHW4DnavquabSmOR5rMN83l378huZuqWFQ6fPfvWdoF43mwdmLuPxrsUjei6h57G6TC6T57GesJo6j7UGx2jyPFbp5HgeqyRVicEqSZkZrJKUmcEqSZkZrJKUmeexjoSWlspGRF22DFasGPZyJA0vz2Md5vPumh7qYsbhNmDgEU2nbG7hJxvb+OEvLvc81lPw/EiXaXQsk+ex1sp5rJUawfNdPY9VOjmexypJVWKwSlJmBqskZWawSlJmBqskZWawSlJmBqskZeaVV7Wk0iu0hujWlpbiyWDv5ZVg0knxyqsauVJkxuQuXvxhG+PHFzW2t/ddmdXZBT3dsGsXTJgIe9rghRf62ru7i7p27y7637UL9u2HKZNh+3boOQIHD8GePTBlCmzfnug5chpnnTWDHTvg6FE4cADa2vr6nLqlhcPb2vjT1uUnvUxe0eMyjbVl8sqr0Xbl1Qiq6MqrGhz5QKo2r7ySpCoxWCUpM4NVkjIzWCUpM4NVkjIzWCUpM4NVkjIzWCUps5q4pDUiPgA0ABcCl6aUmsvabgJ+CzgCfCKl9GBVijwVjdAlthXzEluNEjURrMB3gfcDXyqfGBEXAdcDFwNzgYcjYmFK6chAnXV0QEMDXHddceFQe3vx+9jYCJdcAtOnw+OPww03FJe6dXYWv7OrV8PixUUfGzfC8uWwZg1MngxXX11clnfZZcXln5s29fVZV1fkz/r1xdfW1uIyvt72OXOgvr64tO7KK4u2rVv72hcsKC6ne+ghuOYaaG4uBh7sbV+4EObOLZYlxzI9//yHGDeum82bj79MvzR7GZdeAHu3wsyZxWW1hw7CnLmws7W4lHDGjKKOM88q2g4f7mufMqW4PPanLxQ/n44O6Orqa586DSZPgn374Oxziq893X3tp50G48fDiy/CrFkwblMLu38C6coVp8x6cplqb5kqVVOXtEZEE/AHvVuspa1VUkqfLb1+EGhIKT0+UD9e0jqwUTmYoJfYqgaMlUtazwW2lb3eXpomSTVrxHYFRMTDwOx+mm5OKX0tQ/8rgBUA8+fPH2p3knTSRixYU0pXnMS37QDmlb0+rzStv/4bgUYodgWcxHtJUha1vivgPuD6iJgcEecDFwBPVLkmSRpQTQRrRLwvIrYDlwFfLx2kIqX0DLAOeBb4J+Bjg50RIEnVVhOnW6WUvgp89ThttwC3jGxFknTyamKLVZLGEoNVkjIzWCUps5rYxypVpL97F3j/ANUgh78e48P19rdMq1Z109FxIUuXvmXULNOT/97FhH1trxjSe+KzLWzb2Ma+9y4fk+vJZaq9ZXL4a+8VcFyj8l4B/fH+ARphY+VeAZI06hiskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmXl3Kw2/xkZYsyZ/vy0tsGhR/n6lIfLuVmP8bjy1cHerxWtuhKda2N49m6nTYPs26OyCnm7YtQsmTIQ9bfDCC7zc3t1d1LV7d9H/rl2wbz+vuLvVwTNm88hrljH5bYvH5HpymWpvmby7lXe3Oq4Rv7uVd6HSGOHdrSSpSgxWScrMYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWDa/GRnj00WpXIY0o78c6xu8fWe37sR75vRuZuf95vvn2P+Jvnl7sfT5dplG9TN6P1fuxHteI3o/Ve7FqDPF+rJJUJQarJGVmsEpSZgarJGVmsEpSZgarJGVmsEpSZjURrBHx5xHx/Yh4OiK+GhEzy9puiojnImJzRLyrmnVKUiVqIliBfwZ+NqX0n4AtwE0AEXERcD1wMbAUuD0ixletSkmqQE0Ea0rpoZRST+nlt4HzSs+vBe5JKXWmlH4MPAdcWo0aJalSNRGsx/hN4IHS83OBbWVt20vTJKlmTRipN4qIh4HZ/TTdnFL6Wmmem4Ee4Csn0f8KYAXA/Pnzh1CpJA3NiAVrSumKgdojYjlwNXB56rszzA5gXtls55Wm9dd/I9AIxU1YhlqvJJ2smtgVEBFLgU8C70kpHSxrug+4PiImR8T5wAXAE9WoUZIqNWJbrIO4DZgM/HNEAHw7pfSRlNIzEbEOeJZiF8HHUkpHqlinJA2qJoI1pfSGAdpuAW4ZwXJOCS0tLS/fl3U43drSwhsOHOC5mTMHn3kUeHjWLDbMnVvtMga0bNkyVqxYUe0yTmmOIDDG73je3zI1NV1ER8eFTJz4Ijt2vJ+jRydy4MAbaGt7J1OnbmP79l/jpZfOZ9y4Tlpb3wvA/v0Xs3fvO15uP3iw2PW9c+c1RHSzb99i9u59+8vthw/P5siRyXR2vJ5Z43bR3XM6Pd1nMG5cJ52dszh6dCIpTaCr6ywieujunklPz+l97WkCR9NEurvOIsZ109VVR0/PdMaN66az8xxSGsfRo5Pp7j6TceO66Ow8m54jpxHjeujqPIdEcOTINLq7Z77c55EjU4g4SlfX2QD09Jz2yvajk4Ggq6sOSPT0zKC7rOaFh9qZcXgCjV03Mn78Qdrb30Z7+9teXubOzjp6es5g166lTJiwn7a2d/LCC299ub27+3Q6O2exe/eVTJrUzq5dS9m3bxFTprSxffuv0tMzlYMH57FnzxVMmbKLHTuuPeH19PTT03nyyfP54AcX1eRnb7T/PjmCgCMIKLdRMBrCiI4OcQpyBAFJqhKDVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyM1glKTODVZIyq4nBBKVRo6Wlb4iWGnRrS0vxZCRqXLYMHLSwXw4mOMYHP3OZ8i3TJLo4vauNXTth/PiixvZ2mDoNtm+Dzi7o6YZdu2DCRNjTBi+80Nfe3V3UtXt30f+uXbBvP0yZDNu3Q88ROHgI9uyBKVNgRyt0vAgTJ8KOHXD0KBw4AG1tfX0eeAnGjS9+ngB79nTS3T2Tc2ZNZ/u2Yh0A7NwJMQ72/RT27u37/sOH4chRTniZTv9xC883t/HIvOU1t54cTHCYOJigTlUjNpjgKBhYcTg4mKAkVYnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZGaySlJnBKkmZ1cTw1xHxGeBa4CiwB1ieUmqNiABWAVcBB0vTn6xepZJeNhJDgY/SIbZrIliBP08p/QlARHwC+BTwEeDdwAWlx88Dd5S+DqijAxoa4LrrikEk29uLddPYCJdcAtOnw+OPww03FMPidnYW62/1ali8uOhj40ZYvhzWrIHJk+Hqq4shfC+7rBiCeNOmvj7r6orP1/r1xdfW1mLI3972OXOgvr4YhvfKK4u2rVv72hcsKIbefeghuOYaaG4uhivubV+4EObOLZbFZXKZBlqm3bsv59ChebS2Du8y/d5Vy9i3FU5rK4bNfvFFmDWraDua4DWziiGzp88olulAB8yeDbv3wLgo6t6zB04/HY4cgZdegjlzYWdrMcz2zJkwYVMLh/fBN6avqJn1VKmaG/46Im4C5qeUPhoRXwKaUkprS22bgSUppZ0D9eHw1zpVjdjw1yOhBofYrnT461rZYiUibgF+A9gPvLM0+VxgW9ls20vTBgxWSaqmETt4FREPR8R3+3lcC5BSujmlNA/4CvDxk+h/RUQ0R0RzW1tb7vIlqWIjtsWaUrqiwlm/AnwD+J/ADmBeWdt5pWn99d8INEKxK+DkK5WkoamJ060i4oKyl9cC3y89vw/4jSi8Fdg/2P5VSaq2WtnH+mcR8UaK062epzgjAIot16uA5yhOt/pwdcqTpMrVRLCmlK47zvQEfGyEy5GkIamJXQGSNJYYrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZnVxAgCkk4BjY2wZk3l87e0wKJFw1fPMBrf0NBQ7RqyW7mysaG9fQV1dbBuHTzwACxcCCtXQns7bNsGd98Nc+bAXXdBUxPMmwe33godHbBlC6xdCwsWwO23wxNPQF0d3HYbdHbCU08V/fb2uWkTTJsGd9xRvP9jj8H69X3tmzdDRPG5mjQJHnkE7r23r33rVjh4EO68E2bMgPvvhw0b+tpbW4u6V6/GZXKZBlymv/u7bezd+w4++MFFNbdMb/37G+nZ2MLONJuJE2HHDjh6FA4cgLY2mDoNtm+DAy/BuPHQenQ2uy9fxkPti2tmPa1a9emdDQ0NjYNlUBTDSo0t9fX1qbm5udplSCNuyZIlADQ1NVW1jn6VaqMWa6tQRGxMKdUPNp/7WCUpM4NVkjIzWCUps4rOCoiI1wHvABYAU4E24EngWymlw8NWnSSNQgMGa0R8CPhdoB7YDbQCh4CzgP8XOBwRXwH+d0rp+WGuVZJGheMGa0T8B9ADrAauSyltO6Z9MnAZcD3QHBH/LaX098NYqySNCgNtsd6cUvrG8RpTSp1AE9AUEX9CsZtAkk55xw3WgUK1n3nbKPa7StIp74QuaY2Is4BZHHM2QUrp2ZxFSdJoVulZAW8C/ga45NgmIAHjM9clSaNWpVusXwZ2UJwhsJsiTCVJ/ag0WC8APpBSem44i5GksaDSK6/+DbhwOAuRpLGi0i3W3wL+unQF1neB7vLGlNI3cxcmSaPViewKeBPwrn7aPHglSWUqDdYvAQ8Dn8WDV5I0oEqD9TzgqpTSD4ezGEkaCyo9ePXPwOLhLESSxopKt1j/CVgZEf8J2MSrD179Y+7CJGm0qjRYby99/aN+2jx4JUllKgrWlJIjDUhShQxMScrsuMEaEf85IqKSTiLitRHxi/nKkqTRa6At1t8ENkfEH0XEJceGbEScFRHviYh1wHeAM4ZaTETcGBEpIs4uvY6I+EJEPBcRT0fEm4f6HpI03I4brCmlXwb+B8Uggi3AgYj4cUR8LyJ2UdzY+kvAc8DFKaUNQykkIuYBVwI/KZv8boqrvi4AVgB3DOU9JGkkDHjwKqX0deDrpS3ItwOvpRildS/wH8B/pJSOZqrlL4FPAl8rm3Yt8LcppQR8OyJmRsSclNLOTO8pSdlVelbAXuDe4SoiIq4FdqSUnjpmj8O5QPkghttL0wxWSTXrhIZmGYqIeBiY3U/TzRTnx145xP5XUOwuYP78+UPpSpKGZMSCNaV0RX/TI+IS4Hygd2v1PODJiLiUYtSCeWWzn1ea1l//jUAjQH19vTeJGUBjYyNr1qypdhkaBi0tLSxatGh4Om9shKF8blpaYLhqqzEjFqzHk1LaRDFAIQARsRWoTyntjYj7gI9HxD3AzwP7K9m/2tEBDQ1w3XXQ1ATt7bBiRfG5uOQSmD4dHn8cbrgBNmyAzk5YtgxWr4bFpTsibNwIy5cXn6PJk+Hqq2HtWrjsMjhwADZt6uuzrg6WLIH164uvra2wZUtf+5w5UF8P998PV15ZtG3d2te+YAEsXAgPPQTXXAPNzbBzZ1/7woUwd26xLDmW6bOfDXbtejuXXPI8e/ZczumnP8ORI1N56aXXMWfO/ezceQ0TJ+7njDNa2Lv3Hcyc2UJnZx2HDs17uX3SpHZmzNhMe/vbOPPM73Do0DwOH579cvuUKbuYOnUbP/3pW6ire4yOjjfS1VX3cvvUqduYPLmdffsWcfbZj7J//yK6u894uf20037E+PGHePHFi5k16xHa2y/j6NGJvOY1j7Br11KmT98MwIEDb2T27H9i9+7LGTeum7q6x0/pZZoz53JmzLiK1tb8n70/+PoaJj7Tws5Zi5gzF3a2wmmnwfjx8OKLMGtW8bk8muA1s2DXLpg+o/jsHeiA2T+ziH+ZuYzvrRy9v0+ViuK4UO04JlgDuA1YChwEPpxSah6sj/r6+tTcPOhsp6wlS5YA0NTUVNU6NMqUPjecwp+biNiYUqofbL6qb7EeK6W0oOx5Aj5WvWok6cRVHKwR8fPA5RT/tr/i/NeU0icy1yVJo1ZFwRoRfwB8juJigFZeOYJAbe1LkKQqq3SL9XeBT6SUbhvOYiRpLKj07lanA98YzkIkaayoNFjXUhyZlyQN4ri7AiLi98tebgM+HRG/ADzNq4dm+YvhKU+SRp+B9rH+92NeHwDeVnqUS4DBKkklxw3WlNL5I1mIJI0VFe1jjYhPRcS0fqZPjYhP5S9LkkavSg9e/U9gej/Tp5XaJEkllQZr0P+FAG8CXshXjiSNfgNeIBARHRSBmoAfRUR5uI4HpgBfHL7yJGn0GezKq49TbK1+meKG1PvL2rqArSmlx4epNkkalQYb8+ougIj4MfBYSql7oPklSZWPefVoREyJiF8HLipNfhZYm1I6NGzVSdIoVOnpVm8GfgisBC4tPT5Psd/1zcNXniSNPpWeFdAIfAs4L6X0SymlX6IYi+qbpTZJUkmltw28GPiNlNJLvRNSSi9FxP8CHANFkspUusX6fWBuP9PnAFvylSNJo1+lW6x/DHyhtIX67dK0t5am/2FEnNU7Y0rJCwYkndIqDdb7S1/X0HcFVpS+fq3sdaK4cECSTlmVBus7h7UKSRpDKj6PdbgLkaSxotKDV0TEJRFxW0Q8EBFzStPeGxFvGr7yJGn0qfQCgSuB7wDnAr8MTC01vR5vGyhJr1DpFutngN9PKb2P4uYrvZoorsKSJJVUGqw/S//DX78AnNXPdEk6ZVUarC9Q7AY41puB7fnKkaTRr9JgXQP8eUScR3Gu6oSIeAfFjVj+driKk6TRqNJg/WPgx8DzFGNfPQv8C/BvwC3DU5okjU6VnsfaDXyoNCLrmygC+T9SSj8YzuIkDbPGRlizprJ5W1pg0aLhrWeMqPTKKwBSSj+kuC9rTevogIYGuO46aGqC9nZYsaL4DF1yCUyfDo8/DjfcABs2QGcnLFsGq1fD4sVFHxs3wvLlxWdu8mS4+mpYuxYuuwwOHIBNm/r6rKuDJUtg/fria2srbNnS1z5nDtTXw/33w5VXFm1bt/a1L1gACxfCQw/BNddAczPs3NnXvnAhzJ1bLEuOZXr++Q8xblw3mzePnWUai+tpJJbpI/es4ewdLWyvW0RdXfG709UFc+bCzlaYOg0mT4J9++DsCxbxxOxlfLOhtpdpONdTpSKl/gZfLZshYirwSeA64HWUBhYE/h5YWYsjCNTX16fmZu9meDxLliwBoKmpqap1qAaUPgv4WahIRGxMKdUPNt9go7ROoNiX+mbgn4CvU9xs5SLgU8C7I+IdKaWeoZcsSWPDYLsCVgBvAN6cUnqmvCEifhb4v8BvA3cMT3mSNPoMdlbArwK3HBuqACml7wKfBT4wHIVJ0mg1WLBeTLEr4HgeprgqS5JUMliwngm0DdDeBszMV44kjX6DBet4YKADU0dxxABJeoXBDl4FcHdEdB6nfXLmeiRp1BssWO+qoA/vFSBJZQYM1pTSh0eqEEkaKyoemkWSVJmaCNaIaIiIHRHRUnpcVdZ2U0Q8FxGbI+Jd1axTkipxQjdhGWZ/mVL6fPmEiLgIuJ7ifNq5wMMRsTCldKQaBUpSJWpii3UA1wL3pJQ6U0o/Bp7DMbYk1bhaCtaPR8TTEfHliDizNO1cYFvZPNvpf4gYSaoZIxasEfFwRHy3n8e1FDdxeT2wCNgJrDyJ/ldERHNENLe1DXSxmCQNrxHbx5pSuqKS+SLir4ANpZc7gHllzeeVpvXXfyPQCMX9WE++UkkamprYFRARc8pevg/4bun5fcD1ETE5Is4HLgCeGOn6JOlE1MpZAZ+LiEUUoxNsBX4HIKX0TESsoxi8sAf4mGcESKp1NRGsKaVfH6DtFhwJVtIoUhO7AiRpLDFYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMquJEQQkjYDGRliz5pXTWlpg0aLq1DOGjW9oaKh2DdmtXNnY0N6+gro6WLcOHngAFi6ElSuhvR22bYO774Y5c+Cuu6CpCebNg1tvhY4O2LIF1q6FBQvg9tvhiSegrg5uuw06O+Gpp4p+e/vctAmmTYM77ije/7HHYP36vvbNmyGi+FxPmgSPPAL33tvXvnUrHDwId94JM2bA/ffDhg197a2tRd2rV5NlmVat6qaj40KWLn3LmFmmsbieci/Tm75yI+OeamFb92ymToPt2+DwzNnsvnwZX/jW4lG5TCO9nlat+vTOhoaGxsEyKFIaeyNF19fXp+bm5mqXUbOWLFkCQFNTU1Xr0AgrrXdc7yctIjamlOoHm899rJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUWc0Ea0T894j4fkQ8ExGfK5t+U0Q8FxGbI+Jd1axRkioxodoFAETEO4FrgZ9LKXVGxKzS9IuA64GLgbnAwxGxMKV0pHrVStLAamWL9aPAn6WUOgFSSntK068F7kkpdaaUfgw8B1xapRolqSK1EqwLgV+MiH+PiEcj4i2l6ecC28rm216aJkk1a8R2BUTEw8DsfppuLtVxFvBW4C3Auoh43Qn2vwJYATB//vyhFStJQzBiwZpSuuJ4bRHxUeAfU0oJeCIijgJnAzuAeWWznlea1l//jUAjQH19fcpVtySdqFrZFXAv8E6AiFgITAL2AvcB10fE5Ig4H7gAeKJqVUpSBWrirADgy8CXI+K7QBfwX0pbr89ExDrgWaAH+JhnBEiqdTURrCmlLuA/H6ftFuCWka1Ikk5erewKkKQxw2CVpMwMVknKzGCVpMwMVknKzGCVpMwMVknKzGCVpMwMVknKzGCVxrLGRliypHi0tFS7mlPG+IaGhmrXkN3KlY0N7e0rqKuDdevggQdg4UJYuRLa22HbNrj7bpgzB+66C5qaYN48uPVW6OiALVtg7VpYsABuvx2eeALq6uC226CzE556qui3t89Nm2DaNLjjjuL9H3sM1q/va9+8GSKKz/ikSfDII3DvvX3tW7fCwYNw550wYwbcfz9s2NDX3tpa1L16NVmWadWqbjo6LmTp0reMmWUai+spxzIt/NKNTN3Swk+6ZhNzZ/PkG5dxZ8viUb1M1VxPq1Z9emdDQ0PjYBkUxb1Oxpb6+vrU3Nxc7TJq1pIlSwBoamqqah0aAaV1jes6i4jYmFKqH2w+dwVIUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmYGqyRlZrBKUmY1EawR8XcR0VJ6bI2IlrK2myLiuYiTx+3BAAAMvUlEQVTYHBHvqmadklSJCdUuACCl9Gu9zyNiJbC/9Pwi4HrgYmAu8HBELEwpHalKoZJUgZrYYu0VEQF8EFhbmnQtcE9KqTOl9GPgOeDSatUnSZWoqWAFfhHYnVL6Qen1ucC2svbtpWmvEhErIqI5Iprb2tqGuUxJOr4R2xUQEQ8Ds/tpujml9LXS8xvo21o9ISmlRqARoL6+Pp1UkZKUwYgFa0rpioHaI2IC8H5gcdnkHcC8stfnlaZJUs2qpV0BVwDfTyltL5t2H3B9REyOiPOBC4AnqlKdJFWoJs4KKLmeY3YDpJSeiYh1wLNAD/AxzwiQVOtqJlhTSsuPM/0W4JaRrUaSTl4t7QqQpDHBYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWScrMYJWkzAxWaaxqbIRHH612Faek8Q0NDdWuIbuVKxsb2ttXUFcH69bBAw/AwoWwciW0t8O2bXD33TBnDtx1FzQ1wbx5cOut0NEBW7bA2rWwYAHcfjs88QTU1cFtt0FnJzz1VNFvb5+bNsG0aXDHHcX7P/YYrF/f1755M0QUn/NJk+CRR+Dee/vat26Fgwfhzjthxgy4/37YsKGvvbW1qHv1arIs06pV3XR0XMjSpW8ZM8s0FtfTUJepffmNzNz/PM9/6I+49V8Xj4llqvZ6WrXq0zsbGhoaB8ugSGns3WGvvr4+NTc3V7uMmrVkyRIAmpqaqlqHhllpPeN6ziYiNqaU6gebz10BkpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpSZwSpJmRmskpRZTQRrRCyKiG9HREtENEfEpaXpERFfiIjnIuLpiHhztWuVpMHURLACnwM+nVJaBHyq9Brg3cAFpccK4I7qlCdJlauVYE3A6aXnZwCtpefXAn+bCt8GZkbEnGoUKEmVmlDtAkp+D3gwIj5PEfZvK00/F9hWNt/20rSdI1ueJFVuxII1Ih4GZvfTdDNwOfA/UkrrI+KDwJ3AFSfY/wqK3QXMnz9/iNVK0skbsWBNKR03KCPib4HfLb38e+CvS893APPKZj2vNK2//huBRoD6+vo01Hol6WTVyj7WVuAdpee/DPyg9Pw+4DdKZwe8FdifUnI3gKSaViv7WH8bWBURE4DDlP6lB74BXAU8BxwEPlyd8iSpcjURrCmlfwMW9zM9AR8b+Yok6eTVyq4ASRozDFZJysxglaTMDFZJysxglaTMDFZJysxglaTMDFZJysxglaTMDFZJysxglaTMDFZJysxglaTMDFZJysxglaTMorjl6dgSEW3A8xXOfgaw/yTf6kS+t9J5B5tvoPbjtfU3/WxgbwX1jJShrIfh6NN1m89YWrevTSmdM+h3pZRO6QfQOBLfW+m8g803UPvx2vqbDjRX+2efaz24bl231V63xz7cFQD3j9D3VjrvYPMN1H68tqEs40gZjhpdt7XhVFi3rzAmdwVocBHRnFKqr3Ydys91W31usZ66GqtdgIaN67bK3GKVpMzcYpWkzAxWScrMYJWkzAxWvUpEvC4i7oyIf6h2LRq6iDgtIu6KiL+KiA9Vu55TgcE6xkTElyNiT0R895jpSyNic0Q8FxF/OFAfKaUfpZR+a3gr1VCc4Hp+P/APKaXfBt4z4sWeggzWsWc1sLR8QkSMB/4P8G7gIuCGiLgoIi6JiA3HPGaNfMk6CaupcD0D5wHbSrMdGcEaT1kTql2A8kopfTMiFhwz+VLguZTSjwAi4h7g2pTSZ4GrR7ZC5XAi6xnYThGuLbgxNSL8IZ8azqVviwWKX7RzjzdzRNRFxBeBN0XETcNdnLI53nr+R+C6iLiD0XEJ7KjnFqteJaXUDnyk2nUoj5TSS8CHq13HqcQt1lPDDmBe2evzStM0triea4TBemr4DnBBRJwfEZOA64H7qlyT8nM91wiDdYyJiLXA48AbI2J7RPxWSqkH+DjwIPA9YF1K6Zlq1qmhcT3XNm/CIkmZucUqSZkZrJKUmcEqSZkZrJKUmcEqSZkZrJKUmcGqqoqI2yKiaQTep+HYW+wNMv+SiEgRcfYw1fNfIuJfhqPvCt77/4mIlojw93+Y+IMVEfGaiFgVET+MiM6I2BERD0TEVdWu7URFxIJSIB47/PPngXecQFePAXOA9lK/yyPiQKYaJwG3AJ8umzYtIv60dB/VwxGxNyK+FRE39PP9X4yIW0/2/VNKX6e4faA3vR4m3oTlFFe69dy3gA7gJuApij+4lwNfBOZXq7acUkoHgIqDMaXUBewapnJ+FTiUUnq0bNoXgV8Afhf4LnAm8FbgrPJvjIiguFn1siHW8DfAJ4D/b4j9qD8pJR+n8AP4BsWNOqb30zaz7Pl84KsUAdxBcSu688raGygC4Xrgh6V57gXOLptnPMWW409Lj1uBO4CmsnmagNuOqWM1sKHsdQA3Aj8AOiluj/fZUls65tFUXl/p+ZVAF1B3zPv8KfB06fmS0vefXfa8/NEAfKq3z2P6+RbwhQF+5huAvzxm2j7gv1awvi6l2IqeULa8HwW+BhwEtgDvpLgBy4PASxT3YX3zMf3ML33vG6r9GRyLD3cFnMIi4iyKu9D/n1Rs0b1CSmlfab5xFL+4r6H4pX0nMBe4t7QF1WsB8GvA+yjC600U//L2uhH4beB3gMsogvZk/h39U+BPgM8CFwMfoO8+pJeWvi6l+Ff+/f18/yPA3tL3UVrGoNgKvLuf+R8Dfo8iuOaUHp8Hvgz8TERcWtbPG4G3AXcOUP/bgeZjpu0ClkbEGQN8H8B7ga+n4r4Avf4YuAf4uVK/95Te/3aKddBK8cfpZSmlnwC7ObHdI6pUtZPdR/UeFCGUgPcNMt+vUOyTW1A27XXAUeCK0usG4DBwRtk8N1Pc0b73dStwc9nrcRRbWE1l05oYYIsVmF56n48cp9YFpWWqP2Z6A2Vbl8BfAP9a9vrtpWU8r/R6Samfs0uvlwMH+nm/DcAXy17/b6B5gJ/lzFK/7zxm+i9R/HHoBp4EbgN+pZ/vfwZ4f9nrRGlrvfT6Z0vTfr9s2iuWpWz6k8Bnqv05HIsPt1hPbTH4LABcCLSmlLb2TkjF8B+tFGMr9Xo+pbS/7HUrMAugtCU2h+KOTL19HAX+/QRrvgiYTLHVORR3A78QEa8tvf4Q8GhKafsJ9vNXwPURMbU05tSvM/DW6tTS18PlE1NK36T4Y/XLwDpgIfBQRHypd56IeENpngeP6fPpsue7S1839TPt2PHMDpXVo4wM1lPbDyi2ZC4cQh/lt0fr7qftRD9jR3l14E880aIGk1J6Evg+sCwiJlLsFuhvN8Bgvk6xi+A64CqKLdI1A8zfTvFzObOfmrpTSv+aUvqzlNKVFLs7VpSNbfVe4JFUjAhQrvznngaYduy6OAtoG6BWnSSD9RSWUnqBYuvn4xEx/dj2iJhZevo9YG754HUR8TqK/azPVvhe+4GdFEe6e/sI+vaJ9mqj2LIt93Nlz79HccDq8uO8VVfp6/gKyrqbYkt1KXAa8A8DzNvVX5+p2Ne5GvjN0uMfj9lqP3b+Loqf2UXHm6dM78+2d91cS3FAcMgiYgrweordAcrMYNXHKLYQmyPiAxHxxoj4mYj4KH3/Yj5cev6ViKgvnSP6FYpfyhM5yX0V8MmI+NXSQZ5beXWI/gvw7oh4T6mWv6BsuJGUUkepn89GxIcj4vURcWmpXoA9FP/ivqt0fu5AB4O+QhFwnwHuTym9OMC8W4EpEfErEXF2REwra/trioNAVzPwboBeD1Ls031ZRDRFxO9ExOLSubhXURyk+z7wvYg4h+KPUq7BAN9K8QfqW5n6UxmD9RRX2lf6ZuCfKQ68PE0Rbu8BVpTmSRRbS23A/y09dgHvLbVVaiXF+ZN/TbFvdRxFuJX7ctmj9/zarx4zz02lWv+EYgt2PcXpRb1bkJ8A/ivFPt6vDbDszwP/RrFFPOBugJTSYxTnmq6l+Dl8sqztR8CjwE8oDr4N5q8ozgAoP0f1QYr9sw9ShOntwL8CV6aUjgDXAN9JKe0+trOTdAPwlZTSwUz9qYwjCEgZRMSzFEF1y6AzF/PfAzyTUvpMhfN/DfhWSulzQyizt69ZFH+Q6lNKPx5qf3o1t1ilIYiIc0q7IRYAXxpk9nKfBAba9XCsb1FsLeewAPhvhurwcYtVGoKISBQXG/x+SsnLQwUYrJKUnbsCJCkzg1WSMjNYJSkzg1WSMjNYJSkzg1WSMvv/AXdKhOJQw/LgAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -324,7 +322,7 @@ { "data": { "text/plain": [ - ">" + ">" ] }, "execution_count": 9, @@ -333,7 +331,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbgAAAE2CAYAAAATcIcbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd4VGX6xvHvC6Koq4KCiKCiK7oWVCQB7EZUisSySkBcAQWBKAoiVQglkRaqFIMoUmwYXURApA/K2kgQaeKuWJEfKIgoihDIPL8/zgRCTSHJmUzuz3XNlZl3zsw8Q07m5i3njDMzREREIk0pvwsQEREpDAo4ERGJSAo4ERGJSAo4ERGJSAo4ERGJSAo4ERGJSAo4ERGJSAo4ERGJSAo4ERGJSMf5XcDRVKhQwapVq+Z3GSIiEkaWL1++1cwq5rRdWAdctWrVSE9P97sMEREJI86573OznYYoRUQkIingREQkIingREQkIingREQkIingREQkIingREQkIingREQkIingREQkIingRESk0CQnJxMIBA5oCwQCJCcnF/prK+BERKTQREdHExcXty/kAoEAcXFxREdHF/prh/WpukREpHiLiYkhNTWVuLg44uPjSUlJITU1lZiYmEJ/bfXgRESkUMXExBAfH09SUhLx8fFFEm6ggBMRkUIWCARISUkhISGBlJSUQ+bkCosCTkRECk3WnFtqaiqJiYn7hiuLIuRyDDjnXFnn3DLn3Ern3FrnXP9Q+2Tn3LfOuc9Dl6tC7c45N9o5t945t8o5d3W252rpnPsqdGlZeG9LRETCQVpa2gFzbllzcmlpaYX+2s7Mjr6Bcw442cz+cM6VAf4DdATaA7PN7K2Dtm8EPA40AuoAz5pZHefc6UA6EAUYsByoZWa/Hum1o6KiTN8HJyIi2TnnlptZVE7b5diDM88foZtlQpejpeJdwNTQ4z4ByjnnKgP1gQVmti0UaguABjm9voiISH7kag7OOVfaOfc58DNeSH0aumtAaBhypHPuhFBbFWBDtof/GGo7UvvBr9XWOZfunEvfsmVLHt+OiIiIJ1cBZ2aZZnYVUBWo7Zy7HOgJ/AOIBk4HuhdEQWY2wcyizCyqYsWKBfGUIiJSAuVpFaWZbQcCQAMz2xQahtwNTAJqhzbbCJyT7WFVQ21HahcRESlwuVlFWdE5Vy50/UTgNuDL0Lxa1iKUu4E1oYfMBFqEVlPWBX4zs03APOB251x551x54PZQm4iISIHLzam6KgNTnHOl8QIx1cxmO+cWO+cqAg74HG9VJcAcvBWU64GdwEMAZrbNOZcEZK0NTTSzbQX3VkRERPbL8TABP+kwAREROViBHSYgIiJSHCngREQkIingRESk0E2fPp369euTkZFRZK+pgBMRkUKzbds2HnjgAe699162bt3K1q1bi+y1FXAiIlIo5syZw+WXX05qair9+/fnk08+4eyzzy6y11fAiYhIgfr9999p3bo1d9xxB2eccQbLli2jT58+lClTpkjrUMCJiEiBWbRoETVq1GDy5Mn06NGD9PR0atas6UstCjgRETlmf/75Jx06dODWW2+lbNmyfPjhhwwaNIgTTjgh5wcXEgWciIgckw8//JArr7yScePG0alTJ1asWEHdunX9LksBJyIi+bNr1y66du3KDTfcQDAYZMmSJYwcOZKTTjrJ79KA3J2LUkRE5ABpaWm0bNmSdevW0a5dO4YOHcopp5zid1kHUA9ORERyLSMjg4SEBK655hp27NjBvHnzGD9+fNiFG6gHJyIiubRq1SpatGjBypUradmyJaNGjaJcuXJ+l3VE6sGJiMhR7d27l4EDBxIVFcXmzZt55513mDx5cliHG6gHJyIiR/Hll1/SsmVLli1bRtOmTRk7diwVKlTwu6xcUQ9OREQOkZmZyYgRI6hZsyZff/01b7zxBtOmTSs24QbqwYmIyEG+/vprWrVqxX/+8x/uvPNOnn/+ec466yy/y8oz9eBERAQAMyMlJYUrrriC1atXM3nyZGbMmFEsww3UgxMREeCHH36gdevWLFy4kNtvv52JEydStWpVv8s6JurBiYiUYGbGpEmTqFGjBh9//DHjx49n7ty5xT7cQD04EZESa9OmTbRt25bZs2dz4403MmnSJC644AK/yyow6sGJiJQwZsa0adO47LLLWLhwISNHjiQQCERUuIECTkSkRNmyZQtxcXHcf//9XHzxxXz++ed06tSJUqUiLw4i7x2JiMhhzZgxg8svv5yZM2cyaNAgli5dysUXX+x3WYVGc3AiIhHu119/5YknnuCVV16hZs2aLFy4kBo1avhdVqFTD05EJILNnTuXyy+/nNdff52+ffvy6aeflohwAwWciEhE2rFj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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEzCAYAAAC2Q50YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hUddrG8e8DoqirgoKKFV1ZXwsqkiDWNaJSJJZlDagrRRCJoiJSRYpk6QiIYBBFij26iIBIH5S1kSA2xF1ZVwUEhcWCIi153j/OBEILCSQ5k8n9ua65ZuZ3zsw8Q05y8ytzxtwdERGReFAu7AJERESKikJNRETihkJNRETihkJNRETihkJNRETihkJNRETixkFhF5CfKlWqePXq1cMuQ0REYsjixYvXuXvVPW2L6VCrXr06WVlZYZchIiIxxMy+2ds2DT+KiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEixGTx4MJFIZKe2SCTC4MGDi+X1FGoiIlJsEhMTSUlJ2R5skUiElJQUEhMTi+X1Yvo0WSIiUrolJSWRkZFBSkoKqamppKenk5GRQVJSUrG8nnpqIiJSrJKSkkhNTSUtLY3U1NRiCzRQqImISDGLRCKkp6fTs2dP0tPTd5tjK0r7DDUzq2hmi8zsYzNbamaPRNsnmNl/zeyj6OWCaLuZ2UgzW25mn5jZhXmeq4WZfRm9tCi2dyUiIjEhdw4tIyODvn37bh+KLK5gK0hPbTNwlbufD1wANDCzutFtnd39gujlo2hbQ6BG9NIWSAcws6OB3sBFQB2gt5lVLrq3IiIisSYzM3OnObTcObbMzMxieb19LhRxdwd+jd6tEL14Pg+5AZgUfdz7ZlbJzKoBVwJz3H09gJnNARoAL+5/+SIiEsu6dOmyW1tSUlK4C0XMrLyZfQT8QBBMH0Q39YsOMQ43s0OibScCK/I8fGW0bW/tIiIiRaJAoebu2e5+AXASUMfMzgW6A/8HJAJHA12ju9ueniKf9p2YWVszyzKzrLVr1xakPBEREaCQqx/d/SdgAdDA3Vd7YDMwnmCeDIIe2Ml5HnYS8F0+7bu+xlh3T3D3hKpVqxamPBERKeMKsvqxqplVit4+FLga+CI6T4aZGXAj8Fn0IVOB5tFVkHWBn919NTALuNbMKkcXiFwbbRMRESkSBTmjSDVgopmVJwjBDHefbmbzzawqwbDiR0C76P4zgEbAcmAj0ArA3debWRqQu+Slb+6iERERkaJgwSLF2JSQkOBZWVlhlyEiIjHEzBa7e8KetumMIiIiEjcUaiIiEjcUaiIiEjcUaiIiUuwmT55M/fr12bJlS7G+jkJNRESKzfr167ntttto0qQJ69atY926dcX6ego1EREpFjNmzODcc88lIyODRx55hPfff58TTjihWF9ToSYiIkXql19+oXXr1lx33XUcc8wxLFq0iF69elGhQoVif22FmoiIFJl58+ZRs2ZNJkyYQLdu3cjKyqJWrVol9voKNREROWC//fYb7du35+qrr6ZixYq88847DBgwgEMOOWTfDy5CCjURETkg77zzDueffz6jR4+mQ4cOLFmyhLp16+77gcVAoSYiIvtl06ZNdO7cmcsvv5ycnBwWLFjA8OHDOeyww0KrqSAnNBYREdlJZmYmLVq0YNmyZdx1110MGTKEI444Iuyy1FMTEZGC27JlCz179uTiiy9mw4YNzJo1izFjxsREoIF6aiIiUkCffPIJzZs35+OPP6ZFixaMGDGCSpUqhV3WTtRTExGRfG3bto3+/fuTkJDAmjVreP3115kwYULMBRqopyYiIvn44osvaNGiBYsWLaJp06aMGjWKKlWqhF3WXqmnJiIiu8nOzmbYsGHUqlWL//znP7z88su89NJLMR1ooJ6aiIjs4j//+Q8tW7bkn//8J9dffz1PPvkkxx9/fNhlFYh6aiIiAoC7k56eznnnncenn37KhAkTmDJlSqkJNFBPTUREgG+//ZbWrVszd+5crr32WsaNG8dJJ50UdlmFpp6aiEgZ5u6MHz+emjVr8t577zFmzBhmzpxZKgMN1FMTESmzVq9eTdu2bZk+fTpXXHEF48eP5/TTTw+7rAOinpqISBnj7rz00kucc845zJ07l+HDhxOJREp9oIFCTUSkTFm7di0pKSnccsstnHnmmXz00Ud06NCBcuXiIw7i412IiMg+TZkyhXPPPZepU6cyYMAAFi5cyJlnnhl2WUVKc2oiInHuxx9/5L777uO5556jVq1azJ07l5o1a4ZdVrFQT01EJI7NnDmTc889lxdffJHevXvzwQcfxG2ggUJNRCQubdiwgbZt29KwYUMqV67M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a5OYCCkpO4YYIpEd9wtjzZpgnuzZZ4MPSR90ULCaasSI4PyLFSsWT/0iUnTy/v7nhlne+0VNoRbD3J0lS5ZsH1ZcvHgxANWrV6dNmzYkJyfz5z//OeaGFZOSggM2JQVSU4P/mRX0AN64MThN1aRJwWmrcnKCkHz88WCerDSeUVykLMvM3Pn3P/fvQ2Zm8YSaForEmN9//5358+dvX624atUqzIy6detuX614zjnnlIrVir167RhDz+8sWTk5weqoSZOCEwn/+iuccsqOz5P93/+VWMkiUgpooUiMW7NmzfZhxblz57Jx40b+8Ic/cO21124fVjy2lH11bUHG0Jcu3TFPtnIlHHnkjs+TXX655slEpPAUaiFwdz7++OPtw4qZ0U8pnnLKKbRq1Yrk5GSuvPJKDimlH67Kbwz97LPhxReDMPvww+AbeBs0gKFD4frr4dBDw65eREozhVoJ2bRpE5FIZPuw4ooVKzAz6tSpw9///neSk5OpWbNmqRhW3Jddx9Dr1g0+bJmaCsuXB8vya9cOFnzccguUsk6oiMSwA5pTM7OvgQ1ANrDN3RPM7GjgZaA68DWQ4u4/WvDX+jGgEbARaOnuH+b3/KV9Tu3777/njTfeYNq0acyZM4fffvuNww47bPuw4nXXXcdxxx0XdplF6rff4Jtv4Ouvg+vMTHj1VdiwAU4+OZgju/12OOussCsVkdKquOfUktx9XZ773YB57j7QzLpF73cFGgI1opeLgPToddxwdz799NPtw4qLFi3C3TnppJNo3rw5ycnJJCUlUbEUr0X/5ZcdoZUbXHmv163bef8jjoC//jUIsj//WfNkIlK8imP48QbgyujticACglC7AZgU/dqA982skplVc/fVxVBDidm8eTMLFizYHmTffvstAImJiTzyyCMkJydz/vnnl4phRXf46af8Q+vHH3d+TMWKwRk9Tj01GFLMvV29enA57jgFmYiUnAMNNQdmm5kDT7r7WOC43KBy99VmljtjciKwIs9jV0bbSl2o/fDDD8yYMYNp06Yxe/Zsfv31Vw499FCuueYaevbsyXXXXUe1atXCLnM37sFXQ+waVHlv//LLzo85/PAdQXXxxbuHVtWqOuu9iMSOAw21S939u2hwzTGzL/LZd09/+nab0DOztkBbCFYD7q+i/E4vd+ezzz7bvuz+/fffx9058cQTue22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\n", "text/plain": [ "
" ] @@ -348,8 +346,8 @@ "fig, axes = subplots(1,1, figsize = (7,5))\n", "axes.plot(FDsurvey.frequency, d_true[0:FDsurvey.n_frequency], 'k-')\n", "axes.plot(FDsurvey.frequency, d_true[FDsurvey.n_frequency:], 'b-')\n", - "axes.plot(FDsurvey.frequency, FDsurvey.dobs[0:FDsurvey.n_frequency], 'kx')\n", - "axes.plot(FDsurvey.frequency, FDsurvey.dobs[FDsurvey.n_frequency:], 'bx')\n", + "axes.plot(FDsurvey.frequency, d_obs[0:FDsurvey.n_frequency], 'kx')\n", + "axes.plot(FDsurvey.frequency, d_obs[FDsurvey.n_frequency:], 'bx')\n", "axes.set_xscale('log')\n", "axes.set_xlabel" ] @@ -378,7 +376,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/notebooks/examples/EM1D_inversion_TD_layers.ipynb b/notebooks/examples/EM1D_inversion_TD_layers.ipynb index 2031ca0..dd53b86 100644 --- a/notebooks/examples/EM1D_inversion_TD_layers.ipynb +++ b/notebooks/examples/EM1D_inversion_TD_layers.ipynb @@ -18,7 +18,7 @@ "source": [ "from SimPEG import *\n", "from simpegEM1D import (\n", - " EM1D, EM1DSurveyTD, Utils1D, get_vertical_discretization_time, \n", + " simulation, EM1DSurveyTD, Utils1D, get_vertical_discretization_time, \n", " set_mesh_1d, skytem_HM_2015\n", ")\n", "import numpy as np\n", @@ -55,21 +55,21 @@ "sig_half = 1e-1\n", "sig_blk = sig_half * 20.\n", "chi_half = 0.\n", - "expmap = Maps.ExpMap(mesh1D)" + "expmap = maps.ExpMap(mesh1D)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ - "two_layer_map = TwoLayerMap(mesh, logSigma=True)\n" + "# two_layer_map = TwoLayerMap(mesh, logSigma=True)\n" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -81,22 +81,22 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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ss6Ovr52Wlpg7Vq44QaYOxeWLYO+PtixA669FmbMgGuuga4umDULLr8cdu+GrVth9WqYPRtWrIA774SWFli+HPbtg3vuyevtX+fmzTB9Olx5ZX79226DdesG+rdsgQjo7ISpU+GWW+C66wb677hjJfv3Q2/vUo4+GjZsgI0bB/p7enLdK1cyYca0fTvs3QtXXYVjckyTZkxXXPGx3o6Ojs56cijyBXcPDa2tram7u3u8y6hbW1sbAF1dXeNah6SRRcSmlFJrPcs6vSBJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBRm6klSQoStJBTVF6EZER0R8PyLurm5vqum7JCK2RcSWiDivpn1B1bYtIj48PpVL0ugcNt4F1PhMSunTtQ0RcTpwEXAGMBO4OSLmVt2fBd4A7ATuioj1KaUHShYsSaPVTKE7lAuBNSmlfcB3I2IbcE7Vty2l9CBARKypljV0JTW1ppheqFwcEfdGxNURcWzVdjKwo2aZnVXbcO2S1NSKhW5E3BwR9w1xuxC4EngxcCbQCyzrf9oQq0ojtA/1uu0R0R0R3bt27RqDkUjSc1dseiGl9Pp6louILwAbq4c7gVk13acAPdX94doHv24n0AnQ2to6ZDBLUilNMb0QETNqHr4FuK+6vx64KCKmRcQc4DTgTuAu4LSImBMRU8k729aXrFmSnotm2ZH2qYg4kzxFsB14D0BK6f6IWEveQfYM8P6U0rMAEXExcCMwBbg6pXT/eBQuSaPRFKGbUnrnCH2XAZcN0X49cH0j65KksdYU0wuSdKgwdCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgqa0tHRMd41FLNsWWdHX187LS2wdi3ccAPMnQvLlkFfH+zYAddeCzNmwDXXQFcXzJoFl18Ou3fD1q2wejXMng0rVsCdd0JLCyxfDvv2wT335PX2r3PzZpg+Ha68Mr/+bbfBunUD/Vu2QAR0dsLUqXDLLXDddQP9d9yxkv37obd3KUcfDRs2wMaNA/09PbnulSuZMGPavh327oWrrsIxOaZJM6YrrvhYb0dHR2c9ORQpHTqXDWttbU3d3d3jXUbd2traAOjq6hrXOiSNLCI2pZRa61nW6QVJKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCDF1JKsjQlaSCmiZ0I+IPImJLRNwfEZ+qab8kIrZVfefVtC+o2rZFxIfHp2pJGp3DxrsAgIh4DXAh8EsppX0RcWLVfjpwEXAGMBO4OSLmVk/7LPAGYCdwV0SsTyk9UL56SapfU4Qu8D7gL1NK+wBSSg9X7RcCa6r270bENuCcqm9bSulBgIhYUy1r6Epqas0yvTAX+PWI+M+I+FpE/HLVfjKwo2a5nVXbcO2S1NSKbelGxM3ASUN0XVrVcSzwKuCXgbUR8SIghlg+MfQfizTM67YD7QCnnnrq6AuXpDFULHRTSq8fri8i3gd8KaWUgDsjYj9wPHkLdlbNoqcAPdX94doHv24n0AnQ2to6ZDBLUinNMr1wHfBagGpH2VTgEWA9cFFETIuIOcBpwJ3AXcBpETEnIqaSd7atH5fKJWkUmmVH2tXA1RFxH/AU8K5qq/f+iFhL3kH2DPD+lNKzABFxMXAjMAW4OqV0//iULkn1a4rQTSk9BfzmMH2XAZcN0X49cH2DS5OkMdUs0wuSdEgwdCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgoydCWpIENXkgqKlNJ411BMRDwGfHsUT3kh8NgYLHcw/ccDj9RRQ7Oo93fWLK/zXNcz2ufVs/zBLuP7aPxe57SU0gvrWjKldMjcgM5GLH+g5Q6mH+ge799bI3/H4/06z3U9jXgvHewyvo8mxvvoUJte2NCg5Q+03MH2TySlxjJWr/Nc19OI99LBLuP7aPxep+71HFLTCxNRRHSnlFrHuw5NbL6PmsehtqU7EXWOdwGaFHwfNQm3dCWpILd0JakgQ1eSCjJ0JakgQ3eCiogXRcRVEfFP412LJp6IODIiromIL0TEO8a7nkOJoTsOIuLqiHg4Iu4b1L4gIrZExLaI+PBI60gpPZhS+p3GVqqJZJTvq7cC/5RS+j3gguLFHsIM3fGxElhQ2xARU4DPAm8ETgcWR8TpETEvIjYOup1YvmRNACup830FnALsqBZ7tmCNh7zDxruAQ1FK6esRMXtQ8znAtpTSgwARsQa4MKX0SWBh2QqLE2HkAAAHQUlEQVQ1EY3mfQXsJAfv3bjxVZS/7OZxMgNbHpD/U5w83MIR0RIRnwNeERGXNLo4TVjDva++BCyKiCuZXF8fbnpu6TaPGKJt2G+upJT6gPc2rhxNEkO+r1JKTwDvLl2M3NJtJjuBWTWPTwF6xqkWTR6+r5qMods87gJOi4g5ETEVuAhYP841aeLzfdVkDN1xEBGrgduBl0bEzoj4nZTSM8DFwI3AfwFrU0r3j2edmlh8X00MnvBGkgpyS1eSCjJ0JakgQ1eSCjJ0JakgQ1eSCjJ0JakgQ1dNKyKWR0RXgdfpGHw6xAMs3xYRKSKOb1A9SyPiXxux7jpee2FE3B0RZkOD+IvViCLi5yLiioj4TkTsi4jvR8QNEfGm8a5ttCJidhWWgy9F/mng1aNY1W3ADKCvWu/SiNgzRjVOBf4C+FhN2/SI+ER1PtwnI+KRiLg1IhYP8fzPRcRnnuvrp5Q2kk/16InNG8QT3mhY1WkCbwV2A5cA95D/UL8O+Bxw6njVNpZSSnuAukMzpfQU8FCDynkb8GRK6Ws1bZ8DfhX4IHAfcBzwyurnT0REAOdz8IH598AHgP97kOvRUFJK3rwNeQOuJ58c5agh+o6tuX8q8M/kcN5NPm3gKTX9HeSwuAj4TrXMdcDxNctMIW9x/rC6XQ5cCXTVLNMFLB9Ux0pgY83jAP4I+Dawj3zCl09WfWnQrau2vur+ecBTQMug1/kEcE91v616/vE192tvHcBH+9c5aD23An87wu98I/A3g9p+BPxuHf9e55C3vg+rGe/7gC8De4GtwGvIJ725EXiCfD7dswat59TquS8Z7/fgZLw5vaAhRcRx5KsQLE95S/CnpJR+WC0X5AD9OeC15P/UM4Hrqr5+s4H/CbwFmA+8Arispv+PgN8D3gOcSw7h57LF9gngT4FPAmcAb2fgfLLnVD8XkKcH3jrE828mB9fb+xuqcSwGrh1i+duA/0UOtRnV7dPA1cAvRMQ5Net5KfArwFUj1P9rQPegtoeABRHxwhGeB/Bm4Cspn2+h30eANcDLq/Wurl5/BfnfoIf8h+snUkr/DfyA0U25qF7jnfremvNGDqgEvOUAy72BPAc4u6btRcB+4PXV4w7gSeCFNctcSr6iQf/jHuDSmsfPI2+ZddW0dTHCli5wVPU67x2m1tnVmFoHtXdQs1UKfAb495rHv1aN8eTqcVu1nuOrx0uBPUO83kbgczWP/wroHuF3eUy13tcMav8N8h+Op4FvAMuBNwzx/PuBt9Y8TlRb+dXjl1Vtf1jT9lNjqWn/BvDx8X4fTsabW7oazlAnvx7KLwI9KaXt/Q0pXxqmh3xNrn7fSyk9VvO4BzgRoNqCm0E+Q1b/OvYD/znKmk8HpgG3jPJ5g10L/GpE/Hz1+B3k8P/+KNfzBeCiiDiiulbZOxl5K/eI6ueTtY0ppa+T/5C9FlgLzAVuiojP9y8TES+plrlx0Drvrbn/g+rn5iHaBl9378c19WgMGboazrfJW0C/eIDlguGvcFHb/vQQfaN9/+3nZ/8YPH9QLQctpbQJ+BawJCKeT55qGGpq4UC+Qp52WAS8ibwlu3qE5fvIv5djh6jp6ZTSv6eU/jKlNJ88hdJec020NwO3pHxFiFq1v/c0Qtvgf4vjgF0j1KrnyNDVkFJKj5K3mi6OiKMG90fEMdXdB4CTay+IGBEvIs/rPlDnaz0G9AKvqllHMDAH228XeYu41str7j9A3nn2umFe6qnq55Q6yvoieQt3AXAksG6EZZ8aap0pz62uBH67un0ppfSj4VaS8lERD/DTnxCG0/+77f+3uZA8t37QIuJw4MXkKQaNMUNXI/l98tZjd0S8PSJeGhG/EBHvY+Bj683kQ8m+GBFnV8fAfpH8H3Y0B/hfAXwoIt5W7XC6nJ8N2H8F3hgRF1S1/A01l6JJKe2u1vPJiHh3RLw4Is6p6gV4mPyx+bzq+OORdkxdSw6/jwPrU0qPj7DsduDwiHhDRBwfEdNr+v6OvENqISNPLfS7kTyH/BMR0RUR76l+v7OrY6Q/AWwB/isiTiD/wRqrC0y+ivzH69YxWp9qGLoaVkrpu8BZwFfJO4HuJQffBeSjDEh5r8ubyVuhXcC/kfe2v7nqq9cy8vGhf0eey30eObxrXV1zu5V8bO0/D1rmkqrWPyVfKWEd+RCp/i3PDwC/S55T/vIIY/8e8B/kLekRpxZSSreRj6VdTf49fKim70Hga8B/k38/B/IF8pEKtcfg3kieD76RPO2xAvh38s60Z8nH5t6VUvrB4JU9R4uBL6aU9o7R+lTDK0dIDRYRD5BD7LIDLpyXXwPcn1L6eJ3Lfxm4NaX0qYMos39dJ5CDvbX6o6sx5pau1CARcWJEfJB8qNrnD7B4rQ8BI01nDHYrI++gG405wO8buI3jlq7UIBGRgEfIx8X6lVoBhq4kFeX0giQVZOhKUkGGriQVZOhKUkGGriQVZOhKUkH/H3ijCLmRFekMAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -114,42 +114,36 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "CPU times: user 46.6 ms, sys: 3.47 ms, total: 50.1 ms\n", - "Wall time: 54.3 ms\n" + "Wall time: 77.8 ms\n" ] } ], "source": [ "%%time\n", - "prob = EM1D(mesh1D, sigmaMap=expmap, verbose=False)\n", - "if prob.ispaired:\n", - " prob.unpair()\n", - "if TDsurvey.ispaired:\n", - " TDsurvey.unpair()\n", - "prob.pair(TDsurvey)\n", - "prob.chi = np.zeros(TDsurvey.n_layer)\n", - "d_true = TDsurvey.dpred(m_true)" + "sim = simulation.EM1DTMSimulation(mesh1D, survey=TDsurvey, sigmaMap=expmap, verbose=False)\n", + "sim.chi = np.zeros(TDsurvey.n_layer)\n", + "d_true = sim.dpred(m_true)" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "(70,)" + "(116,)" ] }, - "execution_count": 26, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -160,12 +154,12 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -185,28 +179,28 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "np.random.seed(1)\n", - "TDsurvey.dtrue = d_true\n", "std = 0.05\n", - "noise = std*abs(TDsurvey.dtrue)*np.random.randn(*TDsurvey.dtrue.shape)\n", + "noise = std*abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise\n", "floor = 0.\n", "std = 0.07\n", - "TDsurvey.dobs = TDsurvey.dtrue+noise\n", - "uncert = abs(TDsurvey.dobs)*std+floor" + "uncert = abs(d_obs)*std+floor\n", + "dataObj = data.Data(TDsurvey, dobs=d_obs, noise_floor=uncert)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbgAAAE4CAYAAAApeuZrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd4FFXj9vHvyYaEpkGKiFQhVCmWCAQQgnTpFoqgjxQDiogoKoLYqHalCShFUCkqShFBepHQEVARKdKlqiglCUnO+8fi8/rwE0zIZmd29/5cV/7IZDJ7cw1cNzNz5hxjrUVERCTYhDkdQEREJCuo4EREJCip4EREJCip4EREJCip4EREJCip4EREJCip4EREJCip4EREJCiF++uDjDFhwEDgamCDtfYDf322iIiEnnRdwRljJhhjjhljvrtoe2NjzA5jzC5jTN9/OUxLoAhwHjh4ZXFFRETSx6Rnqi5jTG3gNDDZWlvxwjYP8BPQAG9hrQfaAx5g6EWH6Hzh6zdr7VhjzKfW2nt89qcQERG5SLpuUVprVxhjSly0uSqwy1q7B8AYMw1oaa0dCjS7+BjGmINA8oVvU9Pzufnz57clSlz8sSIiEqo2btx4wlpbID37ZuYZXGHgwN++PwhUu8z+M4ERxpjbgRWX2skYEw/EAxQrVowNGzZkIqKIiAQTY8y+9O7rt0Em1tqzQJd07DcOGAcQExOjpQ5EROSKZOY1gUNA0b99X+TCNhEREcdlpuDWA6WNMTcYYyKAdsBsX4QyxjQ3xow7deqULw4nIiIhKL2vCUwFEoCyxpiDxpgu1toU4FFgAbAdmGGt/d4Xoay1c6y18VFRUb44nIiIhKD0jqJsf4nt84B5Pk0kIiLiA5qqS0REgpIrC07P4EREJLNcWXB6BiciIpnlyoITERHJLL+96O2U0aPh11+hXj2IjXU6jYiI+Isrr+B89Qxuxgzo0QMGDIDatWHmTB8FFBER13NlwfnqGdzOnVDDJNCXocSkJHD33dC0KcyeDSkpPgorIiKuFNS3KFvkW8UzNg6DJZkI3rhzCaM3x9KyJRQuDF27er+KFHE6qYiI+Jorr+B8pdKuL/CQioc0cpDIcxtbc6DNE3zz3FfcWu4ML78MxYtDixbw5ZeQmq5FfEREJBAEdcFx992YHDnA44Fs2aBoUTxjRlNj0J3MWnENZ26rw/xag0hZtYaWzVIoWRIGDoTDh50OLiIimZWuFb39zRjTHGgeHR390M6dOzN3sIQEWLYM4uK8wyjPnYNVq2DRIu/Xpk0AJOeMYl2uukw9Xp8lYQ0o36I03bobGjSAsOD+b4CISMAwxmy01saka183FtxfYmJibJYveHriBCxZAgsXer/2edfSOxhWlAVpDdhaoD4lH6pH257Xct11WRtFREQuTwV3payF3bth0SJSv15E6teLiTjzOwBbqMK+0vUp2qk+VXrWJix3Tv/lEhERQAXnO6mpsGkTJ6Yu5PdPF1H0wDdEkkwyERwpWYO8bRuQu1V9uPVWWLfuf2+FioiIz6ngskjir2dZ/cpKjn60iPKHFnITWwBIyZEbT9I5bJrFRkbiWbpYJScikgUyUnCuHD7h1tUEsufNyR2vNKL9wdeI+P5bnnvoKF1yTmXzubKQlkoYaYQlneP488MhLc3puCIiIU1XcJl07hwMappA/6X1iCCJMCxhWNIqVyFsyGC4804wxumYIiJBIeCv4AJJjhzQbHAsd0Ys5nkziDqsoCNTOPDDn9CsGbZGTe+zORER8SsVnA/ExsLQZbFcNfhZXvmmFh2/6kibyj8Sz1iObtgPdeti6zfwDkQRERG/0C3KLGItfPEFDOp/jtrbxzDAM4S8qSewLVtiBg6ESpWcjigiEnB0i9IFjIHWrWHdthxU/bg39Urs4TkGcnruMmyVKtj77vMudyAiIllCBZfFPB5o3x7W/3gVpSY8R61CexhmnyFx+ixsufLw0ENw4IDTMUVEgo4rC86trwlkRng4dOoE63fnJc/oocQW2M2ItEdIHj+ZtFLR8PjjcPSo0zFFRIKGKwvOVwueulFEBDz8MCT8fB2pbw6n+jU/MfF8R1KHjyS1REno3x9++83pmCIiAc+VBRcKcuSA3r1hxb7iHBsynmq5f2BGYgsYMsRbdEOGwOnTTscUEQlYKjiH5c4Nzz4Li/aXYfuAqcTm+JZ5f9wO/fuTUqIUvP02JCY6HVNEJOCo4FwiTx54+WWYs78KK5+aTZ3IBFacrAi9e5NSsjS89x6cP+90TBGRgKGCc5n8+eHVV2Haz9X5oudiGoUvZsORIhAfT0rZChzo+hLLGg5h27gEp6OKiLiaXvR2uf37YdBAy7EJc3k9rTfR7MYCSUSyc+xSKsVr1QIRCR160TuIFCsG494zvL6jOV9d15lUwjBAJEnkGdIH/vzT6YgiIq6kggsQ0dEQ91JdkojkPB5S8FB432pSy5SDTz7xzg0mIiL/5cqCC8YXvX2hUnwsu8cuZmX9gbzdeiV1sq3hu+MFoU0b7J13wu7dTkcUEXENPYMLYD/9BN27plBp5SiGeAaQI/w8Yf37wdNPQ2Sk0/FERHxOz+BCRJkysGhZOOXf7cUt2bczM6UFPP88tnJlWLLE6XgiIo5SwQW4sDDo3h0W/1iYD5pMpxHzObgvFerVgw4d4MgRpyOKiDhCBRckihSB2bOh09RG1LxqG4PCnidl+qfYcuVg9GhITXU6ooiIX6nggogx0K4dbNqegx33vUSF1G2sSYmBHj28y45v3Oh0RBERv1HBBaH8+WHKFHhnXhnaXrOQDnzEH9/vx1atCo89BhqdKiIhQAUXxJo0ge9/MOR99D6Kn/2Rybkexo4cCeXLw/TpendORIKaCi7IXXUVjBgBc1flYVjhkVS1a9mbVMh7L7NRI9i50+mIIiJZQgUXImrWhM2bofFzt1H21Dr65R5O8qq12EqV4KWXtCSPiAQdFVwIyZ4dBg6E9Zs8LCzXk+LnfmRl/tbw4otQuTIsXOh0RBERn1HBhaDKlSEhAfq8XojGv06lVc6vOXXKQsOG0L49/PKL0xFFRDJNBReiwsPhySdh2zb4o1oDCh7bxsTiL5L22UwoVw6eeAIGD/Y2oYhIAHLlXJTGmOZA8+jo6Id2ahBElrMWJkzwFl6Rczv5+toOXH9wPRZIi8yBZ+li73t0IiIOC/i5KK21c6y18VFRUU5HCQnGQJcu8MMPUPrO0ow42IpUDAYISzrH4RGfOR1RRCTDXFlw4ozrr4eZMyGiQV2SyE7Khb8eeT8bB8uXO5xORCRjVHDyP4yBxi/FcmfEYgYwiDbM4IinMLZBA+99TBGRAKGCk/8jNhaGLovlqsHPUuTxe6maksAKE+e9j/nUU5q4WUQCgisHmfxFC566w5Yt0KFtCo/s6MUjjCataXPCpn7knSZFRMSPAn6QibhLlSqwblM4W+JH0YORpH05j6SqtWDfPqejiYhckgpO0iVnThg7Fup91oO2ueeR+ONezlWuik1Y43Q0EZF/pIKTDLnrLnj7h4b0jFnD4T9yc75WHGff/9jpWCIi/4cKTjKsaFGYuKY8X/Rdy5q0auR8qAMHOz8PaWlORxMR+S8VnFwRjweeHJqfiOULmZ67M0UmDuSHKu1I/fOs09FERAAVnGRS9doRND7wPh/e9BrlvvuUnYXrcHjDYadjiYio4CTzovIYOmzqw7JeX1Dkz+1QtSpLXt/kdCwRCXEqOPEJY+COt1twctY3hIWHUe2p2xnTcCZndcdSRByighOfKt6iCnl3reNEocp0X3g3Y28YytYt7p1MQESClwpOfC6i2HUU37OUX+q2p/exfmy95UFGvZmEiyfNEZEgpIKTrJE9O4UWf8SZZ16mY9pkqjxZjw4Nj3P8uNPBRCRUqOAk6xhDrmEDsNOmUz3bRoYsqsq95b9j4UKng4lIKPBbwRljbjfGjDHGvG+MWe2vzxXnmbZtCP9mBYULJDH3txq81XAeTz8NyclOJxORYJaugjPGTDDGHDPGfHfR9sbGmB3GmF3GmL6XO4a1dqW1tjswF/jgyiNLQLrtNrJtWkfOStHMNc1Jfu1tqlS2PPkkJCQ4HU5EglG6lssxxtQGTgOTrbUVL2zzAD8BDYCDwHqgPeABhl50iM7W2mMXfm8G0MVa++e/fa6WywlCZ87AAw/AzJl8QUvWE8MKTz1eWRFLjRpOhxMRt8vIcjnh6dnJWrvCGFPios1VgV3W2j0XPnQa0NJaOxRodolgxYBTlys3Y0w8EA9QrFix9MSTQJIrF3zyCVtjOtFq82RaMIuk1MF0vm8JpdbGUrCg0wFFJFhk5hlcYeDA374/eGHb5XQBJl5uB2vtOGttjLU2pkCBApmIJ64VFkZUtXKkEkYYkJ1E+u57mFbldzB7ttPhRCRY+HUUpbX2BWutBpgIxR+Ig8hI0owH6wmnUsSPrPqtAqda3k+/e3fy57/ewBYRubzMFNwhoOjfvi9yYZvIv4uNxbN0MWGDBxK2cgVhB/ZD7ydoG/4ZAz8tx8Lr/8PG6bucTikiASxdg0wALjyDm/u3QSbheAeZ1MNbbOuB+6y132c6lDHNgebR0dEP7dy5M7OHk0By9CiHer1K3hnvks0ms6XyA1Sa/hwR5Uo6nUxEXCAjg0zS+5rAVCABKGuMOWiM6WKtTQEeBRYA24EZvig3AGvtHGttfFRUlC8OJ4GkYEEKT3uD1J/2sPTGnlTYOhVTviy/3d0V9u51Op2IBJB0X8E5Qa8JyPyJv7C/xzAeODeWbGGphHXuhHmuPxQv7nQ0EXGAz6/g/M0Y09wYM+7UqVNORxGHNe5UiJY/v0O3ersZndad8+M/wJYuDd27w/79TscTERdzZcHpFqX8XcGCMGlhYXK8N4JK2Xcx3nQl9f0JEB0NjzwCBw86HVFEXMiVBSdyMWOga1eYt60oE24dzQ2pu1hUrDP2/fehVCno2RMOH3Y6poi4iApOAkqpUrBiBXQfXIwm+8ZQPe9ODtb7D4wZAyVLQq9e8MsvTscUERdQwUnACQ+Hfv1g7Vr4M29xin41jhfv+4mUdh1h1Chv0fXuDUeOOB1VRBzkyoLTIBNJj1tugY0bvRdtL02+gUpr32fbZz9B+/YwYoS36Nq3h/79tWSBSAjSawISFBYtggcfhKNH4YUXoO89uwh/4jH46ivvDhERsGwZxMY6GVNEMingXxMQyaj69WHbNrjnHhgwAGp3juZkhdsh7MJf8eRkeOklcPF/6ETEt1RwEjSuuQamToWPP4bt2+HeUXEkh0WSajzYMA8sWOC9zEtKcjqqiPiBKwtOz+AkM9q3917N/Vkxljopi3nODqSuZwUHur4EkydDvXpw/LjTMUUki7my4PSit2RWkSLQujWsNbEM41mWn69B573PkzxlundkStWq8L1Ppk4VEZdyZcGJ+ELdupA9O3g83q9Fi6Dc821YMXA5NjHRO+Dkr0EoIhJ0VHAStGJjYfFiGDgQVq70FlyOHFDnqao8UG49iUVKQbNm8M47GnwiEoT0moCElPPnYeRIePFFMGfP8M0NHblx5xfQrZv33bls2ZyOKCKXodcERC4hWzbvJCc7dkCrDrmotPMzRubuC2PHYps0gd9+czqiiPiIKwtOoyglq113HUyaBN+sDmNimaH8h0mkLFlB0s3VQavIiwQFVxacRlGKv8TGwrp1UHPsf2iZewl/7PuVM5Wq8eesJU5HE5FMcmXBifiTxwPx8fDh3lqM6LCWvUmFyN6qESsfGEdamtPpRORKqeBELsibF17+sCSpK1azMU99bp/SjenX92ZdQqrT0UTkCqjgRC5S+fYoqh2bw/ZGvWh/9G2O12hBj/v/4Ngxp5OJSEao4ET+gckWTvn5b3PurTE0Ngt4+MOa1I/ey/DhkJLidDoRSQ8VnMhl5Hi8G56FCyh/9UFWJFZleq9vuPlm78o7IuJuriw4vSYgrlKvHp51a4gqkYcV4XdQ/5cp1K0L7drBwYNOhxORS3Flwek1AXGdsmUxa9bgub0mb518gBW1+jHr8zTKloVhw2D5chg6VAuHi7hJuNMBRAJG3rzeNeV69OD294ZyotEOumSbzLPP5sIYMAYiI73zX2rhcBHnufIKTsS1smWDsWPhrbfItfALph2uzeP3HsJaSEuDc+dg4kSnQ4oI6ApOJOOMgccfh9KloX17Xtl/G2ezDSJfylGW2Tjeey+WQ4e8tywrV3Y6rEjo0hWcyJVq2hRWryYi3DLmfBcG2/6szFaXKY8ksHo13HQT3H8/7N3rdFCR0KSCE8mMihWhc2cMYLB4zifR8fO7OfTMcF7ocYJPP4UyZbwXfMePOx1WJLSo4EQyq1kz70qqHo/3GV1UFDmf7cULY6/nZN27eSNuDu8OP0+pUvDyy3D6tNOBRUKDCk4ks/6+dPjy5bB9O2zbBo89Rs6Nq+i5sAVn8hZlSsE+TH/he0qV8i66mpzsdHCR4ObKFb2NMc2B5tHR0Q/t1NpcEsjOn4f5871DK+fMgZQUfrwqhuF/dmJN8XY8NTQvbdtCmP6rKZIuGVnR25UF95eYmBi7YcMGp2OI+Mbx4/Dxx9iJEzFbtpBsIvjctmJlyQdpPqIhDZt4MMbpkCLulpGC0/8bRfylQAHo1Qvz7beweTPZHu1Oy9yLGbnnTio2Lca0En3Z9smPTqcUCRoqOBEn3HQTZvg7ZD95mPPTPiOp4q3cu/91KrUpz0/5Yjk6cBxoLlaRTFHBiTgpIoJsbe+i5LbZnPvpIAvqv0bqb39Q8PluJOe7jrN3dYCFCyE11TvRpSa8FEk3PYMTcZmjRyyTH9tA7s8m0S7tY67hd9LyX0vY77+CtRARoQkvJWTpGZxIACt4neGpGbfR8KdRPN7mF9ownT2/RmFTUiA1FZuYBEuWOB1TxPVUcCIuVaoUfDA9O89uasOwch+QSHbSAGPTODt2Mqxf73REEVdTwYm43M03Q6mOsdQ3S+jPYPoxiFOHTmOrVYNHH9VgFJFLUMGJBIC4ONicPZbXPP14I6I/t+fbznDbk9RR73I+uhxMm+Z9Pici/6WCEwkAf58NbNky2LbvahKHvcMdudbx7Yki0L49SXGNYNcup6OKuIZGUYoEsBMnYNBLqaSNHsPAtH7k8iSR2rcfkQOe8S4vLhJkNIpSJETkzw9vj/Dw2I4e9Gn6I5+ktiZy8Av8XrwyqQs10lJCmysLzhjT3Bgz7pQenoukS3Q0vDe3ECVWT6V3hQWcOJqKp2E9Dt1xP/bIUafjiTjClQVnrZ1jrY2PiopyOopIQImNhTe/a8i2j7Yx8poBFFg6ndNFy7G//1hIS3M6nohfubLgROTKGQOt78tB/JGXmdF/K99yM8WGdGdnwZr8Mn+L0/FE/EYFJxKkIiKg46ByVD6+mGnNphB1YjcFmtzKyqpPcuqQlhWX4KeCEwlyUXkM7eZ0JGnrDlaU7srt69/kdLHyzO36BclJ7h1FLZJZKjiREFG00jXc8dMYdkxcTWLOvDQb35qVeVvy1Zh9ekdcgpIKTiTElH0wlpK/bmR719eJTVxC7YcrMPqGV1mz8rxW5JGgohe9RUJYyp79HLy7FyW+/YJtVORd04M8/MbqbHEMXRarFXnEdfSit4ikS3jJYpTY/DmJ02dROOI4o+3DDLL9+Cr5Dn4Yr8s4CWwqOBEhe5sWnLn/YdIwhAHZSaT05OeYOeWMns9JwFLBiQgARbs0xEZmJ814sMZD7fNLqP5AaV6vMIEftqU6HU8kw1RwIuIVG4tn6WLCBg8k7JuVpK5cTdgNxXnqxy6kVL6Fsfcs5I8/nA4pkn4aZCIil2Ytf4z/hKQn+lLgz59ZHNGEMy++RvO+N2KM0+EkFGmQiYj4hjFc3bUNBY5v58Bjr1E1dTVN+1VmVqHubFukSZzF3VRwIvLvIiMp+k4fch3exY76j9L06HhKNIhmVrUh/HronNPpRP6RCk5E0i3s2vxUWPgO59Z/z88l69NyXX/OFSvD0s5TSD2v1QrEXVRwIpJhV8eUofLuz9k9fhl/5ixI3YkPsCNPVb4fvdzpaCL/pYITkStWqnMdyv6+joRHphCVdIwbe8SxqXgrTqz+yeloIv4rOGNMMWPMF8aYCcaYvv76XBHJWsYTRuyojlx9eAdf1R5C9P4lRNW8kW/rPEbKkRNOx5MQlq6Cu1BKx4wx3120vbExZocxZlc6SqsS8Km1tjNw8xXmFRGXuuraHDRZ/izHVu1kQZGuVFoxirOFo9n98OuQlOR0PAlB6b2CmwQ0/vsGY4wHGAU0ASoA7Y0xFYwxlYwxcy/6uhZYA3QxxiwB5vvujyAibhJdsyBN97/LsuHb2BBZk1JjnuJYvnKcHD0dzfsl/pTuF72NMSWAudbaihe+jwVetNY2uvD9swDW2qGX+P0+wDpr7QpjzKfW2nsusV88EA9QrFixW/ft25ehP5CIuMfZs/Bp90Xc9OGTVLZbOVSsOqfv6cQv350k391xVIrXcgWSMf560bswcOBv3x+8sO1S5gOPGWPGAHsvtZO1dpy1NsZaG1OgQIFMxBMRp+XMCQ9Mrk/uHZsYcdN4IvbvpOyb3aj9dT+iu9Vj2zitWCBZx2+DTKy131lr77HWdrfW9vHX54qI80qW9tBzc2dWVXn0bysWnOPs6ElOR5MglpmCOwQU/dv3RS5syzRjTHNjzLhTp0754nAi4hLRjzQikeyk4MFiiNnyHmsavUBKYorT0SQIZabg1gOljTE3GGMigHbAbF+EstbOsdbGR0VF+eJwIuISleJj2T12MasaDmTlgK9ZWvh+qn/9MtvyxbFxpp63i2+la5CJMWYqEAfkB44CL1hrxxtj7gTeBjzABGvtYF+G02oCIsHNWljf+2PKD+9Oqg1j+h3juPeTNuTN63QycauMDDLRcjki4rjTW/dwstF9FD+ylo8iO2PfGU6H+Fxakkf+j4BfLkfP4ERCS+7KJSm+fyVHu/ajfdJEbut+Cw/duonvv3c6mQQyVxacnsGJhKBs2Sj43mBYtJgieU4zenN1JlV+k75Pp3HmjNPhJBC5suBEJHSF1atLrl1bsU3u5LW0J6nzWlNqlz3KrFlOJ5NAo4ITEffJl4/ILz+H0aNpGLGMr49U5t1W82nRAvbudTqcBApXFpyewYkIxsDDD+PZuJ685a5lPk1o8NUT3FQ+iWHDIDnZ6YDidq4sOD2DE5H/qlgRs34d9OhBz5S32BQZy8Rnd3DzzbBc66vKZbiy4ERE/keOHDByJMyaRcnw/XwfeQvNjo4nLs7yn//AsWNOBxQ3UsGJSOBo0QK2bCG8RjVeOdmVLeXbMe/j3ylXDsaOhbQ0pwOKm6jgRCSwFC4MCxfC0KFU3jmTwwWq0KHEN3TvDjVqwObNTgcUt3BlwWmQiYhclscDffvCN9+QLUc4w7fU5tvWL7F/TwoxMdC2LbzwAiRoNZ6Qpqm6RCSw/fEH9OgBH37I+eq16BH1Ee8tKAZARAQsWwaxWlc1aGRkqq7wrA4jIpKlrr4apkyBhg3J9sgjvJNShQL0IY0wliXH0bNnLIsWQZ48TgcVf3PlLUoRkQy7/37YvBlbsBCDeY7B9GMJdxC5KYGKFWH+fKcDir+p4EQkeERHk7Prfdj/rhqeyMKS3agZsZ4mTaBrV9Cj/dChghOR4FKvHiZHdvB4MOHh5PxlN9N/rsqeonU4NmEulW5M4+uvnQ4p/uDKgtMoShG5YrGxsHgxDBwIK1bAL7/AG29wAz8z2zZn6fEbmdHofR7pnMgffzgdVrKSRlGKSGg4fx4++YS0V18jbMu3HOVapkT15LYJD1PnrnxOp5N0CvgFT0VEfC5bNrjvPsI2b4LFi4msfgt9Tg0g5u5iLK3Yk9Nb9zidUHxMBSciocUYuOMO8iR8ReL6bfxwYxtqfj+WHFVKc6zOvbB2rdMJxUdUcCISsrLHVOS27yay5Yu9vH/N00SsWAjVq5NaszbMnq3JLQOcCk5EQt5tLa/n/oNDeaXHAXrzFkfW7oOWLaFCBXjvPUhMdDqiXAEVnIgIkDMnDB15FXevfJx6JXbTjqns/zUXxMdD8eLeUZknTjgdUzLAlQWn1wRExCm1asGmreFc16sdJY5voEOhJZwsGQPPPw/Finnnvdy92+mYkg56TUBE5BJWrIBOnWDPHhjS4Xv6eN4k27QPva8c1KkD5ct7pwjTbM5+o9cERER8oHZt2LoVevaEfh/dSPlvxrNm2l7o2NG7TMG773qLTuvyuJIKTkTkMnLlguHDYelS76DKGncXYu7u8liPx7vD+fPQvz+4+G5YqFLBiYikQ1yc92rukUdg8Oo4EtMiSDUebJjH2349e+q1ApdRwYmIpFPu3DByJHQYEUs9u5jn7EBqmxUcat8HRo3yPo87f97pmHKBFjwVEcmgP/+EdZ5YElJjIRVa7ohlzcB8hA941rsezyefQI4cTscMebqCExHJoLg4iIgAjwfCw2HjJkPc/L788doYmDcPGjXSwnMuoIITEcmgi1fkmT4dNm2CSiO6sW/YVO+oyrg4OHrU6aghzZXvwRljmgPNo6OjH9q5c6fTcURE/tXGjd7ZvX7/HRb0nk/NN+6CIkVg4ULvTCjiEwH/Hpy1do61Nj4qKsrpKCIi6XLrrbB+PVSsCLUGNWZSh4XY48e9U6Ns3+50vJDkyoITEQlEhQp53//u2BE6vV+TvtWXY5PPw+23g2Zl8jsVnIiID2XPDpMnw7Bh8NqCytx17SpScl4Fdet635cTv1HBiYj4mDHwzDMwaxYs2htN1aRVnL22ODRp4t0ofqGCExHJIs2bewdU/p6rMNEHl3OiSBW4+2744AOno4UEFZyISBaqWBHWrYMysfkosXsxu4rGwYMPwttvOx0t6KngRESyWP788PXX0CE+Nzfu/ZKEQndB794wYIAmac5CKjgRET+IiIAxY+CNEZHEHZ3OzGu6wKBBmqQ5C2kuShERPzEGHn0UypYNp82973E4xzU8Oup1+O03mDQJsmVzOmJQ0RWciIifNWgAa9cZRhZ9lf5hQ+Hjj6F1azh71uloQUUFJyLigDJlYM1aw8YGfenGGNK+nIdt2MiF3bQ1AAAMiUlEQVQ715f4hCsLzhjT3Bgz7pRm4xaRIJYnD8ydCzkf70Z7ppKyei0ptetqkmYfcWXBaS5KEQkV4eHw1lvQaHxbWofN5vx3O0iufjvs2+d0tIDnyoITEQk1nTtD32WNuefqhZzdd5zEmJrwww9OxwpoKjgREZeoVQtGfVuTLqWW8/uJFM5Vrc2ufuNZ1mgo28YlOB0v4LhyPbi/xMTE2A2agVtEQszp09Cn1S6eX3w7hThCKmEkE8nusYupFB/rdDxHBfx6cCIioSx3bhj9dTRLiz0IQDhpRJDMyc+WOZor0KjgRERcKCwMKvdvQSLZsYCHVApVK+p0rICighMRcalK8bHsGruEGcX6cJz8FHr9SeyPO5yOFTBUcCIiLlYpPpY2e19j4oMrSTxn+aNqPeyen52OFRBUcCIiLmcMPD2hHOPuXUTqn2c5desdcPCg07FcTwUnIhIAjIF+0yrzTpMFhP1+kl9vqacZT/6FCk5EJECEhcGA2bfxap15RB4/yMlbG8DJk07Hci0VnIhIAAkPh+e/rsWQqrPIdegnTt7WGDRv7z9SwYmIBJiICHhuWX1eqvQZV//8LSerN4UzZ5yO5ToqOBGRAJQjB/Rf3ZQXy3xMnh8TOFGrJSQmOh3LVVRwIiIBKndueGrtvbxYfBJ5v13Cybr3QHKy07FcQwUnIhLA8uSBXhvu5+VC75JvzZecbHwfpKQ4HcsVVHAiIgEuf37otrEbg/O9Sb6ln/Frq86QluZ0LMf5reCMMRWMMTOMMe8aY+7x1+eKiISCQoWg48bevBo1iLxfTuG39o+Ai1eL8Yd0FZwxZoIx5pgx5ruLtjc2xuwwxuwyxvT9l8M0AUZYax8GHrjCvCIicgnFi0Pr9f0ZnutZrpkxlt87PxHSJReezv0mASOByX9tMMZ4gFFAA+AgsN4YMxvwAEMv+v3OwBTgBWNMCyBf5mKLiMg/KV0akhIGM7bqGbpNeptTV+Uiavggp2M5Il0FZ61dYYwpcdHmqsAua+0eAGPMNKCltXYo0OwSh+pxoRhnXllcERH5NxUrGZJWvs2kGud4cMRg/sydi6uGPOt0LL/LzDO4wsCBv31/8MK2f2SMKWGMGYf3KvC1y+wXb4zZYIzZcPz48UzEExEJXbfGGEovepdpng5cNbQfZ4a843Qkv/PbIBNr7V5rbby1toO1dtVl9htnrY2x1sYUKFDAX/FERIJOzdoerp03ic/D7iJX/8c5O/w9pyP5VWYK7hDw9+Vli1zYJiIiLnFHw3AiP5vKPHMn2Xt1I3H8h05H8pvMFNx6oLQx5gZjTATQDpjti1DGmObGmHGnNIGoiEim3dkqgnNTPmUpdcn20IMkT/3M6Uh+kd7XBKYCCUBZY8xBY0wXa20K8CiwANgOzLDWfu+LUNbaOdba+KioKF8cTkQk5N3dIQdHxsxija2G6dCelNnznI6U5Yx18TsSMTExdsOGDU7HEBEJGu+/cYqb+tSjcth3eObPw9PgDqcjZYgxZqO1NiY9+2qqLhGRENL1ySjWvLiAHWmlOX9nC9JWrXY6UpZxZcHpGZyISNZ59IV8LHhyIftSCpNUrwl2wkQYOhQSEpyO5lO6RSkiEoKshcHdD9B5XFUKcQRrwrARkXiWLobYWKfjXZJuUYqIyGUZA/3HFGVddEcAwmwaaUnJ7Ju8zNlgPqSCExEJUcbAqXp3kUTEX1tYTpyTkXzKlQWnZ3AiIv5R5j+xNI5YxkpqkY0UyuULnikS9QxORCTEJSTAJx8m0fHdGpTy7CXnzq1kK3HJqYUdpWdwIiKSbrGx8OaoSA6/PhVPShL7anWA1FSnY2WaCk5ERABo9kQZvmgwiuhDy9na/uJlPQOPCk5ERP6rzZwH+Dr/fVT45EX2TPnG6TiZ4sqC0yATERFnREQaKq16l0OeYkR2vo9T+353OtIVc2XBabJlERHnFCp7Nb+OnMq1KYf5rkY8Ns29gxEvx5UFJyIizrq5ezXWNB1EzcOfMP/e8U7HuSIqOBER+Ue1Zj3F1oL1qTPzMRImbHc6Toap4ERE5B8ZTxilVk0m0ZOLq+LbcWBnotORMkQFJyIil5QruhBnRn1AxdStrL79aZKSnE6Ufq4sOI2iFBFxj6Ld7mRns8dpe3QE41vNcTpOurmy4DSKUkTEXUp/OoxD195Mm/mdmPHWIafjpIsrC05ERFwmMpKCS6eRy5PItX3uZ/MG90/lpYITEZF0Ca9QhvNvjiQubSmLG77Cr786nejyVHAiIpJuV/f8Dycatufx355nUNME0tKcTnRpKjgREUk/Y8g/413O5ivGY2va82o/907l5cqC0yhKEREXi4riqrlTKWIOUeKV7sz70p1Tebmy4DSKUkTE3Uz1atiXBtKO6Xx17wT27HE60f/lyoITERH3y9b/ac7WqMewc4/Rp+l2zp1zOtH/UsGJiMiVCQsj5yeTCb86J8//2J7H4hOxLrpbqYITEZErd/31RH48iZvYQsUPn2HcOKcD/X8qOBERyZymTbGP9aIXw5nfYw5r1zodyEsFJyIimWZefYWUSjcx3naiR+vDHD/udCIVnIiI+EJkJOEzphIVcY7Xj3bkvrappKQ4G0kFJyIivlGuHJ5RI4hLW0rM0lcZMMDZOK4sOL3oLSISoDp1grZtGWQGsHTYGj7/3LkoxrppTOdFYmJi7IYNG5yOISIiGXHqFLbKTfzyC1SN+JYlG6MoU8Y3hzbGbLTWxqRnX1dewYmISACLisJMm0qh1AOMSO7GXa0tp0/7P4YKTkREfK96dczAgbROnk617ZNo1QqGDIGEBP9F0C1KERHJGqmp0LAhSSvWUDllEztNWbJnh8WLITb2yg6pW5QiIuI8jwemTCE1IgezaU4/O5BbkhJYtsw/H6+CExGRrHP99Rzr1Jey7ORlXuDrtHo0y+ef+5QqOBERyVIlCp/HGkMYlhxhyVQ6ucwvn6uCExGRrBUXh8meHTweTGQExMX55WPD/fIpIiISumJjvSNLli3zltuVjjDJIBWciIhkvdhYvxXbX3SLUkREgpIKTkREgpIrC06TLYuISGa5suCstXOstfFRUVFORxERkQDlyoITERHJLBWciIgEJRWciIgEJRWciIgEJVcvl2OMOQ7su2hzfuCEA3EuJwrIiiGfmT1uRn8/vfv/236X+3lGf+bG8w065xn5uc551h3XqfP9b/tc6meX2p6Rc17cWlsgXXtaawPqC9jgdIZ/yDTOjcfN6O+nd/9/2+9yP8/oz9x4vnXOdc7dclynzveVnvPLbM+Sc65blL4xx6XHzejvp3f/f9vvcj+/0p+5jc55+n+uc551x3XqfP/bPpf6mV/Pt6tvUf4TY8wGm87VXCXw6XyHHp3z0JNV5zwQr+DGOR1A/ErnO/TonIeeLDnnAXcFJyIikh6BeAUnIiLyr1RwIiISlFRwIiISlIKm4IwxccaYlcaYMcaYOKfziH8YY3IZYzYYY5o5nUWynjGm/IV/458aYx52Oo9kPWNMK2PMe8aY6caYhhn5XVcUnDFmgjHmmDHmu4u2NzbG7DDG7DLG9P2Xw1jgNJAdOJhVWcU3fHTOAZ4BZmRNSvElX5xza+12a213oA1QMyvzSub56Jx/Ya19COgOtM3Q57thFKUxpjbecppsra14YZsH+AlogLew1gPtAQ8w9KJDdAZOWGvTjDEFgTettR38lV8yzkfnvAqQD+9/ak5Ya+f6J71cCV+cc2vtMWNMC+BhYIq19mN/5ZeM89U5v/B7bwAfWWs3pffzwzP9J/ABa+0KY0yJizZXBXZZa/cAGGOmAS2ttUOBy92O+g2IzIqc4ju+OOcXbkXnAioA54wx86y1aVmZW66cr/6dW2tnA7ONMV8CKjgX89G/cwMMA77KSLmBSwruEgoDB/72/UGg2qV2NsbcBTQC8gAjszaaZJEMnXNrbX8AY8yDXLiCz9J0khUy+u88DrgL739i52VpMskqGTrnQE+gPhBljIm21o5J7we5ueAyxFo7E5jpdA7xP2vtJKcziH9Ya5cByxyOIX5krR0ODL+S33XFIJNLOAQU/dv3RS5sk+Clcx56dM5Dj9/OuZsLbj1Q2hhzgzEmAmgHzHY4k2QtnfPQo3Meevx2zl1RcMaYqUACUNYYc9AY08VamwI8CiwAtgMzrLXfO5lTfEfnPPTonIcep8+5K14TEBER8TVXXMGJiIj4mgpORESCkgpORESCkgpORESCkgpORESCkgpORESCkgpORESCkgpORESCkgpORESC0v8Dz+GVcnmEdq8AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -220,76 +214,67 @@ "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", "axes.plot(TDsurvey.time, -d_true, 'b.-')\n", - "axes.plot(TDsurvey.time, -TDsurvey.dobs, 'r.-')\n", + "axes.plot(TDsurvey.time, -d_obs, 'r.-')\n", "axes.set_xscale('log');\n", "axes.set_yscale('log');" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n" - ] - } - ], + "outputs": [], "source": [ - "dmisfit = DataMisfit.l2_DataMisfit(TDsurvey)\n", - "uncert = (abs(TDsurvey.dobs)*std+floor)\n", - "dmisfit.W = 1./ uncert" + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", + "dmisfit.W = utils.sdiag(1/uncert)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "m0 = np.log(np.ones_like(sig)*sig_half)\n", - "d_0 = TDsurvey.dpred(m0)\n", + "d_0 = sim.dpred(m0)\n", "# delta = prob.get_threshold(uncert)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ - "reg = Regularization.Sparse(\n", + "reg = regularization.Sparse(\n", " mesh1D,\n", - " mapping=Maps.IdentityMap(mesh1D),\n", + " mapping=maps.IdentityMap(mesh1D),\n", " alpha_s=1.,\n", " alpha_x=1.\n", ")\n", "p = 0\n", "qx, qz = 2., 2.\n", "reg.norms = np.c_[p, qx, qz, 0.]\n", - "IRLS = Directives.Update_IRLS(\n", - " maxIRLSiter=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, betaSearch=False,\n", + "IRLS = directives.Update_IRLS(\n", + " max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2,\n", " chifact_start = 1.\n", ")\n", - "opt = Optimization.ProjectedGNCG(maxIter = 25)\n", - "invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", - "beta = Directives.BetaSchedule(coolingFactor=2., coolingRate=1)\n", - "betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1e0)\n", - "target = Directives.TargetMisfit()\n", + "opt = optimization.ProjectedGNCG(maxIter = 25)\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2., coolingRate=1)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1e0)\n", + "target = directives.TargetMisfit()\n", "# update_sense = Directives.UpdateSensitivityWeights(threshold=delta)\n", "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", - "inv = Inversion.BaseInversion(invProb, directiveList=[beta, betaest, target])\n", - "prob.counter = opt.counter = Utils.Counter()\n", + "inv = inversion.BaseInversion(invProb, directiveList=[beta, betaest, target])\n", + "# prob.counter = opt.counter = Utils.Counter()\n", "opt.LSshorten = 0.5\n", "opt.remember('xc')" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 19, "metadata": { "scrolled": false }, @@ -300,28 +285,24 @@ "text": [ "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", "model has any nan: 0\n", "=============================== Projected GNCG ===============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 3.32e+01 5.47e+02 0.00e+00 5.47e+02 2.77e+02 0 \n", - " 1 1.66e+01 3.57e+02 1.34e+00 3.79e+02 6.65e+01 0 \n", - " 2 8.29e+00 2.05e+02 5.53e+00 2.51e+02 7.46e+01 0 Skip BFGS \n", - " 3 4.15e+00 5.46e+01 1.40e+01 1.13e+02 4.49e+01 0 \n", - " 4 2.07e+00 1.73e+01 1.62e+01 5.09e+01 3.52e+01 0 \n", - " 5 1.04e+00 7.93e+00 1.59e+01 2.44e+01 8.24e+00 0 Skip BFGS \n", + " 0 2.43e+00 1.16e+03 0.00e+00 1.16e+03 4.82e+02 0 \n", + " 1 1.21e+00 5.74e+02 4.35e+01 6.27e+02 1.84e+02 0 \n", + " 2 6.07e-01 8.45e+01 1.56e+02 1.79e+02 9.70e+01 0 \n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 5.4768e+01\n", - "1 : |xc-x_last| = 2.8751e-01 <= tolX*(1+|x0|) = 1.1037e+00\n", - "0 : |proj(x-g)-x| = 8.2367e+00 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 8.2367e+00 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 25 <= iter = 6\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 1.1626e+02\n", + "0 : |xc-x_last| = 1.6377e+00 <= tolX*(1+|x0|) = 1.1037e+00\n", + "0 : |proj(x-g)-x| = 9.6958e+01 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 9.6958e+01 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 25 <= iter = 3\n", "------------------------- DONE! -------------------------\n", - "CPU times: user 2.54 s, sys: 47.5 ms, total: 2.59 s\n", - "Wall time: 1.62 s\n" + "Wall time: 1.71 s\n" ] } ], @@ -332,52 +313,44 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 20, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "Counters:\n", - " ProjectedGNCG.activeSet : 6\n", - " ProjectedGNCG.doEndIteration : 6\n", - " ProjectedGNCG.doStartIteration : 6\n", - " ProjectedGNCG.projection : 27\n", - " ProjectedGNCG.scaleSearchDirection : 6\n", - "\n", - "Times: mean sum\n", - " EM1D.Jtvec_approx : 6.60e-04, 2.37e-02, 36x\n", - " EM1D.Jvec_approx : 3.95e-03, 1.42e-01, 36x\n", - " ProjectedGNCG.findSearchDirection : 3.25e-02, 1.95e-01, 6x\n", - " ProjectedGNCG.minimize : 1.58e+00, 1.58e+00, 1x\n", - " ProjectedGNCG.modifySearchDirection : 7.02e-02, 4.21e-01, 6x\n" + "ename": "AttributeError", + "evalue": "'NoneType' object has no attribute 'summary'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mopt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcounter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mxc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrecall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'xc'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'summary'" ] } ], "source": [ - "opt.counter.summary()\n", - "xc = opt.recall('xc')" + "# opt.counter.summary()\n", + "# xc = opt.recall('xc')" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 18, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -397,12 +370,12 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "image/png": "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wGkMTkQk9Zo2hYcegrffhssui7qa2otlwGkMTkQkGqee6i28Zs6EBx+MupraiWXAiYhIdMaPhxNOgKFDYdWqqKupOQWciIhso25dmD3bF4On83icAk5ERLbz05/6I8o334Rf/zrqampGASciIjt0+ukwZgzcey88/HDU1VRfLANOsyhFROJhwgQ4/ngYMgRWr466muqJZcBpFqWISDyUjsf96Efw85/77gPpIpYBJyIi8bH//j4et3IlXH551NVUnQJORER2qWtXGD0apk/3jifpQAEnIiJVMnEiHHecj8e9807U1eyaAk5ERKqkbl0A30OfAAAFVklEQVSYMwcaNPD1cXEfj1PAiYhIlTVr5uNxr78Ov/lN1NVULpYBp2UCIiLx1a0bXH01TJvmd3Rxpf3gRESk2jZtgi5d4I034JVX4JBDUvO52g9ORESSql49v3urX9/H4zZsiLqi7SngRESkRpo3hwcegNdegyuuiLqa7SngRESkxnr0gKuugqlTYe7cqKvZlgJORERqZdIkOOYYuPhiWLMm6mrKKOBERKRWSsfj6taN13icAk5ERGrtgAPg/vvh1Vdh5Mioq3EKOBERSYheveDKK2HKFJg/P+pqYhpwWugtIpKeJk+Go4+GQYPgvfeirSWWAaf94ERE0lPpeFxOjo/Hff99dLXEMuBERCR9HXggzJrlHU6iHI9TwImISML17u2Lv++6CyZM2PZ7RUVQWJj8GhRwIiKSFJMnQ5s2HnAPP+zHior80WV+fvI/v27yP0JERLJR/fqweDG0bw8XXghvvQUzZnjHk4KC5H++7uBERCRpWrSAhx6CzZv9jm7YsNSEGyjgREQkyXJzYffd4fLLvWdlUVFqPlcBJyIiSVM65rZgAdx2mz+e7NcvNSGngBMRkaQpLt52zK2gwF8XFyf/s7Wjt4iIpA3t6C0iIllPASciIhkplgGnZssiIlJbsQw4NVsWEZHaimXAiYiI1JYCTkREMpICTkREMpICTkREMlKsF3qb2SfA3ysc3gf4dwTlVCYXSMaUz9q+b3V/vqrn7+q8yr5f3e/F8XqDrnl1vq9rnrz3jep67+qcnX1vZ8erc80PDCE0qdKZIYS0+gJKoq5hBzVNj+P7Vvfnq3r+rs6r7PvV/V4cr7euua55XN43qutd02teyfGkXHM9okyMhTF93+r+fFXP39V5lX2/pt+LG13zqn9f1zx57xvV9d7VOTv7Xkqvd6wfUe6ImZWEKvYhk/Sn6519dM2zT7KueTrewU2PugBJKV3v7KNrnn2Scs3T7g5ORESkKtLxDk5ERGSXFHAiIpKRFHAiIpKRMibgzKyLmf3FzO4xsy5R1yOpYWaNzKzEzHpGXYskn5m13fpvfL6ZDYu6Hkk+M+trZjPM7BEzO606PxuLgDOzmWa23szerHC8q5mtNrM1ZjZ6F28TgK+BhsC6ZNUqiZGgaw5wNTA3OVVKIiXimocQVoUQhgL9gOOSWa/UXoKu+RMhhEuAoUD/an1+HGZRmtkJeDg9EEJov/VYDvAOcCoeWMXAACAHmFzhLS4C/h1C+MHMfgLcGkIYmKr6pfoSdM0PB36M/6fm3yGERampXmoiEdc8hLDezHoDw4AHQwh/SFX9Un2JuuZbf+4W4OEQwitV/fy6tf4NEiCEsMzMWlQ43AlYE0J4H8DM5gB9QgiTgcoeR30GNEhGnZI4ibjmWx9FNwLaAd+Z2VMhhB+SWbfUXKL+nYcQFgALzOx/AQVcjCXo37kB/wMsrk64QUwCbif2B9aWe70O6Lyzk83sTOB0YE/gruSWJklSrWseQrgGwMwuZOsdfFKrk2So7r/zLsCZ+H9in0pqZZIs1brmwGXAKUCumbUKIdxT1Q+Kc8BVSwjhMeCxqOuQ1AshzIq6BkmNEMKzwLMRlyEpFEK4A7ijJj8bi0kmO/Eh0Lzc62Zbj0nm0jXPPrrm2Sdl1zzOAVcMHGJmLc2sPnAOsCDimiS5dM2zj6559knZNY9FwJnZbGA50NrM1pnZoBDCZmA4sARYBcwNIbwVZZ2SOLrm2UfXPPtEfc1jsUxAREQk0WJxByciIpJoCjgREclICjgREclICjgREclICjgREclICjgREclICjgREclICjgREclICjgREclI/w+EOG5ddTkU1gAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -416,19 +389,17 @@ "source": [ "fig, axes = plt.subplots(1,1, figsize = (7,5))\n", "axes.plot(TDsurvey.time, -invProb.dpred, 'b-')\n", - "axes.plot(TDsurvey.time, -TDsurvey.dobs, 'bx')\n", + "axes.plot(TDsurvey.time, -d_obs, 'bx')\n", "axes.set_xscale('log');\n", "axes.set_yscale('log');" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "import pyMKL" - ] + "source": [] }, { "cell_type": "code", @@ -454,7 +425,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index 3338ef9..137c7ba 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,4 +1,4 @@ -from .EM1D import EM1D +from .simulation import BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD from .DigFilter import * from .EM1DAnalytics import * diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 0469d17..8f13030 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -526,7 +526,7 @@ def getJ_height(self, m, f=None): dudz = self.forward(m, output_type="sensitivity_height") self._Jmatrix_height = ( - self.survey.projectFields(dudz) + self.projectFields(dudz) ).reshape([-1, 1]) return self._Jmatrix_height @@ -546,7 +546,7 @@ def getJ_sigma(self, m, f=None): dudsig = self.forward(m, output_type="sensitivity_sigma") - self._Jmatrix_sigma = self.survey.projectFields(dudsig) + self._Jmatrix_sigma = self.projectFields(dudsig) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma From e0350574c088f0c6d3ef9e39f805676d5cbd1d46 Mon Sep 17 00:00:00 2001 From: dccowan Date: Thu, 7 May 2020 16:11:43 -0700 Subject: [PATCH 04/54] Basic stitched 1D inversion possible --- ...EM1D_inversion_FD_sensitivity_weight.ipynb | 2 +- .../examples/Test_global_em1d_inversion.ipynb | 797 +++++------------- .../Test_global_em1d_inversion_td.ipynb | 194 +++-- simpegEM1D/EM1DSimulation.py | 66 +- simpegEM1D/GlobalEM1D.py | 164 ++-- simpegEM1D/__init__.py | 4 +- 6 files changed, 401 insertions(+), 826 deletions(-) diff --git a/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb b/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb index b696375..083e699 100644 --- a/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb +++ b/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb @@ -508,7 +508,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/notebooks/examples/Test_global_em1d_inversion.ipynb b/notebooks/examples/Test_global_em1d_inversion.ipynb index c725cbc..271ced4 100644 --- a/notebooks/examples/Test_global_em1d_inversion.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion.ipynb @@ -14,11 +14,12 @@ } ], "source": [ - "from SimPEG import Mesh, Maps\n", + "from SimPEG import maps, data\n", "import numpy as np\n", + "from discretize import TensorMesh\n", "from matplotlib.colors import LogNorm\n", "from simpegEM1D import (\n", - " GlobalEM1DProblemFD, GlobalEM1DSurveyFD, get_vertical_discretization_frequency\n", + " GlobalEM1DSimulationFD, GlobalEM1DSurveyFD, get_vertical_discretization_frequency\n", ")\n", "from pymatsolver import PardisoSolver\n", "%pylab inline" @@ -72,7 +73,7 @@ "n_sounding = 50\n", "dx = 100.\n", "hx = np.ones(n_sounding) * dx\n", - "mesh = Mesh.TensorMesh([hx, hz], x0='00')\n", + "mesh = TensorMesh([hx, hz], x0='00')\n", "inds = mesh.gridCC[:,1]<25\n", "sigma = np.ones(mesh.nC) * 1./20.\n", "sigma[inds] = 1./30.\n", @@ -95,7 +96,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -145,7 +146,7 @@ } ], "source": [ - "mapping = Maps.ExpMap(mesh)\n", + "mapping = maps.ExpMap(mesh)\n", "# mapping = Maps.IdentityMap(mesh)\n", "survey = GlobalEM1DSurveyFD(\n", " rx_locations = rx_locations,\n", @@ -157,14 +158,13 @@ " field_type = 'secondary',\n", " topo = topo\n", ")\n", - "prob = GlobalEM1DProblemFD(\n", - " mesh, sigmaMap=mapping, chi=chi, hz=hz, parallel=True, n_cpu=2, verbose=True,\n", + "sim = GlobalEM1DSimulationFD(\n", + " mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, parallel=True, n_cpu=2, verbose=True,\n", " Solver=PardisoSolver\n", ")\n", - "prob.pair(survey)\n", + "\n", "m = np.log(sigma_em1d)\n", - "# m = sigma_em1d.copy()\n", - "prob.model = m" + "# m = sigma_em1d.copy()\n" ] }, { @@ -177,14 +177,20 @@ "output_type": "stream", "text": [ "Compute fields\n", - ">> Compute response\n", - "SimPEG.Survey assigned new std of 3.00%\n" + ">> Compute response\n" ] } ], "source": [ "# %%time\n", - "dobs = survey.makeSyntheticData(m, std=0.03, force=True)" + "# dobs = sim.makeSyntheticData(m, std=0.03, force=True)\n", + "d_true = sim.dpred(m)\n", + "std = 0.03\n", + "floor = 0.\n", + "np.random.seed(1)\n", + "uncert = std*abs(d_true)+floor\n", + "noise = std*np.abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise" ] }, { @@ -204,7 +210,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAecAAAEGCAYAAABfFV1zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOy9eXhUx53v/Tm9SOrWvm9obe0LYkeAwTbGxDi24wmOxxiSSeJlkty8kzzZntyZmzdzMzdzs03iZJJ5s9hZHJw44yU4xivCYAwCjFgkBBJo3/dd6r37vH8U3a3WhgBhhKnP8/yeOmqdU1WnTp36/qrOOVWKqqpIJBKJRCJZPGhudAYkEolEIpH4I8VZIpFIJJJFhhRniUQikUgWGVKcJRKJRCJZZEhxlkgkEolkkaG70Rm4FmJiYtT09PQbnQ2JRCK5qTh58mS/qqqxNzofktm5qcU5PT2dioqKG50NiUQiualQFKXlRudBMjdyWFsikUgkkkWGFGeJRCKRSBYZUpwlEolEIllk3NTPnCUSiUSyMJw8eTJOp9M9DRQhO27XGzdQ7XQ6H1+5cmXvTDtIcZZIJBIJOp3u6YSEhPzY2NghjUYjF124jrjdbqWvr6+gu7v7aeCBmfaR3pFEIpFIAIpiY2NHpTBffzQajRobGzuCGKWYeZ8PMD8SiUQiWbxopDB/cFwq61k1WA5rSyQSyQJit9sZHBykv7+fgYEBvzA2NpYtW7aQkZFx1fG3trby/PPP8/DDDyMnYfrwclOKs6Io9wP3Z2Vl3eiszEhPTw8nT55kdHSUzMxMTCYTUVFRKIoy6zEul4vx8XHCwsLm3A+gpaWFsrIy3nnnHSIiIti5cyfr1q277HGLgeHhYc6fP8+5c+e8Vl9fT0pKCiUlJV4rKirCYDDMGIfb7UZRlHmdb09PD8ePH6e6upqgoCBCQ0MJCwvzWmhoKMHBwX6m0Vz5gJLT6WR8fJyIiIh5H6Oq6qK6Zi6Xi8OHD3PhwgUsFgsWiwWz2ezdVhSF5ORkUlJSWLJkidcCAwMXJH1VVenr66Opqclrzc3NNDU1MTIyQmZmJtnZ2WRlZZGdnU12djbR0dELXoZut5uamhoOHz7MkSNHqKmpQa/XExQURGBgoDfU6/WMjY0xNDTkZxMTE5dNw2Qycffdd7NlyxY2b95MZGTknPv39PTwwgsv8Oc//5ny8nIAoqOjeeyxxxbknBcLRqNxudlsPr3Y4roRKKp6845irFq1Sr2aGcKeffZZdu/ejaqqeM7fE7rdbhwOBw6HA7vdjt1ux+Fw4HQ6iYuLIzU1lbS0NG+YkpJCX18fFRUVXmtra5uWZnh4uFeo4+LiGBwcpLe3l97eXnp6eujv70dVVSIiIsjLyyM/P99rJpOJ8+fPU1ZWRllZGfX19QDEx8czOjqKxWLBZDKxa9cudu3axVSnxWKxUFdXR21trbehGxsbY3R0lNHRUe+21WrFarVis9m8oc1mIzMzkw0bNnjNZDL5NYhOp5P6+nqqq6uprq6mubmZiYkJzGazXzg0NERXV5f3OKPRSH5+PllZWbS1tVFVVcX4+DgAGo2GnJwcQkNDmZiY8JrZbMZsNmMwGMjMzCQrK4usrCxMJhNZWVkYDAZOnDjB8ePHOXbsGC0tVz4RUlBQEMHBwSQlJZGdnU1OTg45OTneba1WS1VVFVVVVVRWVlJVVcW5c+ewWq0sW7aMbdu2ce+991JaWopO5/N/VVWlpqaGffv2sW/fPt599130ej3p6emkpaXNGEZERMwoPqqq0t7e7s1DQ0MDiqKg0+m8ptVqCQgIIDc3l2XLllFQUEBAQIBfPA6HgwMHDvDiiy+yZ88e+vr6pqVlMBgwGo24XC6Gh4en/T8mJoaEhATi4uKIj4/3hvHx8WRnZ1NQUEB0dPSMZd3d3U1ZWRn79u2jrKyMzs5Ov//HxsaSkZFBWFgYjY2NNDc343a7vf8PCQlBr9d7y2RqvqY6EikpKRiNRu897jGn00lrayuHDx/m6NGjDA0NARAXF0dJSQmqqvrdF1arFbvdTmhoKJGRkV6LiooiMjKS6OhooqOjiYmJ8Qubmpq81//gwYOMj4+j0WjIz88nMTHRrwzj4uJwOp28+OKL7N+/H7fbTVFRETt27OCRRx4hMzNzxjKdD4qinFRVddXk3yorK5tLSkr6rzrSBeBWE+fKysqYkpKS9Jn+d0uK89NPP81vf/tbAL8emGdbr9cTEBBAQECAd1ur1dLT00NLSwutra1YrdZp8WZnZ7Nq1SqvRUVF0djYSENDg9caGxvp7e0lJiZm2o0YGhpKU1MTNTU11NTU0NPT4xd/SEgId9xxB1u2bGHLli0UFBQwNjbGyy+/zO7du3nnnXdQVZV169axevVqryA3Nzf7NVxarXZa7zE0NBSDwTCtd6DT6Th//jxHjx5lZGQEEE7B+vXrMRqNVFdXU1NTg91u95ZhcnIyISEh3p6o0WgkODiYsLAwcnNzKSwspLCwkLS0NL9eqtvtprGxkcrKSq/o2Ww2v16tJ67x8XFvmdbX10+7HikpKZSWlrJ27VpKS0spKSnB5XL5OSMemyz+HgdgfHyc9vZ26urqaGhowOFwzFiXPI330qVLCQ8Pp6ysjCNHjuByuYiIiGDr1q2sX7+eM2fOsG/fPjo6Orx15a677kJRFFpaWmhubqalpWVarys0NNRPsCc7BoODg9794uPj0Wg0uFwunE6nN7TZbDidTgD0ej2FhYUsX76coqIiqqqq+Nvf/sbQ0BAhISHcd999bN++ndLSUoKDgzEYDAQGBvo5B+Pj43R0dNDe3k5bWxvt7e20t7d7ncyenh56e3sZGxubVk75+fkUFBSQl5dHS0sL+/bt4+zZs4DoBW7ZsoV169aRmZlJRkYG6enphISE+MVjt9tpamqivr6euro6WlpacLlc3v978up2u+nr6/Pms7Oz01sOc5GXl8dtt93Ghg0buO2226Y5oguJw+Hg+PHj7Nu3j8rKSm8Z9vb2ep1UgMzMTK8gFxXN+v7QFbHYxXnv3r2h3/nOd5KioqIcFy5cMBQXF5v37NnTNHVUa+/evaH/+q//mhQZGelsbGwMWrt27dgf//jHVq1Wi9FoXP7YY4/1vv322+FBQUHuvXv31qekpDj/9Kc/hX/ve99LdDgcmsjISOdf/vKXxpSUFOdrr70W8tWvfjUVRD0qLy+vjYyMdH/rW9+K/+tf/xplt9uVj370o8M/+clPOmfM/FUgxXmB8Qy/eYQ6IiKClStXXtGQ5nwYGhqipqaGuro6srKyWLNmjbeXMBPt7e386U9/Yvfu3TQ0NJCTk0NeXp6fmUwmgoODr7jBcbvdnDt3jiNHjnDkyBHKy8txOBwUFRX5WV5eHkaj8VpP/Yrz1tXVRX19PWNjY6xYsYKkpKQFi9/pdNLS0kJdXR0XL17E4XBQXFxMSUkJ8fHx0/YfHh6mrKyM119/nTfeeIPu7m6ioqK46667uPvuu7n77rtnfFaoqioDAwNeoZ5snt/sdjvFxcUsXbrU+wiguLiY8PDwGfPucrmor6/n9OnTnDlzhjNnznD69Gl6e3uJiIjggQceYPv27WzdupWgoKAFKzOz2Ux3dzcXL17k/PnzfjYyMkJgYCC33XabtzyWLVt2VY8T5ovL5aK3t5e2tjZsNhs6nQ69Xo9er/dux8TEEBUVdd3ycCWYzWZ6e3ux2Wzk5OQsuINwOXH+7Gc/m1JdXb2gN3JRUZH5t7/97fRhxUlMFucdO3aYzpw5cy49Pd2xcuXKvO9///vtH/nIR8Yn7793797Q7du3Z58+fbo6JyfHvmnTpuwnnnii/zOf+cyQoigrn3vuufpHH3105HOf+9ySsLAw1w9+8IOuvr4+bXR0tEuj0fDjH/84pqamJug3v/lN++bNm7O++c1vdm3dunViZGREYzQa3a+++mrYCy+8EPncc8+1qKrKli1bsr7xjW90b9u2bXy2c7gS5hLnm/KZ841GURRvb3f16tXXLZ3IyEjWr1/P+vXr57X/kiVL+MY3vsE3vvGNBX+eqdFoKC4upri4mM997nMLFu9CoNFoSE5OJjk5+brEr9PpMJlMmEwm7rnnnsvuHxERwUMPPcRDDz2Eqqq0tbWRnJyMVqud8zhFUYiJiSEmJoZVq1bNuM+VXletVktubi65ubk88sgj3t894jx1mHuhMBqNZGZmkpmZ6VdmqqrS09NDWFjYB+rEabVaEhMTSUxM/MDSvBaMRuMt/7JXcXHxhMlkcgAUFhaaGxoaZqysxcXFEwUFBXaAhx9+ePC9994L+cxnPjOk1+vVRx55ZARg5cqVE2VlZWEATU1NAQ8++OCSvr4+vd1u16SkpNgASktLx7/2ta+lPPzww4M7duwYMplM7jfffDPs0KFDYQUFBQUAZrNZU1tbG7RQ4jwXUpw/pCymF41uZRRFITU1dUHjWwji4uIWJJ4rRVEUEhISbkjakvlzuR7uB0FgYKB3WFer1eJ0OpV33nkn+Atf+EIawLe+9a2O8PBw99R7wvO3TqdTPaMxOp0Op9OpAHzxi19M/dKXvtS9c+fOEc/wOcC///u/dz/44IMjr7zySvj69evz33zzzYuqqvLlL3+56+tf//oHPtwvv3OWSCQSyU3B5s2bJ2pra8/X1tae37lz5wjA2bNng2trawNcLhcvvvhi1MaNG8fmimNsbEybmprqAPj973/vfVPx3LlzgWvWrLF897vf7S4uLp6orq4O2rZt2+gf//jHmJGREQ1AU1OTvqOj4wPp1Mqes0QikUhuWpYtWzb+1a9+dUltba1h7dq1Y5/85Cenf1IwiX/5l3/p3LFjhyk+Pt6+atWqidbW1kCAH/zgB3Hl5eVhGo1GzcnJsTz00EMjBoNBPXfuXNDq1avzAIxGo/u5555rSk5OvvzbhdeIfCFMIpFIbjEW69vaV8revXtD/+M//iP+wIED9Tc6L1fDXC+EyWFtiUQikUgWGVKcJRKJRHJTct99943drL3myyHFWSKRSCSSRYYUZ4lEIpFIFhnybW3JLYfLBRUV8OabcOgQLF8Ojz0G+fk3OmcSiUQikOJ8idFRaGuD/n5ITITUVLja2QzNZjh6FDxrLni+kVcUYTodREQIi4wUFhEBsyzCtCC0tsKLLwpRysyEggIoLITc3Ks/z6kMDkJ9PdhssHIlfMCzeM5JTw+8/Ta88YYIBwbEtSgshJ/+FP7jP2DdOiHSf//3MGVK50WB1SrOw2AQZWswwGyTjqmqcEKcTggM9NVByQePzQanT4s2ITIStm+H0NAbnSvJYmfRiLOiKPnAl4AYYL+qqv/f9UrrjTdgzx4hWG1twkZHp++XkADp6ZCWJsIlSyA5GZKSRJiQIIR2bAzKy+Hdd4WdOAGzrJMwJ4GBEB0NUVH+YXS0SC811WdRUZdvcJubhSC/8AK8/774LTkZ/vu/RcMNoNEIsc7NFemrqr958mU0+ltwMIyMQEODzyYvWKTXC4HeuFHYhg0iz6oqhLG1VTgvra3Q1QVZWbB2rXAaLjPL5TQcDuEUVFfDxYvQ3S2sq8u37VlPIi4OPvpRuOce2LpVlG1PD/zxj/DMM/D44/ClLwmBLimB8XFx7MSEb9toFL3tFStg2bLpToiqQkeHcIROnhT5sliEUDqdPtF0ucS1LC6GpUtFmJkprgmIciovh8OHhVVUwKX1RbwEBIj0AwNFOdjtPvMQFATx8cLi4nzbU+tUePiVi/jQEJw9K+JKSxP3w0xYrVBZKe6NigohWB6ndHIYFQWxscJiYmaPz3Pdx8ZEOfX3Q1+fCPv7haOYmQmlpcIBm61O9feLsj10CNrb/R1mj0VF+cosJsZ3faaiqqKO9PcLMS4vF4I89br9j/8BDz0En/kMbNo0c3yqKtqlhgZRV6bel6oq6ud1mrH2htHQ0KB/8sknU+vr6w0ul0vZvHnzyK9+9as2g8FwTd/8Xs0nVxcuXAg4cOBAyOc+97nBy++98FzX75wVRfktcB/Qq6pq0aTf7wF+CmiBp1VV/d6k/2mA36iqetmFSq/2O+f/+3/hJz+BlBRhqam+7ZgY0ag3NwvxaG4W1to6XXAVRTR2/f2iodXpYNUquP12Yfn5vsZustg5HELIhoZ8occGB0VjMzDgvz017eBgn0gHBEy3+nrREIIQkU98QjQIWVmiYayrg/PnfXbxomgEPL17j4FoWMxmf1NVcb7p6WAy+ZtGA0eOwHvv+TsqqamirMxm/3PRan3OQkgIrF4tGtW1a4V42mz+ZrWKa1RdLay21r/xi4gQjlNioi9MThbXZPnyuRvXo0eFSP/lLz5B12pFvoKDRTg0JIQARFx5ecIRSU6GqirRGPf2+o7NyYGwMFFeWq0IdTpRvo2N4lp56kZwsBCTsTGoqRG/6fWiXm3YIJwom02UocXiux42m9jPc/0921qtqEe9vcIJ6ekR2729vjL3EBoqrlFWlnAWSkqETXYYrFZxbcvKYP9+4Xx4VnDU6SAjA7KzRRypqb56WFXlqwfx8aI8PHV+aj4mExkphDo0VJynx0kaH5/uqMxWp0JDYc0aUafWrRNle+iQsHPnxD5BQSK/IyMiT7PFrdWK/HiEemJClK/nXCYvfBUYKOrF+vUi3XXrRJvyu9/Bn/8s8pGRAZ/+tLi2tbXC0Tl7VtTrmToMk/njH2HXrrn3mY3F+J2z2+2mpKQk//HHH+/90pe+NOB0Onn00UfTgoOD3b/73e+uaTrR2cTZ4XDMupjQ1X5D7XQ6/ZaKnYsbtiqVoiibgHHgWY84K4qiBS4CdwPtwAlgh6qq5xVFeQD4JvBzVVX/dLn4r1acVfXKewhut2iQOzqEdXb6woQE0fCvW3d9hkNVVaTd2upvLS2iMZncW7LZRBgdDR//uBDka1j2ddb8WCyi8b9cHbRYRK/9vfeEE5CQIHpYqam+MCpK9BCOHYPjx0VYWenf0M1EWhoUFQkxKyoSlpu7MMPpFouw4GBxnpPri6dnfOqUECdP2NMjev6rVolGeeVKIW6Xy8/EhCibqirRMFdViSHr224TtmrVwj/ycLtFfj11qa3NV6dqa4Wz5hHd4GDRqzcYhPNitYrrXloKW7YIZ6q7WwhxXZ0vnJgQIrxqlRDH1atFmJzs77ROTPgc1YEBUdc91tsrwrExn3M01WJifObpcRuNvjp19KivTk0W7NtuE6M6mzaJPAYG+vJksfgEd2BA5KO72+fgdHcLRzMkRNRfTw/bExYWCkfQE+dUzGZ4+WUh1O+84/s9MlKUdVGRCHNyfPVvqplM4lyvhsUozq+88krov/3bvyVVVFRc8Pw2ODioSU9PX/rNb36zo7a21vDss8+2Atx5551ZX/3qV3vuu+++sZ07d6ZWVlYGW61Wzf333z/kWdLxxRdfDPv617+eEhUV5SwuLja3tLQEHjhwoP4rX/lKUldXl761tTUgKirK+aMf/ajj0UcfzbBYLBqAn/70p6133333RElJSV5jY2NQcnKyfceOHf2RkZGuioqK4JnyYDQalz/55JM977zzTtgPf/jDdqPR6P7KV76SYjabNZGRkc7nnnuuOS0tbdp46g1blUpV1UOKokxNeA1Qr6pqI4CiKM8DHwPOq6r6N+BviqK8BswozoqiPAk8CVz1ggJX8/xNo/ENba1YcVXJXjWeHnpcnGhEbjSKMn8BNBh8IwlzkZ0t7JOfFH9bLHDmjGi4AwOnW3S0aPivFwbD7IKoKOIRx5Il8MADvt+dzss7KzMRHCyE6zoucDYNjUaMKCQmihGKqVgsoldZWSmchcpKIZ6f/zzcdZcQtLmem6qq6FFGRs4+UgGiLD0im5Jy7ec1mawsYZ7e5cSEcKSMRuE0zXatPPXbaLx+w8ZGo8jXrl1iZK6uTjh2SUmL4/2Az36WlOpqFnjJSMy//S2z9oDPnj1rKCkp8RtXi4qKcicnJ9s9i1bMxI9//OOO+Ph4l9PpZP369bnHjx83FBcXW7/4xS+m79u370JhYaHtvvvu8+uiVFVVGY8fP14bEhKijo2Nad57772LRqNRPXv2bOCOHTsyq6ura7773e92TO45/+xnP4ueOQdgsVg0RUVFlqeeeqrTZrMppaWlua+99lp9UlKS8ze/+U3k1772teQXXnihed6FxY155pwMfheoHVirKModwMeBQOD12Q5WVfXXwK9B9JyvXzYlNxKDQYxE3ExcjTAvVgwG4QherTOoKMKBWkwEB4ue8mIjPV3Yrc6l5VCntemXG939wx/+EPX73/8+xul0Kn19ffrKysogl8vFkiVLbMXFxTaAnTt3Djz99NOxnmPuueee4ZCQEBXAbrcrjz32WNr58+cNGo2GlpaWWcY7Zker1fLpT396CKCqqiqwrq7OsHnz5hwQw/WxsbFX/BbSjWhOZvKAVFVVDwIHP9isSCQSiWQqc/VwrxfFxcWWV155JXLyb4ODg5qBgQFddHS08+LFi97fbTabBqC2tjbg5z//efzJkydrYmNjXdu3b0+3Wq0amHt51eDgYLdn+7vf/W58XFyc46WXXmpyu90YDIaVMx2j0+lUt9t7mDcPAAEBAW7Pc2ZVVZWsrCzLmTNnaq+sBPy5EZOQtAOTB7CWAJ1XEoGiKPcrivLrkZGRBc2YRCKRSG4MDzzwwJjVatX8/Oc/jwbxYtUXvvCFlM9+9rO9WVlZ9nPnzhldLhf19fX6qqqqYIChoSGtwWBwR0VFudra2nQHDx4MB1i2bJm1vb094Ny5c4EAzz//fNRs6Y6MjGgTExMdWq2W//qv/4p2XXoxITw83DU+Pu59z99kMs2Yh6ksXbrUOjg4qCsrKwsGsNlsSkVFxRV/sHojes4ngGxFUTKADuAR4NEriUBV1VeBV1etWvXEQmXK7Xazf/9+Dhw4wD333MPGjRsXbGH7y6GqKs3NzZw/fx69Xk9wcLCfhYSEEBoa6s1PczMcPCg+27LZ/D+H8bx9HhHhe3Zls9loaGjgwoUL9PX1kZeXx9KlS4mIiFjQc2hqaqKiooKGhgasVis2mw2bzebd1mq13H777dxzzz3EXOWbLDabjfLyclRV5fbbb0d7pd9dXSfGx8fp7OwkOzv7A6s3V4vDIV7SCwoSb5oHz9jEzM7IiDje86JVdbXvJUuNxmc6nXhBzzM8XlRkY2SkjpqaGjo7OxkYGKC/v5+BgQHvdnh4OFu3buUjH/kIK1asQDPDA2ur1cqRI0fYv38/Z8+eZdu2bezatYuwSy8hWCziJbKEBPEy1ZXS3y/eMD9xQpxnQ4N4dj71xbP4ePH8fabn0g6Hg5GREa8NDw8zMjKCoiiEh4cTERFBREQE4eHhhIeHL5p6fCPRaDTs2bOn/sknn0z74Q9/mDg4OKi7//77h77//e93u91ufvGLX9hyc3MLc3NzLQUFBWaAdevWWYqKiszZ2dmFqamptpUrV44DGI1G9T//8z9b7rvvvqyoqCjn2rVrx2tqamZ8i+TLX/5y7/bt20179uyJvO2228YMBoMbYM2aNRadTqfm5uYWPProo/3f+ta3emfKw1SCgoLU559/vuGf/umfUsfGxrQul0v5/Oc/37Nq1SrrlZTH9X5b+8/AHYhvl3uAb6uq+oyiKPcCTyE+pfqtqqrfvZr4r/Zt7fffF2/X6nRgtY5SXn6IAwfepqenHfFy+SHy8zN58skn+dSnPkVU1MxOl9VqpaamBo1GQ0ZGBmFhYTgc4qWTgwfFTe55cSglRYSxsW46Oto4ePAs77zTzqlTYzQ0aLFaUxADCoMIn6UDMaDQAfQSFraesLAHGBtbyciIENXoaPFtalubisPhLwgGwzihodU4nYcYGtqLqr4P2Pz2SUtLo6SkhKVLl1JYWIhWq8VisWC1WhkZcdLfrzA0pMPhCMPtjsDlCsfhCMVmC8ZqNaIoo+j1JxkYeI3z5/cyPDzkF39AQABBQUEEBASi1ycwMZHI6GgUkElc3BpCQoqx2ZLp6wvAZFJYuxavFRf7nuE2Nzfzxhtv8Oabb7J//34mLn3jlJiYyM6dO/nUpz5FcXHxZa+7qqqYzWa/RnN8fJz8/HySJ7Ww4+Pi+jmd4m1Zk2n6W7d9fX0cPnyY9957j/fee4/Tp0/jcrmIi4tn/fpHSUrajtW6nKoqI1VV4uUpzwuF8fFCOOLixKc5VquTnp4hurr66e0dord3GFUdIDS0m/DwbsLCejAYxOcZ4eHh5OfnU1BQQGFhIXFxcfNyBnp63DzzTCcvv2ylqioRh8OnyFptKwEB9QQFNRAU1ERcnJbs7GVkZBSQkGDC4QjAbBbfAR87Jj7xEmKsYjLZSU3tR6Nx4naruFwqLhe43SpWq0JLSzADAzH4BulagAqgFTBjMLgICVEIC9MQHq5jZKSThoYqYIKIiEA2bVrJXXetx2TKYP/+Mxw6dJ6qqi4cjjAUJY7Q0AxGR41otcmEhmbjdMbh6ewEBYk35j2fMa1bB0FBQ+h0OoKDQ+nuhqYmn507J9qGpiaRU0WB/Hw3qakWxsY0DA1pGBzUMjioxW73lbnJ1EVa2gmCgvbS2XmCpqYm/Ef19EAesBQIQ7Qx48CYdzsiQkteXgyFhenk5+eTn59PXl4eaWlpfsLtmYimu1t8hhUXd9lLPyOL8W3tqezbty/4H/7hHzL/8pe/NGzcuHFGIbzZuWGfUl0vFEW5H7g/Kyvribq6uis+/lvfUvk//2f2Bs1gsBES8gZ9ff9BQMAJHn74E3z2s5/F4XBw5swZKisrqayspLa2FpdLA6wGbken24LbXYrbLV5y1GoduFxTv6FzAGYgfNL5OImNHSc1FcbGdPT16RkaCkBV/fOo1Q7icr2DeDR/kCVLxjAag2htbcdqDQNSvabVLkOr3YTdngaATuciP99CSYmboaEhenqG6e8fZXBwgtFRO+I9vGgg9pLN9aLmCDCE8LnEt2NBQaPk5AyxcaOOZctiaGsLoL5eoa5OvIk6PGX5c71+AIfjItCEwTCMXl+I2bwUpzPy0rnaiIpqwmarY3S0CxgnPFxPXl4KJSUmbDY35eV11NePoqoxGI3pGAypBAQYycgYJC6ukaCgM1gsh1L1OIsAACAASURBVGlru0BrayvDw8M4Z/k+KzV1M8nJTzA+fjsXLiT4Nb6KohIbayY8vAdFaWBwsJb+/mEgAK3WSHx8CnFxS1DVGC5ciMBq9YxIjBMSUkNu7gRudxCjo0bGx4Mxm0OwWMJwOqc68g7AgaK4UNVgJj910ul60OmacLlacDh8H+EGBAQSERFBaGgogYGg16sEBLjR64VD4XIpnD0bzdBQzqX4ujAYDrBsWRfh4WH098cxOBjP0FASIyOJuN0zf/MJEBJiITa2mYCAU4yP76O7+1VcrrnnZ9DpdGRmLiM+/h4CA9czMZFPR0cCQ0MBTEwouN3XNsoQHKwSGWnDbm+lv78at7uDlBQ9d965lP7+KKqqQujsjJ90Xs2AFUgH/EcaY2PNJCa2YTBU43Acobf3TTo6amd5ISkYyAAeBD6BEF6IjDxHYeEFjMZQhoZS6O6Oo6srAqdzvk8QzUA/0Af0o9FYCApKRqNJxOGIxmbz1Zlnn1X55CevrvxuBnG+FfjQibOHq+05f/nL/8JPf/oMoaFR/N3fPczDD+8kIyMbh0N8t/z88/DSS57vNPuxWp/Gbv89wgMuIDS0lJCQ1TgcOQwNxVwSaIiM7CQ0tAKncz/9/X/Fbm8nJiaHqKgSQkLyCAw0oSgp6PUxLF8exqZNiRQVBZCeLiaNmIzDIbzjzk4RmkziU4uJiTFOnz5NRUUFFRUVOJ1OUlNTSUlJISUlxbsdGxuLRqOht1cMPx45Iuz8edEj9XySJCatcKOqViIiXMTEqMTFKcTHa0hI0JGYqCM83InBYEavH0OjGcVmG2dsbIywsEg0mqWcOhXg/Z70wqUvFBVFDK97PpHyTEyRmSneTA0Oht7eXt566y3279/P4OAgFouV4eEIBgayGRnJY2KiEI0mAZ0uHJfLgMWi+DksOh1ER7vQ6YYYG2tgdLQOMRizGsi6tJeTsLAmkpK6CQ7WEhAQSGBgAHq9CN3uAE6cCKKvzzM6UgO8zpIlVQQGWmluDsTlygSygRwUJRdVDUNRVPR6N0FBGgICFAICxCjG6tWwdq2biIhaGhpeoazsTcrLywEwGAwYDAaCgoIwGAwEBkaSkpJKYWEORUW5FBUVkpubi9FoxGIRw6kXLohvjj1hd7eK2+3CbrdfMgcOhx2Hw4XbrUVVAwCPBQIaAgMrKSho5P77tezcWUB2tmnG3rbTKSZFGR0Fl2uU8+dPcPr0EY4fP8CpU0dwOh0EBgaSnZ1Nbm4ueXl55ObmkpmZicFgQKvVotPp0Ol0aLVa9Ho9SUlJs07yoKqiJzh59rXxcf/JVcbH3dTVtdPTM8Dq1RmYTBHeoeXoaP/P3QYHB3n22Wf55S9/yYUL3k9lWbLERHz8NgICNmE2L8XlAkVpxmqtYXCwgoGBE4gevRhZio6OJisri6ysLLKzs0lJSZlx2Fmj0bBkyRJMJhPj48m8/LKW//5v8a06iM+iSkr8J3SJivKfSMVjw8O+2c3a2620tprp6nIyMqKiKH3Y7W1MTDTidncA3UAPP/rRTr761St6IuhFivPiQIrzFE6fPs2ZM2f4+7//e4yzfLA7Pg5//auYhaesTPUTBc8EAJ75qVeuFN99xsb6jne73bjd7nnPFPNhwTMbVXr6ws3Z7WFyY67RiOeAkzXmwoULnD59mpSUFEJDTTQ1xfH++xqOHRPf6nomoJg61/nKlZ4pPV2MjJzm4MGDvPvuuwAUFBR4h5Hz8vIIDQ3zzgY3/3yrH/hzaLfbfUm4XYSGXvvnqmazmb6+PpYsWbLon4+qqkpFRQUGgwGTyYThMjO4mM1mGhsbsVgsZGVlERkZOef+l6O52Tc5ykLicrlobW2lrq6OixcvsnXrVnJycq4qrlnEubG4uHhIo9HcvKJwE+F2u5WzZ89GlpSUzDhN1C0pzldKezu8+qroGRUWiueQ13ORColEIrmezCLOf0tISCiIjY0dkQJ9fXG73UpfX194d3f3+ZKSkgdm2uem7NZNeub8gaS3ZImYGUkikUg+rDidzse7u7uf7u7uLuLGfGZ7K+EGqp1O5+Oz7SB7zhKJRHKLMVPPWbK4kN6RRCKRSCSLDCnOEolEIpEsMm5KcZbTd0okEonkw8xNKc6qqr6qquqT4eHhl99ZIpFIJJKbjJtSnCUSiUQi+TAjxVkikUgkkkWGFGeJRCKRSBYZN6U4yxfCJBKJRPJh5qYUZ/lCmEQikUg+zNyU03feDLjdYmWpqesASxYXYl3iG52LhcPtFnPBX7ggrK0NNm6Ej3xk+spnEoGqirWczWaxqtiHqT5Ibl6kOC8wFy/C738Pzz4rlntcskQslehZMjErC3JzIS9PrKx0tXR3Q1mZaFDS04Wlps68EpTNBl1dwsxmWL5cLF13tbS3i0XptVpYv95/Na5rxW6Hw4fh9ddh3z6xus+6dSKddesgMXHm40ZHoaVFHL9smcjbXFRWwi9/CX/6E4SFQVERFBcLKyqC/PyFX1VrIbHZRF07f15YTY0Q47o6seSiB40GfvADsULSI4/Arl2wZs3iEiCXS5yPzSYcWqdTmMvl257NtFpxPld6rdxuOHZMrDz317+K5TlB1J0vf1mU1Xwca6tVlH9Vlc/OnxfLQ/7jP8J9913ZCmYSiYdbcm7tjg6xtGFkpDCj8doaq9FR+O//FqJ85IhoELdtE0sRNjVBfb2wvj7fMWFhUFrqE521a8WqV7NhtcJ778Hbbwurqpp5v8RESEsTouYR5MHB6fvl5fnSXr9+urPgdIo0LRaorobjx4UgHz8unI7JZGfDhg1w220izM4W69MODIj1aT3h2Jgo67AwYaGhItTrxbm9/rpwOMbHxTrTGzeKPFRUiIYbhBOybp1wCFpafDY05MtPVBRs3Qr33it6jHFx4neLBV54QYjy0aOiQd++XVz7s2eFwNntYl+NRpSh2y16Vm63z8LDRSO+fLmwZcvESmVzOQRut6gDJ08Kq6gQDoJOJ/IXH++zuDghDDabOP/J1tsr8llfL+L05DUzUzh9ubkiL57t6Gh46y3YvRteeUXEmZ0tRPqhh4QTMp+639wsRCcoSKzIZjCIa2kwiHKKiJg7npEROHhQXN933hF1yG4X+fEs5Xm1hIXBgw/Cjh1w110zjxCoqkizogLeeEOURXe32Peuu8TxigI//ak4z/h4sdjN5z4ntkHU6TNn4NQpn1286Mu/wSAcu5wcOHBApJeYCI89Bo8/Lu7LmVBVUTenOiQul8hfXNzCO1Nybu3Fzy0pzt/+NnznO76/9Xoh0lFRIoyOFhYV5duOjBQ30NCQsOFhEfb3w7vviv/l5cFnPgOf/OTMPbyREeGhV1cLcSgvF6LgGVrNzRUNnUbjby4XnD4tGme9XojgRz4iBCg6WohTc7Mwz/b4uMhDUpIIPRYQACdOiLTLy33CHRIi4rZaRYPpafgnYzIJJ8JjLpdwRo4cEb3dgYErvhR+pKYKp+bee2HzZpEnEPk5c8aX56NHRVmmpQmxTkvzmdstxOiNN4SQKQqsWiV6xHv2iPPNzRWN7qc+5T+C4HAI0Tt7Vlyj0dHp10KjEfGeOSP284i50Sga5YAAsY9W69vf4fDFB0J4S0qEsCsK9PSIOD2hZz8Q/w8KEscEBYl6WFDgbzk58+s5jozASy8JoT54UNS7jAyxlvV998Htt/visdvFdX3tNeE01dTMHXdoqHAQMjNFnJmZou6dOiUE+f33xbUxGsXa51lZ4pymml4vTKsVjotO59vW632/ef4eHRU935deEucXHS2cju3bxbrfp075HKKeHpHX4GBRx/7u70Q42SlWVZHfp54S5x0QAHfcIe5bT+8axIiYxzFbulSYyeRz0JxOUXa//rWoiyDq9ooVIh/d3cI82556NBPJycLp9VhJybX3xqU4L35uSnGetGTkE3V1dVd8/IULoufpEdrJNjgoRMYTTkzMlL64oT0979WrhShfzXDh6KhouMrLhQB7hHGyqaq4+bduFQ1FcPAVn/KMqKoYBi0vF40Y+DeUHlHIzhbnFh09d1wXL4oGvaVFiF5MjDjGE4aFiWH10VFhY2MiNJvFKENBwcL1ENxuUZ6vvy4axzNnhAh9/vNw550Lk47DIXpZp08La2gQDovL5X/9FEWc28qVvvOc6/mvxSLiDgoS+12PIeiODti7V9j+/SLN4GDYskU0/G+/La5PQIAQ7XvvFXXA4RD7Wiziulks4ho2N4tRosZGYVarSEejEcdt2SJs3ToR50Jjswmn7PnnRa/YbPal7yn7FSt812A+zsyFC/CznwlHJj/fd/zy5b7RmPnQ0gJPPw3PPCOEOC4OEhJEjzwhQVhkpM/58DgjWq1of44fF/dVW5uILzhYOMf//M+i1381SHFe/NyU4uzhg1gy0moVQj00JIatIiOFMF/L82KJZDFhsYhh2NdeE+Z2+0Yw7rrLN4IxX1RV9Ajb2kSv/oP+qGJiQpxPdLToZRqNH2z6s+Fx1q6219vWJkS6vFyE3/se3H331cUlxXnxI8VZIpFIbjGkOC9+ZP9PIpFIJJJFhhRniUQikUgWGVKcJRKJRCJZZEhxlkgkEolkkSHFWSKRSCSSRcZNKc5yVaoPBpfLxcmTJxm41tlFJBKJRHJF3JTiLFelun7Y7Xbeeust/vEf/5GkpCRWrVpFamoqX/nKV+jo6LjR2ZNcAWazmZMnT9LS0oLrWufIlEgkHyhySvZFhN1uJ2Ce0yf19PRQVVWFqqqYTCbS0tLQXcXsBhaLhaamJs6dO8ff/vY3Xn31VUZGRggJCeGjH/0o9957L2VlZfzsZz/jF7/4BZ/+9Kf5xje+gclkuuK0bhRut5uWlhbsdjtut9vPPN/5K4oyzcLDw4mPj0f/AS/n1NfXx4ULF+jr6/Nab28vfX19uFwuMjIyyMzMxGQykZmZSUpKClqtloaGBo4dO+a1yspKnE4nAAEBAd5jsrKyyMrK4o477qCoqGjOvKiqyltvvcUPf/hDLly4wCc+8Qkee+yxOY9rb2/nz3/+M2+88QYrV67k8ccfJzc397LnraoqY2NjDAwMMDg46GeqqrJ69WqWLVv2gV+PuVBVlc7OTqqqqqiqquLs2bPU1NSQl5fHjh072Lp167zvaYlkMrfkJCTd3d309/cTEBBAQEAAer3eux0UFETgNa7zqKoqzc3NNDY24nA4ptnExAQdHR20t7f72djYGFFRUd5G12QyYTKZSE9Pp6Ojg6qqKiorK6mqqqLHM1HwJbRaLWlpad5jEhMT0Wg00wTHZrPR1NREQ0MDjY2NdE5axSIqKoqPfexjfPzjH2fLli0ETZrjsKmpiR/96Ec888wzOBwOHnnkEe688046Ozvp6Ojwnk9HRwcul4uVK1eydu1ar8VdyXyHU8pyfHzcK069vb309vai0WhIT08nIyODlJQUP8fE6XRSWVnJu+++y6FDh3jvvfcYnGn1j3mgKApxcXEkJSWRmJhIUlIS0dHRBAYGeuuMx3Q6HU6n03udPdsA+fn53lEIZYb5OOvr69mzZw979uyhvLycqfdlaGgosbGxKIpCa2urN14Q1z4kJATPY56QkBDWrFlDaWkpy5cvZ2hoiPr6eq81NDQwcWle2pKSEnbt2sWOHTtITk72xulwOHj++ef54Q9/yNmzZ72jKG+88QYOh4M1a9bw2GOP8cgjjxAWFsbIyAgvvfQSzz33HAcOHEBVVfLz86mrq8PpdLJx40aeeOIJHnroIQwGgzedjo4O9u/fT1lZGWVlZXR1dc15PQwGA6tXr2b9+vWsW7eOdevWEXsFy6J1dXUxNDREUFAQQUFBGAwG7z2vmTTtn6qqXrNarbS1tdHa2kpLSwutra20trbS1NREdXU1Q5NWXUlJSSE3N5eTJ08yNDREVFQU27dvZ8eOHWzatAnt5ZZLm4OBgQEOHTrEwYMHOXjwID/60Y+4+yqnCJOTkCx+bklx/va3v813Jq98MYX4+HgyMzO9PZSMjAwyMjJISEggOjqaqKgoPzFQVZWamhoOHTrkFYP29vY586DRaEhMTCQ5OZklS5awZMkSYmJi6Ozs9Apnc3Oz33BkYGAghYWFlJSUsHTpUpYuXertMU21yQ3GVJKTk/0cgMzMTLKyslixYsVle9/d3d385Cc/4b/+678YHx8HIC4ujuTkZK+53W5OnDjB2bNnvflPT09nxYoVhIaGEhgY6G0QPSI3Njbm7SUNDQ15t/v7+7F6JmqeBa1WS0pKChkZGej1eo4ePcrY2BgAJpOJ22+/ndLSUkJCQtBoNF6nxRN6ruFUGx4eprOzk87OTrq6urzbg4OD2OdaqWAOYmNjWbVqFatWrWLp0qVUVlayZ88eqqurAVi2bBkPPvggpaWlxMXFERsbS0xMjJ+j5HK56OjooLGx0WuDg4MsW7aMdevWUVBQMKcIqKpKe3s7e/bsYffu3bz//vsoisLmzZvZuXMnQ0NDPPXUU7S1tVFYWMjXv/51duzYQUBAAP39/ezevZtnnnmG6upqDAYDpaWllJeXY7PZyMrKYteuXTz66KNkZ2fT3d3NH/7wB55++mnq6+sJDw9n586daDQaysrKqK2t9ZbL5s2bWblyJTExMURFRXnvtaioKBwOB8ePH6e8vJzy8nJOnTrldVCysrK8Ql1aWkpxcTE6nQ5VVWlsbPTel4cOHaKxsXHOejR5NGU2NBoNycnJpKWlUVBQ4L0Xi4qKiIyMBMQo2Ntvv83zzz/Pnj17mJiYIDExkdLSUoKDgzEajRiNRu/2ZCdh8v1hsVg4fPgwBw8epOrSUnQGg4H169fzz//8z2zevHketW46UpwXP7ekOJ8/f57z589jt9txOBzY7XavjY+P09LSQlNTE42NjbS1tc34vC48PNzbiDQ2NnpfmkpMTGTTpk1s2rSJgoICAgMD0ev1fmY0GomPj7+sEDqdTlpbW2lubiYhIYGcnJx5D127XC5UVfU2Nh7TarULMszmGX5MSkqaNb6JiQlOnTrF8ePHOX78ONXV1ZjNZmw2GzabDavVis1mQ1VVDAYDkZGRREVF+YUxMTHExcVNM6fTSVNTk/c6ebbNZjPr16/n9ttvZ+PGjX69wYVEVVWcTic2m81bdxwOh9911ul06PV6XC4XZ8+epaKiwmvnzp3D5XKh0WjYtGkTDz74IB/72MdIT0+/Lvmdi7q6Op577jl2795Nw6Wll+644w6+/vWvs23bthl7+qqqcuLECZ555hkOHTrEli1b2LVrF2vWrJl1/3fffZff/OY3vPTSS2i1WjZt2sSWLVvYsmULxcXFfj3Xy2GxWDh58iRHjhzh2LFjHD161DuaFBwczLJly2hqavKODEVHR7Np0yZvnbBarVgsFqxWq9ccDoffKJPHeQsMDCQlJYXU1FRSU1NJSkq6okdIZrOZvXv38vzzz1NXV8fExARmsxmz2czExATumZaAm4TRaGTDhg3cfvvt3HHHHaxevfqa72EpzoufW1KcrwSHw0FbWxtNTU309fXR39/PwMCA1/r7+0lKSvIKcmZm5oyNk2RmVFXF5XJd1fPymxmz2cy5c+fIyMggJibmRmcHENeioqICvV7PsmXLrls6ExMT3kdJC4WqqrS0tHD06FGOHj3KqVOnSEtL8wpyfn7+orwvVVXFbrf7Oa2TnVetVktRUdGCP7eW4rz4keIskUgktxhSnBc/N+WnVBKJRCKRfJiR4iyRSCQSySJDirNEIpFIJIuMm1Kc5fSdEolEIvkwc1OKs5y+UyKRSCQfZm5KcZZIJBKJ5MOMFGeJRCKRSBYZUpwlEolEIllkSHGWSCQSiWSRcWvNmbiAqCo0NsKJE5CcDLfdBpebHdDphL174dgxyMqCggLIz4dLc+VfMRMToNHApEV+bglUVZjb7W+qCmYztLUJa2/3bQ8OwtKlsG6dsPj4G30W1w9VBbsdbDZRLuHhl6+b1zs/7e1QWyvs4kXIzoZduyAq6sblay6cTigvh1degZMnRRlGRwuLiRFhVBTMNOusokBhIWRmXt88quqNva6S64ucvvMyuFzgcIDFAmfOCGE9elSEfX2+/TIz4dOfhk99CtLS/ONoaYGnn4ZnnoGuLnFDTS72xEQh1AUF4qYuLhbh1JfR7XaR7v79UFYG778v4lqxAjZsEA7Chg0wdXVGiwU6O6GjA0ZHITUVMjIgNPTqykRVoadHlEtSEsy2AJLbDefOwZEjcPiwaJhTUiAnRzTOHktMFHF1d4t8dnWJsLNTlPHAgBDXgQGf2Wzzy6teL5yn8HA4f16kA2Aywfr1UFoKwcE+MZscOhyikfaYy+ULJ5eFh+BguOMO2LwZwsKuqmj9UFVoaoLTp0XdO30aWlv98+Qxh0Pk25P3ySxZ4qsft90m6tfka2a1inTq6qC+Xjg4ISHCQkN929HRwqmctEDWNFwuqK4W1/zYMVHmtbXCkfRgNIo0AgPh4x+HJ54Q5TZVaDzn//77Io7RURgb8zerFWJjRR1KShKhx4xGIZ46nThfz3ZgoPhfUJB/mhMT8PbbQpD37hX1LCBA3F9ms/i7v3/+dc9kgq1bhd155/T72ZNmd7fYzsycW2xVFc6ehZdfhr/+FX7yE1HXrgY5fefiZ05xVhRlHbAL2AgkAhagGngN2K2q6g390PhqxbmxEaqqhFh1dPiEq7NTiI7NJho7u92/8fWQmysa9dJSWLNGCNDvfw/vvCP+v3mzEOrQUPj1r+HNN8Xv994LTz4J99wj0jt/frpdWoUREEJWXCzSq6mBQ4dEI6HRwKpVcNddIn+HD4sevKfRyM4WDkJ3t0hnttUjY2JEg5CZCenp4u/ISJ9FRIgGpaNDNLiT7dIiXOh0QuzT030Gotdx9Ch4PkWPj4eiIhFXY6O/gAQGztzgabW+3spUCw4W/9doRIOm0QgLChJilJIiwrg48TuIhvzkSZGv8nJhU5bF9mNqo+7Z9qTpwbM9PCyuj04neucf+YiwFStEI3zhgq/3WFsrxNDlEiMfQUEi9FhXlxDk0VFfWeTlCXEMCPDlabIFBk43VYVTp+C990TvFUS9LC0VadfXi5GF+froGo1w7PLyxKhPXh4kJIhy9QiyJ88JCVBSIvaZbPHx4v57+mnYvVuUW1YWPP64cEorKoQgv/++r56Bv8PgsaAg4cB1dYlreZkFnqZhNIryNhpFPFarqPcf/Sh87GPiXp3sxHpGZzwO40zpORwi72+/DQcPintaqxVlnpQk7kuPXVrZFBA98bVrRd3xtC2hoXD8uBDkl18W946iCGfrf/9vKc4fZmYVZ0VR3gA6gVeACqAXCAJygDuB+4Efq6r6tw8mq9O5+vWcwbOcs1YrvOzkZGHx8eKG1+v9LTBQ9GzXrBHiMBPNzfDss0Kom5rEb0lJotF57DEhYnPhdouekUcAz54VYW2tENAtW4Qg33GHaEAmY7OJBvLwYWHd3SJtz3l5tsPCRGPc2OhvLS2iBzYXYWFCYD0WECCOa272WVeX2LegwNeT37DBv1fgconzrKsT1twsGiFPz8cTxsbO3itfCDzDrXb7dFHT632iPl/sdiH4b78Nb70lRBF8PUUPWq3oVeXkiLQslukWFQXLlwtbtkyU97U+vmht9dWPo0dFPc/K8rfsbHEtJiaEcIyPCxsbE+J34YJwFGtqxPC0x6lSFJFHz/XesEE4apcbdrVY4MUXhVAfOiR+02iESK9eLe63NWtE3Hr93HG5XNDbK+pgV5cQ2skjHp4RBrtdXI+pFhkJ990HGzdePq354hntevttMdo1PCyclsREEXrMbhci7Blt8AxZh4eLY/R6ce//3d8Jp+FaH8tIcV78zCXOMaqq9s958Dz2uZ5crTi3tAjPNynJv2e1ULjdohcxMSEE9VpXQ/wgni253aIBHh4WPe2hIbE9POzr9aakXD4fVqtoaBZiWPdmp7cX9u0TDW5Skq/naDIJx+Zmx+USjlVnpxjhmeowXikXLwoHYPly0UO+VRkZESNhx44JJ3/zZtGTv9bynYwU58XPvJ85K4oSxqQXyFRVHbxemZovcslIiUQiuXKkOC9+LtunUxTlH4HvIJ43e5RcBa7zu4gSiUQikdyazGfA9WtA4Y0cvpZIJBKJ5FZiPk9bGwDzZfeSSCQSiUSyIMyn5/w/gXJFUY4D3g9eVFX9p4XOjKIoDwIfBeKAX6iq+vZCpyGRSCQSyWJnPj3nXwHvAMeAk5NsXiiK8ltFUXoVRame8vs9iqJcUBSlXlGUbwKoqrpHVdUngE8Dfz/fNCQSiUQi+TAxn56zU1XVr1xDGr8Hfg486/lBURQt8AvgbqAdOKEoyt9UVT1/aZf/den/EolEIpHccsyn53xAUZQnFUVJVBQlymPzTUBV1UPA1M+u1gD1qqo2qqpqB54HPqYIvg+8oarqqZniu5SXCkVRKvomz58pkUgkEsmHhPn0nB+9FP7PSb9d66dUyUDbpL/bgbXA/wNsAcIVRclSVfWXUw9UVfXXwK9BfOd8DXmQSCQSiWRRcllxVlU14zqkO9M8U6qqqj8DfnYd0pNIJBKJ5KZhPpOQBAFfAG5D9JjfA36pqqr1GtJtB1Im/b0EMY/3vFAU5X7g/qysrGvIgkQikUgki5P5PHN+FigE/hPxYlcB8MdrTPcEkK0oSoaiKAHAI8C8F9BQVfVVVVWfDJ9pDTaJRCKRSG5y5vPMOVdV1ZJJfx9QFKVyvgkoivJn4A4gRlGUduDbqqo+oyjKF4G3AC3wW1VVz11BviUSiUQi+dAyH3E+rShKqaqqxwAURVkLHJlvAqqq7pjl99eB1+cbz2TksLZEIpFIPszMZ1h7LWKGsGZFUZqBo8DtiqKcVRSl6rrmbhbksLZEIpFIPszMp+d8z3XPhUQikUgkEi/z+ZSqRVGUFfje1j4y2wQhEolEIpFIrp3LDmsrivL/hJ+yYAAAIABJREFUAn8AooEY4HeKovyv652xy+TpfkVRfj0yMnIjsyGRSCQSyXVBUdW5J9lSFKUGWO75rllRFANwSlXV/A8gf3OyatUqtaKi4kZnQyKRSG4qFEU5qarqqhudD8nszOeFsGYgaNLfgYg1niUSiUQikVwH5vNCmA04pyjKPsQz57uBw4qi/Ayuz7rOEolEIpHcysxHnP96yTwcvD5ZmT/yO2eJRCKRfJi57DPnxYx85iyRSCRXjnzmvPiZ9ZmzoiivXnorWj/D/zIVRfmOoiifvb7Zk0gkEonk1mOuYe0ngK8ATymKMgj0IV4MywDqgZ+rqvrK9c+iRCKRXB/cbjd9fX10dXWhqip5eXkYDIbrmqaqqnR3d1NXV0d9fT3nzrUwMRHI9u2r2bRpE4GBgdc1fcnNwbyGtRVFSQcSAQtwUVVV8/XN1vxY6GHt8XGoqIBVqyAkZMGilUj8sNvtnDx5khMnTpCTk8PmzZsJCAi40dmaE7PZzPj4OHFxcdcUT21tLU899RROp5OVK1eycuVKli5dSlBQ0LR9VVWlq6uLhoYGBgYGSEhIICkpicTERPT6aQN6c6KqKmfOnOHFF1/k3LlzdHZ20tnZSU9PD06n07ufoiiYTCaKioooLCykqKiIuLgcXC4tdruKwyHM6QSXy0Vc3ASK4sDpdOJ0OnE4xPbY2BjDw8MMDw8zNDTk3W5ra6O+vh6z2QxEAf90ySKB4+j1z7F5cy8f+9jtbNu2jfT09GnnYrHAyZOQkwNXeznksPbi56Z85jzphbAn6urqrjm+ykr41a9g924YG4OgINi2DR5+GO6778qF2mq1snv3bjo7O9m2bRsrV65Eo5nPV2vTcblcnD59mvHxcXQ63TSbHK+iKN4wIiKChISEeafjcEBzM9TXQ12dL2xshIgIyMsTlpsrwqws0Omgtxfa24W1tYlwaAgCAiAwUISTTa8HrVYcO9kUBZxOJ319fXR3d9Pd3U1PTy9jYzasVi02mzC7XY/drsNgsJOXN8q6dRpKS1PIy8sjNTUVrVYLiMZ4YmKC4eFhRkZGGBsbQ6vVotfr0ev1BAQEoNfr0Wq19Pf3097e7rW2tnYaGhwEBydQXJzHsmWFLFtWSGxsBHo9GAzCLhX3NOx2aGkRZdfQAPX1FgYGWuntraGl5TT19cdxOLqAQaCXiAgjDzzwAA899BB33333jELlckFnp5Pe3l5stmZaW1v9rL+/n9DQUCIjI4mMjCQiIoLIyEjCw6NJT88nO7uIwMAwbDa81t8PXV3Q3e0fBga6SUzsQ6s9x/Dwu9TVvca5c2dwuVzk5+ezYcODpKffj0aznIsXg2hqEiKRmjrdYv7/9u48OqrrTvT991dVGkvzPCAhCYEEZhAYsIKJZzvEjuPYjt3x0HEPq51O33SGzl2dodfL4PuyXif3Xt/OTdJJpzt+nfvijp14irFDEw/g2GAMGDPaSGiW0AyaS6VSqfb7Y1eVJBAgMEIl6fdZa686deoMe586dX5n73Pq7Ayb/6NHj/K9732Pp59+mtjYWOLj4zl16hQATqeL0tK7iI//LKOj2YyNnWBw8BCdnW8zMnIM6J20LUSErKws8vPzWbRoEStXrmTZsvWkpq4jECigqclBUxOAYXCwk+rqgxw9upeurgZEvBQVuSguHqSwMCkc7PPy8hgbG+PYsWMcOVLFvn0xtLRUYMztwLLz/HK8wAHgnQmpIfypw+EgJSUlnOy6rqau7lPs2rUKr9fFXXcFWLfOzxNPeGlsTELEizHPAf8vhYW1REUtxetdg8dTwfDwGrzeZUAUX/rSQf7pnyrOk7dz0+Ac+eZkcA651Jrz7t27efvtQzQ1VbJz5zIOH3YTE2OD8Sc/CW+8Ac8+aw9UoUD96U9Dfv7ZyzIG/H57sOvp8fDyy6/y+9+/Rn+/F0gAMoiLKyA7ewVu92ICgVT6+x0EApyVnE7YsAE2bx4hNnYXhw//ipdf3kp3d/cUpUgCyoCs4HoSgMRJw3FxOSQlFRAbm43TmYLf78bjcQbP+m2+Q8OBwOSlx8WNkpZ2ipiYk4yMxNPfn8vAQEr4c4cjgIhhbMw5aT4RHy7XAIGAE2Oiguly1QoDOJ0jOJ0jjI66MSZUe2oB3sHlOkBaWhvDw30MDQ0QCIwCgQlpJJi8E179QCmwJpxEVmPM+TtVcTgCxMb6iIsbxe32k5AwhoihtTWG3t4EjJl4MubnfFeQoqI8jI21Egi04XKdpqgonoSEFE6diqKvz43Hk4Lfn4btXRXgJDYI7MXtPsbixV3k5Ljp7RU6OnLp7S3G4ynD9vRaft51h7hcI0RFnUKkneFhB/YZQzHBsvrIyuomMdFHY2MSPl/ahLyfIidniNHRFE6fTsDnm3wSmpvrw+V6m+bmJ4mPP8AXvnALX/3q35GZmcmrr7byr//ax+uvZ3DqVBYwBpzC7tPjEhJGyc72Ewj4GB314/f7GB0dZXTUx8hIgJGRTGzNc5zT6SMQ8GNM/DnLXFAAq1bB6tU2+Xzw8suwfTv090N0tGHDhgFKS1uIi/MHTyQFl8sQFSUEAg7q65P44INkqqsTGBmxZU9L87N48Rj5+Q4WLXKRmyvk5toTmO3b4Ykn7MnwAw/A178OK1fa/BgDBw7AE08YnnwyQF+fE4fDRyAQHfyOhklNPUFqajVpadV885vXc+ed117wu52KBufItyCD88c+9gJ/+MP12B/0B8C/kJT0O4qLkykoKCA2NhaXK5qenhU0N1fS0HA1Hk/KBZY6NaczgMvVz+hoK4FAFw5HD9nZscTFRRET4yI6OoqYGJtGR50cOZLC0FABACKnWLSohptvdhIXl0JjYyxNTfG0tMTT23t27SokKspPdLQPkQFGR7sZGekE+oE+4uPB5TKIjOFwBIJBNgD4GBx8H6/3MPaWgi4A0tPTcTgcDA4OMjzsxNYiyoMpCmgGTpKY2Ed6uofMTCElJYno6OhwcrmicLniEIlhZGSM4eFRvF4/Xu8oIyNjjIwEyM7OpqioaFJKTU0lNlaIj4f4eHuiFKqter3w3nuGHTuG2LnTw8GDMXR1fbheytzuAKtXC2vWCKtX21pfT88gNTWN1NY2Ul/fQkPDSXp6hoFk7AlS8oThKKABl6uJrKxBCgp8LFvmYvnyVNatq2TJkg0MD8dz6hTh1NUFHR3Q3j5GVVUvTU0j9PXFYIwfl6uL+Pg+kpOHSE/3kZtrSEhIo6urmLq6dJqaYoL7CWRn25pvSF6eYfXqMUpKBvF62+jqaqGtrYHW1nra2howZhhbc2/D6ewiNzeBnJwccnNzKS0tZe3ajaSnX8upU4s4ckQ4dMjmd+VKWL58FKfzKE1NL7Nr1/O89957jB9HMoiJWUZm5jocjlKamvIQuQ5jsu2nGbBpk21ROHbM5v2GG+C+++Duuw1ZWQaPxxFudQi9trXZ4BVaTejV4YCcHD+xse2MjFRz+vQBGhvfoLp6N2vWrOa+++7njjvuJSEhC48Hhoagvh6OHIHDh206ftwGS4DcXLjjDttidvPN0281Gx2Fo0fhnXdg3z5oahpvjQg2EAC29ejP/gz+/u9hyZJzL8/rhRdfhLfestu8shKuusqewF8OGpwj33SvOUdjj8YGqDLG+GY6Y9NxqcH52WcNTz45wsc+Vk9q6lEaGxtoaGigsbGRkydPMjIyEjwzt8nn8+PxlOPxTK4VZGRkkp2dTXX1+4yODnLrrdfxuc89wrp1K4mJAbcbkpLsAcjn8/HGG2+wdetW9uzZQ19fH/39/fT39wevP1klJSXcdNNnyci4j5Mny9mxw0FLS2h9tll5YsrLg8REexAJJdcZFaXe3l7effdd9u/fz/Hjx/H7/QQCAcbGxggEAgSC1eb8/HyKi4snpcTExPBy/H4/g4ODDA4OhpuJ09PTSUlJCTcnz6bubtscP1WrxNjYeHOu1zuefD4oKrI1p+Jie7C/EGMMIyMjeDyeSckYQ0FBAenp6eFLDJciEAhgjLngNj11CvbutamuDpYvh7VrbTrftUiv18vx48dxOp3k5OSET8Au1dDQEA0N9jdUX19PfX09DQ0NtLa2cvvtt/OFL/wt3d0pvPkmvPkm7N4NOTnwJ38C99xjh2eTzwdVVXYfWb16evvAxS6/s9MG64KC2S8vaHCeC6bzbO07gJ9hH9kp2Lu1P2eM2Tbz2Tu/K/0/556eHmpra6mpqQmn2tpaVqxYwVe/+lWWLTvftalzGx0dZWBggJGREXJyciYd2I2xZ+GJiZCWdp6FKKXUNGlwjnzTCc7HgU8YY2qC75cALxtjyq9A/s5LH0KilFIXT4Nz5JtOA05nKDAH1QGdM5SfadEuI5VSSs1n0wnOx0Tk9yLyZyLyCLAV2Cci94jIPTOcvykZY7YaYx5NTv5wNwAppZRSkWg6HV/EAh3A9cH3Xdh/z9+JvUHsuZnJmlJKKbUwXTA4G2P+/EpkRCmllFLWOYOziPwIWzOekvbjrJRSSs2M89WcJ94G/V3g2zOcF6WUUkpxnuBsjPllaFhEvjzxvVJKKaVmznSfhTN3n/GplFJKzTGX+UF1V4b+z1kppdR8ds7gLCIDItIvIgPA6uBwf2j8FczjWfR/zkoppeaz811zTjzXZ0oppZSaOeerOe8XkR+KyBYROXf/hEoppZS6rM53zbkSeB64AXgj+AjPL4nIpXW9pJRSSqlpOV+zth/YGUyISC7wceD/FpFSYI8x5m+uQB6VUkqpBeWCj+8UkY8Cu40xbcATwBMishGImunMKaWUUgvRdP5KtR14XUSyJ4z7mTFm1wzlSSmllFrQphOcq4D/DuwUkU3BcTJzWVJKKaUWtul0GWmMMS+JSBXwtIg8gT4xTCmllJox06k5C4Ax5gTwUeA6YPVMZkoppZRayC4YnI0xaycMDxlj7gdKZjRXF6CP71RKKTWfXXJ/zsCs9edsjNkKbF2/fv1fzVYelFJKqZmi/TkrpZRSEUb7c1ZKKaUijPbnrJRSSkWYOdmfs1JKKTWfne+GsAHGa8zxE/pwFux/n5NmOnNKKaXUQqT9OSullFIRZjpPCFNqTvjgAzh4ED72MUhLm+3cqF27YPnyufVd+P3w2mvw8suwZw/U1MDAALhcEBMDcXHgdkNSkk1u93hKTISEBPvq88HgoJ13YACGhsDjsZ9ddRWsXw+bNkFGxvi6fT548UXYuhX27oWGBhgZgbIy+Na34IEHZm2zqFkgxszde73Wr19v9u/ff+EJI0wgAI7LcLXf77fLuRzLiiT19bBtmz04xsTYA/yaNXD11ZCSMj7dwYPwxBP2YFpbaw9kITExkJ8Pq1fDTTfB3XfDokVXthwtLfDP/wxvvgkVFfDZz8KGDdOfv70djh2DqipbvuZmGBuzB/ZbbrHbYzrffSAA3d12GQ0NNl/t7XabfuYzEB19yUU8S309fO1r8NJLMDxsxyUnw9q1cM898MgjNqiB3X937LDTvvMOnDhhg+C998J3vgNZWecv0/PPwzPPgNNpl5mcbFNqqn3f2Gi3XX09tLbCqVM2YAYCdh6n067P5bLbYHgYznyuUXw8ZGbafWt42L6Ojtrv4XJwOGxgF4H+/vHxIvakJiHBlgPsdPffDz/4weSgfilE5F1jzPoPtxQ1kxZkcP7e9+C3v7Vnsh4PeL3jP7pAAPLy4Npr7Znq7bdffPDbtw/+5V/g0CHo7bU/uqEhuw6/f3w6h2P8ABEdbc/KU1IgO9sGkpISe9ZcVmYPMrt3w5Ej9gDb1WXzLWIPRuXlsHmzPQBu2BA5Abu93R54Dx60B0m/H0K7XOjV57M1lKYme3AMBM69PIfDbiefz35fIRkZNlgtXw7799vtderU5GWJ2INtairk5trtu3Sp/W5aW6Gjw87T22trO06n/T4yM+30ixfDkiVQVGS/o6ws+1l8vF2+xwO//CU8/TQcOGCXcSaXCwoL7f716U/bcrz7Lrz/vt0+bW12G0ws2/m43TZvixbZ9fX321ePZ/I+fT45OVBZaff3e+6xeQQ7X2en/W7q6uyyCwqguNhuu4QEO53fD//rf8FPfjIeSOLi4OabbXnef388UIPd/oHA2YEw9L2GAl9JCXzuc/DlL9vfx+Ag/PjH8Otf22VO/C1dSGi/SUmBqKjx/SeUxsZsuYuL7X60ZQvcccd4Gafi89l9JbTP9PTY1N9v85uSYsualmZfU1Pt9ti9G957D44ft9urs9Ouv6TE1qbvvttuu9BvuLERvvpVW6P2+ex+vGYN/I//Yae7FBqcI9+CDM633gqvvjp+9hwVZWtasbE2YHR0jB/QRGyw3rgRVq60P94lS2wwDJ3Zt7bCT39qm6SOH7c/oBCn0/5Q4+Ntk1ZKiv3BezzjTV2hkwOfz75e6CtxuewPvqDALqOxcfLBz+Gw6wsEzk4wfiKQlGQPGJmZtozr18PHP27LN5VAwAaS556ztcGurvG8BgJ22Bhbnt5e+3oxu1d8vA00ZWV2e994oz0AHzxom6zr6uy27uqy39n69XDffbY2ERs79TIPH4YXXrAHxKYmeyAcGJj8HU0kMr4/BAK2DNOpJYlMLqvbbWvL990Hf/qnsH27PSHcu9eWYartImK/l7Q0u2/l5NjvuKgISkvtiYcxtqVgzx5bq25pmXxCE9qfY2Pt9kxIsPtcerr9nnNy7HedkwN//ON4q0Mo0InYsvt8Fw7qYPfF0L4lYn8j3/jG2U2w9fXwr/9qW0Sqqmw+Q4HwttvgzjttXv1++1v6yU/sdGD354wM+92FZGfb+R591Jb11Ck4fXo8UPb325aTNWtg3brx2vpcFgjY7fI//6f9zX/5y/ak6FJocI58CzI4X0ggYJvbfvUrewBrajr3WbrTOfngnZ4OH/mIbb771KfGayEXw+OxNeSjR6G62q5/0SJ7Vn3jjZObdkNOn7ZBc/t2W2vr6bHrDh2sXS77CvbANThoA89U5XI47DoWL4YVK2wwOXbMNo1OPGCHzuxFJr+GmhkzM21wWbbMHrRXrbIH/onzhprly8svbVtdKr/f1r7efdfmdelSGwBDteAzp62ttdNXVcHJk3Ybhmqpg4P2OxOxAeNv/sYGnnMJBOz39Oyzdt3r1tma9PnmuRCv99wnKNPxzjvwi1/Y/X5gYPzELSPDBsL8fHvC0dZmT167uuw+19dnt8+dd8J/+2+X9/pyby889hj8x3/YoFtaak92vvjFD9+sO9cdO2Z/n+er2Z+PBufIp8F5mg4csAGzvt4Gy7a28QNUdrZtovzLv5w6cEa63l5bw9y509bsjh+35fN4xqeJjrYnCGvX2ia/e+6ZWzf6KKXGaXCOfBqc1Tn5/bb5tKTENoUqpeYHDc6RL2L+SiUiJcA/AMnGmE/Pdn6UbWbevHm2c6GUUgvPjN7TKyJPiEiniBw9Y/wWEakSkRoR+TqAMabOGPOXM5kfpZSa60ZHR6mtraW3t3e2s6Jm0EzXnP8d+DHwf0IjRMQJ/AS4FWgB9onIi8aY92c4L0qpBaKrq4vTp08zNDQ0KXmCN1LExsYSExNDbGxseDglJYWCggLip7or8AI8Hg+7d+9mx44d/PGPf8Tj8RATE0N0dPSkV7/fz8DAAAMDA/T394eHjTHk5+eH06JFi8jPzyclJYXm5mbq6uqora2lrq6OpqYmAoEATz75JA8++ODl3nQqQsxocDbG/FFEis4YvRGoMcbUAYjIU8BdwLSCs4g8CjwKUFhYeNnyqpS6fPx+PydOnCA/P5+kS/wf09jYGI2NjVRVVdHR0UFycjKpqamkpKSQmppKamoqMTExHD9+nMOHD3Po0KHwa+fE/11dpIyMDBYvXszixYspLCwkPz8ft9tNXFzcpGSM4e233+b1119nz549+Hw+nE4n69evJzc3l5GREXw+H319ffh8PkZGRnC5XCQmJpKenk5xcTGJiYkkJiZijKG1tZWWlhbeeOMNWltb8U/4K0VWVhYlJSVs2rSJhx9+ODys5q/ZuOacDzRPeN8CXCMi6cD3gLUi8g1jzP8z1czGmJ8DPwd7Q9hMZ1YpdWGDg4Ps2bOHXbt28dZbb7Fnzx4GBwcREcrLy9m4cSMbN27kmmuuYdWqVURFRTE0NERHR8ekFArG1dXV1NTUMDLxsW8XEBMTw1VXXcUdd9zB6tWrycrKwu12h1N8fDxutxsRwev1MjIygtfrDQ+fPn2axsZGGhsbaWpq4oMPPuA///M/w7XtqYgI69at44tf/CI33ngjH/3oR0lM/PDdEgQCATo7O+np6aGgoICES/3PlJqzZiM4yxTjjDHmFPDXVzozSk3U2trKU089xVNPPYXH46GkpIQlS5ZMei0sLLxg0+fAwAC1tbXU1tZy8uRJFi1aRHl5OaWlpURfxPMy+/v7eeutt9i5cyc7d+6ktbWV/Px8CgoKKCwspKCggIKCAjIzM+nv76enp4fe3l56enro6elhYGCA7OxsiouLw6mwsJCoqCiMMZw6dYra2lpqamrCqbu7G5/Pd1by+/24XC6cTiculys8PDw8zNGjRxkbG0NEWLNmDY888ggbNmygubmZvXv3sm3bNn75y18CNog6HA6GJz45JygqKoolS5ZQVlbG7bffTllZGWVlZeTm5k5ZPo/Hw7Jly1i9ejXLli3DdZn/LG+MYWBgAI/Hw/DwcDh5PB78fj8VFRWkpqZe1nUCOBwOcnJyyMnJuezLVnPDbATnFqBgwvtFQOvFLEBE7gTuLC0tvZz5UpdgdHSUDz74gAMHDnDgwAHee+89Ojo6wgFkYsrLyyMmJgaXy0VUVBRRUVHhA7zH46G/vz+cQtfk3G43eXl54eR2u6eVp5aWFhoaGmhoaKCxsZGOjg4KCwvDB/vS0lJigk9EGRgY4LnnnuNXv/oVr7/+OoFAgPXr11NaWkpdXR2vvfbaWbWn2NhY0tPTSUtLIz09nfT0dKKjo6mvr6e2tpaurq4p8+Z0OikpKaG8vJyysjJSUlLC2yH06nK5qK6uZufOnRw4cIBAIEBUVBSVlZXccssttLa2cvToUbZt23beWl1SUhIJCQl0dnZOaiJ1OBzk5+fT399P34RnaIoIhYWFZGVlha+TJiQkEB0dTXR0NE6nk7GxMfx+/6TX1NRUPvnJT3LttddSWVlJcnLyWXkxxtDU1MTevXvZt28fY2NjZGdnn5WysrIue4D9MESEpKSkS26aV+pSzfj/nIPXnF8yxqwMvncB1cDNwElgH/CgMebYxS47Uv7nbIyhu7s7HAhCr/39/eEbQSamxMREysrKWLFiBYsXL8ZxCQ/Cbm9vZ+vWrfh8PioqKli9evUlN6d1dHSwfft2HA4HSUlJJCcnhw9IiYmJDAwM0NraSltbG21tbeHh0LW+UNOj2+1m7dq15OXlcfLkSZqbmzl58iRjl6uXAGzAycvLIykpibGxMcbGxggEAuHhoaEhTp48SWDCo8xEhJSUFHp6esLjHA4HRUVFFBQUsHfvXoaHhykpKeHhhx/moYceYtmyZeFpjTF0dnaGb8hpaWnh9OnTnDp1KpxOnz6N1+ulqKiIJUuWTEr5+fk0Nzdz/PjxSenEiRPnbLaNjo6msrKSG264geuvv57KysqzauvGGHp6emhqaqK7u5ukpCRSU1NJS0sjOTk5HOT8fj8nT56kvr4+nBoaGkhKSqK0tDSciouLwycsan7T/zlHvhkNziLya+AGIAPoAL5tjPmFiNwO/BPgBJ4wxnzvUpZ/qcH51VdfZceOHeFrUQkJCZOuS4Vqcw6HA6fTidPpRETo7OykubmZlpYWWlpawsONjY1nNdGFDpShG0FCN4eMntGjQVxcHOXl5axYsYIVK1ZMqtnFnvE8xoaGBp5//nmee+45du3axZnfXUlJCRUVFaxZs4aKigoqKiooKChA5OwrCYODgzz//PM8+eSTvPrqqxcVQKOjo8nNzWXJkiWsW7cunEpLS3E6nZOmHRsbo729naamJtrb28PNo6Ojo5Ne3W53+IRg4onB4OAgra2tk9LJkycZHBwMfzcTv6v4+HgKCwspKiqiqKiIxYsXU1BQQHR0NP39/VRXV4evaVZVVVFXV8eGDRt4+OGHqaysnHJbzZRAIIDf75+0HULD6enpxMXFXbG8qIVFg3Pkm5NPCJvQrP1XJ06cuOj5H3vsMR577LFLrtGJCLm5uRQUFJCfnx++s3NiQEg5x3M8A4EAvb29HD9+nPfffz+cPvjgA5qamsLTORwOFi9eTFlZGcXFxbzzzjscOHAAgIqKCu6++27uvvtuUlNTOXjwIIcOHeLQoUMcPHiQmpqacOBOSUkJB+qKigqSkpL47W9/ywsvvMDw8DBFRUU8+OCD3H///bjdbvr6+sJNy6HhxMREcnNzyc3NJS8vj7S0tCsaxJRSl5cG58g3J4NzyIdp1jbGMDIyctb/IIeGhs5qKg29z8zMpKCggJycHKJCvUhcRoODg+Ea3cRUU1PDypUrueeee7j77rtZcq5uoyYsJ/SXklDAPnz4cLh2n5aWxv3338/DDz/Mpk2bNNAqtcBocI58CzY4LzRjY2OcOHGCjo4OPvKRj1zUHcNKqflFg3Pki5zbItWMcjqdlJeXU15ePttZUUopdQEz+mztmSIid4rIzyf+DUQppZSaL+ZkcDbGbDXGPDrV/ymVUkqpuW5OBmellFJqPtPgrJRSSkWYORmc9ZqzUkqp+WxOBme95qyUUmo+m5PBWSmllJrPNDgrpZRSEUaDs1JKKRVh5mRw1hvClFJKzWdzMjjrDWFKKaXmszkZnJVSSqn5TIOzUkopFWE0OCullFIRRoOzUkopFWHmZHDWu7WVUkrNZ3MyOOvd2koppeazORmclVJKqflMg7NSSikVYTQ4K6WUUhFGg7NSSikVYTQ4K6WUUhFGg7NSSikVYeZkcNb/OSullJrP5mRw1v+5iQeZAAASZElEQVQ5K6WUms/mZHBWSiml5jMNzkoppVSE0eCslFJKRRgNzkoppVSE0eCslFJKRRgNzkoppVSE0eCslFJKRRgNzkoppVSE0eCslFJKRZg5GZz18Z1KKaXmszkZnPXxnUoppeYz12xnQCml5juv18uhQ4dobW1ldHSU0dFRfD5f+DUxMZGrr76aFStW4HDMyTqTusw0OCulFpRAIEBVVRWvvfYa+/bt49ixYzQ3N+Pz+cjMzKSgoIBly5axatUqNm7cSEVFBS7XhQ+Vvb29/O53v+OVV16hpqaG9vZ2Tp8+jcfjYWxsbNr5i4qKIjExkczMTPLz88nJySE/P5/CwkJKSkpYunQpxcXF08qTmrvEGDPbebhk69evN/v375/tbCilLoLf76e2tpYTJ07Q0NBAU1MTJ0+epLOzk/j4eG699VY+85nPkJGRcc5l9Pb28uKLL/Lmm2/S0tJCV1cXPT099Pf3MzQ0hM/nwxiDiCAiAOHh0dFRzjzuxcbG4nK58Hg8BAKBs9YXCphZWVkUFBSwdOlSFi9ezP79+zl48CDNzc14vd5J87hcLhISEkhLSyM3N5eioiIyMzOJioo6K/X19VFdXU1DQwPt7e309PQwPDw8ZV5C/vqv/5qf/vSnF7Ppw0TkXWPM+kuaWV0RGpyVmiMCgQBer5f4+PjLulyv18vrr7/Ojh072L9/P4FAgOXLl7Nu3Tquv/56li5deslNrV6vl23btvH73/+evXv3Ul9fz8DAwLTmjY2NpaioiGuuuYaysjL27NnDkSNHaG1tZWRk5KzpXS4XMTExuN1uEhMTcTqdBAIBAoEAY2Nj4eGkpCTKysq4+uqrue6666isrCQ6Ojq8nNOnT7Nnzx4OHDjAsWPHqK2tnVQLPvOYKSKkpaVRVlbGpk2buPPOO9m0adNlqdn29/dTXV1NbW0t9fX1NDc309bWRmdnJ1/84he5//77L2m5GpwjnwZnpc5jcHCQmpoaampqaGxspKWlhZGREfLz81m8eDHFxcUsXbqUjIyMGblW2N3dzQ9/+EOeeeYZqqurCQQCxMTEkJOTw1VXXcXmzZu58847WblyJX6/n/r6eurq6sJ57ezsxOPx4PV68fl8jIyMMDo6itfrpaWlhY6OjrNqfFOJj48nKSlp0rjQscMYEw58gUAg/N7v9zM8PDxpnsTEREpKSliyZAl5eXnk5+dTXFzMkiVLKC0tpaWlhd/85jfs3LmT999/n9OnT08Khg6Hg4yMDJYtW0ZlZSW33XYba9asISsr6zJs7enp7Oxk7969VFVVsXnzZjZs2DDnrhNrcI58GpzVRWtpaeFb3/oWzc3N5ObmUlBQQHFxMaWlpZSXl5OTkzPbWTyv9vZ2fvCDH/Dss8/S1NQ06bOJTaDna1KcitPpJDk5mby8PJYuXcq6devYvHkzmzZtIjo6Gr/fj9frDQfL4eFhhoeHGRoawuPxhN8PDg7yyiuv8Prrr9PV1RVefn5+PgUFBdTV1XHq1KmLuo55rvympaVRVFTEmjVruP7669myZQuxsbG8+eabvP322xw+fJja2lpaW1vxeDxTbiuwQVNEcDgc4WGn00l+fj4bN27kE5/4BFu2bJlUQ52OQCDAa6+9xpEjR/j4xz/O8uXLP1SZlaXBOfJpcJ4hoZrDxR6MzrRr1y5+9KMf0dbWhtfrxev1MjIygs/nw+fzISLExsYSFxdHfHw8brebhIQEHA4HfX194WtwQ0NDeL1eAoEARUVFbNy4kdtvv53bbrttWnn0+Xw8/vjj/OxnP6OxsfGC0zudTqKiooiLi8PtdpOUlERSUtKUNQyHw8Hq1au59957ueGGG85bCzl69CgvvPBC+M7X0LXGwcFBRkZGMMYQHx9PVlYWS5YsYe3atWzevJni4mJ+9KMf8dJLL9He3g7Y4FJaWkpmZiZ+v/+sFBcXR0ZGBllZWeTm5lJYWEhRURHR0dE0NTWFr5V2dHTQ3d1NV1cX3d3dDA0NXXD7TIfL5WLVqlU88MADfP7znychIWHS5ydOnGDr1q28+eab1NXVkZSUREZGBtnZ2eH8FhYWkpycjNvtDu8bCQkJH3q/VHObBufIt+CDs8fjobe3N3wzicfjITMzk5ycnEtqqnz++ef5/ve/z/79+xkbG8PlcpGYmEh2djZFRUUsX76ciooKNmzYQFlZ2ZTL3759O48//jhvvfXWlLWVUA3F6XRijAlfTzvXd+lwOHC5XERFRWGMOWuZCQkJLF68mIyMDJKTk0lNTSUtLY309HQSEhJ4+umn2bt3L2NjY4gIK1as4Ctf+Qr33nsvVVVVnDhxgtraWpqbm2ltbaWzs5O+vj4GBgbweDzhptTp7GsiQmZmJitXruSmm26ir6+Pt99+m+rqarq7u8+qzTocDmJjY8M33kRFRdHa2kpvb++UNUun08mqVav4i7/4Cz73uc/NSJAKBAK8//777Ny5k/3791NTUwMQ/g6ioqKIjo4Ov8bExBATE0NsbGz4fWVlJVu2bJlzzaVqbtDgHPkWZHC+7bbbeOWVV6Y1bSgQulwuUlJSKCwsZOXKlVRWVnLrrbdSXFzMO++8w3e/+1127NgRvn6XmZlJaWkpra2tdHd3T3kjCUB0dDRJSUlkZmbidrs5cuRI+GYXt9vNddddx1e+8hVuvPHGad1g4vV66ezsZHR0lPz8fGJjY6ecZtu2bWzbto39+/dTV1dHf3//eYNnZmYmDz30EN/+9rdJSUmZ1rabLq/Xy4svvsjvfvc79u3bR2NjIz6fb9I0MTEx5OXlsWrVKq6//npuueUWysvLzxtcOzs7ee2119i9ezcNDQ3cd999PPzwwxrw1IKnwTnyLcjg/Nhjj/Hiiy8SExNDXFxcOLndbmJiYujv76e3t5f+/v5w7W9wcJCenp6z7hIVkXBQS0hIYMuWLXznO9/hqquuOmu9ra2t7N69m3fffZeqqioaGxtpb2+nt7eX4eFhjDEkJydz00038bWvfY1rrrnm0jbMJfL5fLS1tdHa2kp7ezudnZ10d3dzxx13UFFRcUXz0tjYyG9+8xvS0tK46667zvu3GqXUxdHgHPkWZHD+MLxeL7t27eKNN97g3XffpaamhkWLFvHNb36Tm2+++UMt2+fz6bVApdSM0+Ac+TQ4K6XUAqPBOfLpxTellFIqwkTMw1lFxA38M+ADdhpjnpzlLCmllFKzYkZrziLyhIh0isjRM8ZvEZEqEakRka8HR98DPGOM+SvgkzOZL6WUUiqSzXSz9r8DWyaOEBEn8BPg48AK4AERWQEsApqDk324Rx8ppZRSc9iMBmdjzB+B02eM3gjUGGPqjDE+4CngLqAFG6BnPF9KKaVUJJuNIJjPeA0ZbFDOB54D7hWRnwJbzzWziDwqIvtFZP/E5w4rpZRS88Vs3BAmU4wzxpgh4M8vNLMx5ufAz8H+leoy500ppZSadbNRc24BCia8XwS0XswCROROEfl5X1/fZc2YUkopFQlm/CEkIlIEvGSMWRl87wKqgZuBk8A+4EFjzLFLWHYXcOEuksZlAN0Xu555QMu9sCzUcsPCLfvFlnuxMSZzpjKjPrwZbdYWkV8DNwAZItICfNsY8wsR+QKwHXACT1xKYAa42J1LRPYvxKfiaLkXloVabli4ZV+o5Z7PZjQ4G2MeOMf43wO/n8l1K6WUUnOV/mVJKaWUijALLTj/fLYzMEu03AvLQi03LNyyL9Ryz1tzulcqpZRSaj5aaDVnpZRSKuJpcFZKKaUizIIJzufoCWvOmqrHLxFJE5FXRORE8DU1OF5E5H8Hy35YRNZNmOeR4PQnROSR2SjLxRCRAhHZISIfiMgxEflScPy8LruIxIrIXhE5FCz3d4Pji0XknWAZnhaR6OD4mOD7muDnRROW9Y3g+CoR+djslOjiiIhTRN4TkZeC7+d9uUWkQUSOiMhBEdkfHDev93M1gTFm3ifs/6lrgRIgGjgErJjtfH3IMl0HrAOOThj3A+DrweGvA98PDt8ObMM+OrUSeCc4Pg2oC76mBodTZ7tsFyh3LrAuOJyIfaDNivle9mD+E4LDUcA7wfL8BvhMcPzPgM8Hh/8G+Flw+DPA08HhFcH9PwYoDv4unLNdvmmU/++A/8A+0IiFUG6gAcg4Y9y83s81jaeFUnM+V09Yc5aZusevu4BfBod/CXxqwvj/Y6w9QIqI5AIfA14xxpw2xvQAr3BGF5+RxhjTZow5EBweAD7Adpwyr8sezP9g8G1UMBngJuCZ4Pgzyx3aHs8AN4uIBMc/ZYwZMcbUAzXY30fEEpFFwB3AvwXfCwug3Ocwr/dzNW6hBOdz9YQ132QbY9rABjEgKzj+XOWf09sl2GS5FluLnPdlDzbtHgQ6sQfZWqDXGOMPTjKxDOHyBT/vA9KZg+UG/gn4eyAQfJ/Owii3Af4gIu+KyKPBcfN+P1fWbPRKNRum7Anriudi9pyr/HN2u4hIAvAs8GVjTL+tHE096RTj5mTZjTFjQIWIpADPA8unmiz4Oi/KLSKfADqNMe+KyA2h0VNMOq/KHXStMaZVRLKAV0Tk+HmmnU/lViycmvOH7glrjugINmURfO0Mjj9X+efkdhGRKGxgftIY81xw9IIoO4AxphfYib22mCK2MxmYXIZw+YKfJ2Mvg8y1cl8LfFJEGrCXo27C1qTne7kxxrQGXzuxJ2MbWUD7+UK3UILzPmBp8A7PaOyNIi/Ocp5mwotA6G7MR4DfTRj/2eAdnZVAX7BJbDtwm4ikBu/6vC04LmIFrx/+AvjAGPP4hI/mddlFJDNYY0ZE4oBbsNfbdwCfDk52ZrlD2+PTwOvGGBMc/5ngXc3FwFJg75UpxcUzxnzDGLPIGFOE/d2+box5iHlebhFxi0hiaBi7fx5lnu/naoLZviPtSiXs3YzV2Ot0/zDb+bkM5fk10AaMYs+O/xJ7be014ETwNS04rQA/CZb9CLB+wnL+AntzTA3w57NdrmmUezO2We4wcDCYbp/vZQdWA+8Fy30U+FZwfAk2yNQAvwViguNjg+9rgp+XTFjWPwS3RxXw8dku20VsgxsYv1t7Xpc7WL5DwXQsdMya7/u5pvGkj+9USimlIsxCadZWSiml5gwNzkoppVSE0eCslFJKRRgNzkoppVSE0eCslFJKRRgNzmreEpGxYI8+x8T25vR3IuIIfrZeRP73eeYtEpEHr1xuz1p/nIi8ISLOi5jnCyLy5zOZL6XUlaF/pVLzlogMGmMSgsNZ2F6Ndhljvj2NeW8A/qsx5hMzm8tzrv+/AC5jzA8vYp54bPnWzlzOlFJXgtac1YJg7CMQHwW+EHyK0g0y3jfw9cEa9kGxfQYnAv8IfDQ47ivBmvSbInIgmDYF571BRHaKyDMiclxEngw+xQwR2SAiu4O19r0ikhjsvOK/i8g+sf3ufu4cWX6I4NOfgut4Q0R+IyLVIvKPIvJQcJlHRGRJsIweoEFE5mJvS0qpCRZKxxdKYYypCzZrZ53x0X8F/osxZlewQw0vtq/ccM05WCu91RjjFZGl2Ce0rQ/Ovxa4CvvM4l3AtSKyF3ga+BNjzD4RSQKGsU9y6zPGbBCRGGCXiPzB2G4MCa4rGvtkq4YJeVyD7ejiNLZP3n8zxmwUkS8Bfwt8OTjdfuCjRPCjKZVSF6bBWS00U/XSswt4XESeBJ4zxrTI2b1cRQE/FpEKYAxYNuGzvcaYFgCxXToWYbsqbDPG7AMwxvQHP78NWC0ioedCJ2Of81w/YXkZQO8Z699ngl0Fikgt8Ifg+CPAjROm6wTKz1l6pdScoMFZLRgiUoINrJ1M6G7RGPOPIvIy9hnde0Tklilm/wrQga3BOrC165CRCcNj2N+VMHXXfAL8rTHmfJ0PDGOfET3RxHUEJrwPMPl3HBucXyk1h+k1Z7UgiEgm8DPgx+aMuyBFZIkx5ogx5vvYZuFyYABInDBZMrYmHAD+FLjQXdTHgTwR2RBcR6LYLgy3A58X2+0lIrIs2OtQmDGmB3CKyJkBejqWYTvGUErNYVpzVvNZXLCZOQrwA/8f8PgU031ZRG7E1nrfB7Zha6R+ETkE/Dvwz8CzInIftrvCofOt2BjjE5E/AX4U7OJxGNvN479hm70PBG8c6wI+NcUi/oDtgevViykwtv/j717kPEqpCKN/pVIqAonIWuDvjDF/OpPzKKUikzZrKxWBjDHvATsu5iEk2BvJ/q8ZypJS6grSmrNSSikVYbTmrJRSSkUYDc5KKaVUhNHgrJRSSkUYDc5KKaVUhNHgrJRSSkWY/x+xQdwLfICu3AAAAABJRU5ErkJggg==\n", + "image/png": "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pk1YrVZyc3P56le/ykMPPURPT4+3kuaxxsZGAAoKCnjmmWd44oknzhP6pqYm3njjDd544w1qa2vH/S8kJMRbsYuJiaG9vZ2mpiaampro7u4e99wuXryYO++8k7Vr17Jw4UL0ej12u52NGzfy29/+lj179uDv78+jjz5Kbm4u5eXllJeXU1VVNS5PRkVFERcXN840TePDDz+kvLwcgJycHNavX8/69etZvnw5fn6X1r7SNO2oEGKB72+lpaWNhYWF3Rc65lpws4lzaWlpVGFhYdpE/7spxVkIQVtbGyUlJZSUlHhbbK2trd59kpOTva20wsJC8vLyaG9v9wr38ePHJxRuTdMIDw8nIiKCkJCQcQLrseDgYJKTk0lJSfFaXFzcJbfaLBYLe/fu9baOS0tLAUhISGDt2rXccccdrFmzxls4OZ1O9u3bx+bNm9m8eTP19fXec+n1eubPn8/KlStZuXIly5Yto7e3l88//5wDBw5w4MABKioqvC0d3/uOiYnxVjA83ZTDw8MMDw97W0cJCQlkZmaSmZlJRkaGN8zPz592d+bw8DAOh4Pw8PCLiichxDjxcrlc2O126urqqKio8Fp5eblXQD3odDpvhUmn02Gz2byC5rvPkiVLWLduHevWrSM/P/+81pcn7x06dIijR48SGhpKbm4us2bNIiMjA4PBcFH3NBVut5u6ujpvXj969CglJSX09fVNuL9eryckJITo6GiioqLGhcHBwbhcLhwOB06nE4fDgcPhwOVyeXshPBVIj3AnJCSQlpZGWloaSUlJ02q5CyEoKytj48aNbNq0yStM4eHhPPbYYzz11FMsXLhw0hZxX18fb7/9Nq+//jqHDh3Cz8+Pe++9l6effprBwUH++Mc/smvXLgBuu+02nnrqKRYtWkRjYyM1NTXeSl1NTQ1nzpwhMTGR1NRUr6WkpBAREcH+/fv56KOPOHLkCEIIwsPDWblyJQcOHODMmTNkZGTwwgsv8Mwzz5zX42a326murqa8vJyamhpOnz5NZ2fnOLPb7axcuZL169ezbt06cnJyppv0kzLTxXnr1q3B//qv/5oQERHhqK6uDigoKLC89957Def23G3dujX4f/7P/5kQHh7urK+vNy1evHjozTffbNbr9ZjN5nlf+9rXznz88cehJpPJvXXr1trk5GTnX/7yl9Cf/OQn8Q6HQxceHu58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\n", "text/plain": [ "
" ] @@ -216,7 +222,7 @@ } ], "source": [ - "DOBS = dobs.reshape(( prob.n_sounding, 2, survey.n_frequency))\n", + "DOBS = d_obs.reshape(( sim.n_sounding, 2, survey.n_frequency))\n", "i_freq=0\n", "plt.semilogy(mesh.vectorCCx, DOBS[:,0,i_freq], 'k')\n", "plt.semilogy(mesh.vectorCCx, DOBS[:,1,i_freq], 'b') \n", @@ -236,20 +242,20 @@ "outputs": [], "source": [ "from SimPEG import (\n", - " Regularization, Directives, Inversion, InvProblem, Optimization, DataMisfit, Utils\n", + " regularization, directives, inversion, inverse_problem, optimization, data_misfit, utils\n", ")\n", "from simpegEM1D import get_2d_mesh, LateralConstraint" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def run_inversion(option=None, ps=2, px=2, pz=2, alpha_s=1., alpha_x=1., alpha_z=1.):\n", " \n", - " mapping = Maps.ExpMap(mesh)\n", + " mapping = maps.ExpMap(mesh)\n", " # mapping = Maps.IdentityMap(mesh)\n", " survey = GlobalEM1DSurveyFD(\n", " rx_locations = rx_locations,\n", @@ -261,16 +267,22 @@ " field_type = 'secondary',\n", " topo = topo\n", " )\n", - " survey.dobs = dobs\n", - " prob = GlobalEM1DProblemFD(\n", - " mesh, sigmaMap=mapping, chi=chi, hz=hz, parallel=True, n_cpu=2, verbose=True,\n", + "\n", + " sim = GlobalEM1DSimulationFD(\n", + " mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, parallel=True, n_cpu=2, verbose=True,\n", " Solver=PardisoSolver\n", " )\n", - " prob.pair(survey)\n", + "\n", "# m = np.log(sigma_em1d)\n", "\n", + " std = 0.03\n", + " floor = 0.\n", + " np.random.seed(1)\n", + " uncert = std*abs(d_obs)+floor\n", + " dataObj = data.Data(survey, dobs=d_obs, noise_floor=uncert)\n", + " \n", " mesh_reg = get_2d_mesh(n_sounding, hz)\n", - " regmap = Maps.IdentityMap(mesh_reg)\n", + " regmap = maps.IdentityMap(mesh_reg)\n", " # mapping is required ... for IRLS\n", " reg = LateralConstraint(\n", " mesh_reg, mapping=regmap,\n", @@ -278,42 +290,41 @@ " alpha_x = alpha_x,\n", " alpha_y = alpha_z,\n", " )\n", - " xy = Utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", + " xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", " reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True)\n", - " std = 0.03\n", - " floor = 0.\n", - " np.random.seed(1)\n", - " uncert = std*abs(dobs)+floor\n", + " \n", + " \n", " m0 = np.ones(mesh_reg.nC) * np.log(1./20.)\n", "# m0 = np.ones(mesh_reg.nC) *1./20.\n", - " dmisfit = DataMisfit.l2_DataMisfit(survey)\n", + " dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", " dmisfit.W = 1./uncert\n", " ps = ps\n", " px, pz = px, pz\n", " reg.norms = np.c_[ps, px, pz, 0.]\n", - " IRLS = Directives.Update_IRLS(\n", - " maxIRLSiter=30, minGNiter=1, \n", + " IRLS = directives.Update_IRLS(\n", + " max_irls_iterations=30, minGNiter=1, \n", " fix_Jmatrix=True, \n", - " betaSearch=True,\n", " f_min_change = 1e-4,\n", " coolingRate=3\n", " )\n", - " opt = Optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20)\n", - " invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", - " beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=1)\n", - " betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", - " target = Directives.TargetMisfit()\n", - " sense = Directives.UpdateSensitivityWeights()\n", - " update_precon = Directives.UpdatePreconditioner()\n", + " opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20)\n", + " \n", + " invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + " \n", + " beta = directives.BetaSchedule(coolingFactor=2, coolingRate=1)\n", + " sense = directives.UpdateSensitivityWeights()\n", + " betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", + " target = directives.TargetMisfit()\n", + " update_precon = directives.UpdatePreconditioner()\n", " if option is None:\n", " reg.alpha_x=0.\n", - " inv = Inversion.BaseInversion(invProb, directiveList=[beta,betaest,target, sense]) \n", + " inv = inversion.BaseInversion(invProb, directiveList=[beta,sense,betaest,target]) \n", " elif option == \"l2\":\n", " reg.alpha_x=10. \n", - " inv = Inversion.BaseInversion(invProb, directiveList=[beta, betaest, target, sense])\n", + " inv = inversion.BaseInversion(invProb, directiveList=[beta, sense, betaest, target])\n", " elif option == \"l0\":\n", - " inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest, sense])\n", - " prob.counter = opt.counter = Utils.Counter()\n", + " inv = inversion.BaseInversion(invProb, directiveList=[IRLS, sense, betaest])\n", + "# prob.counter = opt.counter = Utils.Counter()\n", " opt.LSshorten = 0.5\n", " opt.remember('xc')\n", "# print (reg.cell_weights)\n", @@ -321,12 +332,12 @@ " if option == 'l0':\n", " return mopt, invProb.l2model, invProb.dpred\n", " else:\n", - " return mopt, invProb.dpred" + " return mopt, None, invProb.dpred" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 19, "metadata": { "scrolled": false }, @@ -337,7 +348,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ @@ -346,7 +357,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 21, "metadata": { "scrolled": false }, @@ -357,218 +368,44 @@ "text": [ ">> Use multiprocessing for parallelization\n", ">> n_cpu: 2\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default std of 5%\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sgkang/Projects/simpeg/SimPEG/Directives.py:935: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", - " \"Without a Linear preconditioner, convergence may be slow. \"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n", "Compute fields\n", ">> Compute response\n", - ">> Compute J sigma\n", "model has any nan: 0\n", "============================ Inexact Gauss Newton ============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 6.03e+00 2.57e+04 0.00e+00 2.57e+04 6.27e+03 0 \n", + " 0 3.43e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 1 6.03e+00 1.29e+03 1.72e+01 1.40e+03 6.82e+02 0 \n", + " 1 1.71e+02 3.02e+03 1.02e+01 4.77e+03 1.01e+03 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 2 6.03e+00 3.07e+02 2.45e+01 4.54e+02 1.65e+02 0 Skip BFGS \n", + " 2 8.57e+01 9.78e+02 1.59e+01 2.34e+03 3.72e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", - "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.6342385711563501 eps_q: 0.6342385711563501\n", - ">> Fix Jmatrix\n", - "delta phim: inf\n", ">> Compute J sigma\n", - " 3 3.02e+00 2.18e+02 4.20e+01 3.44e+02 7.06e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 5.33e+00 2.18e+02 4.20e+01 4.42e+02 5.69e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 9.09e+00 2.18e+02 4.20e+01 6.00e+02 5.59e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.50e+01 2.18e+02 4.20e+01 8.48e+02 9.86e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 2.35e+01 2.18e+02 4.20e+01 1.21e+03 1.84e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.776e+00\n", - " 4 2.35e+01 3.12e+02 3.32e+01 1.09e+03 3.82e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 9.840e-02\n", - " 5 2.35e+01 3.04e+02 3.52e+01 1.13e+03 1.06e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.641e-01\n", - " 6 2.35e+01 3.03e+02 3.78e+01 1.19e+03 2.17e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.166e-01\n", - " 7 2.35e+01 3.03e+02 4.03e+01 1.25e+03 2.69e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.761e-01\n", - " 8 2.35e+01 2.96e+02 4.36e+01 1.32e+03 4.64e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.406e-01\n", - " 9 2.35e+01 3.06e+02 4.65e+01 1.40e+03 4.60e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 9.411e-02\n", - " 10 2.35e+01 3.21e+02 4.93e+01 1.48e+03 5.40e+01 0 \n", + " 3 4.29e+01 5.26e+02 1.94e+01 1.36e+03 2.06e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 10 1.90e+01 3.21e+02 4.93e+01 1.26e+03 4.89e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 6.124e-02\n", - " 11 1.90e+01 3.10e+02 5.23e+01 1.31e+03 5.38e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 4.119e-02\n", - " 12 1.90e+01 3.20e+02 5.03e+01 1.28e+03 6.56e+01 1 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 12 1.57e+01 3.20e+02 5.03e+01 1.11e+03 7.41e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 5.109e-02\n", - " 13 1.57e+01 3.18e+02 5.03e+01 1.11e+03 6.96e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 8.940e-03\n", - " 14 1.57e+01 3.24e+02 4.69e+01 1.06e+03 7.76e+01 1 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 14 1.30e+01 3.24e+02 4.69e+01 9.33e+02 9.33e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.850e-02\n", - " 15 1.30e+01 3.17e+02 4.46e+01 8.96e+02 7.88e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.516e-02\n", - " 16 1.30e+01 3.15e+02 4.12e+01 8.50e+02 7.11e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.676e-02\n", - " 17 1.30e+01 3.09e+02 3.75e+01 7.96e+02 5.82e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.648e-02\n", - " 18 1.30e+01 3.03e+02 3.40e+01 7.45e+02 5.12e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.468e-02\n", - " 19 1.30e+01 2.96e+02 3.10e+01 6.98e+02 4.57e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 2.168e-02\n", - " 20 1.30e+01 2.91e+02 2.83e+01 6.57e+02 4.21e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.929e-02\n", - " 21 1.30e+01 2.86e+02 2.60e+01 6.23e+02 3.90e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.520e-02\n", - " 22 1.30e+01 2.83e+02 2.40e+01 5.96e+02 3.47e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 9.436e-03\n", - " 23 1.30e+01 2.81e+02 2.24e+01 5.72e+02 3.18e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 4.275e-03\n", - " 24 1.30e+01 2.79e+02 2.11e+01 5.53e+02 3.10e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 7.674e-04\n", - " 25 1.30e+01 2.78e+02 1.98e+01 5.36e+02 2.99e+01 0 \n", + ">> Compute J sigma\n", + " 4 2.14e+01 3.48e+02 2.22e+01 8.23e+02 1.17e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", - ">> Fix Jmatrix\n", - "delta phim: 1.528e-05\n", - "Minimum decrease in regularization.End of IRLS\n", + ">> Compute J sigma\n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5682e+03\n", - "1 : |xc-x_last| = 3.6111e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 2.9863e+01 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 2.9863e+01 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 26\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 1.1827e+00 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 1.1748e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 1.1748e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 5\n", "------------------------- DONE! -------------------------\n" ] } @@ -579,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 22, "metadata": { "scrolled": false }, @@ -590,21 +427,18 @@ "text": [ ">> Use multiprocessing for parallelization\n", ">> n_cpu: 2\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default std of 5%\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - "Compute fields\n", - ">> Compute response\n" + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/sgkang/Projects/simpeg/SimPEG/Directives.py:935: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", + "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:931: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", " \"Without a Linear preconditioner, convergence may be slow. \"\n" ] }, @@ -612,264 +446,159 @@ "name": "stdout", "output_type": "stream", "text": [ - ">> Compute J sigma\n", + "Compute fields\n", + ">> Compute response\n", "model has any nan: 0\n", "============================ Inexact Gauss Newton ============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 7.15e+00 2.57e+04 0.00e+00 2.57e+04 6.27e+03 0 \n", + " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 1 7.15e+00 1.59e+03 2.63e-01 1.59e+03 8.19e+02 0 \n", + " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 2 7.15e+00 3.19e+02 2.10e+00 3.35e+02 2.30e+02 0 Skip BFGS \n", + " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", - "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.7908770648777925 eps_q: 0.7908770648777925\n", - ">> Fix Jmatrix\n", - "delta phim: inf\n", ">> Compute J sigma\n", - " 3 3.57e+00 2.17e+02 3.03e+00 2.28e+02 1.03e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 6.39e+00 2.17e+02 3.03e+00 2.36e+02 1.01e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.12e+01 2.17e+02 3.03e+00 2.51e+02 1.07e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.97e+01 2.17e+02 3.03e+00 2.76e+02 1.35e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 3.44e+01 2.17e+02 3.03e+00 3.21e+02 2.12e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 5.99e+01 2.17e+02 3.03e+00 3.98e+02 3.68e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.02e+02 2.17e+02 3.03e+00 5.26e+02 6.39e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.64e+02 2.17e+02 3.03e+00 7.15e+02 1.05e+03 0 \n", + " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", + "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", + "eps_p: 0.4831159414302415 eps_q: 0.4831159414302415\n", ">> Fix Jmatrix\n", - "delta phim: 4.474e-01\n", - " 4 1.64e+02 2.72e+02 7.46e-01 3.95e+02 1.89e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 4 2.58e+02 2.72e+02 7.46e-01 4.65e+02 3.08e+02 0 \n", + ">> Compute J sigma\n", + " 4 2.49e+02 2.96e+02 4.09e-01 3.98e+02 2.15e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 2.319e-01\n", - " 5 2.58e+02 2.73e+02 5.24e-01 4.08e+02 2.47e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 5 4.02e+02 2.73e+02 5.24e-01 4.84e+02 4.40e+02 0 \n", + " 5 3.88e+02 2.69e+02 5.87e-01 4.97e+02 7.72e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 5.853e-02\n", - " 6 4.02e+02 2.77e+02 5.47e-01 4.97e+02 3.67e+02 0 \n", + " 6 3.88e+02 3.11e+02 4.02e-01 4.67e+02 9.25e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.577e-02\n", - " 7 4.02e+02 2.85e+02 4.85e-01 4.80e+02 2.25e+02 0 \n", + " 7 3.88e+02 3.05e+02 4.63e-01 4.84e+02 1.35e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 2.101e-03\n", - " 8 4.02e+02 3.15e+02 4.14e-01 4.82e+02 6.68e+01 0 Skip BFGS \n", + " 8 3.88e+02 3.17e+02 4.43e-01 4.89e+02 5.72e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 6.949e-02\n", - " 9 4.02e+02 3.18e+02 3.94e-01 4.76e+02 5.13e+01 0 \n", + " 9 3.88e+02 3.22e+02 4.53e-01 4.98e+02 7.55e+00 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.046e-02\n", - " 10 4.02e+02 3.19e+02 3.91e-01 4.76e+02 2.73e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", + " 10 3.88e+02 3.30e+02 4.55e-01 5.06e+02 7.70e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 7.852e-02\n", - " 11 4.02e+02 3.19e+02 4.14e-01 4.86e+02 2.56e+01 1 \n", + " 11 3.19e+02 3.36e+02 4.61e-01 4.83e+02 2.29e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.457e-02\n", - " 12 4.02e+02 3.27e+02 4.12e-01 4.93e+02 2.37e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 12 3.32e+02 3.27e+02 4.12e-01 4.64e+02 2.33e+01 0 \n", + " 12 3.19e+02 3.29e+02 5.35e-01 4.99e+02 1.52e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 5.539e-02\n", - " 13 3.32e+02 3.26e+02 4.49e-01 4.75e+02 1.96e+01 0 \n", + " 13 2.60e+02 3.41e+02 5.19e-01 4.76e+02 2.28e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.450e-01\n", - " 14 3.32e+02 3.26e+02 4.74e-01 4.83e+02 2.24e+01 0 \n", + " 14 2.15e+02 3.32e+02 6.23e-01 4.66e+02 1.96e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.436e-01\n", - " 15 3.32e+02 3.26e+02 5.01e-01 4.93e+02 2.67e+01 0 \n", + " 15 1.78e+02 3.32e+02 7.07e-01 4.58e+02 1.96e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.596e-01\n", - " 16 3.32e+02 3.27e+02 5.30e-01 5.03e+02 4.17e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 16 2.75e+02 3.27e+02 5.30e-01 4.73e+02 2.15e+01 0 \n", + " 16 1.47e+02 3.31e+02 8.23e-01 4.52e+02 2.05e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.639e-01\n", - " 17 2.75e+02 3.30e+02 5.27e-01 4.75e+02 2.64e+01 0 Skip BFGS \n", + " 17 1.22e+02 3.31e+02 9.40e-01 4.45e+02 2.31e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.447e-01\n", - " 18 2.75e+02 3.30e+02 5.52e-01 4.82e+02 3.07e+01 0 \n", + " 18 1.01e+02 3.31e+02 1.14e+00 4.46e+02 3.15e+01 0 \n", "Compute fields\n", ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 18 2.27e+02 3.30e+02 5.52e-01 4.55e+02 2.46e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 18 1.89e+02 3.30e+02 5.52e-01 4.34e+02 3.94e+01 0 Skip BFGS \n", + ">> Fix Jmatrix\n", + " 19 8.32e+01 3.34e+02 1.43e+00 4.52e+02 4.61e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.695e-01\n", - " 19 1.89e+02 3.28e+02 5.71e-01 4.36e+02 3.25e+01 0 \n", + " 20 6.81e+01 3.38e+02 1.64e+00 4.50e+02 6.42e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.657e-01\n", - " 20 1.89e+02 3.26e+02 6.01e-01 4.40e+02 3.16e+01 0 \n", + " 21 5.56e+01 3.40e+02 1.72e+00 4.36e+02 7.93e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.891e-02\n", - " 21 1.89e+02 3.25e+02 6.30e-01 4.43e+02 5.18e+01 0 \n", + " 22 4.53e+01 3.41e+02 1.52e+00 4.10e+02 8.46e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 6.371e-02\n", - " 22 1.89e+02 3.22e+02 6.64e-01 4.47e+02 8.07e+01 0 \n", + " 23 3.70e+01 3.39e+02 1.23e+00 3.85e+02 8.85e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 2.848e-02\n", - " 23 1.89e+02 3.20e+02 6.95e-01 4.51e+02 1.40e+02 0 \n", + " 24 3.05e+01 3.34e+02 1.06e+00 3.66e+02 8.26e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 2.689e-02\n", - " 24 1.89e+02 3.19e+02 6.88e-01 4.49e+02 2.10e+02 0 \n", + " 25 3.05e+01 3.19e+02 1.21e+00 3.56e+02 1.14e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 4.554e-02\n", - " 25 1.89e+02 3.19e+02 6.30e-01 4.38e+02 2.50e+02 0 \n", + " 26 3.05e+01 3.19e+02 1.06e+00 3.51e+02 1.01e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.379e-02\n", - " 26 1.89e+02 3.20e+02 5.98e-01 4.33e+02 2.23e+02 0 \n", + " 27 3.05e+01 3.16e+02 1.04e+00 3.47e+02 9.84e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 8.133e-02\n", - " 27 1.89e+02 3.23e+02 5.40e-01 4.25e+02 1.53e+02 0 \n", + " 28 3.05e+01 3.11e+02 9.35e-01 3.39e+02 9.74e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 7.456e-02\n", - " 28 1.89e+02 3.25e+02 4.90e-01 4.17e+02 1.34e+02 0 \n", + " 29 3.05e+01 3.04e+02 9.40e-01 3.33e+02 1.07e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.986e-02\n", - " 29 1.89e+02 3.26e+02 4.56e-01 4.12e+02 1.40e+02 0 \n", + " 30 3.05e+01 2.92e+02 9.35e-01 3.21e+02 9.35e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.122e-02\n", - " 30 1.89e+02 3.26e+02 4.33e-01 4.08e+02 1.40e+02 0 \n", + " 31 3.05e+01 2.72e+02 1.11e+00 3.06e+02 1.17e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.249e-03\n", - " 31 1.89e+02 3.25e+02 4.24e-01 4.04e+02 1.46e+02 0 \n", + " 32 4.80e+01 2.61e+02 1.19e+00 3.18e+02 2.44e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.044e-02\n", - " 32 1.89e+02 3.23e+02 4.15e-01 4.01e+02 1.66e+02 0 \n", + " 33 7.58e+01 2.59e+02 1.10e+00 3.42e+02 2.96e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", "Reach maximum number of IRLS cycles: 30\n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5682e+03\n", - "1 : |xc-x_last| = 1.9160e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 1.6587e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 1.6587e+02 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 33\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 2.4402e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 2.9632e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 2.9632e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 34\n", "------------------------- DONE! -------------------------\n" ] } @@ -880,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 23, "metadata": { "scrolled": false }, @@ -891,21 +620,18 @@ "text": [ ">> Use multiprocessing for parallelization\n", ">> n_cpu: 2\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default std of 5%\n", - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - "Compute fields\n", - ">> Compute response\n" + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "/Users/sgkang/Projects/simpeg/SimPEG/Directives.py:935: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", + "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:931: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", " \"Without a Linear preconditioner, convergence may be slow. \"\n" ] }, @@ -913,300 +639,159 @@ "name": "stdout", "output_type": "stream", "text": [ - ">> Compute J sigma\n", + "Compute fields\n", + ">> Compute response\n", "model has any nan: 0\n", "============================ Inexact Gauss Newton ============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 7.15e+00 2.57e+04 0.00e+00 2.57e+04 6.27e+03 0 \n", + " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 1 7.15e+00 1.59e+03 2.63e-01 1.59e+03 8.19e+02 0 \n", + " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Compute J sigma\n", - " 2 7.15e+00 3.20e+02 2.10e+00 3.35e+02 2.31e+02 0 Skip BFGS \n", + " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", - "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.7905642935391772 eps_q: 0.7905642935391772\n", - ">> Fix Jmatrix\n", - "delta phim: inf\n", ">> Compute J sigma\n", - " 3 3.57e+00 2.13e+02 1.68e+00 2.19e+02 8.81e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 6.45e+00 2.13e+02 1.68e+00 2.24e+02 8.62e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.16e+01 2.13e+02 1.68e+00 2.33e+02 8.36e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 2.06e+01 2.13e+02 1.68e+00 2.48e+02 8.20e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 3.56e+01 2.13e+02 1.68e+00 2.73e+02 8.78e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 6.14e+01 2.13e+02 1.68e+00 3.16e+02 1.16e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.03e+02 2.13e+02 1.68e+00 3.85e+02 1.84e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 1.67e+02 2.13e+02 1.68e+00 4.93e+02 3.03e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 3 2.61e+02 2.13e+02 1.68e+00 6.51e+02 4.86e+02 0 \n", + " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", + "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", + "eps_p: 0.48314840326940844 eps_q: 0.48314840326940844\n", ">> Fix Jmatrix\n", - "delta phim: 4.628e-01\n", - " 4 2.61e+02 2.92e+02 3.36e-01 3.79e+02 1.06e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 4 4.16e+02 2.92e+02 3.36e-01 4.32e+02 9.36e+01 0 \n", + ">> Compute J sigma\n", + " 4 2.49e+02 2.96e+02 4.90e-01 4.18e+02 1.22e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.753e-01\n", - " 5 4.16e+02 2.72e+02 3.74e-01 4.27e+02 2.34e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", + " 5 3.91e+02 2.64e+02 7.86e-01 5.71e+02 3.46e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 8.961e-02\n", - " 6 4.16e+02 2.75e+02 3.87e-01 4.37e+02 2.99e+01 1 \n", + " 6 3.91e+02 3.30e+02 3.66e-01 4.73e+02 9.99e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.600e-02\n", - " 7 4.16e+02 2.87e+02 3.79e-01 4.45e+02 1.81e+01 0 \n", + " 7 3.91e+02 3.02e+02 5.25e-01 5.07e+02 1.11e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 5.859e-03\n", - " 8 4.16e+02 2.92e+02 3.88e-01 4.54e+02 1.92e+01 0 Skip BFGS \n", + " 8 3.23e+02 3.32e+02 4.08e-01 4.64e+02 7.64e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 2.730e-02\n", - " 9 4.16e+02 3.00e+02 3.92e-01 4.63e+02 1.91e+01 0 \n", + " 9 3.23e+02 3.12e+02 5.57e-01 4.92e+02 6.66e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.130e-02\n", - " 10 4.16e+02 3.07e+02 3.87e-01 4.68e+02 1.66e+01 0 Skip BFGS \n", + " 10 2.65e+02 3.36e+02 4.61e-01 4.58e+02 6.60e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 4.197e-02\n", - " 11 4.16e+02 3.12e+02 3.96e-01 4.76e+02 1.76e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", + " 11 2.65e+02 3.20e+02 6.12e-01 4.83e+02 5.31e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 7.438e-02\n", - " 12 4.16e+02 3.15e+02 4.11e-01 4.86e+02 3.15e+01 1 \n", + " 12 2.16e+02 3.41e+02 5.25e-01 4.54e+02 6.32e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.838e-02\n", - " 13 4.16e+02 3.24e+02 3.95e-01 4.89e+02 1.12e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Compute fields\n", - ">> Compute response\n", + " 13 2.16e+02 3.27e+02 6.88e-01 4.75e+02 4.93e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 7.797e-02\n", - " 14 4.16e+02 3.25e+02 4.20e-01 5.00e+02 3.43e+01 2 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 14 3.41e+02 3.25e+02 4.20e-01 4.68e+02 9.62e+00 0 \n", + " 14 1.75e+02 3.44e+02 6.09e-01 4.51e+02 6.23e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.528e-01\n", - " 15 3.41e+02 3.24e+02 4.65e-01 4.83e+02 3.22e+01 0 \n", + " 15 1.44e+02 3.38e+02 6.93e-01 4.37e+02 1.70e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.875e-01\n", - " 16 3.41e+02 3.25e+02 5.21e-01 5.03e+02 6.24e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 16 2.82e+02 3.25e+02 5.21e-01 4.72e+02 2.84e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 16 2.32e+02 3.25e+02 5.21e-01 4.46e+02 1.10e+01 0 Skip BFGS \n", + " 16 1.18e+02 3.35e+02 7.53e-01 4.24e+02 3.52e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.928e-01\n", - " 17 2.32e+02 3.24e+02 5.75e-01 4.58e+02 3.30e+01 0 \n", + " 17 9.80e+01 3.31e+02 9.20e-01 4.21e+02 3.90e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.946e-01\n", - " 18 2.32e+02 3.24e+02 6.41e-01 4.73e+02 6.13e+01 0 \n", + " 18 9.80e+01 3.24e+02 1.13e+00 4.35e+02 4.21e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.832e-01\n", - " 19 2.32e+02 3.26e+02 7.71e-01 5.05e+02 1.19e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 19 1.90e+02 3.26e+02 7.71e-01 4.73e+02 7.40e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 19 1.56e+02 3.26e+02 7.71e-01 4.47e+02 4.02e+01 0 Skip BFGS \n", + " 19 9.80e+01 3.24e+02 1.21e+00 4.42e+02 6.19e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.386e-01\n", - " 20 1.56e+02 3.29e+02 8.98e-01 4.69e+02 7.80e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 20 1.28e+02 3.29e+02 8.98e-01 4.44e+02 4.52e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", - "Compute fields\n", - ">> Compute response\n", - " 20 1.06e+02 3.29e+02 8.98e-01 4.24e+02 3.03e+01 0 Skip BFGS \n", + " 20 9.80e+01 3.16e+02 1.48e+00 4.61e+02 1.15e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 8.896e-02\n", - " 21 1.06e+02 3.27e+02 1.03e+00 4.37e+02 7.60e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Beta search step\n", + " 21 9.80e+01 3.12e+02 1.52e+00 4.61e+02 1.68e+02 0 \n", "Compute fields\n", ">> Compute response\n", - " 21 8.77e+01 3.27e+02 1.03e+00 4.18e+02 4.81e+01 0 \n", + ">> Fix Jmatrix\n", + " 22 9.80e+01 3.08e+02 1.66e+00 4.71e+02 2.81e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 8.533e-02\n", - " 22 8.77e+01 3.25e+02 1.11e+00 4.22e+02 1.07e+02 0 Skip BFGS \n", + " 23 9.80e+01 3.07e+02 1.61e+00 4.65e+02 3.77e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 4.816e-02\n", - " 23 8.77e+01 3.23e+02 1.01e+00 4.12e+02 1.30e+02 0 \n", + " 24 9.80e+01 3.07e+02 1.39e+00 4.43e+02 4.17e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 1.494e-02\n", - " 24 8.77e+01 3.22e+02 9.29e-01 4.03e+02 1.50e+02 0 \n", + " 25 9.80e+01 3.12e+02 1.27e+00 4.36e+02 4.86e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 4.205e-02\n", - " 25 8.77e+01 3.23e+02 8.46e-01 3.97e+02 8.39e+01 0 \n", + " 26 9.80e+01 3.12e+02 1.06e+00 4.16e+02 5.33e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.465e-03\n", - " 26 8.77e+01 3.23e+02 8.16e-01 3.94e+02 1.02e+02 0 \n", + " 27 9.80e+01 3.13e+02 9.06e-01 4.02e+02 5.32e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.262e-02\n", - " 27 8.77e+01 3.23e+02 7.87e-01 3.92e+02 1.29e+02 0 \n", + " 28 9.80e+01 3.18e+02 7.68e-01 3.93e+02 4.56e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 3.600e-02\n", - " 28 8.77e+01 3.21e+02 7.91e-01 3.90e+02 1.92e+02 0 \n", + " 29 9.80e+01 3.19e+02 6.75e-01 3.85e+02 3.74e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 6.215e-02\n", - " 29 8.77e+01 3.20e+02 7.92e-01 3.90e+02 2.32e+02 0 \n", + " 30 9.80e+01 3.20e+02 6.04e-01 3.79e+02 3.51e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 7.214e-02\n", - " 30 8.77e+01 3.20e+02 7.89e-01 3.89e+02 3.01e+02 0 Skip BFGS \n", + " 31 9.80e+01 3.20e+02 5.42e-01 3.73e+02 3.13e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.542e-02\n", - " 31 8.77e+01 3.21e+02 7.69e-01 3.88e+02 3.26e+02 0 \n", + " 32 9.80e+01 3.20e+02 5.04e-01 3.70e+02 3.15e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - "delta phim: 9.593e-02\n", - " 32 8.77e+01 3.21e+02 7.32e-01 3.86e+02 3.69e+02 0 \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + " 33 9.80e+01 3.21e+02 4.71e-01 3.67e+02 3.27e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", "Reach maximum number of IRLS cycles: 30\n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5682e+03\n", - "1 : |xc-x_last| = 1.7725e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 3.6919e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 3.6919e+02 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 33\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 5.7465e-02 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 3.2656e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 3.2656e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 34\n", "------------------------- DONE! -------------------------\n" ] } @@ -1217,12 +802,12 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 24, "metadata": {}, "outputs": [ { "data": { - "image/png": "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0iRMmDABJpMJcXFxsFgsyM7ORkFBAY4cOYLc3FzYbDbMnDkTdrsdL7zwAn755RdvnTw+tmzZgqeeegrTp0+HTqdDq1atytUtODgYOp0OQ4YMgVarxS233FJufUBAgPd7eHg4Hn74Ybz++uvIyMgAESE5ORmnTp1CXl4elixZgm7duoGIMGDAAGRmZmLLli3Iz89HfHw8iAhjx47Fww8/jISEBAwfPhxWq9WbTd99992YMWMGVq5cid27d2Py5MkgIowaNQorVqzAzJkzERMTg9atW4OIMGjQIDz22GN45ZVX8NFHH2HFihUgImRlZZU7lllZWT7ty5cvBxFh0aJFuHDhgvfqpbp9agqLO1MJz+B89tlncebMGezfvx9BQUGYNWtWkxO/6nz7m12uX78edrsdGzZswMsvv4w9e/bUewZb0X7ixAn8+9//xtNPPw273Y4dO3Zg27ZtCAwMxJQpU2A2mzF9+nQkJibinnvuQd++faHT6bzi161bN8yfPx+HDx9GWloaiAh33XUX7rrrLmi12kpi6cmAu3btih49eoCI0KtXL9xxxx3o0qULjEZjlZlvVYvRaPR5giEir/215m48AAALhklEQVT2229HQUEBvvrqKwCVhezbb7/FqVOnEBkZCSJCXFwcvv7660p9NCsry2d73qi9IXzUxrc/sLgz5bhy5Qqee+45RERE+BycQgi0aNEC4eHhiI2NhcViwdKlS/0Wv4yMDFitViQmJmL79u3Ytm1brURx2bJlMJvNiIqKQkREBAYMGACdTodx48Zh9erVSElJgdVqxb333guz2YwFCxZgzZo1mDx5MvR6Pbp37w61Wg2bzeYzXpVKhc6dOyMiIgIGgwEjR46E0WjE1KlTsWjRIsyePdsrnKGhoVCr1QgNDUVoaCgCAwNBRLBardBoNIiMjMTDDz+MZcuWwWazYerUqTCbzbj33nsRHR3tzQZrsrRo0QL9+/fH4MGDodfrERsbC4fDUa1wXLp0CevWrYPBYED//v1hNpuxdetWXLx4sUox8cwpz58/H3a7HXl5eThz5gxef/11bNmyBTabDffddx8sFgsWLlyI1atXY+LEidDr9d6riHXr1uGDDz7A0aNH61QU6+qE2hAn7brw7a/AK07c/c0Uy2aXv/76a432uZ69pKQEP/74o/cS1d8Mtri4GCNHjsT+/fvx2muv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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1234,8 +819,8 @@ } ], "source": [ - "DOBS = dobs.reshape((prob.n_sounding, 2, survey.n_frequency))\n", - "DPRED = pred.reshape((prob.n_sounding, 2, survey.n_frequency))\n", + "DOBS = d_obs.reshape((sim.n_sounding, 2, survey.n_frequency))\n", + "DPRED = pred.reshape((sim.n_sounding, 2, survey.n_frequency))\n", "for i_freq in range(survey.n_frequency):\n", " plt.semilogy(mesh.vectorCCx, DOBS[:,0,i_freq], 'k')\n", " plt.semilogy(mesh.vectorCCx, DPRED[:,0,i_freq], 'kx')\n", @@ -1246,27 +831,27 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ - "sigma_est_l2 = Utils.mkvc((np.exp(mopt_l2)).reshape((prob.n_sounding, prob.n_layer)))\n", - "sigma_est_l2_qx2 = Utils.mkvc((np.exp(mopt_l2_qx2)).reshape((prob.n_sounding, prob.n_layer)))\n", - "sigma_est_l2_ps0 = Utils.mkvc((np.exp(mopt_l2_ps0)).reshape((prob.n_sounding, prob.n_layer)))\n", + "sigma_est_l2 = utils.mkvc((np.exp(mopt_l2)).reshape((sim.n_sounding, sim.n_layer)))\n", + "sigma_est_l2_qx2 = utils.mkvc((np.exp(mopt_l2_qx2)).reshape((sim.n_sounding, sim.n_layer)))\n", + "# sigma_est_l2_ps0 = utils.mkvc((np.exp(mopt_l2_ps0)).reshape((sim.n_sounding, sim.n_layer)))\n", "\n", - "sigma_est_l0 = Utils.mkvc((np.exp(mopt_l0)).reshape((prob.n_sounding, prob.n_layer)))\n", - "sigma_est_l0_qx2 = Utils.mkvc((np.exp(mopt_l0_qx2)).reshape((prob.n_sounding, prob.n_layer)))\n", - "sigma_est_l0_ps0 = Utils.mkvc((np.exp(mopt_l0_ps0)).reshape((prob.n_sounding, prob.n_layer)))" + "sigma_est_l0 = utils.mkvc((np.exp(mopt_l0)).reshape((sim.n_sounding, sim.n_layer)))\n", + "sigma_est_l0_qx2 = utils.mkvc((np.exp(mopt_l0_qx2)).reshape((sim.n_sounding, sim.n_layer)))\n", + "sigma_est_l0_ps0 = utils.mkvc((np.exp(mopt_l0_ps0)).reshape((sim.n_sounding, sim.n_layer)))" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 27, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAT4AAALICAYAAADmG5ypAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOy9f7CkVXnv+/l27x/zC2aYjVgESEDgcEVuECVoDlG5KiccREerJIonCQpXrh4wpk5uRTh64jl15aJUYikl6h2VoKUyARN1sCBIgRSlQQUEEZigI/5gZOKE5tfAzPTeu/u5f7zr7d397v719s/37X4+VV27v+9a73qf7r3nmbXW86y1ZGY4juNME4VxG+A4jjNq3PE5jjN1uONzHGfqcMfnOM7U4Y7PcZypwx2f4zhTR+Ycn6SzJD0iaaekS8dtj+M4k4eylMcnqQj8FDgT2AXcDZxnZg+P1TDHcSaKrPX4TgN2mtmjZrYIbAO2jNkmx3EmjJlxG5DgCOCxOr0LeEV9BUkXARcBrF+rlx/7u1n7CI4zfh54ZOkJM3vBuO3IKlnzGmpyrWEsbmZbga0AJ/9vc3bzNYeOwi7HyRVHnL77V+O2Ictkbai7CziqTh8JPD4mWxzHmVCy5vjuBo6XdIykOeDtwPYx2+Q4zoSRqaGumS1LugS4BSgC15jZQ2M2y3GcCSNTjg/AzG4Cbuq2/vzsIgDlpTnXQ9JZssV19zovSHoR8EFgo5m9dRTPzNpQ13GcHCHpGkl7JD2YuN71QoSQvnbhcC1tJFMJzGnxqK7jNOeI03ffa2anDvs5kl4NPAd8ycxOCteaLkQgmr66ItHEBWa2J9z3tVH1+DI31E3LuIcT06CzZIvrwQ91peMM9jUp2f0QcKDuwtaQTlbDzO6UdHTixtpChKh9bQO2mNkVwDmpjBsSuXZ8v5o/ine+6EoAiuUKAJX5ousB6yzZ4rpb/Ta6Zz9wcZPrHzrQY6+x40KEeiQtAJcDp0i6LDjIoZJrx+c4ziAoAgcPssGOCxEaCsxKwHsGaUAn3PE5ztRTANYOssHML0Rwx+c4U8/AHV9tIQLwG6KFCO8Y5AP6xdNZHGfqiR1f8tUZSdcBdwEnSNol6UIzWwbihQg7gOuzthDBe3yOM/WIXnt8ZnZei+upFiKMGnd8jjP1DDy4kXl8qOs4U0/Loe5GSVslvXGMxg0F7/E5ztTTMrjxjJldNGJjRoI7PseZegYe1c08+XZ8gv0LawBYW4pW1rgevM6SLa67193Te3Ajr+R6k4JNJx9rr7rdl6wNW2fJFtfd6W8e8bauNymQXmbwvSYl60ay0cE4yHePz3GcATB9Q12P6jqOM3W443McZ+rI91DXgxse3HDdf3BDwHyT6weiPD7gRjO7MV2j2caDG6476izZ4noIwY3ZU41D7lld8O/y4IbjOBOKgDXjNmK05Nvx+VDXh7qu+x/qFnDH5zjOlOGOL1+se/gxXnXo+ZGYCwesLC66HrTOki2uu9LfIgUFYEOaG/JPrh2f4zgDwHt8OaNahVIper+wEP10PXidJVtcd6+7ZQqDG7lOZ/mduTn7vw4OGyhmYHgxsTpLtrjuSv/P3d0fKK5DTjX+jybpLF/3dBbHcSYVH+rmDB/q+lDXdf9D3dbBjYlduZFvx+c4Tv+07vH5DsyO40woHtwYYMPSNcA5wB4zOylc2wz8A3A08EvgT8zsqVB2GXAhUAH+wsxu6fQMD26MSGfJlinQ9z3waWCEa3V/51Tj/2wS3Ph/Jje4Mcxtqa4FzkpcuxS4zcyOB24LGkknEp22/pJwz6clFYdom+M4MfHuLMnXBDO0oa6Z3Snp6MTlLcAZ4f0XgTuAD4Tr28ysDPxC0k7gNKIT2lvjwQ0PbkygjntuI1urWwQOSndL3hn1RqQvNLPdAOHnYeH6EcBjdfV2hWurkHSRpHsk3bN/qKY6zpQQz/ElXxNMVoIbanKt6eSjmW0FtkI0x8emTVFBPE8S/+/penA6S7ZMgY7n7OKeW6+6azyPb+j8VtLhZrZb0uHAnnB9F3BUXb0jgcdHbJvjdMV993wCGP7GoiNjAhyfpDcDbyAaRV5tZt9uV3/Ujm87cD7w0fDzm3XXvyrp48DvAMcDP+zYms/x+RzfGPSg5uAysx9fD+kskjYBnwdOIhqdXWBm7efkm7ezKvujruws4JNEs5CfN7OPtmrHzL4BfEPSIcDfAuNxfJKuIwpkHCppF/BhIod3vaQLgV8D5wajH5J0PfAwsAxcbGYj/m/PcaaUIr1sS/VJ4J/N7K2S5oB19YWSDgP2m9neumvHmdnORDvXAp8CvpS4vwhcDZxJNCK8W9L2YO0ViTYuMLN49PihcF9bhhnVPa9F0eta1L8cuHxY9jiO04LWPb6mS9YkHQy8GngngJktAouJe18DvFfS2WZ2QNK7gbcAZ9dXapH9AVFWx04zezQ8cxuwxcyuIOohNn4ESUQdq5vN7EcdPnFmghu9USjgwQ0PbjTT993ziaHPwfUbfBi27pr0S9ZeBPw78PeSTgbuBd5vZs/HFczsBknHANsk3QBcQNR765ZmmR6vaFP/fcDriZz1cWb22XaN+7m6jjPtxI6v+3SWGeBlwGfM7BTgecJihHrM7ErgAPAZ4E1m9lwKq7rO9AjPusrMXm5m7+nk9CDvPT4Pbnhwo4WuzBfHHlwYt+4aAWtSLV3dBewysx8E/TWaOD5JryIKfnydaI7/kpTPGFqmh/f4HGfaKVYpbNi36tUKM/s34DFJJ4RLryMKTNaQdArwOaJVWe8CNkv6SAqr7gaOl3RMCJ68nSj7YyC443OcKUcy5tcsrnp14H3AVyQ9ALwU+H8T5euAc83s52ZWJUpf+9XqZ+s6oqWpJ0jaFTI+MLNloh7iLcAO4Hoze6iPj9n4XN963nVHnSVbutSjCG5kWafZnWXm5SfbhrtWb4b0zPzhE7s7S77n+JzcMgrH5HSHZMzPdezhTRT5dnwe3MhtcMODD9kJbghjblUa3mSTb8fnOE7fFKiyjtbBjEnEHZ/jTDmiyhzlcZsxUtzxOc6UU8CYn7Khrkd1XXfWHnXNnU4T1d1w6gn2+/esXuxwl17rUV1nsmm3x5xHXSebNnN8fq5uJvGo7kj2mMtKlNL1MKO6Tef4/Fxdx3EmkwLVqZvjc8fnOFNOmx7fxOKOz3GmHE1hVNcdn+NMOQWqrPUE5hwxQTsw3/fAp4Hxp0Q029U3KzsKux7ODsw+x+c4ztThc3wtkHQb8HdmdlPdta1jD3VPUDpLlo8szJItroeTzjJtPb5uNyI9BviApA/XXZvIjG7HmTbi3VmSr0mmW8f3NNH20i+UdKOkjUO0yXGcERKv3Ei+Jplu5/gUtoL+r5LeCXwXOGRoVjmOMzIKvjtLS2ormM3sWkk/AS4ejkmO44ySaZzjm+rdWXyHkO50lmxxPfjdWY4+dcH+5p6zVl2/UF/Nze4skt4MvAE4DLjazL7drr6fsuY4U06Ux1de9eqEpKKk+yR9q9dnS7pG0h5JDzYpO0vSI5J2Slp1bm89ZvYNM3s38E7gbZ2em+88vj7TWfzcB09nmWTdLX2s3Hg/0dGPBycLJB0G7DezvXXXjjOznYmq1wKfAr6UuL8IXA2cSXS4+N2StgNF4IpEGxeY2Z7w/kPhvrZ4j89xppx4ji/5IuzHJ+mNq+6RjiQaWn6+RbOvAb4paU2o/27gqmQlM7sTeLLJ/acBO83sUTNbBLYBW8zsJ2Z2TuK1RxEfA242sx91+sz57vE5jtM3Pe7H9wngr4GDmhWa2Q2SjgG2SboBuICo99YtRwCP1eldwCva1H8f8HoiZ32cmX22Td3h9fgkHSXpO5J2SHpI0vvD9c2SbpX0s/DzkLp7Lgvj+Uck/fGwbHMcZ4V4rW6THl9TJJ0D7DGze9u1a2ZXAgeAzwBvMrPnUpilZk22edZVZvZyM3tPJ6cHwx3qLgN/ZWYvBl4JXCzpROBS4DYzOx64LWhC2duBlwBnAZ8O43zHcYZIDys3TgfeJOmXREPQ10r68qp2pVcBJwFfBz6cLO/ALuCoOn0k8HjKNloyNMdnZrvjsXaY4NxB1H3dAnwxVPsi8ObwfguwzczKZvYLYCfRON9xnCGSduWGmV1mZkea2dFEnZXbzexP6+tIOgX4HNG/63cBmyV9JIVZdwPHSzpG0lx4zvZ0n6w1I5njk3Q0cArwA+CFZrYbIucYoj8QOcXv1922K1xryb6X/B733H4l0FuuU7FcGfvWQXnQWbLF9eC3pRrS7izrgHPN7OcAks4nSjVpfLZ0HXAGcKikXcCHzewLZrYs6RLgFqJI7jVm9tCgjBu645O0AfhH4C/N7Fmp2dA9qtrk2qoxvaSLgIsA1h912KobHMdJRz8rN8zsDuCOJte/l9BLRD3AZL3z2rR9E3BTq/J+GKrjkzRL5PS+Ymb/FC7/VtLhobd3OBDn33Q1pjezrcBWgE0vPdbGnSs1DTpLtrgeTh7fpO/GkmSYUV0BXwB2mNnH64q2A+eH9+cD36y7/nZJ8yEMfjzww2HZ5zhORNTjS79yI88Ms8d3OvBnwE8k3R+u/Xfgo8D1ki4Efg2cC2BmD0m6HniYKCJ8sZmlm6xwHCc1BauytjzZ21AlGZrjM7Pv0nzeDqK9/Zrdczlw+bBschxnNarCfLk6bjNGiq/ccJwpRwYzkz2yXYU7PseZdqpE6yumiFzvx7fp5GPtVX3k8bn2/fgmVafZj+/Uk2T3fG31db2Y3OzHlxbv8TnOtGMw4UHcVeTb8Wn8uVLToLNki+vB5/FN41A3347PcZz+8R6f4zhTh/f4HMeZOqrA8+M2oj/8sCHHcdJRJRrqJl8tkLRG0g8l/ThsMvy/en20HzbkOM54MNIOdcvAa83subARyXcl3WxmtW3l/LAhx3GyTeseX9PDhiwi3kZ+NrySCcF+2JDjOBmmdVS35WFDoUd2L3Ac0ZzaDxqazPhhQ/l2fDb+XW6nQWfJFteD34G5l+BG2DnppZI2AV+XdJKZPZioc6WkbUSHDR077MOGaNKjbIUPdR1n2onTWZKvLjCzp4l2YD4rWZblw4by3ePzlRu+csN1/ys3UiYwS3oBsGRmT0taSzTE/FiiTnzY0BuAXwBflvQRM/tQl4+pHTYE/IbosKF3dG9le7zH5zjTTvoe3+HAdyQ9QOSgbjWzbyXq1A4bMrMq0W7rv0o2FA4bugs4QdKusEExZrYMxIcN7QCuz9VhQ47jZJyUPT4ze4Do1MR2dab3sCHHcXJAhdyv3EiLOz7HmXbSJzDnHnd8jjPtxAnMU4Q7PseZdnxbKsdxpo4p3JbKz9xw3VFnyRbXQzhzY73snhNXX9c9fuaG4ziTig91c4av3PCVG677X7kxhUPdfDs+x3H6x3t8juNMHd7jcxxn2qhWYb+v3HAcZ5qoVmG/D3Udx5kmDNi/PG4rRos7PseZcqrAvnEbMWKGth9fqyPoJG2WdKukn4Wfh9Tdc1k4Su4RSX88LNscx1mhAuxt8ppkhrkRaXwE3cnAS4GzJL0SuBS4zcyOB24LGkknEu2y+hKibaw/HQ40cRxniFSB/U1ek8xIlqxJWgd8F3gv0fmZZ5jZbkmHA3eY2QmSLgMwsyvCPbcA/9PM7mrVri9Z8yVrrvtfsvYfJPt0k+tnMrlL1oa69bykoqT7gT1E21P/AHihme0GCD8PC9WbHSd3RJM2L5J0j6R7lp9Kc2iT4zjNMKavxzfU4EazI+jaVO/qODkz2wpsBdj00mNt3MuCpkFnyRbXg1+yNo3BjZFEdcNpTHcQzd39VtLhdUPdPaHaUI+TcxynOXFwI89IejPRiW6HER1w/u129YcZ1X1B6OlRdwTdvwLbiU5cIvz8Zni/HXi7pPlwpNzxwA+HZZ/jOBFpgxuSjpL0HUk7QsbG+3t9tqRrJO2R9GCTsrNChsdOSZe2a8fMvmFm7wbeCbyt03OH2eM7HPhiiMwWiI6H+5aku4DrwzFyvwbOBTCzhyRdDzwMLAMXh6Gy4zhDJHZ8KVgG/srMfiTpIOBeSbea2cNxBUmHAfvNbG/dtePMbGeirWuBTxEFPamrWwSuBs4kGg3eLWk7UASuSLRxgZnFI8cPhfvaMjTH1+oIOjMrAa9rcc/lwOXDsslxnNX8Bm75ABzapEiStgI3mtmN8cUQlIwDlHsl7SAKRD5cd+9rgPdKOtvMDkh6N/AW4Oz6B5jZnZKObvLs04CdZvZoMGQbsCVkfZzTzFDgo8DNZvajTp/ZV244zpRjZmf1em9wWqcAP0i0eUOYstom6QbgAqLeW7c0y/J4RZv67yOaTtsYepafbde4Oz7HcXpC0gbgH4G/NLNnk+VmdmXoqX0GONbM0uSfdZXlUfesq4Crum18qHl8juNMJpJmiZzeV8zsn1rUeRVwEvB14MMpHzHULA93fI7jpCLMp30B2GFmH29R5xTgc8AW4F3AZkkfSfGYu4HjJR0jaY5oOev2/ixfwR2f4zhpOR34M+C1ku4Pr7MTddYB55rZz82sSpS69qtkQ5KuA+4CTpC0K2R7YGbLwCXALcAOoqyQhwb1AXyOz3GcVJjZd2k+B1df53sJvUTUA0zWO69NGzcBN/VoZlv8XF3XHXWWbHE9+E0KppFcOz5Je4FHxm1HGw4Fnhi3EW3Isn1Ztg2yb98JZnbQuI3IKnkf6j6S5f/VJN3j9vVGlm2DfNg3bhuyjAc3HMeZOtzxOY4zdeTd8W0dtwEdcPt6J8u2gduXa3Id3HAcx+mFvPf4HMdxUuOOz3GcqSO3ji/N7qwDfOaq3WJ7OSdY0ssl/SSUXRXWPg7CvqY742bBRg3wnOVhfX+h7aKk+yR9K2v2SfplaPf+OF0lS/blCjPL3YtoF9afAy8C5oAfAyeO4LmvBl4GPFh37Urg0vD+UuBj4f2Jwa554JhgbzGU/RD4Q6JlPzcD/3lA9h0OvCy8Pwj4abBj7DaGdjaE97NE+7e9Mgu2Jez8b8BXgW9l8Pf7S+DQxLXM2JenV157fLXdWc1sEdhGtAvEUDGzO4EnE5e3AF8M778IvLnu+jYzK5vZL4CdwGmKDlg62Mzusuiv8Et19/Rr324Lu89atOV3vDPu2G20iHg/ttnwsizYFiPpSKIDaz5fdzkz9rUg6/Zlkrw6vq7O4B0Rac8JPiK8T14fKGrcGTcTNmow5ywP8/v7BPDXRMdQxGTJPgO+LeleSRdl0L7ckNcla6l2Zx0TrWwcuu1K7IzbZgpnpDbaYM5ZHoptks4B9pjZvZLO6OaWFnYM8/d7upk9ruggn1sl/WubumP7+8sDee3xZekM3t+G4QPq7pzgXeF98vpAUPOdcTNlo5k9DdxB3TnLGbDtdOBNkn5JNHXyWklfzpB9mNnj4eceol2NT8uSfXkir45vqLuzpiTVOcFhOLJX0itDNO3P6+7pi9Bes51xx26jBnTO8rC+PzO7zMyONLOjif6ebjezP82KfZLWKzrKEUnrgf8EPJgV+3LHuKMrvb6Ijqn7KVG06oMjeuZ1RMfqLRH9z3khsADcBvws/NxcV/+Dwb5HqIucAacS/dH+nOhMUQ3Ivj8iGrY8ANwfXmdnwUbg94H7gm0PAn8Tro/dtia2nsFKVDcT9hFlMPw4vB6K/+azYl/eXr5kzXGcqSOvQ13HcZyeccfnOM7U4Y7PcZypwx2f4zhThzs+x3GmDnd8juNMHe74HMeZOtzxOX0h6Q8kPRD221sf9tprtwbXccaOJzA7fSPpI8AaYC2wy8yuGLNJjtMWd3xO34T10ncDB4D/aNEuLI6TWXyo6wyCzcAGol2f14zZFsfpiPf4nL6RtJ1oK6djgMPN7JIxm+Q4bcnrRqRORpD058CymX1VUhH4F0mvNbPbx22b47TCe3yO40wdPsfnOM7U4Y7PcZypwx2f4zhThzs+x3GmDnd8juNMHe74HMeZOtzxOY4zdbjjcxxn6nDH5zjO1OGOz3GcqcMdn+M4U0fmHJ+ksyQ9ImmnpEvHbY/jOJNHpjYpCLt7/BQ4E9hFtLnleWb28FgNcxxnoshaj+80YKeZPWpmi0R7vG0Zs02O40wYWXN8RwCP1eld4ZrjOM7AyNpGpGpyrWEsLuki4CKA9Wv18mOP6uMjNHvatJCdGQ5nCDzw06UnzOwF47Yjq2TN8e0CjqrTRwKP11cws63AVoCTT5izm7ceOjxrstQfro7bACdPHHHG7l+N24Ysk6V/2hAFM46XdEw4uevtwPZ2N8zPLDI/szgcXYX5wiLzhcXI8aTRndofdHtD1ON8tuvetdOaTPX4zGxZ0iXALUARuMbMHhqzWb1R7fDTGSzLLd6PQzuZJ1PpLGk5+YQ5u/nTfQx1x+n2/R+LM0SOeP3ue83s1HHb0Q2SXgR8ENhoZm8dxTOzNtR1HCdHSLpG0h5JDyaud70QIaSvXThcSxvJ1FA3LU+u2cS2l74ZACtHPlzz1YHpKkU0b0ErlGdTq1wd+OeP9TC+2zzrSnk26MH87irlIgAETSjvT3+CEXEt8CngS/GFsBDhauoWIoSzl4vAFYn7LzCzPaMxdYVcOz4BM2HSzEJ+hsLPwehKnVaifLh65Wf8+Qpj0+N8ditdpTDg3/WKXuowECpQaWtfhdm2969ur9rw/ArFVPf3i3Scwb4mJbsfAg7UXdgasipqmNmdko5O3FhbiBC1r23AFjO7AjhnYIb3Qa4dH6z87zlpuvaPslxIlI9PZ8mWSA/7dzFe++hXd81+4OIm1z90oMd5wmYLEV7RqrKkBeBy4BRJlwUHOVRy7/iyMtTsf6gafmZkOJf1oW6BaodpikLPv4uZcqVBL5VnUtlHGLr2+vxCbdqiz6Fw1xSAtSnvaUvHhQgNBWYl4D2DNKATuXd8eWVleNM4XHIGQ4HqqqHx6J7dOBROO/QdPQN3fB0XIowbd3yOM/UM3PHVFiIAvyFaiPCOQT6gX7ybMSKiPkeVApVaj8AZHfXffdzb7pYZKuFVrQXTJosicHCTV2ckXQfcBZwgaZekC81sGYgXIuwArs/aQgTv8TnO1CN67fGZ2Xktrt8E3NSHUUPFHd+IqNZSHhqjto4zfgY+1M08PtR1nKkndnzJFxslbZX0xjEaNxS8x+c4U0/LHt8zZnbRiI0ZCe74nJ6IggTRcL0afrbT1RGvRhgky8F2TWRgA1aCG9NDvh2fjOJCtM1JpRR9lLxoK0VzfTNBL4fyLOpmZQWMmYWloGdDeWttVDPxWWIt1PXvarlUCLoSykmlq6G9Qk0XU+lKeH5hoRrKu9Pd03twI6/k2/GZan+kcfZ73nT8R57U8UqO5Vr9wlB1/DwL/2jqdbOyKqo5uGqwvZ0W1rTtbnWV4kA/e2SPgm7/uyrGq2pq9QuhnC51+991J01NF1Lp7pm+4Ea+HZ/jOAPAHV++yPFQN2tD4bh31Wy42s1Qdth6mEPluGc1rKFvPoa6WV9WN1jy7fgmYKjb7VB42EPflfZXD1e7GcoOW6cdKqcbGqf93UzaUHf6yLfjcxynfwTMN7l+oMm1CSHfjm+Ch7qjHvpmfaibVqcZGk/9ULcArGly/UCUwAzcaGY3pms02+Tb8Q14qLtMsfZHvTIcaq1nqAxtqLsyfGuMJA4jagvth5vNyopUa//A4rYGqSsUBjo0bjf0Xf1d9zfUjbemrybu73ZoG++/V0k5tO15qCuaOz5PYHYcZ2KZvqBuzh3fgIe6opoqSVUMb6g96KFtu6FsJ92sTFSZDXoplA9SF1Bmh76dhrrjGtr2PNQtAhvS3ZJ38u34BjzUNQopInUFDBv6UHcUUdtOuvlQslBzWPGzBqnTJkh30kZhgFHebEZxhzDUnVhy7fgOefpp/ssNXwOgbHMAzGtxdLoA84Wgq6G8R/3EGw4CYJZILzHXVh8IY5O5oBdDeSu9P/xlx/eXw/2zhF5WyOOK9T7W1fQSsxxgDTOhbDnUrdcVCsyEU9KXmeE5DqIYNlytUGSR2QZdZk1tQ9YqRQ6wprZBaJUCB1hTWxurxClmCiuF05BcW5yltcMr2+KPaauyVsGNCSbXjk9UWZiN/pstLS0AjFYXBtfeM/NRPsEhC08B8FTpkLa6FHoHm4J+OpS30sulhaCfBuDJ0HvZGPQzpU0NOu59HbzwDM+WNrJMkYMW9gKwtxQ56XqtRHmRCusWngdgX2k9RQqsXYiOMNxfWkeBCmsWonyJA6XI6c0tlAFYLM13HEr3OxRuN/Qd9VB3UEPbnoe63uNzHGfq8B5fvjArUDoQ9VTioWipsrCiiys9q1r5IPVy4nnJ56fQS+VIxz27TjpOeXi2FG0ntBjK455eUlfDEYnPhfqVMC+1t7ShqSbqfLG/tA7K0bkTtZ5TOH6xXgtb6TmVl1nLPoqlqN7a8j5mmKVYinpM68r7KFKtlRfLVZaYrQV0iuVlhDWkt1QpNswBJsshXTpM+zm/xjm9+HjJZGpTr+krg0pXiXUl2Fcp9Xi85BQGN9Iu6nMcZ9KIh7rJl+/AnE1ElYWZMGe2HObM6rVGPOfXh047xzfoOb+nwxxfsznAeP7v4IVnAHi2tHGVLlDg4IVngz6YZWYa5vyqiA0LzwHwXGnDqjnAAlXmw5xfOcz5zS6EwE5pDkMDTYdJM8eX9Tm9uKc38JUbnsDsOM7E4sGNwSHpGuAcYI+ZnRSubQb+ATga+CXwJ2b2VCi7DLgQqAB/YWa3dHqGqUCpEOb4ZsKcWWGhUVeDVrb1gXKUXhL33OI5urS61RxfUi/V9KYWOuolPVPaxFJ5lgpFnqvNB0bPrNdVCjwfdLVcRBjlUtSLVdmYrVveN1uusEi11lNTuUqRKhb3tMpVqhRYKs2F9lbP6SXn/IC2c4DJOb/2S9ra5+0Ne06v1ZxdJ91zHp/P8Q2Ua4GzEtcuBW4zs+OB24JG0olEp62/JNzzaUnZSbRyJpos5fSNhXh3luRrghlaj8/M7pR0dOLyFuCM8P6LwB3AB8L1bWZWBn4haSdwGtEJ7S2RxpzHN0D91HyUMNztHF2/Ou0cX4EKG8Oc3jNhjq9eVyk2zPkZcFCY89tbOpgK1YY5vxmWWR/m+J4vradIhTUL+/m02VMAACAASURBVAE4UFq7ao4PGNqcX9wT63aOb9hzeq3m7Ia6O8uUrdUddVT3hWa2GyD8PCxcPwJ4rK7ernBtFZIuknSPpHueen6otjrOdOA9vrHRbFKi6fodM9sKbAU4+ffmrLQU5viqiTy7nOm0c3T96l7m+OKeXly3Xlcp1KK9S+VZlphlb8gZXCrPUqVYW/GxXJ5lmRmeL60PeoYKRQ6Uom5HPGdYP8cHNGhLuVa43drfzmt1+1uLO6i1t0NbqzuFPb5RO77fSjrczHZLOhzYE67vAo6qq3ck8HjH1gqs/M9UrbuWRb0UfipxPSe7hBepUKytpa1QScyLFajW1t4WKIb68VrcAkUqtXXAwliTWNu7j8Va/UIXc27R2tvYnsGuve33HN20a29XvssxrdWdgOCGpDcDbyAaRV5tZt9uV3/Ujm87cD7w0fDzm3XXvyrp48DvAMcDP+zUmKiyMBfmzBbDnFlW9XL78qzP8cXvga7m/MAa8vqAtnl+RSqJtbzt5/iSutOcX5o5vsVQ3mve3rjm9Ea5VlfSJuDzwElEHvsCM2s7J9+inVXZH3VlZwGfJHLNnzezj7Zqx8y+AXxD0iHA3wLjcXySriMKZBwqaRfwYSKHd72kC4FfA+cGox+SdD3wMLAMXGxmlWHZ5jhOHb2t1f0k8M9m9lZJcxC28wlIOgzYb2Z7664dZ2Y7E+1cC3wK+FLi/iJwNXAm0YjwbknbiZzgFYk2LjCzePT4oXBfW4YZ1T2vRdHrWtS/HLh8WPY4jtOC1o6v6Zkbkg4GXg28E8DMFiHsd7bCa4D3SjrbzA5IejfwFuDs+kotsj8gyurYaWaPhmduA7aY2RVEPcQGJImoY3Wzmf2owyfOTHCjJ4wCpcVEcGNxIZva2uusBzfi93FZp2DHEjO1IW58f71eZqYu2BEFN/aXok5DN8GNpO4U7EgX3Ohvo9FxBTNGeObGi4B/B/5e0snAvcD7zayWZ2FmN0g6Btgm6QbgAqLeW7c0y/R4RZv67wNeT+SsjzOzz7ZrPNeOL1fE89etgh8ZYyVQsUyBwqrgQadgR5FqXXm1di3WUXn0DKPQoEEU64IXwla1P0yqteBG2I0lRKBivTp4oYRuZHXwon391fd3el4r3SXpgxszwMuA95nZDyR9kmgxwv+or2RmV4ae2meAY83suRTP6DrTIzzrKuCqbhvPtePLVXCjg85acKNeP13aRJWZlpuWNgt2JBOaoXFTg+TGpkWWWReCG/tCcGMuBC8Wa8GL0QQ3VAs2ZCN4ET9PC/FpcHSlu0bAmlQR5V3ALjP7QdBfI6zCamhWehVR8OPrRHP8l6R8RvpMjy7JaH/DcZyRUTBYs7j61QIz+zfgMUknhEuvIwpM1pB0CvA5olVZ7wI2S/pICqvuBo6XdEwInrydKPtjIOS6x+c4Tv9IVWbXlFddb+36gGhO7SvBKT1K5NzqWQeca2Y/j56h8wnBkMZnr87+MLMvmNmypEuAW4gG49eY2UOpPlgb3PE5zpSjgjHXpIfXzvGZ2f3AqW3Kv5fQS0Q9wGS9VtkfmNlNwE1tzOiZXDs+o0CpEqK68TZP8dbu49CV3qO+o47qJreibxfljd/Xb1NfpdgQ5Y3aOii0XVy1jVVySVuVAvtCFLdaLlBhpqYr5RmqFFisi9r2u4StlyVr3W4r1e02Uiv1m7fXSdfm7rrU3VIoVFm3bt+q62kiEXkj144vU3i6tZNThNWOIZ0Wcu34pCoL8yFKWg5R0nHpSr6iummivM0ivv1GeZPbVmU5qtspips2attrlHZYUd0CVeZZPcc3yeTa8TmO0z/e43McZ+oQ5j0+x3GmiwJV1rJ/3GaMlFw7PrMCpXJirW55YTy6U9Q3Y1HdNFHeVhHffqK8Asph41GVAUS5FBaMljXWqG6vUdy0Udt4Li7+7qlFZRmM7pI2Pb6mmxRMArl2fI7j9E+Baqs5Pj9XN4tkKqrbZ9R33FHddlHedut4Y91vlLfZAePjiurSIUrbKYqbNmpb66nVtAaju8Tn+BzHmTo8qus4ztRRoMo6Vq/cmGTc8TnOlNNmjm9iybXjy1RUt1ud0ahuux2aO+/WPNc0qttux+bk2t0KRfaF4ybjtb3jiuoOagfk7tfWhp/x3NygdJf4HJ8zPFrtwJxR4t2SZ6jWdlCeqdtBuZLYyjE67nE5vA+T/XW6QIXZul7FEnMNx1HWH09paXcQHjKdjn9cvUNyI/0efdl5B+f+dmD2Ob4WSLoN+LuwTUx8beu4Q925iup2iPJmLapbr5uVLVPoavfmdro+yltkmfUhqvt8xqK6/UZx+4/ahp8LpNNdMo1zfN3uwHwM8AFJH6671nIvLsdx8kPc40u+JpluHd/TRNtLv1DSjZI2DtEmx3FGSLw7S/I1yXQ7xyczWwb+q6R3At8FDhmaVY7jjAyf42tN7YxKM7tW0k+Ai4djkuM4o8Sjui0ws/8voe8lOiB4rOQynaVFesu401fa6WZlFQpt01s66SXmGtJbKszwfC2dZbxbzw8+fSX87Dk9JfxMbIrQUXfJJOzOIunNwBuAw4Crzezb7ep7Osu4SKa3dKwep35UBqL7pUi1Ib0FSKWriQPJC1TqDhgfbzrLsNNX0qenDJded2CWVATuAX5jZuf08mxJ1wDnAHvM7KRE2VnAJ4n+tXzezD7aqh0z+wbwDUmHAH8LTK7jy3U6S0J3Smd5NmwXdUjQT4XyXnUpHKTTazrLIHT9JgYzGU5nGXz6So/pKUNKZ+ljju/9wA7g4FVtSocB+81sb92148xsZ6LqtcCngC8l7i8CVwNnEh0ufrek7URO8IpEGxeY2Z7w/kPhvrb4geKOM+XEc3xNorobJW2V9MZV90hHEg0tP9+i2dcA35S0JtR/N3BVspKZ3Qk82eT+04CdZvaomS0C24AtZvYTMzsn8dqjiI8BN5vZjzp95lz3+BzH6Z8e9+P7BPDXwEHNCs3sBknHANsk3UAUEzgzhVlHAI/V6V3AK9rUfx/weiJnfZyZfbZNXXd8jjPtpF25ISmek7tX0hmt6pnZlZK2AZ8BjjWzNEf1NpvobTmGN7OraNKjbMXQhrqSjpL0HUk7JD0k6f3h+mZJt0r6Wfh5SN09l0naKekRSX88LNscx1mhh5UbpwNvkvRLoiHoayV9eVW70quAk4CvAx9OlndgF3BUnT4SeDxlGy0Z5hzfMvBXZvZi4JXAxZJOBC4FbjOz44HbgiaUvR14CXAW8Okwwek4zhBpM8fXFDO7zMyONLOjif7N3m5mf9rQpnQK8DlgC/AuYLOkj6Qw627geEnHSJoLz9me7pO1ZmhDXTPbDewO7/dK2kE0bt8CnBGqfRG4A/hAuL7NzMrALyTtJJrgvKvlMyhQWg55fMxBNQN5eT3q+ICaOHqb1HEuXByd7Vd3el69TlM31hWKbXMEl5ht2LZquS6Pb7k8g4BKyKtTmVV5fFWKVEJkulneXlK3y+NT2ahSrOXxHVR+jr0c1JCnV6HQcFhQlWIteht//m7z7Kqhfi0aHHzMoHW3DGnlxjrgXDP7OYCk84F3rnq2dB2RPzhU0i7gw2b2BTNblnQJcAtRJPcaM3toUMaNZI5P0tHAKcAPgBcGp4iZ7Q5hb4ic4vfrbtsVriXbugi4COCoF8wOz2hnakjm3e1NzNcnt+Dqd5uprNFrHh+Amd1B1HlJXv9eQi8R9QCT9c5r0/ZNwE2tyvth6I5P0gbgH4G/NLNnpZbJqV1NZprZVmArwEtfNGNZycPrVz8zPw8MLk9vkLqXe4sUB5DHF/1jXCzNU6CaKm8vqfvblqoxb291nl66PLvaio5h6y6ZhJUbaRmq45M0S+T0vmJm/xQu/1bS4aG3dzgQJx4OdTLTcZzmTONa3WFGdQV8AdhhZh+vK9oOnB/enw98s+762yXNh/yf44EfDss+x3EihDFXWVz1mmSG2eM7Hfgz4CeS7g/X/jvwUeB6SRcCvwbOBTCzhyRdDzxMFBG+2MwGs7DUcZyWFKrGfHmyHV2SYUZ1v0vrzf9f1+Key4HLh2WT4zirURXmDozbitHiKzccZ9qpgp4ftxGjxR2f40w7RuojKfNOrh2fVQqUfhsSmC0kBGthRRegtC+RMFyvZ+oSii2RYGxzUFw5Da12f70uDi6B+UB5baRDUm6c9BvrOEl2UAnMaXSv97ZLcO6UwAz1G4PCMrOpEpYrFKiG+smE5WpIQI7TVMrlKJVoMZTH9sblS6G8VQJytZbATLi/0FCeNgHZBpTg3DVVwIe6juNMFd7jyxeiysJsSAheCgnB9bpA+3KtnGsbbwHfoAtdlOd0I9JhJzB30hWKHRKYK8yHBOZyaR5RHVjC8nJpFqNaS1iOe3rFhZBEEHp2apGgnEwYjnt6lii3hcalat3qWk9yIWyAWqr2pLvGe3yO40wdVcCDG47jTBUTMNRNe9iQbz3vONNOlcjxJV8tkLRG0g8l/Tjstfm/en20pGsk7ZH0YJOys8LenDslXdquHTP7hpm9m2gHmLd1eq73+Bxn2jHSzvGVgdea2XNhPf53Jd1sZrXdlbJ+2JA7PseZdiq0muPbKGkrcKOZ3RhfNDMD4m3kZ8MruZPSa4D3SjrbzA6Ew4beApxdX8nM7gzb1iWpHTYEELaw32JmVxAdR9lA2Bvgo/hhQ47jdEXrOb6Whw2FHtm9wHFEc2o/aGjSDxsaHkaB0qtDAvPiHNwJpVcvrOjvQun0Nvr7UHpFG303PPEHQS/Noe8n9N3wxCmRXvyXOewP4InZFV15JSzPhR2W72yvF8tz/Irfo1iKUiyOLP+mQf9e+dc8yova6p0cR7EUpWQcU/5FR/0IJ9TuP67881X6YV5MsVShUi5yIju4o3QGECXsnsSDq/TtpWgJdqVc5GR+zK2lM2vlp3Bfg34xO7iz9OqgCxzKE+wovbimZ1nmt6UXRr/ncoFZlni6tLGm17OPJ0sLQYuD2Mu/l14Q/WGUxQb28m/hfspiM0/yeCnsa1sm6N8BYGP5GZ7gBbW0lHXl53mGTbW0kvXlfTzDRiycj3tw+VmeZiPVoDeW97KXDTW9ofw8ezm4rv4zq/QzbKrVP6T8VIPeWH427ADdu05FD+ksYQORl0raBHxd0klm9mCizvQdNjQSNiT0qxP6jzroV7bX1kn/QfP3AJVXptO/4vfa6kd5UVu9k+NS6Uc4oa1+mBc36Ac5qa3+MSc36Ps4pa1+kJc06F0c2aCfYWODfp51DTq5S3Ky/pNsbtBP8IIG/e91Oln2DJvatv10Qu9N/CHuTZyvndSr22/Uyc/Wr+5I3OPrMrjRcKvZ00Q7MJ+VLMvyYUO57vGpUGVhU0gIfjokBA9QWwEWDgn6qVDepd6zN1394lLU06pP4k2j94blWeuC3hfKW+l4Oda6hX2hfF2DjpeHrV3Yx/5QtnYh2qV3f2ltU70m6AOltYCxZuFA0GtC+Yo2YD7ocmlN2HE52hppsTSH6hKMl0sziGotwbhSAlGgEHS0NM1qOyZHZ2VYLQF5JeE4TkgWYB0TkOOE4LinVlloXIpWWYiXqlUatEL95aBnQvlyrdyCngnly0PRXZOyxyfpBcCSmT0taS3REPNjiTrxYUNvAH4BfFnSR8zsQ10+pnbYEPAbosOG3tG9le3Jd4/PcZz+iROYk6/WHA58R9IDRA7qVjP7VqJO7bAhM6sSbTr8q2RD4bChu4ATJO0K+3RiZstAfNjQDuD63B025DhOhkmZwGxmD0Bi7mJ1nek+bMhxnIzja3Udx5k6JmDJWlrc8TnOtBMvWZsi3PE5zrTju7M4jjN1TOEcn6Jld/nk5JfM2e3fiJJDy4vRdufzc4sD01aE+dmgl0J5l3p/2Fp+LrS3uNhe/2g2SgAuzkc5WJWw/Xq3Ot7uvTgfcsrC9uWt9GKtfvP2Fuvaq5SLVClSCPfGW63X6wrFhmdVKXSoX6AwH/LuygUOsKZB72M9CtrKBRaZbdBVimg+5OmVRZUCBE1ZLDLboKsUIewgTxkqFGvl8XcXly+Vwxb2QS/XtIJ94WfQhbI16NrW8UErlFutvP39g9Bbj/iLe83sVLrg1A2ye/731df1fbpuI2/kusf3y5nf5R2bo7PKi+Xwj26+2LWuUmQ56JlQ3k4XqKRqvydN0GRHd1O3SJVKSAstUg3lw9NFKn19tsKI7R2H7pop7PHl2vEh2LcQrRpYV4pWDaTRFYrsWwgrFkphBUMbXUzZ/qTobuvuD3rtyPSaoA+k1gYcCHpNKJ803TUe1XUcZ+rw4IbjOFOHD3Udx5k2zGDJh7qO40wT1Srsd8fnOM40UTXY70Ndx3GmiSqQcs/m3DO0/fhaHUEnabOkWyX9LPw8pO6ey8JRco9I+uNh2eY4zgpVYH+T1yQzzI1I4yPoTgZeCpwl6ZXApcBtZnY8cFvQSDqRaJfVlxBtY/3pcKCJ4zhDxB3fALGIZkfQbQG+GK5/EXhzeL8F2GZmZTP7BbCT6Ig5x3GGyDQ6vqHO8TU7gk7SC81sN4CZ7Q4HD0N0nNz3627fFa61xlZWDcRLvtLoIpXaqWNxeSfdz/PypOfKS7XPXyxXE99Fc7221tbwdZFKbUVGbHsaXaBaW+EQtz9pultixzdNDNXxNTuCrk31ro6Tk3QRcBHAuqNeOBA7HWeamcbgxkiiuuE0pjuI5u5+K+nw0Ns7HNgTqnV1nJyZbQW2Amx86XGWhbWsk6jj3tz+hbUjXHvra3UHqbtlEnp8kt5MdKLbYUSjy2+3qz/MqO4LQk+PuiPo/hXYTnTiEuHnN8P77cDbJc2HI+WOB344LPscx4lIO8cn6ShJ35G0I2RsvL/XZ0u6RtIeSQ82KTsrZHjslHRpu3bM7Btm9m7gncDbOj13mD2+w4Evhnm+AtHxcN+SdBdwfThG7tfAuQBm9pCk64GHgWXg4jBUdhxniPTQ41sG/srMfiTpIOBeSbea2cNxhTB3v9/M9tZdO87Mdibauhb4FPCl+ovBb1wNnEk0Grxb0nagCFyRaOMCM4tHjh8K97VlaI6v1RF0ZlYCXtfinsuBy4dlk+M4q9kFt/wVHNqkSJK2Ajea2Y3xxRCcjAOUeyXtIApEPlx372uA90o628wOSHo38Bbg7PoHmNmdko5u8uzTgJ1m9mgwZBuwxcyuAM5pZijwUeBmM/tRp8/sKzccZ8oxs7N6vTc4rVOAHyTavCFMWW2TdANwAVHvrVuOAB6r07uAV7Sp/z6i6bSNoWf52XaNu+NzHKcnJG0A/hH4SzNbFRg2sytDT+0zwLF1eb1dNd/kWstzMszsKuCqbhsf5soNx3EmFEmzRE7vK2b2Ty3qvAo4Cfg68OGUj+gqy6NX3PE5jpOKMJ/2BWCHmX28RZ1TgM8Rrch6F7BZ0kdSPOZu4HhJx0iaI1rOur0/y1dwx+c4TlpOB/4MeK2k+8Pr7ESddcC5ZvZzM6sSpa79KtmQpOuAu4ATJO0K2R6Y2TJwCXALsIMoK+ShQX0An+NzHCcVZvZdms/B1df5XkIvEfUAk/XOa9PGTcBNPZrZllyfq7vx5OPslbf3fryk69Y6XqtbmS/U1n5W5sPxhRnQxT6P+ixQzdTnGbT++hHnTeyZuIMg145P0l7gkXHb0YZDgSfGbUQbsmxflm2D7Nt3gpkdNG4jskreh7qPZPl/NUn3uH29kWXbIB/2jduGLOPBDcdxpg53fI7jTB15d3xbx21AB9y+3smybeD25ZpcBzccx3F6Ie89PsdxnNS443McZ+rIreNLszvrAJ+5arfYXs4JlvRyST8JZVeFtY+DsK/pzrhZsFEDPGd5WN9faLso6T5J38qafZJ+Gdq9P05XyZJ9ucLMcvci2oX158CLgDngx8CJI3juq4GXAQ/WXbsSuDS8vxT4WHh/YrBrHjgm2FsMZT8E/pBo2c/NwH8ekH2HAy8L7w8CfhrsGLuNoZ0N4f0s0f5tr8yCbQk7/xvwVeBbGfz9/hI4NHEtM/bl6ZXXHl9td1YzWwS2Ee0CMVTM7E7gycTlVOcEKzpg6WAzu8uiv8Iv1d3Tr327Lew+a9GW3/HOuGO30SL6Pmd5mN+fpCOJDqz5fN3lzNjXgqzbl0ny6via7c7a/gze4dFwTjDRKU/Q2sYjwvvk9YGixp1xM2FjGEbeT3Sy3q1mlhnbAp8A/proGIqYLNlnwLcl3avomNWs2Zcb8rpkLdXurGOilY1Dt12JnXHbTOGM1EYbzDnLQ7FN0jnAHjO7V9IZ3dzSwo5h/n5PN7PHFR3kc6ukf21Td2x/f3kgrz2+oe7OmpLfhuED6u6c4F3hffL6QFDznXEzZaOZPQ3cQd05yxmw7XTgTZJ+STR18lpJX86QfZjZ4+HnHqJdjU/Lkn15Iq+Ob6i7s6Yk1TnBYTiyV9IrQzTtz+vu6YvQXrOdccduowZ0zvKwvj8zu8zMjjSzo4n+nm43sz/Nin2S1is6yhFJ64H/BDyYFftyx7ijK72+iI6p+ylRtOqDI3rmdUTH6i0R/c95IbAA3Ab8LPzcXFf/g8G+R6iLnAGnEv3R/pzoTFENyL4/Ihq2PADcH15nZ8FG4PeB+4JtDwJ/E66P3bYmtp7BSlQ3E/YRZTD8OLweiv/ms2Jf3l6+ZM1xnKkjr0Ndx3GcnnHH5zjO1OGOz3GcqcMdn+M4U4c7Psdxpg53fI7jTB3u+BzHmTrc8Tl9IekPJD0Q9ttbH/baa7cG13HGjicwO30j6SPAGmAtsMvMrhizSY7TFnd8Tt+E9dJ3AweA/2jRLiyOk1l8qOsMgs3ABqJdn9eM2RbH6Yj3+Jy+kbSdaCunY4DDzeySMZvkOG3J60akTkaQ9OfAspl9VVIR+BdJrzWz28dtm+O0wnt8juNMHT7H5zjO1OGOz3GcqcMdn+M4U4c7Psdxpg53fI7jTB3u+BzHmTrc8TmOM3W443McZ+pwx+c4ztThjs9xnKnDHZ/jOFOHOz7HcaaOzDk+SWdJekTSTkmXjtsex3Emj0ztzhK2NfopcCawi2hX3/PM7OGxGuY4zkSRtR7facBOM3vUzBaJNrfcMmabHMeZMLK2EekRwGN1ehfwivoKki4CLgJYv1YvP/aoAX4EpSzPTme5fzp99n7v7/Rd9ftdDrP9tJ+t3++iE13c/8DOpSfM7AV9PmliyZrja/Yn0/BrNrOtwFaAk0+Ys5s/fejgnj6X0MUOOs2ROv0ev9Pp2cnyftvv9/60n7ff+tWEXu6z/Xo6fTdpfxf9/i10cf8RZ+/+VZ9PmWiy5vh2AUfV6SOBx4f2tKx9+mnCz2FzxkjW5vjuBo6XdEw4svDtwPaBtV5JvBzHmUoy5fjMbBm4BLgF2AFcb2YPjdcqx3GGiaQXSfqCpK+N6pmZcnwAZnaTmf0HMzvWzC4f6sOWEy+nd7w33ZoJ/m4kXSNpj6QHE9e7zscNWRwXDtfSRnI9y/Xkmk1se+mbAbBy5MM1X63pGSpo3oJWKF/RyxQb6ifvT6vrn6eypbq/Up5psK/T/XF5IdSvhs/XSifbW7m/laamq+UCBaoU5iuh7WIo615XKdTarpYLVBK6/tlRebFBV1P+rqL2V76Ldvcnv/ulmo7LZxvKK+HzETThu26l4/bp8v6l8nyDjr9PC5fj302sq7X2CO0B/E9GxLXAp4AvxRdCPu7V1OXjhrOXi8AVifsvMLM9ozF1hVw7Pie/RK4wOFmgMuTBR+QKgyPBqNaFXgtUqWZv8JMLzOxOSUcnLtfycQEkbQO2mNkVwDmjtbA5uXd88f/erbU66E73d6dnwhim1rPE2tbvZG+n+0Xcm2r8PK10MdHeyv2FUJ7Ujb2x6H1jnkZ6XehLp/0uO303cf3Y6XX+20hkW41Yxz29Vpqk7hLpOIN9TUp2PwQcqLuwNaSTdaJjPm7j87UAXA6cIumy4CCHSu4dX+fhT+uhbnf3d6eXy8WGoW78R9jt/STs7XQ/taFod0PdZHvUDWU76ZWhaO9D3fq2mw1tu9Fpfzedvptuv3uC/cnyboe6yfrFcrVBrx76JtuPfrQa6q7UT+iuOQD8ZZPrHzhgZqembY0u8nEbCsxKwHt6eE7P5N7xZYWZSZu1dqaIArB2kA2ONh+3BybK8c1QWRkijng92TLFXDm/eGgbz7P5HNfoWJnPzMqaxyJw0CAbrOXjAr8hysd9xyAf0C/+1z4g8uT0HKeRuMeXfHVG0nXAXcAJknZJujAP+bgT1eMbNY09zH5X+TvOuCgA63q608zOa3H9JuCmPowaKu74HGfqEQOe48s8PtSdEqI8tgrF8Bo0RZZrbRebLIMpUK3ZUFi1lYozXloOdTdK2irpjWM0bijku8cnKC5E/4grpSj3rbiwHHT00dppUW24PyrvXrd7npWioe9M0MuhvJWuloqp7rdSyB9cWArls221StGQfHZhseF5c0EvluYadPx55hbKLJbmKVBhfiHKkyiXoryJel2gyvzCgaDXYB3qx21Hz57HErYYqtm6VNNLQc+Gz9JaF1Db78aotvzul8N3G/+uq+G7KNR+9yFdZiEEhjroSvjuV3RIn1kI0yThbyvWhPos0FDeShO0Ba24vGtaBjeeMbOL0raWB/Lt+Awq4Y/WygUMq/2DjfP02mmjUHNoce5XGt3uefESsOVaeaGDTnf/Snn0jzrOTWuli+XoH/VScHDx/bHDi3PlFmvlBD1fK4sdVpyXV6+FUS6tqbVVpdi2fpUCizVdCHquQS/VaaNQc3Dxd9FOV1Hb78YotPzuV/+uo/LYQVLThb507MCq8ZK22GHFeYCleLkhDfWTupZ3mNDdM/B0lsyTb8fnOM4A6D24kVfc8TnO1DN9wQ13fE5PFFmu22QgK4m400Gl73MCkgw8gTnz5NvxeXBjbMGNZDAD8OBGj8GN2txel8GNVsGM3oMbAmbT3pRr8u34EsGNJQq1P9p4ml8GXwAAIABJREFUf7xhBjc6Pa9ANTfBjXjCPH7+SrCjeXAjGcyIyle0sAZbK8xkNrihskXJNmMKbtSCEeE/u07BjVbBjN6DG9NHvh1fhkguWfNctfww9euURXNPsDRqQ0ZHvh2feh+KDmKoW68V/rfO61C3fmgL1HpjvQ51k7rZ0NeHuhkZ6gpY0+T6UpTADNxoZjembDXT5NvxJYa60H2e3SCGugAqRX/MS+WZhqFuL3l8Bao1h9ep/rCGuvXDz1h3O9SNn6VytANJMq8vObSMNWVGMtSN7e80zTCIoW6FYs3hDWKoW6FYl+cX/agf2lYo1NqbKaccbRSA9U2u7/UEZqcJ9cPbfndnyfvQuNjB/uQytlF/3ipFNKJnDjrq2qm95Lb9qbfxn7785Zw7vjEPdQcZ1U2rszbULVBhTdAHSmsw0g19CxSGOtStH9p2mmbod6ibHNquLk831O00tLWabuwpdk2B5kPdCSbfjm/MQ93BLllLp7M21BWRw4vLq4mhbnR/6yVtwx7qNi5RG/5Qtxvd7VC3UxS3dvZGIgrcNa3m+CaYXDu+zU89zflfuR6AskX/SOa1uKKLCZ0sn4X5QtDVOZhpcn99eVIXYL4YdCXcH5cXw/PichJ6LuiZoNcEPRv0TEJXG/UBNerng56rRvq5MGkzVwnlsaZRz4bQ3V42NOh9oXyGJZaZ5QDzteFqhRmWmGvQUXnoEVEM5fU6139qbVkZijbvaaXdcbl2+FGfdnWN9/jyhaiyUIz+2ytVon5/gxYszAS9HMrrdQEWZoNeCvXngl4M5Uk9H3R5AYp1Om5/TdDVoNfW3Q8srAs6jGMW1gddCPqgRHsbg34u6E2RfmJf0IdEeinozZsjvfhc1Ns5ZOHJqPzpSG9aeCoqD72pjQtPA3Ag9L4OXni2ofyghb3sLR1EkSIbFp4D4LnSBqoUWL/wPADPl9ZTZIa1C9FJXftL66hSYc3C/tD2WioUJnaom3Zou3o3lugHifKRDnU3pLsl7+Ta8TmOMwC8x5cvjAKlyiZgZSgb9/zKNge20nOqldfraujpsTJ0jXtmtfLFunKFnh4rQ8+aDkPN0oGgw1C3tD/oMNQthZ5ZPNQtPR90GOqW9gYdhrqlZxLPezrxvKcivRj0k08GHZ73VGlzpJcj/XTpEACWylEv6ZnSpgb9bOlgAJaD3ls6iOXyLBVmeK4UdQsq5RkqzPB8aX2dLrK/tC7oaDvSA6W1NZ2c85vGOb6VOb32c3xpV2r0Pcfnjs/pmWXSfZvFxM8RE89LFQa0G3ORat3OzqIadluOqVKoacGqp0aur1pXPtwvpkoBhXNSlsOz4nSXak0XanUjwjm4Heb0Oj+78bP1217ftA5ueAJzFsn1HF8x6A2J+iOa49sfel8bF56JykPvqNc5vipiXZjj21daR4UCa8Mc3/7SWgoUGtJdmu3oXJ9KU6A61Dk+oaHN6fWbvjKWOb7mjs8TmB3HmVA8uDE4JF0DnAPsMbOTwrXNwD8ARwO/BP7EzJ4KZZcBFxKNgv7CzG7p9Ixcz/GtDTr05Mqzo57ji/QzpY1B9zvHN8O+2hzfDFWK7A9zfNEcXjGR59dsjq9xt5ZhzvEZymzens/xDZ9hbktxLXBW4tqlwG1mdjxwW9BIOpHotPWXhHs+LWnwkzzFxGuQrD5YrD2VxGvAVAsFqoUClWL0yhqdTmVLS3R2WzzTON7PG58lF7+G1f5yePVN7PiSrwlmaD0+M7tT0tGJy1uAM8L7LwJ3AB8I17eZWRn4haSdwGlEJ7S3JPUcnxJzehOcx7d/f9R7OiTM6ZVC7yUrc3zJJW0Fqn3N8aXZjWXYc3xp8/bSzvG1mtPreY7PV24MnRea2W4AM9st6bBw/Qjg+3X1doVrjuMMmykc6mYluKEm15r+tyXpIuAigN/dPKZcEMeZJDy4MXR+K+nw0Ns7HNgTru8CjqqrdyTweLMGzGwrsBXg5N+ds1TBDasLZgw6uBHW6mYlgXmpEAc3omDGYnm8wQ1QLVhBWU0SmvsLbiSDGVWKtSFnsw0fBhncqIRzgystghnJc3Pj+vGQND53eKV+MVG/0FDeMpjRT3BjPuU9GUPSm4E3AIcBV5vZt9vVH/Us8Hbg/PD+fOCbddffLmle0jHA8cAPR2xbf2Sl7+w4aYn340u+2iBpk6SvSfpXSTsk/WEvj5Z0jaQ9kh5sUnaWpEck7ZR0abt2zOwbZvZu4J3A2zo9d5jpLNcRBTIOlbQL+DDwUeB6SRcCvwbOBTCzhyRdDzxMFB+92Mw6xjo9uJGf4AbQdtOCQQc32m1KMOjgRlaCGX0FN9L3+D4J/LOZvVXSHIkTycP8/X4z21t37Tgz25lo51rgU8CXEvcXgauBM4lGhHdL2k6Uj3FFoo0LzCwePX4o3NeWYUZ1z2tR9LoW9S8HLh+WPY7jtCDlsbqSDgZeTdS7wswWIex3tsJrgPdKOtvMDkh6N/AW4Oz6Si2yPyDK6thpZo+GZ24DtpjZFUT5wUmbRNSxutnMftTpM2QvwctxnNESp7OszuPbKGmrpDcm7ngR8O/A30u6T9LnJTWc2mFmNwD/DGyT9F+AC4A/SWHVEcBjdbpTpsf7gNcDb5X0nk6N53pmatXKjeLKELJcGEFwY6au/bBRaa09OgQ34pUbcTBkwCs3+g1ulMvR2KdSKrIcghftghugWrAintxfrAUz6GK3lnTBjQqFWvCh07m5Ftqr1nbrbr8bSzJYUQnBiXiImzaY0e9KjU7BDEsER1Kfq5t+re4M8DLgfWb2A0mfJFqM8D/qK5nZlaGn9hngWDN7LoVVXWd6hGddBVzVbePe4xsUnlnj5JXWPb5W7AJ2mdkPgv4akSNsbFZ6FXAS8HWiOf40dJ3p0Qu57vGtCm502o1l0MGNQl0wY6lFMGNMu7P0G9yIAxJxcKOK2gY3RJF1Qe8rradIIdWOzGmDG/2s1EgeDJUMbiytCl70G8xQQg82uFHraS6EIEwp7fGSBmu6XzZoZv8m6TFJJ5jZI0Tz9g/X15F0CvA5ohSTXwBflvQRM/tQl4+5Gzg+ZHn8hmhJ6zu6NrIDuXZ8juP0jwpVZjfsW3U9Ga1I8D7gKyGi+yjwrkT5OuBcM/s5gKTzCcGQhmc3yf4wsy+Y2bKkS4BbiMZT15jZQ6k+WBvc8TnOlKOCMbdmtZtr5/jM7H7g1Dbl30voJaIeYLJeq+wPzOwm4KY2ZvSMzMa06+sAOPl35+z2/ztMxndzqlqyvNDnKWtzKU5hS56ytrbDKWuJU9S6PmVtLtLPFqL8hNn5UL8cDV3ngn62fHBD+b7yuqDDqWvl6P6Z+WWWyzMsMUtxPgwVy+GUtTpdpUBxPuS9lYssMtugo/r1eobCfFjkXy6wxFyDXmS2QVcpoqDj4EZhPl75EA356nWyfpUCmo+DAWJ5VXmxVl5bWVHTMwndWF4LZsS5cHFwIejV9UMwIpTXghtB11Zu1O4vtK1vTdr7uyM+eK+ZtXRM9cycerJt+uFq/1IqHtl1G3nDe3yDIhnc8LBRbkhuBT9tFKgyV+gwsJ0wcu34Jiq4oaAPDvqABzeGGdwQ1YGt1Og3mDHu4IYw5lLnwOSbXDs+x3H6p0CVdewftxkjxR2f40w5wpj//9t79yDJyzLP9/PNrMrqezddXGwuLj3AsgI7gBdkhnFkcRwZhhEmdlh1zozXkDOz6NGzRoywGmtMHFmUOMczQ+jotspBw0svjKNcAhZZ1CB0GbkoItCijaC2MLQkt6bpzqrKfM4f7/vLynwrr1WVlZn1ez4RGZnP7/f+3t+TWZlPvZfn4iM+x3HyRJjq+hrf2LAgZK1bcaHlDlmrNYScZSFraYhar8WGsnx8zychacsUsnagEtb05srxfBKydjCer8a1wLm4Uxny8XUPWatR4MW6XFxEgfHOIWtzTHQMUUvz73UOUQshbYvNv9ctJC3Nt9ctRG2p+fey+2dre/3m4ytQy90an+89Lhf53hh0xpgw1Z1Z8KB9koKxZ6xHfL6r2/uu7kw5Kyj+bGgfR1PZrm5W+nFjm3x8w97VLWDLFqK21F3dfndxB51/b6m7umFzY2HkBl5Q3HGc1Yqv8TmOkzsK1HxX13GcfOEjvjFjpHZ11WYXd0R2dWfriUi3NMlpItJ99Spro7Wrm1ZRg86JR5urqC3vru7CxKKpnNS+WObEo8u9q+uRG3kjJA4OLHV/u4rv7K4SqvU/ZExKUP9ytE7okbZfbrJY4qz37CubyovFIzfaIOl24P+JaWKyYzuGveOz5F3ddBcX39X1XV3qI6neY3M77+IudVe33a5tN7lX8rjG1+s4ZzvwQUmN6aNXZboax8kb2Rpf+ljN9Gr4niWklz5C0o2SNg9QJ8dxVpBsjS99rGZ6XeOTmc0B/1HS24HvAocMTCvHcVaMLHIjT/Rq+D6TvTCzayT9GLhkMCo5jrOSdIjcWLX0ZPjM7L8l8r2EAsFDZcnuLJa4r+DuLO7OQlt3lgV1a3t0X1mqO0s7d5Vucq+EJAXjPeKTdCGhotvhwKfM7Jud2nuSguWiOtzbzxUL8SHmikt1cOhOgSrF+CgM+833wBxF5ijEx8r6HdUIhnz+EwuPWnwslbTfap99LnaNT1JR0g8l3bRY3SVdLWmvpAdanDtX0sOSdku6tFM/ZvYNM3s3oZLbm7rdd6z9+NydZd6d5UDlUAC2bn0agNkXwmhpUO4swprcWYzCSLuzNLqvZCO9lXJn6ea+oiW6syxH6vlFrvG9D9gFbFrQp3Q4cMDM9jUcO97MdidNrwE+CXwxub4IfAp4PaG4+N2SbiB4y16R9PFOM9sbX384XtcRH/E5Ts7J1vjSRyckHU2YWn6uTZPXAtdLWhPbvxu4Km1kZncAT7e4/gxgt5n93MxmgJ3ABWb2YzM7P3nsVeDjwC1m9oNu73msR3yO4yydDmt8myXtAG40sxuTc38H/A2wsdWFZnadpO3ATknXEfYEXt+HWkcBv2qQ9wCv7tD+vcAfRJ2PN7PPdGjrhs9x8k6Hmhst8/FJOh/Ya2b3Sjq7Xb9mdqWkncCngePM7IW+1GrRZYd7XUWLEWU7BjbVlXSMpG9L2iXpQUnvi8e3SrpN0s/i8yEN11wWFzIflvSGQenmOM48i4jcOAt4o6THCFPQcyR9aUG/0muAU4CvAx9Jz3dhD3BMg3w08HiffbRlkGt8c8AHzOxlwJnAJZJOAi4FbjezE4Dbo0w892bgZOBc4B/iAqfjOANEseZGr7u6ZnaZmR1tZscSfrPfMrO/aOpTOh34LHAB8A5gq6SP9qHW3cAJkrZLKsX73NDfO2vPwKa6ZvYE8ER8vU/SLsK8/QLg7NjsC8B3gA/G4zvNrAI8Kmk3YYHzzrb3cD++eT++ieAD9/TTWwGYtUH78RXrfnxzUR5lP75mv73w/36l/Pi6+e0t1Y8vK1a0eD8+G0R2lnXARWb2CICktxFcTZqQ9FWCPThU0h7gI2b2eTObk/Qe4FbCTu7VZvbgcim3Imt8ko4FTge+DxwRjSJm9kTc9oZgFP+54bI98Vja18XAxQDHTE8OTulWFGifeqrftFSZ69vgXe5aUouD/cX6kdUoUo1LLsvhi7aY+xvhh27RT07xwzTEHEXUcL7V9ap/Bs1pp5aahirrb7Fpo9qloRoUS8nOYmbfIQxe0uPfS+RZwggwbfeWDn3fDNzc7vxSGLjhk7QB+BrwfjN7Xmr7Z+xpMdPMdgA7AE576YStqB9fcRn9+KJT1/T6KE+urB9fJY6+NkU/vuz8uKSlWorfXrUMotC2uFB9pBb99OplHhfpt7dYP75e01Athx/fuEdu9MtADZ+kSYLR+7KZ/VM8/KSkbXG0tw3IHA8HupjpOE5r8piBeZC7ugI+D+wys080nLoBeFt8/Tbg+objb5Y0Ff1/TgDuGpR+juMEwlS3ZV3dVcsgR3xnAX8J/FjSffHYfwY+Blwr6V3AL4GLAMzsQUnXAg8RdoQvMbPRDwJ1nDGnUDPWveip55cFM/su7ddlX9fmmsuBywelk+M4C1ENSgeHrcXK4pEbjpN3rH8XmHHHDZ/j5J0a4CO+8cGsQHmmwYG5kDgsF6EcfQQqhWVwYJ6NbjM0ODQfbJCLHRyYJ5L+J6N8MGm/Yg7MwX3l+TFNRLo0h+XQPnNYLlQs5Mxr67DcWs7cWDIH4rrbS+KwnJ3P3FiqlULH9u0clNP+2rXve/RmkLNN3fE2fCOFB9eNLbXBOTeMBzVg/7CVWFnG2vB1TUSaOiwzxESktcSB2YabiNQdmJfPgblfh+U00WjWX7vEo4Ouq+tTXcdx8odPdR3HyR01xt7webEhx3H6wwhT3fTRBklrJN0l6Ucx1+bfLvbWXmzIcZzh0P/mRgU4x8xeiPH435V0i5nVsyuNerEhN3yOk3f6nOqamQFZGvnJ+EgzKb0W+GtJ55nZwVhs6E+B85K+7ohp61LqxYYAYgr7C8zsCuD8tHHMDfAxeiw25FNdx8k72a7uwqnuZkk7JP1JekmsqXsfIbvSbWb2/cbzZnYd8D8IxYb+N0Kxof/Qh1atig0tyM/ZQFZs6M8k/VW3zsd6xNc1A3PqsMwQMzBnDsxZBubMgXloGZjdgbn3jMudHZjbOSC3y7icZljulnG5XYblbnLPtN/VbVlsCCAmEDlN0hbg65JOMbMHkjYjW2xorA3fzNYJfvHWI4Dww61SZHJqti7XKDIR5bn4w26UqxSYmIq+YJWJntoXY/tqNAyNcpViU3/h+iDPVKaa2h+srG2S91c2RLla1x+gEOX6l7+bXErkmOp5lthfzEo8Gw1zdn4uOZ859RaoUaNAlULTuWC6FrbN5LT9wvPFJnmWSQr1jM5ijkkUZUPMUGqSgR7kQke5V/rNMF0dN2/2JbizmNmzkr5DqJPTZPhaFBt6Tx9dDzQ/51gbPsnYFB1uny9vokCt7oC7r7yJKjU2Tu+Lcij/2SiLYpNco9bkpAskcrHt+efLm5lgrsmpF6jL1Ti6yOTZOHpZF518s9FQ5uSbOdWuiU6+B+PoaLFydv+pBXL4xmejn0Yn4kyeKU9hQCk6FM+USwscjtNr0/YksqGODsrCEodkqzsc10PNlknu5sBM3SG5NwfmXjMsj4wDc5X5FbsekHQYMBuN3lrCFPPjSZus2NAfA48CX5L0UTP7cI+3qRcbAn5NKDb0571r2Rlf43OcvJON+NJHe7YB35Z0P8FA3WZmNyVt6sWGzKxGSDr8i7SjWGzoTuBESXtink7MbI4wQrwV2AVcO3bFhhzHGWH639W9n1A8rFObfBcbchxnxMkcmHOEGz7HyTuencVxnNyxCmJ1+8UNn+PkHU9L5ThO7vC0VI7j5A4f8Y0Xj9uR/J/lKwEoVqpUKdadUYuVGlUKdUfdYiVzVp2XaxSZi/JEPN8oF6h2vL5Irel+xYb2k5XZ2H7+fKOchRW16z+9fm3lYJM8VckcjwtN7WvJeYvyRGUung9OsoWKNcnZ+7e6PFs/X6gYRWr1c6oYk8w2hWgVqDbJpeT8JLPzjsCx/XyIlihSa5KBjnL4rJtDzBrlArW6o7LVQ9Jay1kUTjW5XxpyRnz/3ULW0hC1kQ9Z880NZ7EU8drnzpjiU90xQ3BgOoRmrS0fpEqBA9Nro3yAKkVejPK6cggFa5TD+XVRfjGen5eLSfv0eqB+v2L8b5vpUygHQ3gwymvKB5vkUnm2qf3aeL7d9aVyCO+qTIfwsMl4/cx0Kd6/GuXJpv5npyea+puL8kR5rknO9J+bzkYXMVxsugjlKgVENYZEFcs1jOYQKaM5BMugRUhXFvIlwJKaFlYPGaslIWSt5c7t+wlxy0Za2fX1UXleQtZ8V9dxnNzhDsyO4+QOH/E5jpM3qjV43jc3HMfJEzWDAz7VdRwnTxhwYNhKrDBu+Bwn59TIn+EbWCLSdrU3JW2VdJukn8XnQxquuSzW0HxY0hsGpZvjOPNkhi99rGYGmYE5q715KnAacK6kM4FLgdvN7ATg9igj6SRCeumTCfn7/yHW1nQcZ4BUgedbPFYzA5vqdqi9eQFwdjz+BeA7wAfj8Z1mVgEelbSbUFvzzvY3mXf8zUK+1kbH4ixEbF1dri6Qxbzj8kT9/LxcoNrx+iK1hvtl98/0Cfdf00bOwooW6t/5+qlyuLAQ5cyxeV6ejf0HeTI6ImchahNtZNXlatN5ylUKFQs1MOohUaFcT2OIlKApBEssrDo2H/IFoKRqmRZUOessd27fWEWtW8ha9yprqf6rK2TNp7rLTJvam0eY2RMA8fnw2LynOpqSLpZ0j6R75p7pp1rdYEkra4UaZAVqFPuu0uU4K0m2uZGnqe5ANzda1d7s0LynOppmtgPYAbDltONsVELWNpT3h1qyPYegeciah6yNRsjaahjxSbqQUNHtcOBTZvbNTu1XpMqamT1LmNKeCzwpaRtAfN4bmw20jqbjOK3pd3ND0jGSvi1pV9y4fN9i7y3pakl7JT3Q4ty5caNzt6RLO/VjZt8ws3cDbwfe1O2+g9zVPSyO9GiovfkT4AZCqTni8/Xx9Q3AmyVNxVqaJwB3DUo/x3ECi9jcmAM+YGYvA84ELombk3UkHS5pY3Ls+BZ9XUMYEDURNzY/BfwRcBLwFkknSfq3km5KHoc3XPrheF1HBjnV3QZ8Ib6BAqEu5k2S7gSujfUzfwlcBGBmD0q6FniI8MFeEqfKjuMMkH6nunFtPlun3ydpF2E9/qGGZq8F/lrSeWZ2UNK7gT8Fzkv6ukPSsS1ucwaw28x+DiBpJ3CBmV0BnJ82liTgY8AtZvaDbu9hkLu6LWtvmlkZeF2bay4HLh+UTo7jLORxuPXDcGiLU5K0A7jRzG5sdW00WqcD3288bmbXxZnbTknXAe8EXt+HWq02O1/dof17CbPKzZKON7PPdOrcIzccJ+eY2YKpZi9I2gB8DXi/mS2YHZvZlXGk9mngODPrxw2jp83OhntdBVzVa+crsrnhOM7qQtIkweh92cz+qU2b1wCnAF8HPtLnLQa62emGz3GcvojraZ8HdpnZJ9q0OR34LCEw4R3AVkkf7eM2dwMnSNouqUSI6rphaZrP44bPcZx+OQv4S+AcSffFx3lJm3XARWb2iJnVCB4cv0g7kvRVQnTWiZL2xE1PzGwOeA9wK7CLsDn64HK9AV/jcxynL8zsu7Reg2ts871EniWMANN2b+nQx83AzYtUsyPjbfhGOla3c+ytx+p6rO6oxOrmEYVcAuOJpH3Aw8PWowOHAk8NW4kOjLJ+o6wbjL5+J5rZxu7N8sl4j/jgYTN75bCVaIeke1y/xTHKusF46DdsHUYZ39xwHCd3uOFzHCd3jLvh2zFsBbrg+i2eUdYNXL+xZqw3NxzHcRbDuI/4HMdx+sYNn+M4uWNsDV8/2VmX8Z4LssUuplympFdI+nE8d1WMfVwO/Vpmxh0FHbWM5UYH9fnFvouSfijpplHTT9Jjsd/7MneVUdJvrDCzsXsAReAR4LeAEvAj4KQVuO/vAy8HHmg4diVwaXx9KfDx+PqkqNcUsD3qW4zn7gJ+hxDgcAvwR8uk3zbg5fH1RuCnUY+h6xj72RBfTxLyt505Crolev4n4CvATSP4930MODQ5NjL6jdNjXEd89eysZjYD7CRkgRgoZnYH8HRy+AJCmUzi84UNx3eaWcXMHgV2A2co1BnZZGZ3WvgWfrHhmqXq94TF7LNmto8Q3H3UKOhogXblRkfi85N0NKFgzecaDo+Mfm0Ydf1GknE1fD2Volwh+i2XeVR8nR5fVtScGXckdNTylBsd5Of3d8DfELKxZ4ySfgZ8U9K9ki4eQf3GhnENWesrO+uQaKfjwHVXkhm3wxLOiupoy1NudCC6STof2Gtm90o6u5dL2ugxyL/vWWb2uEJxndsk/aRD26F9/8aBcR3xjVIpyn7LZe6Jr9Pjy4JaZ8YdKR1taeVGB6XbWcAbJT1GWDo5R9KXRkg/zOzx+LyXkNX4jFHSb5wYV8M30OysfdJXucw4Hdkn6cy4m/bWhmuWROyvVWbcoeuoZSo3OqjPz8wuM7OjzexYwvfpW2b2F6Oin6T1iuUaJa0H/hB4YFT0GzuGvbuy2AehTN1PCbtVH1qhe36VUFZvlvCf813ANHA78LP4vLWh/Yeifg/TsHMGvJLwpX0E+CQxgmYZ9Ps9wrTlfuC++DhvFHQEfhv4YdTtAeC/xOND162Frmczv6s7EvoRPBh+FB8PZt/5UdFv3B4esuY4Tu4Y16mu4zjOonHD5zhO7nDD5zhO7nDD5zhO7nDD5zhO7nDD5zhO7nDD5zhO7nDD5ywJSa+SdH/Mt7c+5trrFIPrOEPHHZidJSPpo8AaYC2wx8yuGLJKjtMRN3zOkonx0ncDB4HftZCFxXFGFp/qOsvBVmADIevzmiHr4jhd8RGfs2Qk3UBI5bQd2GZm7xmySo7TkXFNROqMCJLeCsyZ2VckFYH/JekcM/vWsHVznHb4iM9xnNzha3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+QON3yO4+SOkTN8ks6V9LCk3ZIuHbY+juOsPkYqO0tMa/RT4PXAHkJW37eY2UNDVcxxnFXFqI34zgB2m9nPzWyGkNzygiHr5DjOKmPUEpEeBfyqQd4DvLqxgaSLgYsB1q0vvOLY4ybnzyWdFWdrzQcSkXSwW0zk9N9Ct8FxY6WJ5Npa8kmbmrWVdT5fTTosJMqk54vJmy1Ys1xVc/sKU03yXPLVmGWyST7A2mZ9F3z6zajLh1dipkmeZLZJLiTvJz1fpLnMx5RVmq9v7r75b5n+3VO6fQ8SuTrZ+YJiNf1jd7n/XCL3UNHk/kdmnzKzw7q3zCejZvha/XqavhZmtgPYAXDqKSW7+b9hS0pNAAAgAElEQVRvrZ+bKzVfOPlc0tPziZx+Pzc3iwc2dx4Ql2aaf4zFA+3bWqKb0rbpD3NDs7h/c7PhWf908w+/2myHKKb9PZ3I6T+BtFLGU4m8J5GfP9gsp/dL31/6Y00+jwW8JLFGRyby2ubPI7HbUNnYLL+QnG98/4ck59JfxfpETg1l2vfWZtGS9gv+9inpZ5V+tun9WnDUG574RfdW+WXUDN8e4JgG+Wjg8bat94P+eV6c3JScT3/cqSFMjEtqGNc+l3SQ/ljT/hq/sMmlC77sv0nkLoZv/ZpmQ8eTzWIx/XGmJHaqq2H6ZSI/lsipIU36qyTyXJdRylTy2U5sTxock8jJP6kFf8v0fGqsGvVL26b/77YkcmJzF/xDTb6xStun38tuC05dvqdO/4ya4bsbOEHSduDXwJuBP2/b+hngGw1y+p+7m6FKJwLJqGnBDyLtL/3xN/640h96eu/EcC1on47A0r/UvyRy+t7T95KSGtr0/olhnkt+zNU+C0hOJIbn+cQwvpjoc1j6jyG9X2pM0hHfkYmc/u0aR03dPqvU8KTtO30PFiOnvCSRexjxOZ0ZKcNnZnOS3gPcSvg6XG1mD7ZrXzsA+++bl9enX9BUTo3PEYmcfqHXJXL6Y0v7a/zxpV/mtG23H0uqS2IY9ieGb31qxFOjnRrSZAC54L0lTGzoLC+YDqafXTKqOSwdtaSGLe0/pZLI6TpYatg7TU/TtumILB0dp7qlywKpLimpEU7lbv9UUsPXzXA6CxgpwwdgZjcDN/fStrAJtr4ufGsrKkEJpqxBXpvIzyXyYTAVv/UVYvtGuQhTirLF/hvltL8NDdeXwre53v7FRN4X5az95kQmkQ80y/wmytn9tyXt1yb3m0zkuUReF+W4C1CpzJ+vWAlmkve+taFtrQSbYCouLFaqJdgMUxMN9yol8gtJ+1oik8gHkvs9l+hDIh+SXD+VyE839DeRvPf9iTyVyKVEv2eS8y8kci2RJ7ucn03ez7bkfs8n7YstPq9PMDZI+i3gQ8BmM/uzlbjnyBm+fvjFkcfw9iuvBKBYCf8mq1PFtvIG9lGbCkOPQqXGC2zs2L6bXKBGNfZXrNSoUej5+snKbJTD9YojmF6vn6qERbvs/dQqxb7171Vezr5cHvx3I8hvYiWQdDVwPrDXzE5pOH4u8PeE8ejnzOxj7fows58D75L0j4PWN2OsDR/M/9F7lQuVWsfz/cuhvxqFHtsv7/WF+vXFntovRR5k3y4v/3djhbgG+CTwxexADET4FA2BCLHofBG4Irn+nWa2d2VUnWfsDV8//wVfZH3TCK3f61O5nxFeKrOo/+LzcqGu/1JGBT7iG0V5qd+Nfg2gdLzBiy3OPPEgzf4AO6I7WR0zu0PSscmF9UCE0L92AheY2RWE0eHQGXvD5zjOUjkIvL/F8Q8eNLNXLqLDroEIjUiaBi4HTpd0WTSQA2XsDd9ipw+Lv37U5KVOtX2qu1rl3inQ3aenL7oGIjSdMCsDf7WcCnRj7A3fSk1NR01erumQT3VXr9w7y274+gtEGAJjb/gcx1kqy274+gtEGAKjlp3FcZwVJzN86aM7kr4K3AmcKGmPpHeZ2RyQBSLsAq7tFIgwDMZ7xCc4MB1CEtaWw+aTy8svj5IuLvcu904BSAPde8PM3tLmeM+BCMNgpBKR9suWU4+z13yrdwdml32NLy/y9Ue96d5ed2Slf2Pw+RZnfq/nPsYNn+o6Tu5pO9XdLGmHpD8ZonIDYbynuo7jLANtNzeeM7OLV1iZFcENn+PknmXf1R153PA5Tu5Z/ObGuOKGz8k9a2I4ala35AzuBubrhGznUQAKMVHemug9XoyJ9/5VTFc9GVOCrflVuG5qMqaJeiqmjZpI0lJl8ouJvL7UdP2LMWVYaTbI1eeazz+5OaSIzuqWzFDi+r4+AR/xjRfuzuLuLMsgrymHTKOV6ZBJVuVguArTwdAVyuF57fSBKIcwwfXT+wGYLAeDc8j0MwDUfhGysE5vKgNQfnY6yOujXIvyxijPRHlDlCemm66fK0T5kCA/92KUtwT5mVK435Z4/2fLaTrubuTP8Lk7i8td5VHSZRDy+sr+KMcRXyWO+KbiiK8SR3xTccRXiSO+qTjiq8QR31Qc8e0e0Iiv1GXEF+8/Uylx8lGP9OHO8kqDe1qdWbXuLOM94nNywwb21RMxFKjx7/lavaRklSKvfuq+eUMzW4Jft8i43Ci/0JDBeG+X7NhZRugs2/VUIj8e5Vpzf/UU8llq+ywl/aE0ny8lclYSIebTKMb22Y+1mvUXxyxbjn6xWX/rlvveGW/D51Pd3Ex1axSYmY4jn/IMRaqsnQ4/+APldUxNztSnfuVnp6HYMLXcH+WpKFemoQDTk1FWnDoqykTZomxtZJKp62yUq1F+Melvf5QPifKBKBejfDDpb66LPrVE/2Lz/XumwMKaKQD7gh8fcKOZ3dhfp6ONT3Vd7iqPgi5p2YB/z9coxqlntTKaI76pODSrzER5LsqHJudLiXxE0t+hiT4zyf2PXlhz5KgPPNH7VHfylcYhLaa6v/Gp7lhSoFZPAlaI84ZGudYlcGWC2fpOXoEac11KkR3P7nr/r4prJtn1h8VSXBOxvNkjHN+k1ze4sEm/lHUxQ26m80ycH7V7f6fzw6brX8ftTfd/6WOhvmXdWPykfcGcSi0WA2os5vNoi0JO2Q+1kPxwC7FYUaM82/BDL5ZgTdJfMWm/P2n/EEzNzq+ZPfovEN8Ks6Uwq4xLZvVC843yBPPtn03Or0/luO6ftV/70vihZpXqKs3y0y82t4+1g+ryxu3N7eueJHOJnKWOTKa29euWa8wiFlbhW+WMt+HrMtU14GB95y6cb5RrFDteX6DKwbjTt6Zcodqh/anlH2FAbTqOSuJO4Jrp0G6iHL6tG6ZfiOfDt7o0HX411XKhSb9SbJ/1v74cFuArcbpXS9qn7y/OwmDamu6/cXofMG/w6juL2c5hNh3Mdg4ny5Rnp8EapoaZbA1TsVrD1GwimapNxPPZVHByGqowPRPlUuyv8XzaX9p+Fqafj/KmaSZnYGM5yPumw/07yZMN8gvx/PooT0R5U5QLhwf5kKeDbNvi+9uXTDWfDfJTcWq6JV7/7HSzPHF0cv26KL+QTHVn2kxtM7m6jFNdN3yO4+SKAt3rGK8yxnqN7+hSyd6/KcwLrFQKk8GZOC+I6yad5JOBQpRrpRJ7AUXZSiV+k7TflJyf6tK+2/0b5WOjnOnzYiI/3uX6TVFu1KdRfq5PfZrkpVw7ovJUg7wu+axOjPJElI/ZEDdVojx5UrJmN9FF3pCs4WXXZ1P76WSN7uSkTu5Lmt1XKgcTd5aXLNGdZcMrjd9uscZ3p6/xOV34zbAVcJzF4lPd8UK1GoW4blKL6yhEmR7kArA2ygempxEwGeXZFu0FFKNcTdr3cr9OciHKpSgfjHKv/SvKjfo1ykvSb4nvbVTlQvLZTSRrfNmaX6kU1/ieid+NucQ9ZX0XeW3ivtLOHSVzp8ncW9Y1rHnSEAlSbZafmVpi5EYONzd8qrtMU929S5x++VR3ZWWf6s6jQ15p/LsWU92v+1R3JKkB+5dwfb9FAJ5fwr268dgSrx+kbquBqUQ+FSjG10fG58xZaeMZ8ZoYSVF5WZTjGKGSmYLMGyrbGMg6zG6W/bo2Nt/gZ5uDP8xEDHn7deXocHm84Z2V3wHAYj+PVILrU1e/x6hAiGh5Ez2Tw82NsTZ81GpDny7lQh4lXZYgNy6LFJmfyk6m7ibZVDKdmmbuO5nrz5pkappFimSRFlnSgWyqGiNLJkrHAvOuRcW661NIghBvU3eNqpaDQRtYzY32a3yrNnJjvA2f4zhLp73h8wzMI0mhAFvC+kZ9HSf7b+/y8smjpMsS5FqDXAX2R3lzPJ85Gm8sBjnblKgoynEkV6lF+WCU45peeX+UY0hb+YUob4xyTE81tzn87PaVwxy4WgkjuoPlECKiGAmSOblnU9lsJNer3DM53NwYmOGTdDVwPrDXzE6Jx7YC/x04lrCs9R/M7Jl47jLgXYQcFf+Hmd06KN2c8Wcd4fcKIXLrSOaX3GrAazZAzOLETAkmtkNcUqMyAZzasGb3b8LzVOzw2dfFKWYpHLjHTgPm1+C+XTkn3DeuwT1WCTFofcciN63JdZcHhruzLCvXAJ8Evthw7FLgdjP7mKRLo/xBSScRqq2fTPgO/09J/9rMOv/FfY0vt2t8onnNrgBMRbkyPU1phnoIWXnLNJNzzGdLWTfdHHKXuZOUgvxiKeSB2rr1aQCKL2SJSEMQ7nKtwY1MXd0cbm4MrLykmd0BPJ0cvgD4Qnz9BYiR+eH4TjOrmNmjwG7gjEHp5jhOA9mIL32sYla6ru4RZvYEQHw+PB4/CvhVQ7s98dgCJF0s6R5J9xwYqKqOkxOyNb4cGb5R2dxQi2MtPavNbAewA+DIUsl8c2N1bG6czHz0Sq1U4ne3w9Rs3ByYLMU1uYbNhq2JfAxMFeY3H2qvgOejG0lttsRTR07x3FRYlJutlHiYE+up46uVCX7G8WgqbCbcUTk7HH8hWZMrd5b73XwYtNwzOVzjW+kR35OStgHE573x+B7gmIZ2RwOPr7BuTk75WcyNmFtWwVRX0oWSPivpekl/2K39So/4bgDeBnwsPl/fcPwrkj5B2Nw4Abira2++ubFqNjfSuOmpWebz022ImxGN+fmM+dTvNt2cSn52GiaZj219fpqDU6pXQXumfAhF5lgXNyuUuY1MN4/khr05saKbG61Sz3dA0hbgc8AphNnZO83szv56ae390XDuXODvCTExnzOzj7Xrx8y+AXxD0iHA/w18s9N9B+nO8lXgbOBQSXuAjxAM3rWS3gX8ErgoKv2gpGuBhwh5aC/puqPrOM7ysLjqkn8P/A8z+zNJJYKHUR1JhwMHzGxfw7HjzWx30s81LPT+QFIR+BTwesKM8G5JNxCM4BVJH+80s2z2+OF4XUcGZvjM7C1tTr2uTfvLgcsHpY/jOG1o78DcMmRN0ibg94G3A5jZDPMJ8jNeC/y1pPPM7KCkdwN/CpzX2MjM7pB0bIt7nwHsNrOfx3vuBC4wsysII8TmtyCJMLC6xcx+0OUdj8zmxuLwyI2ByYdlGUump7G4+ZCla5qLkQ+N8jTzMa+zpRKHpZsTL4GpGANbKZbg5TAV/ecqVoJ/B1NxM6IyW+KuY1/WtPnwPc6qOwyrAr/i6KbiQ8+xpb3D8FQVKt03J0Z9s2IImxvtQtZ+i5CC8v+TdCpwL/A+M6vnDDGz6yRtB3ZKug54J2H01iutPD1e3aH9e4E/IBjr483sM506X+nNDcdxRo3+NzcmgJcDnzaz0wlJki5NG5nZlcBB4NPAG83shT606tnTI97rKjN7hZn9VTejB+M+4vPNjYHJWXLOyXKZ2elpJmgu1iNgQ5RfmA7FezZH+blWmxNV5uvGrpkG0VzHdpL5wkf7pilOzbF+Ogwg9pfXh298VNHKxDq7Ic9TqTzbsRBUXuWeKRhs6KsI+R5gj5l9P8r/SAvDJ+k1hM2PrxPW+N/T5z0G5unhIz7HyTsFo7CmsuDRDjP7F+BXkk6Mh15H2JisI+l04LOEqKx3AFslfbQPre4GTpC0PW6evJng/bEsuOFznJwjGVNrZhY8uvBe4MuS7gdOA/5rcn4dcJGZPWJmNYL72i8W3ltfBe4ETpS0J3p8YGZzhBHircAu4Foz6zd3cFvGOvX8kaWS/e8x9fwopDNfTXJ9c2NmZn5zI56rb240yNPAZJTnNzdiqvT65kaU65sbUa5vbkR5tsSPlnNzI4fy9Ue9qee08ROvONU23LkwGdJzU9s89bwzWLJsDVn68w0xW0aWWunX8Tn7g8XvOJPxeW0MPqinXnpplGtRjvnV26Viqvyr5n4rL4nyJFRm4V8O3cpkrOkwWylRpMrk1GyUJ9nPuib5AbZTiDevVQo8zXQ9JMwqBR7gFGrx5oWK8SRHjG7aplWOZExlX7ScMN6GbxVtbmSuINkGQXFDkLPUSk9ONJ+vHh7kQ54OsmWVv7INhVqUKw3RDbCwslcW7ZCmT29Il15+dprJqRk2Tz8HwHPlzRSpsXn62ShvYZJZNk6Hyh/7ypsoUGNqOiyyV8prEDUmpoNVnitPUEPMTYev30R5zjcnBiD3SoEaa0Oprtww3obPcZwlI4ypBf7Hqxs3fI6Tc0SNEu13cVcjbvgcJ+cUfMQ3ZqyikLXZKD8X5Q1RLm+JYWEzzeen4vlntgZ5bVbwJq4NVgpRnopyVjAny1lnUc7CyqpJwZyGAjmV2RKzlRLPlTcHXSslalR5rrwlypPMMsm+8qa6XKNApRzWnGqVAkaBuXL4ulmlQAFjohzW/AoVo0h16CFeq03uFV/jGzPWA6+Kr6uEfFbZG5oDtq6FUtylnCnB1AaIG49UJoF/21A0OrZrkgsNu6IF4LCGXVERkmFmu6IGbGiQY5qfunxclKOCd20PVaozl43/qxJCIjMXjVpUKNvpnKzMRjmcL1ZqTXJWmWsQLhKL3WX1XdnxoMMan9fVHUlqNdbFXc4XY1hVY9hUqQhbnwny04fEMKrn4q7l5hhGNRPlUtzF7CRbw65oIQm7ynZhi60L2JTjrmxWZDozeFlYVq0cDNjB6eCsViwHC5vt1BVi0emDUV4T/7tncqk829R+OXcKR2WX0uXB7OoKa7fG53V1HcdZnRSo+Rqf4zj5osOIb9Xihs9xck6BGuvIV81CN3yOk3N8xDdmPHXyS/l/vxXqjxQrNWoURipQvCe5nAXHxjdVVjwfNj+yheps1zbbxEjlQbpIjIp7hsuDc2fJ2xpfT2mpJN0u6bzk2I7BqOQ4zkqSjfjSx2qm1xHfduCDkl5lZn8bjw09XY1JTe4dtTEOdC+VZ6Icyl0VY8nDUdBv2J+Ny4N3Z/ERX2ueJWRZPULSjZI2D1Anx3FWkCxyI32sZnod8SlmRP2Pkt4OfBc4ZGBaOY6zYuRxxNer4ftM9sLMrpH0Y+CSwajkOM5KUvDsLK0xs/+WyPcS6mQ6jjPm+Ihv3LBm945xzvCR/cNdWz4wEvq4O8v4y70SdnXH2/BJuhD4Y+Bw4FNm9s1O7b3KmuPknBC58eKCRzckFSX9UNJNi723pKsl7ZX0QItz50p6WNJuSZd26sfMvmFm7wbeDryp233He8Sn4bsMuDuLy6Mq98oS1vjeRyj9uCk9Ielw4ICZ7Ws4dryZ7U6aXgN8Evhicn0R+BTwekJx8bsl3QAUgSuSPt5pZnvj6w/H6zriIz7HyTnZGl/6IObjk/QnC66RjiZMLT/XptvXAtdLWhPbvxu4Km1kZncAT7e4/gxgt5n93MxmgJ3ABWb2YzM7P3nsVeDjwC1m9oNu73m8R3yO4yyZRebj+zvgb4CNrU6a2XWStgM7JV1H2Ax9fR9qHQX8qkHeA7y6Q/v3An9AMNbHm9lnOrQd3IhP0jGSvi1pl6QHJb0vHt8q6TZJP4vPhzRcc1mczz8s6Q2D0s1xnHmyWN0WI76WSDof2Bu9O9piZlcCB4FPA280sxf6UEutuuxwr6vM7BVm9lfdjB4Mdqo7B3zAzF4GnAlcIukk4FLgdjM7Abg9ysRzbwZOBs4F/iHO8x3HGSDqP3LjLOCNkh4jTEHPkfSlBf1KrwFOAb4OfKRPtfYAxzTIRwOP99lHWwZm+MzsiWyuHRc4dxGGrxcAX4jNvgBcGF9fAOw0s4qZPQrsJszzHccZIIX2a3wtMbPLzOxoMzuWMFj5lpn9RWMbSacDnyX8rt8BbJX00T7Uuhs4QdJ2SaV4nxv6e2ftWZE1PknHAqcD3weOMLMnIBjHuPsDwSj+c8Nle+Kx9tjwfaXy4sdXpVjfeWbMfSbzIvfKgPLxrQMuMrNHACS9jeBq0nxv6avA2cChkvYAHzGzz5vZnKT3ALcSdnKvNrMHl0u5gRs+SRuArwHvN7PnpVZT99C0xbEFc3pJFwMXA6w/5vAFFziO0x9Lidwws+8A32lx/HuJPEsYAabt3tKh75uBmxelWBcGavgkTRKM3pfN7J/i4SclbYujvW1A5n/T05zezHYAOwC2nHacDdtXKi9+fFUKdd2yUeko6ObycvnxjXfkRr8McldXwOeBXWb2iYZTNwBvi6/fBlzfcPzNkqbiNvgJwF2D0s9xnMBiIzfGmUGO+M4C/hL4saT74rH/DHwMuFbSu4BfAhcBmNmDkq4FHiLsCF9iZv0tVjiO0zcyo1Tx7CzLgpl9l9brdhCSmra65nLg8kHp5DjOQlSDqUpt2GqsKB654Tg5RwYT+RrwueFznNxTBfqJqVgFyKxtFMjIs+XU4+w137oSmPddGnq5yEXKmRtVdSrsN5UqsyOjX+bHl+lWrNQoUh0J3VxuLV9/1JvuNbOeCoK98hTZPf+48LheRs99jBs+4htRqhTjczQ2+D6PMyAMcpZ5fswN3yrOxzfvKzd8vz734xtPuWdqhFQCOWK8DZ/jOEvHR3yO4+SOKrB/2EqsLG74HCfvGGM/1fViQ47j9EeNMNVNH22QtEbSXZJ+FJMM/+1ib+3FhhzHGQ79j/gqwDlm9kJMRPJdSbeYWT2tnBcbchxntGk/4mtZbMgCmcvzZHykDsFebMhxnBGmRrvNjbbFhuKI7F7geMKa2vcbz496saHxNnyrOANzFrmR+e8NOwNzo25Z5MaofHYuLy0D82LcWWLmpNMkbQG+LukUM3sgaXOlpJ2EYkPHDbrYEC1GlO3wqa7j5J3MgTl99ICZPUvIwHxuem6Uiw2N94hvFUdueAZml1cscqPPEZ+kw4BZM3tW0lrCFPPjSZus2NAfA48CX5L0UTP7cI+3qRcbAn5NKDb0571r2Rkf8TlO3ul/xLcN+Lak+wkG6jYzuylpUy82ZGY1Qrb1X6QdxWJDdwInStoTExRjZnNAVmxoF3DtWBUbchxnxGm/udESM7ufUDWxU5v8FhtyHGcMyNxZcoQbPsfJO6sgZK1f3PA5Tt7xEZ/jOLnD01I5jpM7vObGeOE1N/JTc2PY9x83ua+aG+tl95y08Lju8ZobjuOsVnyqO2Z45EZuIjeGff9xlHvGa244jpM7+nRgXg244XOcvOPuLI7j5I2awQGf6jqOkydqNTjgIz7HcfKEAQfmhq3FyuKGz3FyThV4fthKrDADy8fXrgSdpK2SbpP0s/h8SMM1l8VScg9LesOgdHMcZ54acKDFYzUzyESkWQm6U4HTgHMlnQlcCtxuZicAt0cZSScRsqyeTEhj/Q+xoInjOAMkj4ZvYFNdC7FwrUrQXQCcHY9/gZCv/4Px+E4zqwCPStpNKDF3Z/ubDL+gy3LJabGhYeszmsWGhn3/8ZJ7JTN8eWKgqeclFSXdB+wlpKf+PnCEmT0BEJ8Pj81blZM7qkWfF0u6R9I9c890jqyuUqRKIT588Lia8b/14jF8xLestCpB16F5T+XkzGwHsANgy2nH2WoJc/KQtaWFrA1bv1GUe8U3NwZEUoLuSUnbAOLz3thsoOXkHMdpzWpY45N0oaTPSrpe0h92az/IXd3D4kiPhhJ0PwFuIFRcIj5fH1/fALxZ0lQsKXcCcNeg9HMcJ9Cv4ZN0jKRvS9oVPTbet9h7S7pa0l5JD7Q4d2708Ngt6dJO/ZjZN8zs3cDbgTd1u+8gp7rbgC/EndkCoTzcTZLuBK6NZeR+CVwEYGYPSroWeAiYAy6JU2XHcQbIIjY35oAPmNkPJG0E7pV0m5k9lDWQdDhwwMz2NRw73sx2J31dA3wS+GLjwWg3PgW8njAbvFvSDUARuCLp451mls0cPxyv68ggd3VblqAzszLwujbXXA5cPiidHMdZyK/h1g/CoS1OSdIO4EYzuzE7GDclsw3KfZJ2ETYiH2q49rXAX0s6z8wOSno38KfAeY03MLM7JB3b4t5nALvN7OdRkZ3ABWZ2BXB+K0WBjwG3mNkPur1nj9xwnJxjZucu9tpotE4Hvp/0eV1cstop6TrgnYTRW6+08vJ4dYf27yUsp22OI8vPdOrcDZ/jOItC0gbga8D7zWzBxrCZXRlHap8GjjOzfip79OTl0XCvq4Creu18RXZ1HcdZXUiaJBi9L5vZP7Vp8xrgFODrwEf6vMVAvTzc8DmO0xdxPe3zwC4z+0SbNqcDnyVEZL0D2Crpo33c5m7gBEnbJZUI4aw3LE3zedzwOY7TL2cBfwmcI+m++DgvabMOuMjMHjGzGsF17RdpR5K+SghLPVHSnujtgZnNAe8BbgV2EbxCHlyuN+BrfI7j9IWZfZfWa3CNbb6XyLOEEWDa7i0d+rgZuHmRanZkVdfVHadarF5Xd2l1dYet36jJ/dTVzSNjbfgk7QMeHrYeHTgUeGrYSnRglPUbZd1g9PU70cw2DluJUWXcp7oPj/J/NUn3uH6LY5R1g/HQb9g6jDK+ueE4Tu5ww+c4Tu4Yd8O3Y9gKdMH1WzyjrBu4fmPNWG9uOI7jLIZxH/E5juP0jRs+x3Fyx9gavn6ysy7jPRdki11MnWBJr5D043juqhj7uBz6tcyMOwo6ahnrLA/q84t9FyX9UNJNo6afpMdiv/dl7iqjpN9YYWZj9yBkYX0E+C2gBPwIOGkF7vv7wMuBBxqOXQlcGl9fCnw8vj4p6jUFbI/6FuO5u4DfIYT93AL80TLptw14eXy9Efhp1GPoOsZ+NsTXk4T8bWeOgm6Jnv8J+Apw0wj+fR8DDk2OjYx+4/QY1xFfPTurmc0AOwlZIAaKmd0BPJ0cvoBQH5j4fGHD8Z1mVjGzR4HdwBkKBZY2mdmdFr6FX2y4Zqn6PWEx+6yFlN9ZZtyh62iBdnWWR+Lzk3Q08MfA5xoOj4x+bRh1/UaScTV8PdXgXSH6rRN8VHydHl9W1JwZdyR01PLUWR7k5/d3wN8QylBkjJJ+BnxT0r2SLh5B/caGceOUyQQAAAIfSURBVA1Z6ys765Bop+PAdVeSGbfDEs6K6mjLU2d5ILpJOh/Ya2b3Sjq7l0va6DHIv+9ZZva4QiGf2yT9pEPboX3/xoFxHfGNUg3efusE74mv0+PLglpnxh0pHW1pdZYHpdtZwBslPUZYOjlH0pdGSD/M7PH4vJeQ1fiMUdJvnBhXwzfQ7Kx90led4Dgd2SfpzLib9taGa5ZE7K9VZtyh66hlqrM8qM/PzC4zs6PN7FjC9+lbZvYXo6KfpPUKpRyRtB74Q+CBUdFv7Bj27spiH4QydT8l7FZ9aIXu+VVCWb1Zwn/OdwHTwO3Az+Lz1ob2H4r6PUzDzhnwSsKX9hFCTVEtk36/R5i23A/cFx/njYKOwG8DP4y6PQD8l3h86Lq10PVs5nd1R0I/ggfDj+Ljwew7Pyr6jdvDQ9Ycx8kd4zrVdRzHWTRu+BzHyR1u+BzHyR1u+BzHyR1u+BzHyR1u+BzHyR1u+BzHyR1u+JwlIelVku6P+fbWx1x7nWJwHWfouAOzs2QkfRRYA6wF9pjZFUNWyXE64obPWTIxXvpu4CDwuxaysDjOyOJTXWc52ApsIGR9XjNkXRynKz7ic5aMpBsIqZy2A9vM7D1DVslxOjKuiUidEUHSW4E5M/uKpCLwvySdY2bfGrZujtMOH/E5jpM7fI3PcZzc4YbPcZzc4YbPcZzc4YbPcZzc4YbPcZzc4YbPcZzc4YbPcZzc8f8DT+ieCMSDmKgAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1303,14 +888,14 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 30, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAALICAYAAABBxipSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOy9fZBkV3Xg+TvvZWZVV3erW12SsCxpLAnJGFYzIGCAWRZDYDMrywLhCDNGXtt8BVrbQOCwI2wYE4sda4cwYXuwFhbcIBkIe5DBNkgQYoHgY1k8BkuyMSBkmbaGjwYNjbK/u6pefryzf9x7X75387u6uzIr6/wiMrLOu/fdd+7LzFv3nXvOuaKqGIZhGFtPMmsFDMMwdio2ABuGYcwIG4ANwzBmhA3AhmEYM8IGYMMwjBlhA7BhGMaMsAHYIyI3iMjDInJIRN4wa30Mw1h8xPyAQURS4F+AFwCHgfuAW1T16zNVzDCMhcZmwI5nAIdU9RFVbQF3ATfPWCfDMBac2qwVmBMuA75Tkg8Dz4wricitwK0Au3fJ0x7/b+z2GcY4vvJw+zFVvXjWeswjNoI4ZMCxPtuMqh4EDgI8+cca+vE7LzrfehnGtueyZz/6rVnrMK+YCcJxGLiiJF8OfG9GuhiGsUOwAdhxH3CtiFwlIg3gpcA9M9bJMIwFx0wQgKp2ROS1wCeAFLhTVR8cd95SvQVA1m5sK3kedLA+76w+GoOxAdijqvcC985aD8Mwdg7mB7xJbBHOMCbjsmc/+oCqPn3WeswjZgM2DMOYEWaCOAtmbVdbRFuh9Xkx+2gMxmbAhmEYM8JmwJvkW0tX8PKr3wpAmnUB6C6l20KeBx2szzupjz+HMRibARuGYQAicrWI3CEif7VV17QB2DCMbY+I3CkiR0Tka9HxidPM+mRcrzq/mlYxE4RhGIvAe4G3A+8PB3ya2XdQSjMrIvfggq1ui85/paoe2RpVe9gAbBjG3CByjcJadPTRB4GN0oGDPjFWgap+XkSujE4s0sy6tuUu4GZVvQ246ZwqvklsADYMY45YB14THXvTxiYDOSZKMxsQkVXg94HrReSNfqA+r9gAbBjGHJEAu85VYxOlmS0KVJvAL5+ri0+CDcCGYcwRKXDBuWps7tPMmheEYRhzRJgBl1+bZu7TzNoMeLMIrK8uA7Cr6dYHtos8DzpYn3dWHydncyYIEfkA8DzgIhE5DLxZVe/YTJrZrcSyoW2S/U9+vD7nMxYJt13kedBhp/bx7st+buJsaCI/qvB/R0dfsLDZ1MwEYRjGHDHQBLFPRA6KyAtnqdn5wEwQm8VMENtKngcddnIfJycF9sYHT6jqrVM2tC0wE8QmMRPE9pLnQYed2sfpTBD/VuFvoqM/urAmCJsBG4YxRyTAyqyV2DJsAN4sZoLYVvI86LCT+zg5CQNMEAuLmSA2iZkgtpc8Dzrs1D5OZ4J4msIXo6MNM0EYhmGcfwSoz1qJLcMG4M1iJohtJc+DDju5j8ZgzA/YMIz5QYDl6GV+wEbMyte/w3MuepkTGn7n11Zre8jzoIP1ecf08WNMwSA34I3F9QO2AdgwjPkhzIB3CDYAb5Y8h2bT/b266t63izwPOlifd1YfJyVhRw3A5oa2SX640dD//QKft3QOHvOmkudBB+vzjunj7zz66ORuaCtPV37s/urBfxRzQzMMwzjv7LAZsA3Am8VMENtLngcddnIfJyUB9kx3ynbGBmDDMOYHmwEbhmHMiB02AC/kIpyI3AncBBxR1ev8sQPAXwJXAt8E/pOqHhMRAf4EuBFYA16uqv8w7hq2CLfN5HnQYRv28R+/4nan2LJcEBc9XXlRtAj3Z3II+CzwUVX96CTtbBcWNRLuvcAN0bE3AJ9W1WuBT3sZ4KeAa/3rVuCdW6SjYRgxYQZcjYQ7oaq3LtrgCwtqglDVz4vIldHhm3Gb9gG8D/gc8Fv++PvVPQp8UUT2i8ilqvroyIvYItz2kudBh23YxzCT3bJcEDtsEW5RZ8CDeFwYVP37Jf74ZcB3SvUO+2N9iMitInK/iNy/fl5VNYwdyuAZ8MKykDPgKZEBxwYaxlX1IHAQnA2Y/ftdQbCbhdnDvMvzoIP1eVv0Mdh0w0x2s/LECLA03SnbmZ00AH8/mBZE5FLgiD9+GLiiVO9y4Htbrp1hbIJ/vP9tW5KQfcsYuCfn4rKTBuB7gJcBb/Hvd5eOv1ZE7gKeiTP4j7b/gtmAt5s8DzqcB7m7lC5WPmBLxrP9EZEP4BbcLhKRw8CbcQPvB0XkVcC3gZf46vfiXNAO4dzQXrHlChuG4UiB3bNW4uwQkRcDP41bZ3qHqn5yWN2FHIBV9ZYhRT8xoK4Crzm/GhmGMREJsGu6U0RkP/Ae4Drc+s0rVfXvpr30oPiBUtkNuHiBFHiPqr5lWDuq+hHgIyJyIfCHwNABeCEDMbYCC8TYZvI86HAe5K2yAW9ZIMa1T1feFgVi3DQ6G5qIvA/4/1T1PSLSAFZU9Xip/BJgXVVPlY5do6qHonZ+HDiNc0u9rnQ8Bf4FeAFuzeg+4BbcYHxbpM4rVfWIP++PgL8YFdi1kDNgw5gXygPktl8g2woGL8LtE5GDDIiEE5ELgB8HXg6gqi2gFZ3/XOBXRORGVd0QkVcDP4MzPRYMiR8AeAZwSFUf8de8C7hZVW/DzZgr+OjatwAfHxdVawPwZrFFuO0lz0iH8iKZbco5AYMX4UZtSXQ18APgz0TkycADwOtV9UyooKofEpGrgLtE5EPAK3Gz2UkZFCvwzBH1Xwf8JO4fxzWq+q5hFXdSIIZhGPNOiouEK79GUwOeCrxTVa8HztBLM1Cgqm8FNnCpBl6kqqen0GriWAF/rdtV9Wmq+sujBl+wAdgwjHlCgGWtvkZzGDisql/y8l/hBuRqsyLPwS3SfRjnFTUN5y1WwAZgwzDmh0RhuVV9jUBV/wfwHRF5gj/0E8DXy3VE5Hrg3bi8L68ADojI702h1X3AtSJylV/keykufuCsMS+ITWJeENtMHnDsXKRanCd5HnQ4Wy+I5Prrdfn//Uzl2Pq+A+O8IJ6Cc0NrAI8Ar1DVY6XyZwMnVfWrXq7j0s6+O2qniB8Avg+8WVXv8GU3Am/DGUnuVNXfn6Q/47BFOMMw5oYkyWksZ5Vj4xJfqeqXgaEDtKr+bSS3cTPiuN6w+AFU9V5c0NY5xQbgzWJeENtLHnDsXKVanBd5HnQ4Wy+IRHJWGtUh98RULWwvbAA2DGNuEJQG2fiKC4INwIZhzA2CstQXR7G42ABsGMbckJCzwtqs1dgyzAtik5gXxPnNa7BTPAR2Qh+n8YLY/fQf0+vuP1g59vfy3InP326YH7BhGHNDmAGXX/hcECLywlnrd64xE8RmMS+Icy6fz7wJ56PNeZPnQYez9oIgp9FvAx6VC2JbYwOwYRhzg1uEMy8IwzCMLSchZ9cOWoSzAdgwjLnB3NCMyUgSbFv6cyunWfestz8fJp+PNudNngcdznZbepsBGzuSf7z/bcDs3ZeMnU1CbjPgeUFEPg38kU+EEY4dnIsV0QXzgli0vAjbyUNgJ/RxUiwUeb64CvgtEfn3qvq7/thCOmQbhhH8gMflP1sc5j0Q4zguwfLjROSjIrJv1goZhnH+CDPg8muRmfcZsKhqB/hVEXk58AXgwtmqZBjG+WKnzYDnfQAuNrRT1feKyFeB18xQH8MwziMWiDFHqOqfRvIDuC2lDcNYQIaEIm8rROTFwE8DlwDvUNVPDq1r2dA2x9lkQ5v1XmSzuOas5XnQYaf2cZpsaFc//UL9P+//icqxX5C/Hnu+iKTA/cB3VfWmSa41oI07gZuAI6p6XVR2A/AnuD3h3qOqb5mgvQuBP1TVVw2rM9czYMMwdhZuEW5TM+DXAw8BF/S1KXIJsK6qp0rHrlHVQ1HV9wJvB94fnZ8C7wBegNui/j4RuQc3GN8WtfFKVT3i/36TP28oNgBvlrPwA561z+0srjlreR502Ml9nJQhCdn3ichB4KOq+tG4UEQuxz3y/z7w6wOafS7wKyJyo6puiMirgZ8BbixXUtXPi8iVA85/BnBIVR/x17sLuFlVb8PNmGN9BHgL8HFV/YdR/bUB2DCMuWFIIMa4dJRvA34T2DuoUFU/JCJXAXeJyIdw60gvmEKty4DvlOTDwDNH1H8d8JO4fxzXqOq7hlW0AdgwjLlh2lBkEQk22wdE5HnD6qnqW/3M9Z3A41X19BRqyaAmR1zrduD2SRqe90AMwzB2EOKT8ZRfY3g28CIR+SZwF/B8EfnzvnZFngNcB3wYePOUah0GrijJlwPfm7KNgSzkACwiV4jIZ0XkIRF5UERe748fEJFPicg3/PuF/riIyO0ickhEviIiT51tDwxjZ5L4dJTl1yhU9Y2qermqXgm8FPiMqv5CuY6IXA+8G7gZeAVwQER+bwq17gOuFZGrRKThr3PPFOcPZSEHYKAD/IaqPhF4FvAaEXkS8Abg06p6LfBpLwP8FHCtf92Ke0wxDGOLOU+hyCvAS1T1X1U1B14GfKvv2iIfAP4OeIKIHBaRVwH4aNzXAp/AeVp8UFUfPBeK7Qg/YBG5G+de8nbgear6qIhcCnxOVZ8gIn/q//6Ar/9wqDeszf1Pfrw+5zNvBebD13IaeR50sD7vnD5O4wf8755e14/df6By7EfkiO2KvF3xbiXXA18CHhcGVf9+ia82aJXzsgFt3Soi94vI/Z1j09jwDcOYBEvGs0CIyB7gr4FfU9WTzj1vcNUBx/oeDVT1IHAQYP9THq+z9q1cRH9R6/Ni9nFSEnJWupaMZ9sjInXc4PsXqvo3/vD3ReTSkgkiRKyct1VOwzAmJ8mVpWx754KYhoU0QfhIlDuAh1T1j0tF9+AM8Pj3u0vHf8l7QzwL5/g91P5rGMb5QXJobFRfi8yizoCfDfwi8FUR+bI/9p9x4YEf9Kub3wZe4svuxYUlHgLWcK4qhmFsNTnImVkrsXUs5ACsql9gsF0X3A4bcX3F8gwbxuxRWPB1twoLOQAbhrFNyQGbARuGYcyAHFhwu2+ZHRGIcT6wQIztJc+DDju1j9MEYjz9x0TvP1g9Js9lYQMxbAZsGMb80GXbmyCm2ZLIBuDNIrN3bl9Eh33r82L2cWKUqUwQIrIMfB5Ywo1nf6Wq02Y7C22dky2JVPUjwEfClkSADcCGYWwDpl+Ey4Dnq+ppH3z1BRH5uKp+MVSY5y2JFjIQwzCMbUqOG1LLL78lkYi8MK6ujpCYpe5f8cLWc4G7/WwZvyVRX8J0Vf08cHSAVsWWRKrawuUdvllVv6qqN0WvIz6g6w+wLYkMw9hWDPaCGLklkZ+hPgBcg7O5fqlcblsSGYZhTMIm/IBVtQs8RUT2Ax8WketU9WtRHduSyDAMYyQhEq5qgpjsVNXjwOeAG+Iy25LIMAxjHGEGXH6NQEQu9jNfRGQX7tH/n6M6c7slkZkgNov2XGyC8/l2kedBB+vzzurjxEwfCXcp8D5vB05w2wV9LKpTbEkEICIvA14eN+S3JHoecJGIHAberKp3qGpHRMKWRClw57naksgGYMMw5ocpk/Go6ldwO96MqvO3kdzGzYjjereMaONeXNbEc4oNwJvFAjG2lTwPOuzkPk7MAkTCTYMNwIZhzA9TRsJtd2wANgxjfrAZsGEYxoywhOyGYRgzYoflA7YB2DCM+cF2xDAMw5gRZoIwDMOYETYDNgzDmBE7zAZse8JtEtsTbnvJ86DDTu3jNHvCPa0m+sU91WONE7YnnGEYxnmn24VTZoIwxmKhyNtKngcddnIfJ0WB9c5Up2xrbAA2DGNu6AInZ63EFmIDsGEYc0MOrM9aiS3EBmDDMOYGG4ANwzBmhJkgDMMwZoRiM2DDMIyZsAgzYBF5MfDTwCXAO1T1k8PqLuSmnCKyLCJ/LyL/JCIPisjv+uNXiciXROQbIvKXfoM9RGTJy4d8+ZWz1N8wdirBBlx+jUJErhCRz4rIQ/63/vrNXltE7hSRIyLytQFlN4jIw36MeMOodlT1I6r6aty+cz83qu5CDsC4dB7PV9UnA08BbhCRZwF/APwXVb0WOAa8ytd/FXBMVa8B/ouvZxjGFjPtAAx0gN9Q1ScCzwJeIyJPKlcQkUtEZG907JoBbb2XwVvap8A7gJ8CngTcIiJPEpF/KyIfi16XlE59kz9vKAtpglAXX33ai3X/UuD5wM/74+8Dfgd4J2676t/xx/8KeLuIiFqctmFsKYfhE78BF0WHRUQOAh9V1Y+WC1T1UeBR//cpEXkIuAz4eqnac4FfEZEbVXVDRF4N/AxwY9TW54c8/T4DOKSqj3hl7gJuVtXbgJviyiIiwFuAj6vqP4zq70IOwFD813oAuAb3X+hfgeOqGuJsDuM+KPz7dwD8FtQngFXgsajNW4FbAXZfccnMt/pexO3Lrc+L2cdJUdW+Geik+MHzeuBLUZsfEpGrgLtE5EPAK4EXTNF0MT54DgPPHFH/dcBPAvtE5BpVfdewigs7AKtqF3iKiOwHPgw8cVA1/y4jysptHgQOgkvGc45UNQzjLBGRPcBfA7+mqn3reKr6Vj9zfSfweFU9HdcZ1fyAY0N//6p6O3D7JA0v7AAcUNXjIvI5nH1ov4jU/Cz4cuB7vtph4ArgsIjUgH3A0ZENWy6IbSXPgw47uY/nExGp4wbfv1DVvxlS5znAdbjJ2JuB105xiTA+BMpjx1mxkItwInKxn/kiIrtwjwMPAZ8FftZXexlwt//7Hi/jyz9j9l/DmH+8vfUO4CFV/eMhda4H3o1b63kFcEBEfm+Ky9wHXOu9qBrAS3FjxlmzkAMwcCnwWRH5Cu7mfUpVPwb8FvDrInIIZ+O9w9e/A1j1x38dGOlmYhjG3PBs4BeB54vIl/3rxqjOCvASVf1XVc1xk61vxQ2JyAeAvwOeICKHReRV4NaFcDPmT+Amch9U1QfPhfILaYJQ1a/gjPHx8UdwK5rx8Q3gJVugmmEY5xBV/QKDbbTlOn8byW3cjDiud8uINu4F7t2kmkNZ1BmwYRjG3GMDsGEYxoywAdgwDGNG2ABsGIYxI2wANgzDmBE2ABuGYcwIsXiDzbH/yY/X53zmrUAv3r27lG4LeR50sD7vnD7efdnPPaCqT8fowwbgTSIip4CHZ63HCC4iSiY0h5iOZ8+86wfwBFXdO77azmMhAzG2iIfn+b+6iNw/z/qB6XgumHf9wOk4ax3mFbMBG4ZhzAgbgA3DMGaEDcCb5+CsFRjDvOsHpuO5YN71g+2h40ywRTjDMIwZYTNgwzCMGWEDsGEYxoywAXhKROQGEXlYRA6JyJYmbheRO0XkiIh8rXTsgIh8SkS+4d8v9MdFRG73en5FRJ5aOudlvv43RORlg661Sf2uEJHPishDIvKgiLx+DnVcFpG/F5F/8jr+rj9+lYh8yV/vL/3OB4jIkpcP+fIrS2290R9/WET+13Olo287FZF/FJGPzal+3xSRr/oE6Pf7Y3PzOW8bVNVeE76AFLe78tVAA/gn4ElbeP0fB54KfK107K3AG/zfbwD+wP99I/BxXLLqZwFf8scPAI/49wv93xeeI/0uBZ7q/94L/AvwpDnTUYA9/u86bgfdZwEfBF7qj78L+BX/968C7/J/vxT4S//3k/znvwRc5b8X6Tn8rH8d+K/Ax7w8b/p9E7goOjY3n/N2ec1cge30Av4D8ImS/EbgjVusw5XRAPwwcKn/+1JcgAjAnwK3xPWAW4A/LR2v1DvHut6N2/57LnXEbVXzD7gtxh8DavHnjNuG5j/4v2u+nsSffbneOdDrcuDTwPOBj/nrzY1+vr1BA/Bcfs7z/DITxHRcBnynJB/2x2bJ41T1UQD/fok/PkzXLemDfxS+HjfDnCsd/eP9l4EjwKdws8Pj6vb+iq9X6OLLT+D2EzyfOr4N+E0g9/LqnOkHblv2T4rIAyJyqz82V5/zdsBCkadj0N5T8+rHN0zX894HEdmD2yb811T1pMjQLbtmoqOqdoGniNs5+8PAE0dcb0t1FJGbgCOq+oCIPG+MDluuX4lnq+r3ROQS4FMi8s8j6s7suzjv2Ax4Og4DV5Tky4HvzUiXwPdF5FIA/37EHx+m63ntg4jUcYPvX6jq38yjjgFVPQ58DmeX3C8iYUJSvl6hiy/fBxw9jzo+G3iRiHwTuAtnhnjbHOkHgKp+z78fwf0TewZz+jnPMzYAT8d9wLV+RbqBW/S4Z8Y63YPbZhv/fnfp+C/5FehnASf8Y+EngP8oIhf6Ver/6I+dNeKmuncAD6nqH8+pjhf7mS8isgv4SdxW458FfnaIjkH3nwU+o85geQ/wUu+FcBVwLfD3Z6ufqr5RVS9X1Stx36/PqOr/Ni/6AYjIbhHZG/7GfT5fY44+523DrI3Q2+2FW9H9F5zd8Le3+NofAB4F2rjZw6tw9r5PA9/w7wd8XQHe4fX8KvD0UjuvBA751yvOoX7/C+4R8ivAl/3rxjnT8d8B/+h1/Brwf/jjV+MGqEPAh4Alf3zZy4d8+dWltn7b6/4w8FPn4fN+Hj0viLnRz+vyT/71YPgdzNPnvF1eFopsGIYxI8wEYRiGMSNsADYMw5gRNgAbhmHMCBuADcMwZoQNwIZhGDPCBmDDMIwZYQOwYRjGjLAB2Nj2iMi/93lml32U1oMict2s9TKMcVgghrEQiMjv4aLCdgGHVfW2GatkGGOxAdhYCHxujvuADeB/VpfxzDDmGjNBGIvCAWAPbieO5RnrYhgTYTNgYyEQkXtw6Ruvwu3K8NoZq2QYY7GE7Ma2R0R+Ceio6n8VkRT4byLyfFX9zKx1M4xR2AzYMAxjRpgN2DAMY0bYAGwYhjEjbAA2DMOYETYAG4ZhzAgbgA3DMGaEDcCGYRgzwgZgwzCMGWEDsGEYxoywAdgwDGNG2ABsGIYxI2wANgzDmBE2ABuGYcwIG4A9InKDiDwsIodE5A2z1scwjMXHsqEBPoXhvwAvAA7jdla4RVW/PlPFDMNYaGwG7HgGcEhVH1HVFi6x980z1skwjAXHErI7LgO+U5IPA8+MK4nIrcCtALt3ydMef8WEt0/OXsGpOdtrTnv+JA9S8/awNa0+m9F/3H0819+Nc32PY/0G6TumD195qP2Yql58rlRaJGwAdgz6CvV9lVX1IHAQ4Mk/1tCPv/uizV8xPcfl8RaU486fhHHXiBmnQ1x+PnQex7Q6xUy71Wd8vWn7uJmtRae9r+Ou0RhTPqaPlz310W+NaWHHYiYIx2HgipJ8OfC983a1rRhozpZzPfjOA1s9+M6CrR58jbPCZsCO+4BrReQq4LvAS4GfH3lGgtuDF87ND/NsZ8Tn+nrj2Mxs9mxnj2fL2f5TGVc+SN+zHQCnvea49s62/mb6aAzFBmBAVTsi8lrgE7iv052q+uCoc/IarB9wDxC1bl4pq7Wm1yEf8yUeVz4tnXT0w0+eVi+YdKu/1LjPSfRDHqRvXKf/mtPpGOsQM+35cf1pyyfRYdw58T2a9p6N+xxiedx3dZLv3bSfm9HDBmCPqt4L3Dtp/a6krO1ZASDP3DewvtR2ZVniZfftbmeNsXJOWpzfzuokdM+qflzeJS3KJ9Epy5ajPqWV8nF9zrJdlfLN9Kms80B961U5pTtVn+M+bBR93tw9GdynpHoP6vlIneN7lJLT8HLLt1+WuySVPuZZrVJnPerTWranIpMR3ZPR50/yuZXvUZCNwdgAvEk61DjCJQAkfr2uhvvS5d60XqMDQIulSnmH+lg5oVuc3/Ef0zRyTlppr0tC6ssBuv6ccCyWezoPvsa4Pq+zq6/9Ou2pdG5Rr5SndIfq26VGSj70ng46Nu5zyrwcrrHBSkVWv3Y7zecS9yHWOf7cR/UpfK6hvtMpqdRZ9zoP61Pvc5ysD5v5LhvDsUCMTfKjT96r/9fHnwZAo/QjB0giw1q+CSNZ3Ma0xNfsTrne2h2j87g+twf88OrROTGxzq2ojXTMPUkZbxIoM+5ziu9ZO1qR2sxnFPch1jluc1yfYh3j+vHnENcf95nEbOa7/PzL/tsDqvr0qU/cAdgMeJN0STm9tNcJ/jEuWepW5NTLG/5xPMjh0XWUXKc1Vf1YbtMYWj5JG+HRMfQpPK4HOc3yqfs8rk85aeV6bepDr59nKQn5yPbL7Q3SkUy83KnonBT3oBH1acmXu75L9Ln37lnudUxIyUfqnNKNyrtReV7o1838DLpUvsHyyD6GPoQ6wYwy6ecYnx/fk0m/m8ZgbADeJF1STuIG4PAom/jZR3AqDvKGf2wLcu5+hoiXw2NjWV5mo1I/Pn+c3KI+tNxdS0e2kbHcp1NZ7pkiJu9zg/ZInbskFblNY+Q9cmcMb7/c3iAd06gPa/5xPchh9ti7J6FP6q8hfXL8udZpj9Q5vgdpVJ76b0uQE98zJ6e0qY3sY9v/xPv7qL5+eM8rcqgfTAijPodJZGMwdndmwGYe44z5xz5XY1psBrxJchI2/EJTWKgYNgsIM6cgd4tZhfr60ie3qU81y3Azq95MbIPlSnmNbtF++VrD2uwWfXL12lEf02gGFS/qtLy9tNynzM8Rh+kczx5dH4bfowat6J61h7ZXPjfp09nVCQtWw+5BWFjsBUnKWLkWzYDL7Q+Sy5+TIiRj7lmH+sjPNf7utb08TOd4ZtxbCwhyre98Z9ced0/mHxG5GvhtYJ+q/uxWXNNmwIZhbHtE5E4ROSIiX4uOT5xm1ifjetX51bSKzYDPgrCinBczGfffPp4tBnvqqFmCa6taXp0JdcfMnJJKfWe767XnZoPlmVLe10ZZjmfp/TOh6kypHuk8aAbc34fqLL+sY3gKGHXP8uieLUfXa9EY2eelyIa7Udi9B8+6e14Zg3XKB/yc6qSMmi22oj46L4bh9d2MeNg9grqf1fdm7dXvXuZn8cPuas+LIvQprZQPMrOkxbfBtZdEfdgi3gu8HXh/OODTzL6DUppZEbkHF2x1W3T+K1X1yNao2sMGYMMw5gaRaxTWoqOPPghslA4c9ImxClT18yJyZXRikWbWtS13ATer6m3ATedU8U1iA/AW0PO9HDWb29oFnJpfSe/NpjSSQ3mYEY/WL4lml5shntEOeironx326Bz0GJQAACAASURBVEQ25Gp7UDsL3SYhoet9hXs6xn623WhGHNfPoz7F9yCeIff7W1fvU893uTqL1+JodYYb7umw8k5xfu/poE47mgF3z2L+uw68Jjr2po1N+hFPlGY2ICKrwO8D14vIG/1AfV6xAdgwzhFxoIaxGVLggnPV2ERpZosC1Sbwy+fq4pNgA7BhGHNEAoW3yVmztWlmN4ENwJtEUJa9WSp20I9dssa5/rjH7eqjZexiNc4dqXy9HKEWPY7HbmixjnEbcXm8SFePTBQNWr7+5C5XeWXhUPsW4cYtSMUuXo1IjhceY7NLMA8kUR+GL8JVH+f7P8dWX3ms8zhTzjhik0TVpEGfQSIsEMeLaMPkuEexyaE9wASRkPeZIDbPOR2Ap08zu8XYALxJRJT6qs8I1XQ/zNqqT0DSrFdkmt7HctVHNDWTAbJWZEFJV30IarOGkFPzcqdZI0GHXq/TdN4F6aoPB21SaQ8g8TqNaqMsS9MncfFtStNHxPk2Ey+He7LRXK6Ud5q1PlmQqI9K4tvPm2nfPem/R3Ef86j9XntOZ//PZYjOcXnX61zctzGfY9fLsuoH8CZj+wAKq1Tax59PUwCN2utvvzh/gI7hnFAnyPlqMkTuRrIbaLuR3Fl1A3et6ey9oX7SdIOxrkq1TxOzOROEiHwAeB5wkYgcBt6sqndMm2Z2q7EBeJMkmtNo+sEpO+OO+S9vJ6v+wFeydVfPy+pTN5blFvWK3KBVyGmWU6fVGzCytgtRLeSOm0+GH0/mZs/l9hK6RX2ARtau6JxnrZGy+rwJoQ3JtCLvyjaie1CvlNeL6/XkNo1KH2Odhbwi1+gWg6RmwhJZpTy+R0pSlAPUsuo/j0akUyNrVcpjnXdna768p0Mst2hUZPc59uQNlotBKc1yN8sPg2TmZ49h0MoEkN4gmvmngqIc8vL5xTm9fw4hX0UxeIf8Fb5PRY6N4nPoermaL6P3vegNvK49NxfufS/8YmepT9MhbGYGrKq3DDk+VZrZrcYCMQzjHNGyRbhzQArsjV7sE5GDIvLCWWp2PrAZ8GYRWFp1s75u080Kllbdv/vcyw0vx4/rgx/H+x+n6/7xv910iXUa/lG51Wx4OfPyEgnd4vpZc2ng+eFRG3ozlvI5o+RgUght9PpYnSkv+3typrm7Ut7yZpqyHOvYb0IYbkYJZplR96jcnvscvO13tTr7D30MOofyMIuc1EQhvo9lM0qsc78JgqlNDkPPh3NggvD1vAmhv3y8CcKd73Uvz84nYqAN+ISq3jptS9sBG4A3Sapd9jSd6SE81qX+B13zJoggX5CdAoY/nueZz9xVkpfZ6A2SWcYyWW+QyzISukX7S1nm0hY2O15u0aBdlBcpAps9e+iyNxn02mh52bURzCa9NmqVPhSpHL284h/Pw/m7C9mV16N7Us86NEomg6Us4wy7CznJcm9yGGxGybM2uzlTOb9Op9J++dHY6UylD7u96Sicsyc7XflcJKrficrb0efYa98vbHqTQdnMokifyaJscmjQiUwQVOSEvHR+DkjFzhrus5TMHOU2YhOD+u+GFt+DtpfDPavahkM6yrIJokGrYuKo0+7vw8Sc00W4uccGYMMw5oiEc+gHPPfYALxJRJTdq24GFR7Pd626Wd96c6Uin2y6L9QwE0WruYRCn4khmDiy5jIJXXatrvv2d5HSrVwvpcuKl9e8vOzrbzTdjCLIAGlYIPR9CCv4oY3M9ymUn2zu9W04nYLnR2izmPn6+qd8n4fpsNHcRZck6mNe8SxRZKgZpT3gHsV9LptpoGf6CZ9DmPmG+xhMEKHN4AkyzKwSTE+jvGH6zSz9JolxJobYO2aYpwj0Zr6F90fhWUHpGqNMDAysP84EUfV6GODZMTE2AzYmINUuu5rux74vOwFAzQ9Cu7LMy+6H18qOu3OKx/V1uqTFoNXN1t3uDyUTwzIbJfNAmxXWivaWshYJ3eJ6jaxNnTb1ojxjjaxkkggDTs8eGkwO4Zywol+LzgnlcR9bhUmhUykP9fd4s0uoH8wyZXmNlaKPkm3QplF6/G8D7eKe1LKuN1lU70latJezxEbf9ZKS2aV3H9yxvd6kEO7r7siMEh7Hi4E68vQodpMo6bTB8lDvlFrWpUOtMFGQdViOvCRirwkY5XVRNWm4a7YrdYJMYRYJJgcqcvBaCKapUD/2ouiZXfz9zbTP62GZ7CxMEOc0Em7uMS+IGXC2zvjGfLJRZB4zjMmwGfAmEVEuWD0JOJMAwN5VN+tb8yaIIB9vXggMf9xfa67QJekzMYT6a83d1GizZ9XN2E4395CQF+2fau6lTpu9Xp9TzQtI6VTqA4UM+BV3inOCl0JoM3hBhPJgRtld9CGtyGHmG+7JMd/nUB4e38tybEaJPTmg6pWR0C3MARvNZVI6lXtYo1Npv2y2KfcxXDPMfMN9CX2c1AwTTE892X0PRnmnxAE0sUmh30Qx3OsiDl6Bfk+NYiYbeVb0TATuTSOTwbD6eRGYEWbO3cr5MsxTwxiIDcCbRFWKH2zHewic8j/QEGgR5OCFsOYHoeBREAbqbua2ZA8DeZ65zct79VM61IuBtJO57ctD+53M/RCD3bWd1elSK+qH6wUZeiaIU0P6EAIt4vIzUR+CHB7543sSygfJXdLCXh420QwDb3g0Lss5aTHouXtUq9zDDrVK++V76hpzb+GaNW9CiO9TaDM8PofPIehU1qEqu8+9VeicDOiDFLblPBMUKdYE1MthoA0mh1Fy+Xx3LK/UCX2IAzG0ZDKAkrvYmPpJFlzmuhVZKu1Jb+Cd1gSRALujY6ecHzDwUVX96HQNzjc2AG+SmnZZ7R4FvM2LXi6B4JAf5xYIuQfW/Des5uUOdTZYKvIvdKmxTFYpX2GNum+vTYNlNirXS+lG5VlFzkkqqRFDHotQJ5bT3Onc6Hq/X2+tGtaH/ZyonB9yBoT6bep0SSuy+zfT63NOSnnDSaAiL7NRpEvskjq7eOUenam07/Tr2b1D/oJwzb2cqejYKc5pV/pcK3T07nxeh/A5p8U1pFIe1++SssES5U0245wfS2SVfBZuY9HhOT/cVXs24HhLojjBepwes10phRWfi1cKHccPEa7NXjaIJTb6coBMTAJ9lpxT5gdsREiSc+GqG4Dbx90Pd//qMaBncghyeHS9YMjj/qnmXlLSismgRjsyMbTYt+oGuRPNfTRoVa6X0OVCLx9rXkideqV+TsoFXobeanY4p9UMfXALhtmRXb7c9bF5/MDIPtSbrUp7x5v7K/VPNi/wZpPhZpLY0wOYyixTp125Xtkk4dpwv+xwTt0vJIX7Ej6nUB6bkk4VJorBpqRBnh6xHHtyjA8ukTE5P6o5PsLnWhuSv6JYLBtiYih8lgsvimr9wSaIqtdDHEAzFQmwJzr2gynb2EbYAGwYxvwwaAa8wNgAvEk0TzjWdLPCVsfNBsPMt5VV5eC607OPOrlnw+232XaoV8rbNDjR3Ofba5CSV66X0i0WvtpZo69+TsJJL0PP3ah8jtPZzVzTlvpy18d2Z3QfQqKbY0P67OzS6Ug7dWwHB6ayi7epV65XtglDz4YaztmbhcW1fZU+hfJ8alt+sAnvGirnJIW/cJ4lfTZfJaHtZ7qaJX02Y6DPhlzYe+nZ7juRDbhnk/UV/Uw2tvGG9YtuZCMO9QfbgKXidqYkxfmhvYkRbAA2xpN0lD2PukfBes09gi413KNltu79SOveBrzis235b/sp3A++bMNdY6Viv1xio2LDXWmvFee32kssr+dF+1m7g7QoycrynoxG7ttvNeikSXE+QHqsXtG57m14jbYPMjja8H3wNt4DVRtvsC0Gnfceyyrtbew+3dfHLkmlT85u3etzxvJI+2ls893Lqcr5K6xF10srNs/YLr0U2b17ctUGHOSwLX2w+QZdynbsWG5Tr+THTemWtm9SarQrNt06rYqNOCGtyMAAuWcD7s/rHK6tXqeqHOcPbvg+SfT5UrTnfZ8rWxK1KNuA47zMU5HSb4JYYGwA3iQiOasXuH/zzY4zgK3uHyyvcREABw44e2p22v2QyzbcNvWSLXIfdVqFPfZ4cz8NyYrzjx49wFJHWb3QX+/YKqKl6x9fRRpw4EDT118lSaU4H2Dj9IUVHTtrXmff5olTXt7n5SW3kh9svGFWt8/ruOSbDu0dS1b6+tghqfSpTr1is41tvMAENt/ePYvt4mXXPOjZcItjfpYWdIrLgw5BxxO+fJh7X0/n4e6F/UmVqm5pcbmLBqxG2lWjAXvnhzZgeC7q2M0stvHGiaP6k/tU8wO7iMpqNF+cVGkqbAZsGIYxI2wGbEyCakLzpLOXZjU3M2ked7PGrF2VWytu9nj0qLcZa7/N2Nkvg83WPbYGe2w7a9Bqd3rnt5ZI2jnNY73rSbt6/XbLzXxdfWeCCOcDpK16VUfvUhXa7IY+nHByO3VybOM94XWU1lq1vd39feySVPoU22xjGy8wgc23d89aNPruaZjVlnUu8lR4O3hPp2p5sAEHHWN/6mHyKP/unKTwIMkH2Hj7y6s2Y6Ail88PbUBvJtxvA676+cY23mCzHWZDDjbmtAgZdzbgctJ4JSnOn9oGbItw2x8RuRO4CTiiqtf5YweAvwSuBL4J/CdVPSYiAvwJcCOwBrxcVf9h7EU69B7fgh98uJsbVXnXbp8yse4f55a8zbhkw63vaRc+t628QdLtlmy+HXadyIvz03YO6yD+NyZt3HZk4fodqLeg4cu1DfVdOUuNnq0wCx5pvk7qz615uRue3P3xPbWsonN7V9V+StTe7tT1Mdih661OxQ7danegTsUmXKNd+NyKv3BZdnbxYPPtVuzkCV12b6xVrtderldswCFUuPB9zr3/djf4QmeV8szXj+3dQadW4SfcrZSX99Pr3za+Slra609I3E4nhYxvp2czjuW8tPcf9PvtxufGfsE5VeqRDbjfhpz486q25riNTduAB5sgLBBjm/Fe4O3A+0vH3gB8WlXfIiJv8PJvAT8FXOtfzwTe6d9HIpKzujuy+e4ZIte87G3Gj+VVe2vz2CqdhhY+t8eaB0i6narNt64VGy+dXnvNk6uQw+peL59ahXpU3ujZZ4s2KJ3Tqdp8w8w39OGxelXnk1q1Cef1lUp7rYarP8wOffToAdqNWsUmHIcSQzV0OQ637rOT563K9epL7cJGDdD1Hh3BP1qPJL4PTqeTx/dWyo/5CLNgZz7tdQp+wSf8rDDYgMNMd1g49CAb8OCk8sOz5MHwpPbQy7TX28tvcHa0YX7BxXZMQ/czHOwHHNuAy32aisEmiIUNxFjIQG1V/TxwNDp8M/A+//f7gBeXjr9fHV8E9ovIpVujqWEYFcIMuPxaYBZyAB7C41T1UQD/fok/fhnwnVK9w/5YHyJyq4jcLyL3Hzs5qIZhGGdFmAGXXwvMopogpmFQtpCBWaRV9SBwEODJj29o87t+ES6tLmBlrWhRbk+0KNdpwD44etrL7Qa1NrRO+aCGtgB11tfcglLSrpOdhOZ6aZFvoyR3GpBFcguap0vyhjdNeLKTXifvfpbVvRzaCOVnvI7i5KMtv0i31311Th5xi2D1k1JpL/eLeqcyL7cbJFDpk1wgxSKbZOJspv6RNcmULkkRPqx+gaqXGCdBqJ6fn25UrkfSS7wDvWCTEKCysu7s1CeO+IVArZb3gkn2eR3cfCUssuWR7PIw764kLGrTKMwC3Sx1OTG87PqgfQtcvQUw+hblUvIi8EIyKoEb0AsCCsfCYmY3WoQbHpihlfI42c5V2bd4hKuRYtEuJV6EG9Snidlhbmg7aQb8/WBa8O9H/PHDwBWlepcD3zuvmuwbX8XYfqz1pfFaPB7h6vN7geAFsUNMEDtpBnwP8DLgLf797tLx14rIXbjFtxPBVDEKkZzVXX7BqusXqFYieVe0CDdkUa55chWtVxfloCpLvKjWKbV3ehW69BYFz6xCLSovnQ+92XBRJ48W5YIOoc2wCOcX8k6nboZVJCSq7a20Fy/aDepTtiSVBEJxoAVRgqI42U6dVuX8pXqr0n5jqVYEZkAvGU9YZJOWW1gKC4PHfXDKsEW4cH5YhAsz2SAPy3k8KhkPxIEVcf7gZORu2PEiXMhhHOcDDoto3TGLcMVuHtFO0GERb9CWRPEi3KA+TsygZDwLzEIOwCLyAeB5wEUichh4M27g/aCIvAr4NvASX/1enAvaIZwb2iu2XGHDMBwJsDRrJc4OEXkx8NO4daZ3qOonh9VdyAFYVW8ZUvQTA+oq8Jrzq5FhGBORAHunO0VE9gPvAa7Drd+8UlX/btpLD4ofKJXdgIsXSIH3qOpbhrWjqh8BPiIiFwJ/COysAXgr0DyhecIvwkm0gNWK5G4DdpUW5boNuLi0ANZpQA5H13uLcqS9Ba9WuwFnoJlFi2ydIXK3AZ2oft6TATK/WBPMJcUiXGgjRMJ5U0W24uWmkzcOuEfdx467PBfLfrEltNdqNuAyONrsReNBVdbTwumWe2zXlpDXk8oCV5wtLY6ca9OoZHPL2lqJDuxmaVHf9dnpHEwLK123CPfYiZq/T9XyM9mK70vdn++mZsH0EHbdCP7Adb/R6KnSotsZdhemizxLyVgqRbKJX1QLO2IkdOgWi3Z5lvQt2uV0iwW1PEvoUKvsiBF0FH+NEJ3XjTbJHLYIF0fbxYt4V2X/nW9wDerlTuaDP0qRdYOi9yZmc5FwfwL8P6r6syLSAFbKhSJyCbCuqqdKx65R1UNRO++lP34AEUmBdwAvwK0Z3Sci9+AG49uiNl6pqmF96U3+vKHspEW42RHvsn3xTLTYWgY68i0WOWlFXqv+7heSb3DN+b3A4EW4fSJyUEReGFcXkQuAHwfuAFDVlqoej6o9F7hbRJb9Oa8Gbo/bGhI/APAM4JCqPqKqLeAu4GZV/aqq3hS9jojjD4CPj4uqtRnwJhFyVpeiKLLlaBEulCdDFuXiyLVyFFpazW5GLaqfT7AIF8t7S4tw69EiW7wIFyLhVqJFuCHZ0fLaSrW9RpQh7ni/3G1UI+NqjU5lF5AcOatFuPIin2vTzYbDolpyRH0f/CLc8f2V8jDzHbZxaRwJd8bP1ssZ3MZvyjk6Ei5e0BqVTQ3GR74V7mUTLsL1Z0PzM+RVN3SEXUUosqvJ+ViEGxUJdzVuz4w/E5EnAw8Ar1fVYisUVf2QiFwF3CUiHwJeiZvNTsqgWIFR0bKvA34S94/jGlV917CKNgM2DGN+mN4NrQY8FXinql4PnMGlGaigqm/FZWl5J/AiVT0d1xnBxLEC/lq3q+rTVPWXRw2+YAOwYRjzhADLWn2N5jBwWFW/5OW/wg3I1WZFnoNbpPswzitqGs5brICZIDaJktDMokW4jdIiGKVFsEa0KLcrWuDqNKDde+zP2n7RrJzeshPV70SRbt1e1Fpx/TNR/XIkXCeqU490Cm2EhcK9o9NTLne02l4U/dcXHdhq0GollRSbHa2VtmGqnfUiXDvrlYdzoBfZtuJTaPZvu1SNhDtVbMNU83Jvqygop6PsT6GZk47cll76tiBKKtvaxwtagg5NZ+naCIts3j49JB3lpItw/ekovYnCmx6CHM4/60W4NCfZs1Y5FGdsK6Oq/0NEviMiT1DVh3GeTl8v1xGR64F341zD/jvw5yLye6r6pgm1ug+41psxvgu8FPj5Cc8diQ3A54KwKW1YkwkmuZDJTyI5H/Depfc80i21FUjpfVrq/y5/el2m+zSDr2Uteq9H7+F4Wn1v+Qrqn8SW01alXMN7MloeRZe0SKPY9ZvYh/SKXVJa1Ivrt6mzsatN3nA3u9VKKuXQS0fZCVveJ367o9Sds9Gplp/y/lAh/WTY1j6kYgz3IJZT/0F2SVljpZKacYPlirzMRrG9T47QLSV4zEn8lka9LYvK6SeVhA71yrb0G8UHG86J01NW00u2i8+Rihyu2Sq+CKG9tNLnBKFdbGjlvuqxztMgoiwttyrH1sef9jrgL7wHxCP0+/KvAC9R1X9115CXAS/vv3Z//ICq3qGqHRF5LfAJ3Df8TlV9cKqODcEG4E1SWYTLokU37z622ogW4ZajRbghkWrNk14uL2DVo0U4HbMIx5hFuCjdZLFweEG0aDYkEu4HDTfrC+kg67Vapb1JIuHyMYtwcXrKsekoo22byukuXR03Gw7XSP0srtdGtTyObIu3tT/pZ5lxCs1dfkui9eZK3yJbvGX7uC2Jxi3axdvSj9tyKC6Pt6VPfHm8pZFE29K3V/3+es22G2r9+TqgT9OQpDkr0Qx43ACsql8Gnj6i/G8juY2bEcf1hsUPoKr34oK2zik2ABuGMTck5DSS1viKC4INwIZhzA2C0iAbX3FBsAHYMIy5ISFnZRKr74JgA7BhGHODoCzZDNgYhyYJzSRyQwt5FEKCdiIXrJB3YdXLfrEuE+92Fly4ci+fLsm1Uvs1X96N5LzkUpZH+iS96xXnlHVa8rJ62e9qHBbf1nz9jm/jhLq+B5erH6q7iLOgw4maW7Baz1yuiFZtiVo3p73WS/De6taLPAytboNOVnVD22BXJSdBjU7hgtXJagiQ+X3YglvamdNOn7Y2yLLlohzgRObcy8Ji2Z7sdKUPcfnxzC3KBde3RuYWlkKb6z63RKi/kXldSjqfZk+xz5pmidvos5SXIS0loXdJ54WNYhdloUO9Up6QV9zWTrOn1x6wlvkwsr5dj91b2Ak6yMHVLizGxQndM9+nUB7c3JKiT0LGclEuGayxC/GudNPuipyQs2sHzYAtEMMwjLkhzIDLL0bkgtju2Ax4kwilhOzB7WxYLojYTS24aI3KBdGI3NA0KtcxuyLHuSLihOwnI7czjXI1nKqWdyK3su+2HwdQ5GYI29UHHdYabuZbcTPramXXYqKdoGtp1Q0tpVvJq1CjWu5yQ7i8DSeb+/rc0nLSohzgMZ+JLbiN1ZvtSh9C0EYoDzPfsKtxCDYIOoVcEcHtLMx8ywnYY7cz0EpehrIbWbdZG+B2Vi0XcmpedlsX9dpzOro3/3EWWwkFOXZLK2a2q35LIj+bDteM3dRCQEbLu6E1vBtavupzTDTzAX2enIScBn1eEAu7K7INwIZhzA1uEW5tfMUFwQZgwzDmBnNDMwzDmBHmhmZMhJLQXPdeEPmYZDyxHO820fZeDuVkPBIlsomT9bR7dtyByXrKXhSdav2KDqGN4AVxfHVgeSsk4/Ehxe16SFzj7KQr7W6lT61dbhW8nGwn7+bO9ovbEaNFvUiE02o16CRxMp60ktimQ7XcJefpJc5J6HK8ud/LjUp5OAd6Xgthy/STUbKdUJ775Drr3isheEGUdXLlKxU5eDF0sxQlKeygziNAKolxFCm2mQ9eEOVkPXG5khTb1ve1B4XXQ7D9DpN729AHWYtrAMU1Q3mwBSc++U7D28+TzGV7CF4RkjGgz5NjM2BjMlJgv//7eOkYQCOSvedP4XMSykOYvPi6oX4O7V3gvdtop5A0wCcwo9uCtFVqp4VLxhPaa/tjZTktyYD6zRvUHzvlB8yNJfcDTFOfA8BfYy1x5W1ffirb67voFmt+aN+xSt9O1115veFctdpaZ7m+Qdef304aLtmOv047qZOTkvtEM7lPtlNObLPBcpEYp+O/umX5DCsVOSelRi9Z+Qn/gaU+IU1IrhP6EJcfxw3eIQHQLv9BhoQ2vcQ1Qeega1LIbpeMXqqaNo2K7K7Vk2sDku2Uy/ElQV5jpZKYNiQcCsdqRV8d9eJ+hGQ8jUr5GXZXyoM8KinkBkul5Dza1+dpSMhZ6l+EW1jmegAWkU8Df+QTYYRjB+dhRVTIe14GwWMg7B6xFsnBSyJ4TdQjD4QByXekQcVjIOlWE9nUiLwkOgO8Jsrtpz0vCoDHgk6+zZNa3eFiY92N0EGH9fVqeUhkExLTLB31XhBeh+97H+l93ivhRHN/3w4WKWmxbfzxAdvSp3QriW3i5DyxVwQQ7aiRF+05nd1gFLwU4j4cbV5UKU98myE5TlKc7wbisFfbkpfDlvBVWaPEN1p4FLhZZ+wVMdprAqq7W5QT4fSu0fNKUK9zkAuf4dXB9ft3wKiWD/KCyBG6fpt6BmxTPw07bRFu3v2ArwJ+S0TKCZSHZj0yDGN740wQrcprkZn3Afg4LsHy40TkoyKyb9wJhmFsX8IMuPxaZObaBAGIqnaAXxWRlwNfAC4cfYphGNuVMAPeKcz7AFxsaKeq7xWRrwKvmaE+hmGcRywZzxyhqn8ayQ/gtpQ2DGMBWYRkPCLyYtz+c5cA71DVTw6rO9cD8DyjtYTmBd4P+LT3ka1FG1wG+VQ189jais/o5bcqagXZeya0ag1OJSuc8Z4IrcRlMzvV9nK9QVrvciK4hu1ukOQ5p1O3Mt3a22B5vd3fft5bLj+yy/nfPqYue9ZR76Pc9PkS2olr6/D6DwM9f9CwQeUPMpcLIngOXLDbeRIEnY5mrv2TpQ0sl9koznd+u3mxzU87a9ChXmxw2cnqrLGbDV+eZykpeSXTWIulwme3m9U4xd7C0yH45AYZoOl1Cj6rF2bVrYh+kF3s+urLT/rsaCE/QsieVs5uVpaXMvfoXN6Q8hQXVDKFARU5Ja9kLutSq2RL65JU5DaNirzG7oqnQeYztGnk56vFpptpRYfg+xy2GlrLdlfK17OVSvkgP+ANVkrlygku7OvzpDg3tOlnwCKSAvcD31XVm6ZuwLVxJ3ATcERVr4vKbgD+BOfQ+R5VfcuwdlT1I8BHRORC4A8BG4ANw5h/3Ax4UwtvrwceAi6IC0TkEmBdVU+Vjl2jqoeiqu8F3g68Pzo/Bd4BvAC3Rf19InIPbjC+LWrjlap6xP/9Jn/eUGwA3iSS5D2/2yPRBpfBDzhkJ2tW/YI7jfEbVjaWahUfWaAiJ3SrPrXdvJJZrNFtD20f4Fi7uqlmmJmWN70syyEHbsguFvvU35I6UAAAIABJREFU1ptu9hd0OtK8xJ8/PHtZQpd9Xj7R3NfnB5zQLXxuN5rLfdnREroVv+CUbiUTWVk/6M1865Ffb8h2JkV528vBJ7Y7sDzkzA1yaL+x6mZwreYSSi/TWBFtFsm9DTOFfr/f0X7E5Uxkro5ru+P9chte7hZ+wb5ikd0slKcjyzurYabc7wcsaN8mneXsaNPgbMB9i3D7ROQg8FFV/WjfOSKX4x75fx/49QHNPhf4FRG5UVU3ROTVwM8AN5YrqernReTKAec/Azikqo/4690F3Kyqt+FmzLE+ArwF+Liq/sOo/toAbBjG3DAkFHlcOsq3Ab8J7B1UqKofEpGrgLtE5EO4daQXTKHWZcB3SvJh4Jkj6r8O+EncP45rVPVdwyraAGwYxtwwbTIeEQk22wdE5HnD6qnqW/3M9Z3A41X19LC6gy4zqMkR17oduH2Shuc9EGNTiMgVIvJZEXlIRB4Ukdf74wdE5FMi8g3/fqE/LiJyu4gcEpGviMhTZ9sDw9iZCDkNssprDM8GXiQi3wTuAp4vIn/e167Ic4DrgA8Db47Lx3AYuKIkXw58b8o2BrKQAzDQAX5DVZ8IPAt4jYg8CXgD8GlVvRb4tJcBfgq41r9uxf2XNAxji0lQVlivvEahqm9U1ctV9UrgpcBnVPUXynVE5Hrg3cDNwCuAAyLye1OodR9wrYhcJSINf517pjh/KAs5AKvqo8H47Vc+H8LZcW4G3uervQ94sf/7ZuD96vgisF9ELt1itQ1jxxPc0KI94c6WFeAlqvqvqpoDLwO+FVcSkQ8Afwc8QUQOi8irAHw07muBT+DGkg+q6oPnQrGFtwH7Vc3rgS8Bj1PVR8EN0t49BQYb2S8DHh3Wbiup89XkagBW9ztzUrMR+fl6ubu36hfcrDv/4YpfL13OtL1fb73B8Wxf4UPbzup0STlW5Lqtk1Zy37ryI8edH2u7U2dv/VTh6dCuN0jJi+sBfD/7IaeL9+M9krlbEbwbgj9o8BQ4kPm93fw1Y5/ZfZnzlgjeD49ml1bkbpaynxMVv+CEbiUXb05a8QPeYFexC3LwA14v+QW3qRf3IM9SvssPV3x0l9kgKe0YfNrvGBy8Gzp+R+CwUt/0OzgH74RTmfdo8p4BG9mpSnnqfWKDfFH2mOur9xTIs4T1yEe2TqfiI3uGql/wMmnFz7fcPplwir2V+qfZg5byAYd8vuGavV2Pq37AoU+tzO9e7NuI/YDP+HsWvB/2+HsQ/IAly1ljd1GuWcIJ9hXtSTa9F8RmQ5FV9XPA5wYc/9tIbuNmxHG9W0a0fS9w77DyzbLQA7CI7AH+Gvg1VT3pvEMGVx1wrM/ILiK34kwU/PAVS+dKTcMwPDstHeXCDsAiUscNvn+hqn/jD39fRC71s99LgeAwPZGRXVUPAgcB/qenLGvwYV066maJwS+4s1b1uz1xuOonfGzJzURH+fU6n1k3qzzZvICEvOKjm9IdWR7vEFwjL64H8P3ITzf4Kof8uyECLfjhxrlzY5/Ymp8RhfbCzLeazzf2882H5u8NfsBL3qc2ay6R0C18dtebu0hIKn7CcS7d8g7DTueqX2/Pb9fPuKJcuPEOw/3lVTlur9Vs9OXKjX1k+/2E43zBDPX7decntFd7P+OgQ/DLXW66+9dZrc58Q5/CTDW0MSz/b7bqnkR2R/XrzQ45SVG+1GxVdKr7782kCEqju3OS8SykDdg7Qt8BPKSqf1wqugdn/8G/3106/kveG+JZOL/DoeYHwzDOD0lXWTnTqrwWmUWdAT8b+EXgqyLyZX/sP+OiUz7ojevfBl7iy+7FRcUcAtZwK6WGYWwxolDbOcnQFnMAVtUvMHwzqp8YUF+xNJeGMXtyenso7gAWcgA2DGObkuNcQ3YINgAbhjE/KOygfOw2AG8WVeFE0+WLrbW8H/Bxn3/Xb/UdspB1/X7yzdO+PHNyyHLWypwf8DEvt7MGbeqFj2zw8y3n0s1JRpa3aZT8hBvk5MX1oJcHNuwmHPLnrjd9/lcvB2+Ilcx5MwQ/3ZALN2QECz61w9rrZmlfvt+EblF/kB9wTkrWXCr0yUlZ91nOglzOF6wkfidhp1+O0PH6uWPBRzb15/jMXt7XmKLcr037gUCKfL3V8uAHnJf8fsvt5VlCgvqdgp0fsNDzVJDM28m8t4PLnSsj/YD7z88rngahj/XCT9edWwt5kaM+BT/d0EbI3xuuEfL/Lvlsd/31cxc84cuTLK/oNK0fMF1gmiwN2xwbgDdJiwbf5t844cJvA1Bfcl/C096Bv77kfgQXX+Dc1fBjwVFcYvAarrxDnRXWqPsKbRouuTjuS9ylRoZLx+jklBptar68Q40O9Up5m3qlfDdrtOkNRt/HBWKEc36AD6zAByXggxK8O/QTeSiqXy2/xMuhPPQx8e3l3uGmrOMyWaWPy5Hxb4OlyvkNWiS+nZyUk+ytlH+bH0G96V9Q9nKq4sydk1baL9ct34NwTsf/PHJfL9y/UN6g5+IGcCHHKu3mJC5IwcsuzPZMRW5Tq8jl9gWfsL3EKfag/h4IOafZ65K2e+r+fob7Hb4D4ZxQN1wj9CnUX2Ol0ufj7PPnuXt3ET+olCcoj3FxUZ7SZY2VijwVNgM2JkFEWfE+riEXbvC7jXPnLj3qylf3uWlHbcm5HFdz5bYquXFTOhWf2DgXbo1OJReukvSVD8vFC/35fGO/3tjHNS1y565VykOu2rh8kE9sSrfiF5xGfRjkJxxy97abjb78wHG5IkXe29T72BY+tNDnAxv7Bff7wA7OlVvk343ai/MNt70fcDlXbuwXXG4/+An35w8O+tLnY9slIVvtBQWlXodhfrta6FydzbcKv2F3f0P+365/Wlhb3TXwntDs0iVlfdU9iezy58fyxORs+wF4mi2JFtIP2DCMbUpYhCu/RiAiyyLy9yLyTz7z4e9u9tIicqeIHBGRrw0ou0FEHvYZE98w6PyAqn5EVV8NvBz4uVF1bQZsGMb8oEzrhpYBz1fV0z769Qsi8nGfVAuY7y2JbAZsGMb80GXQDHifiBwUkRfG1X0Gw7BsV/evOI/Lc4G7RWQZwG9J1JcwXVU/DxwdoFWxJZGqtnB5h29W1a+q6k3R64iPqP0DbEsiwzC2FYMX4UZuSeRnqA8A1+Bsrl+qNGlbEhmGYUzAJiLhVLULPEVE9gMfFpHrVPVrUR3bksgwDGMkUy7ClVHV47h8wDfEZbYlkWEYxjiCCaL8GoGIXOxnvojILtyj/z9HdeZ2SyIzQWwSVWHNR3m1i8i23g4VACd9pNxS2/nfNk84h85OWo0a6/jItRBZ184adKkVUWHdrEaXlLXmbi+nCDXOeLkzoLxDrRJl5iLr9hX6d4tIN+ffGUe2xVFfcWRbKA9+pf2RdP1RYV3SSmRct9SHblbri5TLSWiXzo8j3+JyQQs/WPFRZ0E/p7N7kyJarhoZ1x8FFvx9uwPL4/by4h5WI+FCVFqSaV9kXLn9EClXjYwrR+LRF2WWkrPU7I1S4yPXfMXgA+3LGyUdAWq+fpo53Vaa60N1TukW/r6hfixPTFiEm5xLgfd5O3CC2y7oY1GdYksiABF5Gc5FrILfkuh5wEUichh4s6reoaodEQlbEqXAnbYl0YxxkXA/AlBsHBgi2x6LosL2HHCfVbfhfvAndF+lPEQN1XxUUoc6J9hP4stzUs6wuyK7qLCevMFyJSrMyb3ynKOFftCLZAvRV48VEQtOPsS1RVsAP+x3ZwrXeKyIGhPf3pFK+REeV2mPInKqp+Nu1io67uVUoaMAGctFZJ6S0OVM0VpOwin2Vsof4eoi0isl52J+UERsAezxMa7hWL24HyES7qJKn0N5kM+wpyKHzz209yN+m7FwT5TER4X1dKrTjiLh6hU5Ja9E6NVpV+7gcfYX1098JFynFOF3kY8OCdcM0X/5QDOmi7qs9lEq8gn8pMIPFXsHxAmfYXdfJFyoHyLzJmZKNzRV/Qpuy7FRdWxLokVDpLfbQtgNIkRxhZwOIeqr0XLTjgMHnIdLetrPKiqRa+1K5Fr/7g/9u0PEUWENX94asHtEOcoMKPZKq0WRbyGyLY6Q6kW2uWtoERGVVMrrQ3aXyJuJ17EXGRf3Ib4HQk5t1YdTN2su54Cvnw3YAaNLwrqP2NrVXK9EoTkd4iiu6o4TvT67QSlE94V7EGaJw6LG4mjCdrNeiVRbamYuP4WvX2t2+iLlBkXzlXfAyEnY8O0tNzM6pKyt9vb66zZdOHS45u6m+46FawyLhAuRc0nR54bvg9P19Ooef8/C+fg+uwnEGa/D7uYabWpF/T3NKRM7LEAk3DTYAGwYxvxg6SgNwzBmhCVkNwzDmBGWDc0wDGNGmAnCMAxjRpgJwjAMY0bYDNgwDGNGmA3YMAxjRpgJwpiEljZ4pPl4APZlJ4Ge4/73sh8Geo75l+hjAJw67SLgjmSXAD2n9zxze7yt+zDbblbjBPuLTTbzzEd9+fY0S6jTrshnWKnIGywVwRF5ltCgzRkf5gvwaHap+8MHI5zIXMRTCLB4JHN9C474p7I9XmcXOnw0c8EmwZH/SPa4Sns/8H3UYvNHWCKr6NimXtHxR/hWsQmnZErGEi0fGu3qN4otcvIsdZFppQ0rv82PFPUbWZuclE6zFyVWyzoVneM+H818qLg/p+bDaEP9pt/rL+jQ9RubhvKwAWZZ3mAXXS9rlpBwrAjzTaLyblZjiVYRMJJk6iIeS5twrrG70C/PaqyzQqfZ+xkHnYrtlrxOvU06qXxOHR9CHupvZLt8H/0ecZkPd/fX2JudqpxPJrSpFd/ldlbjeHs/rZaP6mxNN8TkOaybCcIwDGPryXNYNxOEMRbphWMO2+AyhNGG2cc+v2lnmC2UQ4vjTTjj0OI4LFfIKyGvcVhuvGFleVNPoC8MNw4tjkNQ49DlOGw3Dj2ON7BMmvlYHd3Goe5p4mTzggH1q+HYoEXotDahRZ0Tq+4pY1/zRF+YbhxeHfe5U2xA6RMG/f/svXuwZNdd3/v57d3d5zEzmseRZIQlIhnpcq04wXKIEdchuBwgRnEwqbIvNrnBYJdVIUCZIlWxfaECVHHLhroB4ovLRsS+hgrxi2Asu+xrXH4UBUlsY/BDQggPjsFjCY/U8zoz55zdu/f+3T/Wb+3ea/XjnD7z6J6j9a3q6v7t9fqttbtXr/17Rm69cYJK7+brXYMnJeWc5B7ddkXezVU5dkVuz2k9cvt1PGbGkwUtsjnu5ors5+CD9vj2/onCr+skF/MheeB6PJAu5zbc08Wx/jnmQQ1cmDN8xPWMtAEnJCQsDWqwEEdPDaQNOCEhYWmQNuCEhISEBaECLiyaiWuItAEnJCQsDdIJOCEhIWFBqEkn4ISEhISF4CCcgEXkB4B/BtwMvFlV/2Ba3QOZlFNEVkXk0yLyeRF5WER+wa7fISKfEpEvici7LcEeIrJi9Ekrv32R/CckPFXhN+D2axZE5DYR+YSIPGK/9dfsd2wRebuInBaRhyaUvVBEHrU94nWz+lHV31fVV+Pyzv3grLoHcgPGeZO/QFW/FXg28EIRuRf4JeBXVfUu4CzwKqv/KuCsqt4J/KrVS0hIuMaogM3otQuGwL9V1WcC9wI/LiJ3tyuIyM0iciS6dueEvt7B5JT2OfBm4PuAu4GXi8jdIvL3ROSD0evmVtOftXZTcSBFEKqq0GQP7NpLgRcAP2TXfwv4eeAtuHTVP2/Xfxf4dRER62fKIKNstdMyDHv3TZ8l+bxlTa6tvne7rS1DcDsLck3GoCnPULKmPzW6bLnpKhlVk+03G8sY3M6a7Aa3JI1NBl737rMKd81t1+f0qq3+0MYcZdMdBP2N3HDd5bYb7W48uszNNzRrNl4/D9YMZJT1uBB6lBztuwzUvaKkQ8V6f6uZcpwBOJ5zp8kA7NrkTYZhN5mhufmOMgS78lUrn5QVOadmzernRU2GBq7I7azGk8olWsP2nDpFRZdhkHctb3jaafqA6a7I8Rz8ffTte4U5Edm6xveZQuhQNTx0iopeWTYOGL3BKBHsXvA1+MhrseyoI4iIPAB8QFU/0C5Q1cfBZYxV1U0ReQR4OvDnrWrfBfyYiNynqjsi8mrgXwD3RX394ZSn3+cCJ1X1y8bMu4AXq+obgBfFlUVEgDcCH1bVP5013wO5AUPzr/VZ4E7cv9BfAedU1fvZnMLdKOz9qwCWgvo8zkfsyajP+4H7AW64bYOzuHgIWzjPJJ/x9xw+/bv512OeVPbAsWnZdX1G4hqhpNdkoq3osBNlBHa0eX0h1GQBXbDajEeTVXfUfkCXvPXA43n2LS41tKvz9R0X22FQu81kmHWtT7X2h6I5BQeMpv92xt+Yxx5lwGOXYStTsTBs/jdHc2rDZfQdlZ95YoNB1/HbKwccvmmTYesrfjNPGE/mEWcZgX0WYr8GPsvwMc4F9beactdnnNXa0/57IJb1eNhkvR5P0b7DatD+MJvNPVDrJ6y/0ozfYUhJt8lAPAmj7MiTH3Z91uQ4i7KnL11y93lQuvt/qHupmZvjUWyOdjhgyNbFdQq7D8NyMJW3SVDVsRPoXmGb5z3Ap6I+3ysidwDvEpH3Aq8EvmeOrpv9wXAK+PYZ9X8S+G7gqIjcqapvnVbxwG7AqloBzxaRY8D7gGdOqmbvk3J2j51+VfUB4AGAm579TTq07LpxxuA4w7A/fXg329itd9jvkjPkkLkKX+ofmuBqrGQbPjhMjqDk5ppc9TuABu6hsRtvTtVkaYZxV2G1E01pbrCDbfcDOnvCndpl206LzZihy2ucLde7wLbdaifx2Hav7jLg6IY7aZ3vHx2rP8kV2btS01cG3R79YycA2Dh3huFKh82N0R9DnAFYGx5z48G9e7fa2E3XP4Fc2nCbkndF9q7Jo+/BKPNz7Do87oqcs21ruNbfcU82Vt6d6IrcCcYvCec47oocu1/7+yQT63u3eu8+Pbjo2p097g4bUsbfgw7DFg9H+psU3R5n7D6cOHeGawEROQz8V+CnVHXMkEJVf9lOrm8BvllV50nXvKf9oTXWm4A37aXjgyoDbqCq54BP4uRDx0TE/+ncCjxmn08BtwFY+VHg2nxzEhISLgsi0sVtvr+jqr83pc53As/CHcZ+bs4hmv3B0N47LgsHcgMWkZvs5IuIrOEeBx4BPgG8xKq9Ani/fX7QaKz84zPlvwkJCUsBk7e+DXhEVX9lSp17gN/E6Xp+FDghIr84xzCfAe4yK6oe8DLcnnHZOJAbMHAL8AkR+QJu8T6qqh8EXgv8tIicxD28vs3qvw3YsOs/Dcw0M0lISFgaPA/4V8ALRORz9rovqrMOvFRV/0pVa9xh66/jjkTkncB/B75FRE6JyKvA6YWAnwA+gjvIvUdVH74SzB9IGbCqfgEnjI+vfxmn0Yyv7wAvvQasJSQkXEGo6h8xWUbbrvPHEV3iTsRxvZfP6ONDwIf2yeZUHNQTcEJCQsLSI23ACQkJCQtC2oATEhISFoS0ASckJCQsCGkDTkhISFgQ0gackJCQsCAcSDO0awFR6Jjbpg/C4oPn+IAl3u3TB+PxgWbiwDZ1IVR0uGTBcqqiMyHYjlCbq6wWgiLmguxokCBAShzIpiJnuz/KEDweLMeC8FggmN7AudMeP+PiIWjmXVctDkIU9AXrzwco8kFg2oFlJvHYDjBU0jMXZCiL3lj9ScF4muzOhdArB2yY62uvHNAphhzpj+JpZU1wnYHN2fPo7qMPxuMDy8SBarYsQJF3Qc6b4D3bxpP/HoyC8cTBc8aD8VSs2RrmReVc0K1cinpCMJ5hM36nGNIlnON4MJ44AJFVtHWL6/tAUT6AkA+mc/ysyxCt3fB7oIXQafHQKYaslIPGBXllzlgQTzVIcvjaH0RkE3h00XzMwI1EwYSWEInHy8ey8wfwLap6ZPdqTz2kE/D+8aiqftuimZgGEfmTZeYPEo9XAsvOHzgeF83DsiLJgBMSEhIWhLQBJyQkJCwIaQPePx5YNAO7YNn5g8TjlcCy8wfXB48LQVLCJSQkJCwI6QSckJCQsCCkDTghISFhQUgb8JwQkReKyKMiclJErmngdhF5u4icFpGHWtdOiMhHReRL9n7crouIvMn4/IKIPKfV5hVW/0si8opJY+2Tv9tE5BMi8oiIPCwir1lCHldF5NMi8nnj8Rfs+h0i8ikb792W+QARWTH6pJXf3urr9Xb9URH5p1eKR+s7F5E/E5EPLil/XxGRL1oA9D+xa0tzn68bqGp67fEF5Ljsys8AesDngbuv4fj/GHgO8FDr2i8Dr7PPrwN+yT7fB3wYF6z6XuBTdv0E8GV7P26fj18h/m4BnmOfjwB/Cdy9ZDwKcNg+d3EZdO8F3gO8zK6/Ffgx+/xvgLfa55cB77bPd9v9XwHusO9FfgXv9U8D/wX4oNHLxt9XgBuja0tzn6+X18IZuJ5ewHcAH2nRrwdef415uD3agB8FbrHPt+AcRAB+A3h5XA94OfAbretBvSvM6/tx6b+Xkkdcqpo/xaUYfxLoxPcZl4bmO+xzx+pJfO/b9a4AX7cCHwNeAHzQxlsa/qy/SRvwUt7nZX4lEcR8eDrw1RZ9yq4tEk9T1ccB7P1muz6N12syB3sUvgd3wlwqHu3x/nPAaeCjuNPhOXW5v+LxGl6s/Dwun+DV5PHXgH8H1EZvLBl/4NKy/4GIfFZE7rdrS3WfrwckV+T5MCn31LLa8U3j9arPQUQO49KE/5SqXhCZmrJrITyqagU8W1zm7PcBz5wx3jXlUUReBJxW1c+KyPN34eGa89fC81T1MRG5GfioiPzFjLoL+y4uO9IJeD6cAm5r0bcCjy2IF4+vi8gtAPZ+2q5P4/WqzkFEurjN93dU9feWkUcPVT0HfBInlzwmIv5A0h6v4cXKjwJnriKPzwO+X0S+ArwLJ4b4tSXiDwBVfczeT+P+xJ7Lkt7nZUbagOfDZ4C7TCPdwyk9HlwwTw/i0mxj7+9vXf9h00DfC5y3x8KPAN8rIsdNS/29du2yIe6o+zbgEVX9lSXl8SY7+SIia8B341KNfwJ4yRQePe8vAT6uTmD5IPAys0K4A7gL+PTl8qeqr1fVW1X1dtz36+Oq+i+XhT8AETkkIkf8Z9z9eYglus/XDRYthL7eXjiN7l/i5IY/c43HfifwOFDiTg+vwsn7PgZ8yd5PWF0B3mx8fhH4tlY/rwRO2utHryB//wj3CPkF4HP2um/JePz7wJ8Zjw8B/96uPwO3QZ0E3gus2PVVo09a+TNaff2M8f4o8H1X4X4/n5EVxNLwZ7x83l4P+9/BMt3n6+WVXJETEhISFoQkgkhISEhYENIGnJCQkLAgpA04ISEhYUFIG3BCQkLCgpA24ISEhIQFIW3ACQkJCQtC2oATEhISFoS0ASdc9xCRf2hxZlfNS+thEXnWovlKSNgNyREj4UBARH4R5xW2BpxS1TcsmKWEhF2RNuCEAwGLzfEZYAf439RFPEtIWGokEUTCQcEJ4DAuE8fqgnlJSNgT0gk44UBARB7EhW+8A5eV4ScWzFJCwq5IAdkTrnuIyA8DQ1X9LyKSA/9NRF6gqh9fNG8JCbOQTsAJCQkJC0KSASckJCQsCGkDTkhISFgQ0gackJCQsCCkDTghISFhQUgbcEJCQsKCkDbghISEhAUhbcAJCQkJC0LagBMSEhIWhLQBJyQkJCwIaQNOSEhIWBDSBpyQkJCwIKQNOCEhIWFBSBuwQUReKCKPishJEXndovlJSEg4+EjR0AALYfiXwPcAp3CZFV6uqn++UMYSEhIONNIJ2OG5wElV/bKqDnCBvV+8YJ4SEhIOOFJAdoenA19t0aeAb48ricj9wP0Ah9bkH3zzbXtcPrl8BufG5Y65W/v9PDgt+8PWteDvan8XdptDPP689Sfxv8ucvvBI+aSq3rTLSE9JpA3YYdJXaOyrqaoPAA8AfOv/2tMP/+aN+xstvwJ14vI4BeVexric/mPsZfy4zpXmeTfsNqd557ifMeed47xjzrumu/Xf28OYu8zx6c95/K/30MtTEmkDdjgF3NaibwUem9kiw6WAhP39MGPMu+Fe7fF2w34203nX6WrP+XI33Enl8264V3qD3a2/y61/JQ4PCQ3SBuzwGeAuEbkD+BrwMuCHZjWoO7B9wonQO1UdlHUGuw9Yz/klnbd+jGE+n7i/zsMBsyr8pcZzzib8kGOeJ9WZVX83nmMeYszbPq4/b/leeNitTbxG865ZXD8uj+ndvqt7+d7Ne98SRkgbMKCqQxH5CeAjuP/vt6vqw1drvMvdTK8HPBXmmJBwuUgbsEFVPwR8aK/1K8nZOrwOQF243aa7UrqyIjPaHS/KorcrXZM37cuiS0Z1WfXj8oq8Kd8LT0WxGs0pD8p3m3NRrAXl+5lTm+eJ/HZDOqeaa87xHHaaOe9vTSbPKQvXoFvP5Dleo5yantED679NV2TBHOuiE9TZjua0VRwOaAqiNZndfi/3rb1Gnk6YjLQB7xNDOpzmZgAy09d1cF+62qz7OgwBGLASlA/p7kpnVE37od2meeiaPOivIiO3coDK2vhrMT3iefIYu815m7Wx/ruUc/E8oBuU51RT+a3okFNPXdNJ13a7T4XRfowd1gNaTXc7z32J5xDzHN/3WXPy99XXdzxlQZ1t43nanEb3cW9z2M93OWE6kiPGPvG/fOsR/X8+/A8A6LV+5ABZpNmo96GViPuYF/GY1Zwm39UuPO8253LCD68btYkR8zyI+sh3WZOc3WWybex2n+I1KyOTgP3co3gOMc9xn7vNKeYxrh/fh7j+bvckxn6+yy94+n/7rKp+29wNnwJIJ+B9oiLn4soRR9hjXLZSBXRu9I49jnvaP7rOorsM5qof0yW9qeV76cM/Ovo5+cd1T+dFPfecd5tTTR6MV9KdOn5d5GTUM/tv9zeJRwoxehjwnDVr0ItHQa3sAAAgAElEQVTmtGLlbu4S3ffRmtXGY0ZOPZPnnCoqr6LyuuGvKuwE3SrfYXXmHP0cfB0vRtnrfYzbx2uy1+9mwmSkDXifqMi5gNuA/aNsZqcPb1Ts6R17bPO0fywTo/1jY5teZaepH/e/F3pAd2q5G0tn9lGwOpPHkShib3OuyehRzuS5Igvokt7MNXItpvff7m8Sj3k0hy17XPe0Pz2O1sTPSW0MCWj/uN7msUs5k+d4DfKoPKcO6Mxm5uicks7MOZbG0/gc1er79zqg5/mu7oVOmIy0AV8G6iKbSPvHwGnlHroLvVv7y6H9o/CV4nGvc56XvpJrFPOY76HNZFpm0lf/vuZTy/d+H+z0bxuu51GmfC92m9NudMJkpA14n6jJGKy4E9HQNMdij57Nl9nowh5dPV3Zo6qs+C+/jNEl3an9TaIzKjJrXxfCDqtBeYeq6R9ACp3ZZ9XMydUroznmzZzUaDtNGu019u05FdQzea7Jg3I3h+lr1GMQrVk5tb/2nEc8hiKD7WJ95hpsm4gCv45+451Bdyjnuo/t+6SFkO2yZkO6M+9r/N0rjZ7Gc9a0V1uDPCj3a9Jun1PtvibXAUTkGcDPAEdV9SXXYsz0N5WQkHDdQ0TeLiKnReSh6Pqew8xaMK5XXV1OQ6QT8GXAa5TrRu7l/u3LSBbo5ak+vMTIwsCfXGQi7eVxipBRzZSzdciC+k52N+qvJm/K222n9Vk1sr/JPFeRDLEb8Twwi4HZc+gGdJtHRUwGO32N3LqP6NVovAG9mXNeiWS4O43ce9RHOCdvUTCZp3rCz6lLHtR3op8RPYjm6EQI0+tn1DPWCLom1/Z1tqPvXmHmgdNWdWRF4eeUB+WTrCDy5tvg+suiOVwjvAP4deC3/QULM/tmWmFmReRBnPTpDVH7V6rq6WvD6ghpA94vBDob7ste903za/SwbzLGDdMs9+3xbsM2NyuXDfsh9RmjBSWz9nU/d1uo0ZXVb9OCNuNX/Q6gzXh1Pwv6a/M0rc+6b8qbpjwL5iBW35dL059tAP1eUL63OWRB/XgO7fEdPT7H9hrsNufM6M5GGcwh5GFE+/bT7htG09AyYQ7jdNjf7Prx96JdPmkO03hmg4m0rz+93K5v+PFsqw3q63h/e4TInQpb0dXHHwZ2WhcesMBYDVT1D0Xk9qhhE2bW9S3vAl6sqm8AXjQXY1cJaQPeLxSGtkl5+WTV0JnRrqqXo/lNzMvFmi+3ySubH3AByqDZALQQlKzpL+5fiwxFW+MLIM2mRSEo0vQH0C38pmPKGC/7M1rMPKn5ARnPzUZo9X2fYjJgtfba1N/7HCryYI1iOl7DnDqYY0mn+fMb6w/oFH5zdnRduE1q2O9O5blNT7pvbbqRl7bWrBvdh4oOVau8ZCWoX1MF34OKKijPqQO6pDuqD9R2X32dRubb0N2AZzWePZ3bmkwrHzbt/fdE6VKO/owKZ8vcpufDDvBT0bXX7uzTjnhPYWY9RGQD+L+Ae0Tk9bZRX1WkDTghIWGJkIGJSa4A9hRmtilQ7QP/+koNvhekDTghIWGJkIPZ118BzB9m9hojbcD7hKCsmlgqNtCP/exLK5+lUKoixUWPQaTAqicY9E92CKgROuSRkq4KFFIxj3EfcXmspOuavainewys/t4N9OtAcahjSrjdFFKdyMmhF9Gx4rHT8OwVh2XAs5/DdCWcd0Wedh8HY+Uxz7u5eO+GKlI8VoGSjzEHcK8gjpVo0+h4Rt4Rw69FGdFiKx0q4S7Hjf6KnoDnDjN7rZE24H1CROluWEQoUzh5ZY6XKXo6VsLtT6FUN0q/Yb9Dhk4db9jvjim82v3BuAJqUh9tWvoWxKVRuplHnPWZGe3XZKe/GpR7eXmbFmSq0myyEi5eo3iOddR/qISLFYUxz3G5l6k367bLfZysXN1dCTeuAAuVeLOUtUH7CTxOU7rVG9kUuopok71H9HDDbdydvrOA8PWzvtuMdUPCOe0ZGZi33jwQkXcCzwduFJFTwM+p6tuuZZjZ/SBtwPtEpjW9vm1OxSV3zb68wyL8ga8X265ePzLAb9EDugHdY9DQeVHTZTDaMIrSuag29NCdJ/2Pp3Cn53Z/GVVTH6Bnypp2m1m0V0j5PhqnBqPXip1oDbpBebcZb0SX9II5xjwLdUB3qJpNUgthhSIoj9dIyZpygE4R/nn0Ip56xSAoj3k+VGxZ+YiHNt04PbTK3X0c0TusjqwxitqUasagKbBCxacESr9QCQd1u33TZvTn4JVgsVLMz6mJsdHcB28hEsbLGH0vRhuv68+dhUffC+hEc5oPGfsRQajqy6dcnyvM7LVGcsRISEhYIngRRPvFURF5QET++SI5uxpIJ+D9QmBlw536KjNTWtlwf/febKlndPy4PvlxfPxxumuP/2XfBdbp2aPyoN8zujB6hYyqGb/or0xs7x+1YXRiabeZRXuRgu9jNMfwpLxqa3KpfygoH5iYpk3HPI6LEKaLUbxYZtYatftz98Fkvxvh6d/P0fPsy/0pcq8iism2z7Pts4G5RQ5T28MVEEFYvQ2ZUr67CMK1N97bp/M9YaIM+Lyq3j9vT9cD0ga8T+RacbjvRA/+sS63H7S3N/X0DcUmMP3xvC4scleLXmVntEkWBasUo02uKMiomv5XisKFLewPjR7Qo2zKmxCB/ZE8dNVEBqM+Bka7PrzYZNRHJ5hDE8rR6HV7PPftDzW0K+9Ga9IthvRaIoOVouAShxo6K2oTOUwWo9RFySEuBe27DIP+24/GjmeCORwy0ZFvc7i4GNwXieoPo/Iyuo+j/k2xaSKDtphFkUAkMaAXiBx6DMdsr9t0Rt1qXwMSyFn9OktLzNHuIxYxjOx8/fegNNqvWSgb9uEo2yKIHoNAxNGlHJ/DnpEDN8zZ5vpF2oATEhKWCMIVtIJYeqQNeJ8QUQ5tuBOUfzxf23Cnvu3+ekBf6Lt/9GkiikF/BYUxEYMXcRT9VTIq1ja2rf81cqpgvJyKdaO3jF61+jt994X2NEDuFYQ2B6/B930UNidffqF/xPpwPHnLD99nc/K1+ps252k87PTXqMiiOdaBZYkiU8Uo5YQ1iufcFtPASPTj74M/+fp19CII36e3BJkmVvGip1nWMONilnGRxG4ihivhihyLIKaLGJhYfzcRRGj1sH9X5HQCTtgTcq1Y67sf+9HiPAAd24TWisJo98MbFOdcmymP+1Wx7bI/tEQMq+y06pess9X0t1IMyKia8XpFSZeSblNesEXREkkUwXhtHnwbr9HvRG18eTzHQSNSGAblvv5hE7v4+l4s06a3WG/mKMUOJb3W438JlM2adIrKRBbhmuRNfzUr7IyNl7XELqN1cNeOmEjBr+uhSIziH8ebjTqy9GiySUSP89OsUzpFxZBOI6KgGLIaWUnEVhMw3epCI5GGGzOMa9GNXJPryLW4iS1stBdNNTEkIiuKkdjF1rfQMauHVYrLEEFcUTvgpUeygkhISEhYENIJeJ8QUW7YuAA4kQDAkQ136tsyEYSnz/WPA9Mf97f661RkYyIGX3+rf4gOJYc33IntYv8wGXXT/2b/CF1Kjhg/m/0byBkG9YGGBkzjTtPGWyn4Pr0VhC/3YpRDzRzygPYnX78mZ23Ovtw/vrfpWIwSW3JAaJWRUTXigJ3+KjnDYA07DIP+22Kb9hz9mP7k69fFz3GvYhgvehrR7nswyzoldqAZj3oXiyimW11MivgWW2rsFg0tjm62W/26cczwJ+cqaC/TLDX2CmF8V5ovb+h1hbQB7xOq0vxgfUaMTfuBekcLT3srhC3bhLxFgd+oq8KlZPcbeV245OWj+jlDus1GOixc+nLf/7BwP0Qvdy2LLhWdpr4fz9MwEkFsTpmDd7SIyy9Fc/C0f+SP18SXT6Ir8kZe7pNo+o3XPxq36Zq82fTcGnWCNRzSCfpvr6nrzL35MTsmQojXyffpH5/9ffA8tXkIaXffBw3P2YQ5SCNbrqModWp0NTXK3jgdR7nTog7qxBHbYpGCX5PGXGyX+j4Knt94mwwaQX9hBLi5INCEMPYonR0w8AFV/cB8HS430ga8T3S0YqM6A5jMi1EsAR8zII4t4GMPbGGbltFDuuyw0sRfqOiwShGUr7NF1/or6bHKTjBeThWVFwFdW4JIDx/HwteJ6bx2PPcqs/s1adW0ORzjfNDexwzw9Uu6VOQB7f5mRnOuyYOEk0BAr7LT5LKryJ1cPFijS0H/jr+R3NvHL/BjHuFSwOOwaVMGc+40PJo5n/Hg73PejCFBeVy/ImeHlSDJZhzzY4UiiGfhEotOj/nhRh3JgOMkm3GA9TgNfRmUwrrF4pWGx923CNfnKBrECjtjMUD2jAzsqzXCZrIDToggWc3xDbcBl+fcD/fYxllgJHLwtH90vWHK4/5m/wg5eSAy6FBGIoYBRzfcJne+f5Qeg2C8jIrjRp/tH6dLN6hfk3OD0TDSZvs2g76fg1MYFqfXrNzNsX/uxMw5dPuDoL9z/WNB/Qv9G0xsMl1MElt6AHOJZbqUwXhtkYTrwx2tfJuuKZL8uvj75MtjUdJmI6KYLEqaZOkR07Elx+7OJbJLzI8wxoe/r50p8SvioPGxiKGxWW6sKML6k0UQodXDpMD7e8ZTSweXNuCEhIQlQsa4COIAI23A+4QMhPIhd2Ja75j30Rkn61vfNvq0o7+hPMv20YzewIkqbho8QdFdpWenRik26VA1J7IjxSVW2Gl5lV1ivdxCBma7O9hidbuGc67/tXKIDKA+7U5sq6WSH75Id9s88QYXGeYZncHo8TM/Y3LIM67NIS8uuei+Et0zFn7wtJvjoRPulBcH3/Gyv9W/1aC/bxic5dzx9UbZt1oULpRiy9ypJhvZIxfbbHG4qd9rzKdGtAu+48ZZKQrW2GlMutaKHTN/Go23xnbg/efl3r5OZl5hhZ3m8yZDhrmKF5HruPHkT77erM2fMo8W55xoxuboAg51m6cFCiciGGURUXKGgVlah2Ezx04xpEJbXm2xl9uQGhm1B+pGZmtpsSJPOD9nT4/W2fMcBiyKzdhuLR7j6zyNTisoU+z51m15MGbzBuPJgMO71jowSBvwNcD20VAOVnQP/l/8uePzhxS83rE1Jrw8ePg6T7u6A6QTcMJeIFKzcYM7NvSHTgC2cWwyvcWNAJw44eSpxUUn5GrLcEu6LVnkUboMGnnsuf4xelI07c+cOcHKUNk4buOd3UC0Nf65DaQHJ070rf4GWS5Ne4Cdi8cDHodbxrP1eX7T6KNGr7jTtpfxevnmUeNxxbr2/Z3N1sfmOCQL5tSlG8hsYxkvsAeZ72jNYrl42zQPRjLc5pqd+jxPcbnnwfN43sqnmfeNeJ5uXjgeVCk0S4vLnTdg6GkXegOO2vs+YHos6tjMLJbxxoGjxoP7hPGB3ROMRgll67HAU3tGOgEnJCQkLAjpBHz9Q0Tejks7fVpVn2XXTgDvBm4HvgL876p6VkQE+I/Afbh82D+iqn+62xiqGf0LTtNfdNzJpH/OnRqLMqQH6+70eOaMsyQYqCv31hKDokdJlwv9o4Cz482oGkuCsugxKIej9oMVsrKmf3Y0npTh+OXAnXxd/R7DPGvaA+SDbsijmVT5Pis/h/OOLnNHewcL75J63niUwVbY36HxOVZkwZzcnNu2y6HtMzDTFjpeswG9sTX1p9o2z02cCpNjj3gKy70dr+cxtqeeRs+y767JGplwXWRjdsHj5Vlz8vX8lFPa+z5gdBKOA7SPZ3a29yabdWbtOxPbe/vwvCUDjoPGK1krY/g+zNDSBnzd4x3ArwO/3br2OuBjqvpGEXmd0a8Fvg+4y17fDryFGamrGwwZPb55O3i/mjshvXbIQiZ27XFuZcto9yhZlEO6h8vG5nZQ98iqip5ZwQ/KIWvn66Z9XtawDWK/MSlx6cj8+EPoDqBn5VpCd61mpTdS1hTeIs3q5Na2Y3Tln9zt+uFOEfBcroV2w0T9HcrdHHu1xZwYDBnmWTAnum274R4dl1jezckGbtMr7LTsfCujfS66ikM7W8F45Wo3sHvdsV92Y/tsGiu/7t6e25cXVt/b0vq+PE+Dxk64Csrb+fS8PfI05K1cf0JGl+EEW2hfrmN03cr959qEP+m4bWwXXBPCz2FkR1wF9Subc2yTHPdxWXbA4yKI5IhxPUFV/1BEbo8uvxiXMwrgt4BP4jbgFwO/raoK/A8ROSYit6jq47PGEKnZOBTJfA9PoTtGm8z4yTqUt/bPbjDsaWNze7Z/gqwahjLfrgYyXoaj/voXNqCGjSNGb25ANyrvjeSzTR+02gxDma8/+fo5PNkNeb6goUy47q4H/Q16rv40OfSZMycoe51AJhy7EkPouhy7W4/JyetBMF53pWxk1ABV3z0BePtoPZ3ZHBxPF84dCcrPmrWClzNfNJ68XfB5OxV6GbA/6U5zh54kAx63+41dl7M9B7WHUaS9US6/ydHRptkFN9YPU/MZTrYDjmXA7TnNhckn4OSIcQDwNL+pqurjInKzXX868NVWvVN2beYGnJCQcBWQlHBPOUxyVp8YxFRE7gfuB/imb7i89OIJCQkTkGTABxZf96IFEbkFOG3XTwG3terdCjw2qQNVfQB4AOBbv7mn/a+ZEi4PFVjFIFLKHY6UcqagOnPR6LJHp4TBpnsE7pQCdNnecgqlrOxSXID+dkvJt9Oihz0oInoA/YstesdEE4bigvFk5mdF12jfhy+/ZDyK8TwwJd0R99W5cNopwboXJOivNqXeZmF02SODYE5ygzRKNinEyUztkTUrlIqscR9WU1CNAuNkCGH7+mIvGI9sFHgHRul0zpvibn3byanPnzZFoIblXinnFX1eoeSVbHVExwGKqqLj4nCYWKAqchcTw2g3Bw0UXHFAolgpl1M3gXakcDLW9mP+wObor3llZhUp4UZKOWtoogWvZGuCwUfBdnzMY2mUdjmxEi6e01yYFIznAOOpFA/4QeAV9vkVwPtb139YHO7FyZuS+CEhYRHwwXjarwOMA3kCFpF34hRuN4rIKeDngDcC7xGRVwF/A7zUqn8IZ4J2EmeG9qN7G6NmY80UVpUpqNYjei1Swk1RyvUvbKDdUCkHIS2xUm3Y6u/iBlSMlIKXNqATlbfaw+g03NSpI6Wc58H36ZVwpsi7mLsTVhOQqHMk6C9W2k2aU7EiQQCh2NGCKEBRHGynyyBov9IdBP33VjqNYwaMgvF4JZt37faKwXPmnDJNCefbeyWcP8l6elrM41nBeCB2rJithIuzYcdKOB/DOI4H7JVo1S5KuCabR5QJ2ivxJqUkipVwk+a4Z6RgPNc/VPXlU4r+yYS6Cvz41eUoISFhT8i57pVwIvIDwD8DbgberKp/MK3uU0kEkZCQsOzwMuD2a7cmznT0d0XkL0TkERH5jn0NLfJ2ETktIg9NKHuhiDwqIifNj2AqVPX3VfXVwI8APzir7oE8AV8LaJ3RP29KOIkUWIOI7kVKuRORAmzYgxrObI+UcuQjhdeg7MEl6BeRkm04ha56MIzq1yMaoDBljReXNEo434f3hDNRRbFudN/ROyfcL+PJcy7OxaopW3x/g1VT2vVH3ngxrReFiwP32K4Doe5mgYIrzuoRe86V9FqeeT2KUgPvwKrIm/puzo5nL1pYr5wS7snzHVunsPxS4XjxsZKLwinHvOhhYLS3B/ZKvs2W0u0ShxrRRV3kFKy0PNnElGo+I0bGkKpR2tVFNqa0q6kahVpdZAzpBBkxPI9iY3jFYBUlyZymhIu97WIl3rBJ6ulpc/5oedZN8t7bM/ZnBfEfgf9PVV8iIj0giARlJqfbqrrZunanqp6M+nkH4w5ciEgOvBn4HpzS/jMi8iDuvP6GqI9XqqpX8P+stZuKtAEnJCQsD+b0hBORG4B/jDttoqoD8O6ZDb4L+DERuU9Vd0Tk1cC/wOl+Gkxx4AJ4LnBSVb9sY74LeLGqvgEX8iCAhTd4I/Dh3cIapA14nxBqNlYiL7LVSAnny7MpSrnYc63thZaH0c3oRPXrPSjhYvpISwm3HSnZYiWc94Rbj5RwU6Kj1Z31sL9eFCHu3Dhd9ULPuE5vGGQBqZHLUsK1lXyuT3ca9kq17LTaHEwJd+5YUO5PvtMSl8aecJfstN6O4LZ7Us7YE66OknrWkZJuejQ12N3zrTEv26MSbjwamp2QNyxutMWspomuJpevhJvPE+4ZwBPA/ysi3wp8FniNqjapUFT1vSJyB/AuEXkv8ErcaXavmOSsNStcwU8C343747hTVd86rWKSASckJCwP/Am4/ZqNDvAc4C2qeg9wCRfnJYCq/jIuSstbgO9X1YtxnRnYs7OWjfUmVf0HqvqvZ22+kDbghISEZUKmsDoMX7NxCjilqp8y+ndxG3IAEflO4FnA+3BmqfNgz85a8yKJIPYJJaNfREq4nZYSjJYSrBcp5dYiBdewB+Xosb8oTWnWDm85jOoPI0+3auS11ox/Karf9oQbRnW6EU++D68oPDI7POXqUMP+Iu+/Me/AQY/BIAtCbA61w6YlxnRp6y9PCVcWo3LfBkaebesWQvOsBekph2F5HJ5yaAqtEY+ufMTjeAjNcc+2MPyktDzZ1MJPttPaxwotQaeGs3R9eCWbKeamhKPcqxJuPByliShM9CBNyiNp+rs8JZySrYZ5jOKIbW2o6t+KyFdF5FtU9VGcqemft+uIyD3Ab+JMw/4n8J9F5BdV9Wf3yNVngLtMjPE14GXAD+2x7UykDfhKwP9Je2W0F8n5SH4S0fWE94rR80jV6ssjZ3S31D63717FfHdzxd470Xs3evfX8/B9YBXUnsRW80FQbvs3ts+76VWgNkfdQyiNirwJo1hZEnsfXrEiZ0C3Gb+ky85aSd1ziz0YZEE5jMJRDn2Yx8wy9+auzc4wLN/EXMPtBvu09j4Uo1+DmM7tRlbkbLEehGbcYTWgV9kha/VbtQI81jgriHYa+nb4SSVjSDdIS7/T3FjfJg5PGYaXLJv7SED7MQfNF8H3lwdzzhBKuq2k9IzxPA+yrGb98HZwbQ+ygp8EfscsIL7MuDPVOvBSVf0rABF5Baa0a2OSA5eqvk1VhyLyE8BHcN/wt6vqw3NNbArSBrxPBEq4IlK6mfnYRi9Swq1GSrgpnmr9C0a3FVjdSAmnuyjh2EUJF4WbbBSHN0RKsymecE/03KnPh4PsdjpBf0OvhGspxfJhSNe7KOHi8JS7hqOM0ja1w126Ou407MfwSU9HfYTlsWdbnNb+gp0y4xCaa5aSaLu/PqZki1O275aSaDelXZyWfreUQ3F5nJbeJ/iMUxpJlJa+3HAbc7dfuq3W2uuEOc0DyZSV6AS82wasqp8Dvm1G+R9HdIk7Ecf1pjlwoaofwnnNXlGkDTghIWFpkFGzlm3vXvGAIG3ACQkJS4OMmhXmzWV//SJtwAkJCUsDQemN+VEcXKQNeJ8IrCBiq4faaJMFFyuRlYS3QGhbMZQm+8WsHiSygihbFgrlBCuIYWT1wB6tIHwfPrHohSl9rIVWDOVRn3TTnBeGg6C/wQ1hjOTBoEdWEVgp7GYFMaTTyFWHZgWxGVlBzEpcWuqo3PXhrRrcGIeKS8Ec4vJhFN/XWxiMEoPG8X+dTHi7iQ+cB/F6tchQMqomtu5eknLOtppQpIkP7BZ2dtLNuNxS9DX0tKSevtzHB+72y4aWqL+Y53mQUbPO1lxtrmekDXi/aIfN22ldg5EFgdf0x1YSsaWBWJkvrwmtHmobq22ZkLfo0sZuJeWkJrRg6LXqT+LVK8+941IZllc2V2/VsGXu9l2rcMPaIKg/6NkA3iqBjE5Vk3nrCIE6z6ktG2idj5tFDOk2SR0rctO22wZBh4LVRitfugyflD3XX6m9oBzgkvE8SvSpwRzi8otmBeEtB3pN0k1HbzdJOyvjwTZOoytyLkVWEC7R58hmoEPV8KEIOxBYELStHBShbiXxVDIucajV3yiR6MiSIlzX1ebL6jCIrCCGRvsx4/5GSTkzu16zw2pgBRFbesyDdAJO2BOEVjxgb/UwzRU5tpLwFgWzXJF7kRWERuW6S1LO2FU5jgd8IbJ60MhVeDMsH0bxfb9WPg2gcQ322ZI9D1s9F6QnsHKoNEiaSZSItJOHVhA5VeDW2yEsd67Jzm34Qv/omFVETd6UAzxpgYC81YI/xfk5eJthX+5tjn1STX+K9Dx5V2Vv9eBtX9vxf2OrB9DALbhtxVD1OxOsHsJyoaZjtEv9PuoPxq0avBWERjSRFYRuWEYMs3rwY8b9eXvggVlB9MwKot4wF+d+PWHOe8eUE3DKipyQkJBwteFOwGNKuJQVOSEhIeFqw1lBJBFEQkJCwjVHUsIlJCQkLAhJCZewJygZ/W0zQ6sjM7PYLC2m42wTZQ86UTCethnaYEKwnthsLQ7WU083cwt48H2shGZmcfngSGhWVnZ94BqnqFovq2BOgzVnVtE2C6ur2infcGZpA7pNIJzBoMcwi4Px5EFgmyFhuQvOMwqck1EFZmntct8GRmZjPmX6hSjYji+vG7MyZwLSK5xybGuG2Rk45ZunY7MzkCAwTtuMTAsZM+GKy5XMlG8T+mPcrMyLUyWiR2noPa3NGEAzZtxfZsF3eo0Zmov24OMIS8GEOe8d6QScsDfkgDcxPde6BiNTLk/HZmq+fIYZWrkGFmSNMoes1wpsM4B80OpngIt20zZLG0R022wNUEvaonZt0zbMnRX3A8xziwHgzc4yV15a+WZxxKbotOXfcPRsMLeLXVfe7TkzplK7rHZ3qKx9mfVcsB0bp8y61OTUZr5UW7CddmCbHVYbE7GhfXXb9CXWA7omp8MoWPl5u2HebMybtPk5xOXncJu3DwC0Zjcya8zOukF53fA6MtVy5nojIy1nqjai3Vhts7TxYDsERl4E9BbrQWDaLcvj7q91mrk6dJv18MF4ekH5pUH37rcAACAASURBVCYPvAb01OC3uABAo+A8OjbneZBOwEsEEfkY8B8sEIa/9sAyaESFemTm5U22fPaIrYj2ZmrebK0bmYBNCL4jPQKTrawKA9l0iMzUhhPM1tr95yMzNoAnPU/W5wUNM1zsbLsd2vOwvR2W+0A2PjDNyhkzQzMevp65zeyomYWd7x8by2CRkzdp489NSEufUwWBbeLgPLFZGhBl1Kib/hzPbjPyZmLxHM70bwzKM+vTB8fJmvZuI/a52laM9inhQ1qjwDfaMhFTxs3SZputQZjdoh0IZzTGyCxMjWdP+5NuO3jOpPJRBoywfJIZWo1QWZp6JqSpnwdPNVfkZQ/IfgfwWhFpB1CeGvUoISHh+oagrLEdvA4yln0DPocLsPw0EfmAiBzdrUFCQsL1C38Cbr8OMpZaBAGIqg6BfyMiPwL8EXB8dpOEhITrFUkGvFxoEtqp6jtE5IvAjy+Qn4SEhKuIZAWxRFDV34joz+JSSi8cSkb/YhQNbWtjMu3N1LYnm3hNin5WDghMttqRxAaDHtUgMlOrJkRPa/dfj8zYoBX9zJuVrYU53vKBU6J4HsosLK/MZMtHBotzvpWHnJLmfGMW1iWnCnK4VeRNFopB0WNItxVprEtFHph4xdHRYrM0CCOZ1eRNf74PGJmJrRRFMIe43Ocz89HJcjPB2jFlmy8vZtLSMgkT3I3WgA7N0mabrUGY360diQxGZmNts7A27ftoMl1MKR/lgAvLJ5mhZagp33y0tHjOe8dBOAGLyA/g8s/dDLxZVf9gWt2l3oCXGh3gGydcg1GuN0+ftnefL80k2W2zspi+tLpOueI6GNjm1/N00SM/VDUmY2XRI6tryp7l8Rp0Wd0up/YPcKbrNp3uiis8Uzh7XG+mVK5aypkVR/sfoi8/Y2p0b7K1efxvgZEZmzdT82ZgQ7qUdEf949LveJOtkhZzhoLVxuSrJqdHGURH2yJvTMgqOmxypOGnssX2NIyblXn4Mc7g1sCbgV2w+j4y2GFLjhNH+vK0d6Ftm6VtcmSGEVnIH0CXPKjh1me6GdslDgUmYqPoZWI8FQFdmyndKAecRaOzch/lzpd7elZuty0OBWZo5zm2TyO0/Z+ARSQH/gT4mqq+aO4OXB9vB14EnFbVZ0VlLwT+I+5X/J9U9Y3T+lHV3wd+X0SOA/83kDbgKw3J6pHZ1+kov5o3Q/PRyfqhWdqkfGkx3VvpBCZaQEBnVKFJV1UHkcV6VTm1f4CzZZjTzcfZbedca9OFnQp9dLHYpKvbd5uP5+l0/2ZrPz16WUbFUaPP94+OmaFlVI3J105/dSw6WkYVmKXlVEEksjZ/MDrFdSOzMh/tTJpy+9NpTLKqieU+Lq+nff+9DbfpDforKKNIY42zQ0SP8rUJ42Zns83Y2pHIXB0L12lmYT2jq8YszSo20c18eT6zfLjRafEUmqEJOpYjrh0dbR5k1JOC8ewFrwEeAW6IC0TkZmBbVTdb1+5U1ZNR1XcAvw78dtQ+B94MfA8uRf1nRORB3Gb8hqiPV6qqP3L9rLWbimW3gkhISHgKQVBWGAQvLByliPzziW1EbsU98v+nKd1+F/B+EVm1+q8G3hRXUtU/BM5MaP9c4KSqfllVB8C7gBer6hdV9UXR67Q4/BLwYVX901nzTSfghISEpcEUEcRu4Sh/Dfh3YBH0I6jqe0XkDuBdIvJenB7pe+Zg6+nAV1v0KeDbZ9T/SeC7cX8cd6rqW6dVTBtwQkLC0mBeJZyIeJntZ0Xk+dPqqeovi8i7gLcA36yqu2W7D9ma0OWMsd7EhBP2JBxIEYSI3CYinxCRR0TkYRF5jV0/ISIfFZEv2ftxuy4i8iYROSkiXxCR5yx2BgkJT034E3D7tQueB3y/iHwFJxp4gYj857iSiHwn8CzgfcDPxeW74BRwW4u+FXhszj4m4kBuwLisaP9WVZ8J3Av8uIjcDbwO+Jiq3gV8zGiA7wPustf9uH/JhISEawx/Am6/ZkFVX6+qt6rq7cDLgI+r6v8R9ClyD/CbwIuBHwVOiMgvzsHWZ4C7ROQOEenZOA/O0X4qDqQIQlUfBx63z5si8ghOjvNi4PlW7beATwKvteu/raoK/A8ROSYit1g/k8eoM/rnzA44zjDs7X43J9sFDwahDe4kelD0AhtZIKDHbGrrOgjtmA1kav8AZTfMalw2GYFvmEh7MzQf3jG2mS2L0E54PMNwl5IqCh+Zc76hx+2Aa/KWzW0+Fp5SkVZGYhe+sh0Kss2f68NM3pqsw2G4SW3KfdZhbxObTykPaZ8xeNBfacYTGLO5Had9xmIYt/udbUfcDgXp+nRlHbPw8HQe2QXHWY5p6k8u71jgIr+GsR1wnCU5tkPeK65SMJ514KWq+lcAIvIK4EfiSiLyTtz+cKOInAJ+TlXfpqpDEfkJ4CM4y4e3q+rDV4KxA7kBtyEitwP3AJ8CnuY3VVV93MxTYLKQ/enYJt7q637cCZlvvG2Fx064DW9jYOIkb3dr9Ru7W/8nbqu9ecjZVgZ2vVRNqMey6LHJ4cBmtiIP6JwqLM9yurnRWZcjhzYbG9+y6JFTN+PByO7Xh288jVsKb5fqwxp6G9kTphz2drexzewT3GT9lUbfGPRXkXOM84FdcEY1Fl6yjQG9wA54J7ILLq0PT3+NbwxsdFfZaTIMA1zksPGswbu32/Vz8uK9zciiadDYKtum1tgTO/pGnmxRo3CUbRvZLsPARvZSq74AqxTRFQI6tive5HCQeXhk7yvBHP11bx/tsdPYDbs+Ltn98WNsml7Lh9o8zGZQX6jNDtjMzqg5x9ExG+m9IqPedwAeVf0k7lAVX//jiC5xJ+K43stn9P0h4EPTyveLA70Bi8hh4L8CP6WqF0SmmoXvSciuqg8ADwD83WevqrdhXTnjNgFvFzzcCu1uz58K7YTPrrgNeJZdr7OZdTa4F/o3kFEHNro51czyOENwh7oZD+DrkZ2ut1X24R/9ydPb4cahG2Ob2I6dgHx/3g44DCcZ2/nWU8NHejvgFbOpLforZFSNze52f42MLLATjkM5tjMMO55Du96R3a79Q0ahGMczCsflIR33N+j3xkI1xjay43bCcbhKptr9uvYZ5cboZ+x58Ha5q323fsOGh3BOaqdt38e08JPFhvvzORTV7/aH1GRN+Up/EPDUte/NXuHM0A52AJ42DuwGLCJd3Ob7O6r6e3b56160ICK3MPJRu2pC9oSEhL0j05q14qkTC+JAKuHEHXXfBjyiqr/SKnoQeIV9fgXw/tb1HzZriHtxdodT5b8JCQlXB1LDSlEHr4OMg3oCfh7wr4Avisjn7Nr/CbwReI+IvAr4G+ClVvYh4D7gJLCF05QmJCRcY4hC56kjgTiYG7Cq/hHT44D8kwn1lRTmMiFh8aiAeVwkrnMcyA04ISHhOoXCU0gHlzbghISEJUKNs817iiBtwPuEqjROBB2zA/bByL29qHd8qCJHjb04VpR0udByiqjIAyeJmmxmeUmv5WTRo6ZuxoPxAOZV45Rg8V8bRwZnjrZummnvKBE7IcSOF3F/LqB66GiRUU0NoO4dMYrGqSGnJm+cJjzddtSIg5nXCEPjz10LHSvigOvjAc/dm0TBxX25D9Du6bi/usjGgpXHTgrjjhpxwHamOl649nVg6uXn6B0jYseMeE5ic/B9TAvAvmLhRsfr1855wsqzog54knmVaDVYyOKnBNIGvE8M6PE3fJMjjv8NMApufrG4wWj3I7jpBmcvjO0F3uC/7ZSwzhZdq1DSs+Dio2DjBauBU0OHMnBiGJpzhi8v6Qblh9iiZLQZfZ1vAEaOEt6RwhvO982RwptDP5NHovph+c2R44WfYzs4ebu8ImeVIpjjavTL22ElaN9jQGb91ORc4EhQ/jf8ncbhQFCOsBkYc9eRE4JGzgp+DXybYRSs3K+fL+8xsjEGOM7ZoF/niBEGK1/nUkCXdAK63b8L2B5uYG3HC6HmIkeaoPYAXVtPv97+OzAKZJ8FY/g5+fpxAHYfxN47cNzIE0F5hvIkNwUB8LdYnxgQf09IIoiEvUBEWTcnAx+M3Ds+xMHLVx535RtH3bGjs+JMjsNg5YMgOHnOMHBKiIORdxgGwciVbKx8WjB0GA+oHjtWxE4GeRO8fCso98HC4/JJTgk5VeCYkUdzmOSo4YOnl/3eWID2uFyRJvB4bk4OjLyvx5wQYseMcSeEycHKmwDoUX9xwPfSHDHawcpjx4x2/95RYzyAu+eXMSeHioxiY6WZonc5nuY4oQ3P4Wl+0DhuuPX1Adgre1rY2libuCb0K5c6asM9iaxZ+5jeMw6ACGKelEQH0g44ISHhOkWNOwG3XzMgIqsi8mkR+bxFPvyF/Q4tIm8XkdMi8tCEsheKyKMWMfF1k9p7qOrvq+qrcfEmfnBW3XQCTkhIWB7UzGuGVgAvUNWL5v36RyLyYVX9H75CSkmUkJCQsBdMPgFPTUmkDn7L7torjuOSUhIlJCQk7IrJSriZKYnshPpZ4E6czPVTQZcpJVFCQkLCHrAPJZyqVsCzReQY8D4ReZaqPhTVSSmJEhISEmbC2wG3X3uEqp7DxQN+YVyWUhIlJCQk7AZ/Am6/ZkBEbrKTLyKyhnv0/4uoTkpJdNBQ6Ap/0X+mEe4J5QkLQv5kYU4JZuf5d4+47CVbHXf9potP8HD3WU0Q9KrocIIzTXqdYdHlDDc2nmt1kXOJQ2TWX13k9BjQb9E7rDZ2qHWRcYlDTVD0usg5wRku9EdZu/+2eBoAmdmaPlmYsanRJ4u7XFuzE/2G4utW/7jVd32r2YX+bfGElTseTlv/bS+umizg8RBbjbdeXeTcyqnG800K2Ga98XTTImON7cYutS4yznO0sV/WIuN/cgdVy0vtJp5o7FYBDhcXbU7uWq8IbZ79ffNz7lq5p3eKtYBeL7aD/s4WJ7iHP2t41CJjh7WGp6rosMJgxFORUdJt6KxQulTNmkqhKGVjuysFnOeGZvyscI4Yw/7IwcTz5FMIec+4sRRBNufKPCLFxtyO5nixcN+Zsu/qHS3MkKDxDoQvsdp4F+4Uq2yx3tTfLtaZC14Jt3fcAvyWyYEz4D2q+sGoTkpJlDDCw91nLZqFhKuAe/izRbNw/UOZV+zwBVzKsVl1UkqigwaRUbobn47He3H5mA7e66s3cH/pJ05YXrWL7nTiPem2LF1P23NtPP3OeHqe2CusZ+WDCel72l5mMDr5diLPN+/ZFntIjTzb3BjaeERlQXl3Snqfup8ZjyPPuHgO8RoINZ0Nc6fud1zMAatfTEhBVJGxbR5ba/3twAvN8RB7cYUpf0Zzdl5k/gnGr4FPRDnNayz2Jiz73cBTbaVfuPgUVr/TH455yk3y5munIKrJ2LH+VvsFQ3K2NkanzKrv3KH9mIf67hnejzHNE857zmXNnHs2B8frxY3Dtma+PTZn56Z8yXg41N+ipNPUP9yfM7bkAfCEmwdpA05ISFgezC+CuK6RNuCEhITlQToBJyQkJCwIKRxlQkJCwoKQwlEmJCQkLAhJBJGQkJCwICQRREJCQsKCkE7ACQkJCQtCMkNL2AsG2uPL/W8G4GhxARgZ7j9WfCMwMsy/WZ8EYPOiy6/VN5fXsy1X4hUKts3ttio6nOdYk2SzLjI2ORK43XYpA/oS6wG9w0rg9tuj5JIlvAR4vLjFfTBnhPOFcwn2DhZfLtzcvCH+ZuHaZuYufaYwN2kz5I9dj59oXJXdZSlghSLgsaQb8Ph3+OuWK7JSsMLAkmq6+r2WK3LOJQ4Hrs5/w99p6veKkpo8cNPtFMOA53jOZ8wd27fpFFVQv2+5/jwP3o3Xl/sEmG267YqsRUbG2cZNOIvKY1flrFCXB6/lRrzFoYa/uuiwzTrD/uhnPHIt1qYPaCfpJLhPQ0ue6ut7d2vP01Zh7vE2xpHGFXm07iWdxoGjLDqcK48xGFiy1sF8W0ytsJ1EEAkJCQnXHlUNF5IIImFXyMgdc1qCS+9G608fRy1ppz8ttF2L4yScsWtx7JYr1IHLa+yWGyesbCf1BMbccGPX4tgFNXZdjt12Y9fjOIFl1q935dElDnVPExf6N0yoH7pjgzau09qHAV3Ob7injKP982NuurF7dTznYZOAct3GDN164wSV3s3XuwZPSso5yT267Yq8m6ty7IrcntN65PbreLTAQZYU05+md3NF9nPw6eR9e/9E4dd1kov5kDxwPR5Il3Mb7uniWP8c80CB7blaXN9IG3BCQsLSoAIuLJqJa4i0ASckJCwNatIJOCEhIWEhSBtwQkJCwoJQA5u71jo4SBtwQkLC0qAGthbNxDVE2oATEhKWBhXX/wlYRH4A+GfAzcCbVfUPptU9kEk5RWRVRD4tIp8XkYdF5Bfs+h0i8ikR+ZKIvNsS7CEiK0aftPLbF8l/QsJTFV4G3H7NgojcJiKfEJFH7Lf+mv2OLSJvF5HTIvLQhLIXisijtke8blY/qvr7qvpqXN65H5xV90BuwDhnxheo6rcCzwZeKCL3Ar8E/Kqq3gWcBV5l9V8FnFXVO4FftXoJCQnXGPNuwMAQ+Leq+kzgXuDHReTudgURuVlEjkTX7pzQ1zuYnNI+B94MfB9wN/ByEblbRP6eiHwwet3cavqz1m4qDqQIQlUV8MmouvZS4AXAD9n13wJ+HngLLl31z9v13wV+XUTE+pkyiMuHBVCZO+dO3xnca+EN+93yloUZs7cyAAON221d5FR0uGiuwlXRoSZj0JRnKFnTnxpdttx0lYzKG9kXGTUZZb/XtK/I2TI3Yje4Zeb1ueDMZTX3zgTmtutzetVWf2hjZoXliOsPgv5GbrjuctuNdjceS7pcMPfrsuhOqJ8HawbSOBZQCD1KjvbPO76Kkg4V6/2RRHHEs3fLDefsXY99m9zqr/TdZIbm5rve3w76W7XyuvBOLKM55dSsWf28qMnQwBU5p276n1Qu0Rq259QpKroMg7xrecPTTtMHTHdFjufg76Nv7zNH+3WN7zOF0KFqeOgUFb2ybBwweoOSefA1+Mhr4cbosojIA8AHVPUD7QJVfRx43D5visgjwNOBP29V+y7gx0TkPlXdEZFXA/8CuC/q6w+nPP0+Fzipql82Zt4FvFhV3wC8KK4sIgK8Efiwqv7prPkeyA0Ymn+tzwJ34v6F/go4p6pDq3IKd6Ow968CWArq8zgfsSejPu8H7ge44bYNzuLiIWzhPJMy3Jf5HOY1hPnXY55U9sCxiXmXWXmNUNKjtvKKDju4pJOul8xo8/rCpXhv0wWrzXhgac1b7Qd0yVsPPJ5n3+JSQ7s6X99xsR0GtdtMhlnX+lRrfyiaU3DAaPqvjZcMHeOxRxnw2GVIl7IpHzb/m6M5tVHSC8rPPLHBoOv47ZUDDt+0ybD1Fb+ZJ4wn84ij16xfew2GuD/IY5wL6m815a7PHPPSs/qe9t8DQSnpNv11rLyNHVaD9ofZbO6BWj9h/ZVm/A5DSrqUM37G/v7UUx52axt7VC+kL11y93lQuvt/qHupmZvjUWyOdjhgyNbFdQq7D8NyMJW3SVDVsRPoXmGb5z3Ap6I+3ysidwDvEpH3Aq8EvmeOrpv9wXAK+PYZ9X8S+G7gqIjcqapvnVbxwG7AqloBzxaRY8D7gGdOqmbv47/uUVm7zweABwBuevY36dCy68YZg+MMw/704d1sY7feYb9LzpBD5ip8qX9ogquxkm344DA5gpKba3LV7wAauIfGbrw5VZOlGcZdhdVONKW5wQ623Q/o7Al3apdtOy02Y4Yur3G2XO8C23arncRj2726y4CjG+6kdb5/dKz+JFdk70pNXxl0e/SPnQBg49wZhisdNjdGfwxxBmBteMyNB/fu3WpjN13/BHJpw21K3hXZuyaPvgejzM+x6/C4K3LOtq3hWn/HPdlYeXeiK3InGL8knOO4K3Lsfu3vk0ys793qvfv04KJrd/a4O2xIGX8POgxbPBzpb1J0e5yx+3Di3BmuBUTkMPBfgZ9S1TFnOlX9ZTu5vgX4ZlWdJ13znvaH1lhvAt60l44Pqgy4gaqeAz6Jkw8dExH/p3Mr8Jh9PgXcBmDlR4Fr881JSEi4LIhIF7f5/o6q/t6UOt8JPAt3GPu5OYdo9gdDe++4LBzIDVhEbrKTLyKyhnsceAT4BPASq/YK4P32+UGjsfKPz5T/JiQkLAVM3vo24BFV/ZUpde4BfhOn6/lR4ISI/OIcw3wGuMusqHrAy3B7xmXjQG7AwC3AJ0TkC7jF+6iqfhB4LfDTInIS9/D6Nqv/NmDDrv80MNPMJCEhYWnwPOBfAS8Qkc/Z676ozjrwUlX9K1WtcYetv447EpF3Av8d+BYROSUirwKnFwJ+AvgI7iD3HlV9+EowfyBlwKr6BZwwPr7+ZZxGM76+A7z0GrCWkJBwBaGqf8RkGW27zh9HdIk7Ecf1Xj6jjw8BH9onm1NxUE/ACQkJCUuPtAEnJCQkLAhpA05ISEhYENIGnJCQkLAgpA04ISEhYUFIG3BCQkLCgnAgzdCuBUShY26bPgiLD57jA5Z4t08fjMcHmokD29SFUNHhkgXLqYrOhGA7Qm2usloIipgLsqNBggApcSCbipzt/ihD8HiwHAvCY4FgegPnTnv8jIuHoJl3XbU4CFHQF6w/H6DIB4FpB5aZxGM7wFBJz1yQoSx6Y/UnBeNpsjsXQq8csGGur71yQKcYcqQ/ii6bNcF1BjZnz6O7jz4Yjw8sEweq2bIARd4FOW+C92wbT/57MArGEwfPGQ/GU7Fma5gXlXNBt3Ip6gnBeIbN+J1iSJdwjuPBeOIARFbR1i2u7wNF+QBCPpjO8bMuQ7R2w++BFkKnxUOnGLJSDhoX5JU5Y0E81SDJ4Wt/EJFN4NFF8zEDNxIFE1pCJB4vH8vOH8C3qOqR3as99ZBOwPvHo6r6bYtmYhpE5E+WmT9IPF4JLDt/4HhcNA/LiiQDTkhISFgQ0gackJCQsCCkDXj/eGDRDOyCZecPEo9XAsvOH1wfPC4ESQmXkJCQsCCkE3BCQkLCgpA24ISEhIQFIW3Ac0JEXigij4rISRG5poHbReTtInJaRB5qXTshIh8VkS/Z+3G7LiLyJuPzCyLynFabV1j9L4nIKyaNtU/+bhORT4jIIyLysIi8Zgl5XBWRT4vI543HX7Drd4jIp2y8d1vmA0RkxeiTVn57q6/X2/VHReSfXikere9cRP5MRD64pPx9RUS+aAHQ/8SuLc19vm6gqum1xxeQ47IrPwPoAZ8H7r6G4/9j4DnAQ61rvwy8zj6/Dvgl+3wf8GFcsOp7gU/Z9RPAl+39uH0+foX4uwV4jn0+AvwlcPeS8SjAYfvcxWXQvRd4D/Ayu/5W4Mfs878B3mqfXwa82z7fbfd/BbjDvhf5FbzXPw38F+CDRi8bf18BboyuLc19vl5eC2fgenoB3wF8pEW/Hnj9Nebh9mgDfhS4xT7fgnMQAfgN4OVxPeDlwG+0rgf1rjCv78el/15KHnGpav4Ul2L8SaAT32dcGprvsM8dqyfxvW/XuwJ83Qp8DHgB8EEbb2n4s/4mbcBLeZ+X+ZVEEPPh6cBXW/Qpu7ZIPE1VHwew95vt+jRer8kc7FH4HtwJc6l4tMf7zwGngY/iTofn1OX+isdreLHy87h8gleTx18D/h1QG72xZPyBS8v+ByLyWRG5364t1X2+HpBckefDpNxTy2rHN43Xqz4HETmMSxP+U6p6QWRqyq6F8KiqFfBscZmz3wc8c8Z415RHEXkRcFpVPysiz9+Fh2vOXwvPU9XHRORm4KMi8hcz6i7su7jsSCfg+XAKuK1F3wo8tiBePL4uIrcA2Ptpuz6N16s6BxHp4jbf31HV31tGHj1U9RzwSZxc8piI+ANJe7yGFys/Cpy5ijw+D/h+EfkK8C6cGOLXlog/AFT1MXs/jfsTey5Lep+XGWkDng+fAe4yjXQPp/R4cME8PYhLs429v791/YdNA30vcN4eCz8CfK+IHDct9ffatcuGuKPu24BHVPVXlpTHm+zki4isAd+NSzX+CeAlU3j0vL8E+Lg6geWDwMvMCuEO4C7g05fLn6q+XlVvVdXbcd+vj6vqv1wW/gBE5JCIHPGfcffnIZboPl83WLQQ+np74TS6f4mTG/7MNR77ncDjQIk7PbwKJ+/7GPAlez9hdQV4s/H5ReDbWv28Ejhprx+9gvz9I9wj5BeAz9nrviXj8e8Df2Y8PgT8e7v+DNwGdRJ4L7Bi11eNPmnlz2j19TPG+6PA912F+/18RlYQS8Of8fJ5ez3sfwfLdJ+vl1dyRU5ISEhYEJIIIiEhIWFBSBtwQkJCwoKQNuCEhISEBSFtwAkJCQkLQtqAExISEhaEtAEnJCQkLAhpA05ISEhYENIGnHDdQ0T+ocWZXTUvrYdF5FmL5ishYTckR4z/v737C5HrPO84/v1FquvWcey22kCQlFihch1hCnYX122gcWq3yL6QbkyQwLgpwiJplV4kFFxc3KAUSh3aQEBtIlrjJmA7Si6SJSgIkti4uJGrNXYcS0Zlq7jRIlNvEtc3xn9En17MOJ2uVpojaXbf1en3AwNzznk98zzM7M9H55x3jnohyV8ymBX2C8B8Vf1V45KksQxg9cLwtzmOAK8Dv12DXzyTVjUPQagvfhl4J4M7cVzeuBapE/eA1QtJZhj8fOMmBndl2NO4JGksf5Bdl7wkdwOnq+rhJGuAf0nyu1X13da1SefiHrAkNeIxYElqxACWpEYMYElqxACWpEYMYElqxACWpEYMYElqxACWpEYMYElqxACWpEYMYElqxACWpEbGBnCSB5O8nOT5s2xPks8nmRveFubGyZcpSf3TZQ/4IWDrObbfDmwePnYDf3/xZUlS/40N4Kp6AvjpOYZsB75UA4eBq5O8Z1IFSlJfTeIH2dcDJ0eW54frXlo8MMluBnvJXHHFFb9x3+memgAACwFJREFU3XXXTeDtJfXZ008//eOqmmpdx3KYRABniXVL/sp7Ve0H9gNMT0/X7OzsBN5eUp8l+Y/WNSyXSVwFMQ9sHFneAJyawOtKUq9NIoBngLuHV0PcDLxaVWccfpAk/V9jD0EkeQS4BViXZB74C+DnAKrqC8BB4A5gDngN+MPlKlaS+mRsAFfVzjHbC/jjiVUkSf9POBNOkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpEQNYkhoxgCWpkU4BnGRrkuNJ5pLcu8T29yZ5LMkzSZ5LcsfkS5WkfhkbwEnWAPuA24EtwM4kWxYN+3PgQFXdAOwA/m7ShUpS33TZA74JmKuqE1X1JvAosH3RmALeNXx+FXBqciVKUj91CeD1wMmR5fnhulGfBu4a3rb+IPCJpV4oye4ks0lmFxYWLqBcSeqPLgGcJdbVouWdwENVtQG4A/hykjNeu6r2V9V0VU1PTU2df7WS1CNdAnge2DiyvIEzDzHsAg4AVNX3gMuBdZMoUJL6qksAHwE2J9mU5DIGJ9lmFo35EXArQJIPMAhgjzFI0jmMDeCqOg3sAQ4BLzC42uFokr1Jtg2HfQq4J8n3gUeAj1bV4sMUkqQRa7sMqqqDDE6uja67f+T5MeCDky1NkvrNmXCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNGMCS1IgBLEmNdArgJFuTHE8yl+Tes4z5SJJjSY4meXiyZUpS/4y9J1ySNcA+4PcY3KL+SJKZ4X3g3h6zGfgz4INV9UqSdy9XwZLUF132gG8C5qrqRFW9CTwKbF805h5gX1W9AlBVL0+2TEnqny4BvB44ObI8P1w36lrg2iRPJjmcZOtSL5Rkd5LZJLMLCwsXVrEk9USXAM4S62rR8lpgM3ALsBP4hyRXn/EfVe2vqumqmp6amjrfWiWpV7oE8DywcWR5A3BqiTHfqKq3quqHwHEGgSxJOosuAXwE2JxkU5LLgB3AzKIxXwc+DJBkHYNDEicmWagk9c3YAK6q08Ae4BDwAnCgqo4m2Ztk23DYIeAnSY4BjwF/WlU/Wa6iJakPUrX4cO7KmJ6ertnZ2SbvLenSkeTpqppuXcdycCacJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSIwawJDViAEtSI50COMnWJMeTzCW59xzj7kxSSXp5+xBJmqSxAZxkDbAPuB3YAuxMsmWJcVcCfwI8NekiJamPuuwB3wTMVdWJqnoTeBTYvsS4zwAPAK9PsD5J6q0uAbweODmyPD9c9zNJbgA2VtU3z/VCSXYnmU0yu7CwcN7FSlKfdAngLLHuZ/eyT/IO4HPAp8a9UFXtr6rpqpqemprqXqUk9VCXAJ4HNo4sbwBOjSxfCVwPPJ7kReBmYMYTcZJ0bl0C+AiwOcmmJJcBO4CZtzdW1atVta6qrqmqa4DDwLaqml2WiiWpJ8YGcFWdBvYAh4AXgANVdTTJ3iTblrtASeqrtV0GVdVB4OCidfefZewtF1+WJPWfM+EkqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIa6RTASbYmOZ5kLsm9S2z/ZJJjSZ5L8p0k75t8qZLUL2MDOMkaYB9wO7AF2Jlky6JhzwDTVfXrwNeAByZdqCT1TZc94JuAuao6UVVvAo8C20cHVNVjVfXacPEwsGGyZUpS/3QJ4PXAyZHl+eG6s9kFfGupDUl2J5lNMruwsNC9SknqoS4BnCXW1ZIDk7uAaeCzS22vqv1VNV1V01NTU92rlKQeWtthzDywcWR5A3Bq8aAktwH3AR+qqjcmU54k9VeXPeAjwOYkm5JcBuwAZkYHJLkB+CKwrapennyZktQ/YwO4qk4De4BDwAvAgao6mmRvkm3DYZ8F3gl8NcmzSWbO8nKSpKEuhyCoqoPAwUXr7h95ftuE65Kk3nMmnCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiMGsCQ1YgBLUiOdAjjJ1iTHk8wluXeJ7T+f5CvD7U8luWbShUpS34wN4CRrgH3A7cAWYGeSLYuG7QJeqapfBT4H/PWkC5WkvumyB3wTMFdVJ6rqTeBRYPuiMduBfxo+/xpwa5JMrkxJ6p8ud0VeD5wcWZ4HfvNsY6rqdJJXgV8Bfjw6KMluYPdw8Y0kz19I0avYOhb13BN97KuPPUE/+/q11gUsly4BvNSebF3AGKpqP7AfIMlsVU13eP9LRh97gn721ceeoJ99JZltXcNy6XIIYh7YOLK8ATh1tjFJ1gJXAT+dRIGS1FddAvgIsDnJpiSXATuAmUVjZoA/GD6/E/huVZ2xByxJ+l9jD0EMj+nuAQ4Ba4AHq+pokr3AbFXNAP8IfDnJHIM93x0d3nv/RdS9WvWxJ+hnX33sCfrZVx97AiDuqEpSG86Ek6RGDGBJamTZA7iP05g79PTJJMeSPJfkO0ne16LO8zWur5FxdyapJKv+cqcuPSX5yPDzOprk4ZWu8UJ0+A6+N8ljSZ4Zfg/vaFFnV0keTPLy2eYGZODzw36fS3LjSte4LKpq2R4MTtr9O/B+4DLg+8CWRWP+CPjC8PkO4CvLWdMK9fRh4BeHzz++2nvq2tdw3JXAE8BhYLp13RP4rDYDzwC/NFx+d+u6J9TXfuDjw+dbgBdb1z2mp98BbgSeP8v2O4BvMZhzcDPwVOuaJ/FY7j3gPk5jHttTVT1WVa8NFw8zuHZ6tevyWQF8BngAeH0li7tAXXq6B9hXVa8AVNXLK1zjhejSVwHvGj6/ijOv3V9VquoJzj13YDvwpRo4DFyd5D0rU93yWe4AXmoa8/qzjamq08Db05hXqy49jdrF4P/cq93YvpLcAGysqm+uZGEXoctndS1wbZInkxxOsnXFqrtwXfr6NHBXknngIPCJlSlt2Zzv390loctU5IsxsWnMq0jnepPcBUwDH1rWiibjnH0leQeDX7r76EoVNAFdPqu1DA5D3MLgXyr/nOT6qvqvZa7tYnTpayfwUFX9TZLfYnCd/vVV9d/LX96yuNRyopPl3gPu4zTmLj2R5DbgPmBbVb2xQrVdjHF9XQlcDzye5EUGx+FmVvmJuK7fv29U1VtV9UPgOINAXs269LULOABQVd8DLmfwQz2Xqk5/d5ea5Q7gPk5jHtvT8J/qX2QQvpfCMUUY01dVvVpV66rqmqq6hsGx7W1VtZp/KKXL9+/rDE6akmQdg0MSJ1a0yvPXpa8fAbcCJPkAgwBeWNEqJ2sGuHt4NcTNwKtV9VLroi7aCpzdvAP4NwZnbe8brtvL4I8XBl+MrwJzwL8C7299ZnICPX0b+E/g2eFjpnXNk+hr0djHWeVXQXT8rAL8LXAM+AGwo3XNE+prC/AkgyskngV+v3XNY/p5BHgJeIvB3u4u4GPAx0Y+p33Dfn9wKXz3ujyciixJjTgTTpIaMYAlqREDWJIaMYAlqREDWJIaMYAlqREDWJIa+R+7nXnzJzYYnwAAAABJRU5ErkJggg==\n", "text/plain": [ - "
" + "
" ] }, "metadata": { @@ -1327,7 +912,7 @@ " sigma_est_l2_ps0\n", "]\n", "fig, axs = plt.subplots(4,1, figsize=(5, 10))\n", - "for ii in range(4):\n", + "for ii in range(3):\n", " cb = plt.colorbar(\n", " mesh.plotImage(\n", " sigmas[ii], grid=True, clim=(1./50, 1e-1), ax=axs[ii], \n", @@ -1367,7 +952,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/notebooks/examples/Test_global_em1d_inversion_td.ipynb b/notebooks/examples/Test_global_em1d_inversion_td.ipynb index 27a8419..e0e5f10 100644 --- a/notebooks/examples/Test_global_em1d_inversion_td.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion_td.ipynb @@ -14,11 +14,12 @@ } ], "source": [ - "from SimPEG import Mesh, Maps\n", + "from discretize import TensorMesh\n", + "from SimPEG import maps, data\n", "import numpy as np\n", "from matplotlib.colors import LogNorm\n", "from simpegEM1D import (\n", - " GlobalEM1DProblemTD, GlobalEM1DSurveyTD, get_vertical_discretization_time, EM1DSurveyTD\n", + " GlobalEM1DSimulationTD, GlobalEM1DSurveyTD, get_vertical_discretization_time, EM1DSurveyTD\n", ")\n", "from pymatsolver import PardisoSolver\n", "%pylab inline" @@ -38,7 +39,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -65,7 +66,7 @@ "n_sounding = 10\n", "dx = 100.\n", "hx = np.ones(n_sounding) * dx\n", - "mesh = Mesh.TensorMesh([hx, hz], x0='00')\n", + "mesh = TensorMesh([hx, hz], x0='00')\n", "inds = mesh.gridCC[:,1]<25\n", "sigma = np.ones(mesh.nC) * 1./20.\n", "sigma[inds] = 1./20.\n", @@ -93,14 +94,14 @@ "outputs": [], "source": [ "from SimPEG import (\n", - " Regularization, Directives, Inversion, InvProblem, Optimization, DataMisfit, Utils\n", + " regularization, directives, inversion, inverse_problem, optimization, data_misfit, utils\n", ")\n", "from simpegEM1D import get_2d_mesh, LateralConstraint" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -108,8 +109,7 @@ "output_type": "stream", "text": [ ">> Set parameters\n", - ">> Serial version is used\n", - "SimPEG.Survey assigned new std of 3.00%\n" + ">> Serial version is used\n" ] } ], @@ -121,7 +121,7 @@ "src_locations = np.c_[x, y, z]\n", "topo = np.c_[x, y, z-30.].astype(float)\n", "\n", - "mapping = Maps.ExpMap(mesh)\n", + "mapping = maps.ExpMap(mesh)\n", "\n", "survey = GlobalEM1DSurveyTD(\n", " rx_locations = rx_locations,\n", @@ -138,23 +138,23 @@ " base_frequency = np.array([20.]).repeat(n_sounding),\n", ")\n", "\n", - "prob = GlobalEM1DProblemTD(\n", - " [], sigmaMap=mapping, hz=hz, parallel=False, n_cpu=2,\n", + "sim = GlobalEM1DSimulationTD(\n", + " mesh, sigmaMap=mapping, survey=survey, hz=hz, parallel=False, n_cpu=2,\n", " Solver=PardisoSolver\n", ")\n", - "prob.pair(survey)\n", + "\n", "m = np.log(sigma_em1d)\n", - "dobs = survey.makeSyntheticData(m, std=0.03, force=True)" + "d_true = sim.dpred(m)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -166,14 +166,14 @@ } ], "source": [ - "DOBS = dobs.reshape(( prob.n_sounding, time.size))\n", + "DOBS = d_true.reshape(( sim.n_sounding, time.size))\n", "for i_time in range(time.size):\n", " plt.semilogy(mesh.vectorCCx, -DOBS[:,i_time], 'k')" ] }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -182,14 +182,14 @@ "True" ] }, - "execution_count": 153, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh_reg = get_2d_mesh(n_sounding, hz)\n", - "regmap = Maps.IdentityMap(mesh_reg)\n", + "regmap = maps.IdentityMap(mesh_reg)\n", "# mapping is required ... for IRLS\n", "reg = LateralConstraint(\n", " mesh_reg, mapping=regmap,\n", @@ -197,54 +197,59 @@ " alpha_x = 1.,\n", " alpha_y = 1, \n", ")\n", - "xy = Utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", + "xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", "reg.get_grad_horizontal(xy, hz, dim=2)" ] }, { "cell_type": "code", - "execution_count": 154, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "SimPEG.DataMisfit.l2_DataMisfit assigning default eps of 1e-5 * ||dobs||\n", "SimPEG.InvProblem will set Regularization.mref to m0.\n", "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", "model has any nan: 0\n", "============================ Inexact Gauss Newton ============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", - " 0 3.16e+01 3.96e+03 0.00e+00 3.96e+03 3.71e+03 0 \n", - " 1 1.58e+01 8.10e+02 1.89e+01 1.11e+03 5.24e+02 0 \n", - " 2 7.91e+00 4.54e+02 3.34e+01 7.18e+02 2.59e+02 0 Skip BFGS \n", - " 3 3.95e+00 2.85e+02 4.88e+01 4.78e+02 1.60e+02 0 Skip BFGS \n", - " 4 1.98e+00 1.91e+02 6.60e+01 3.22e+02 9.59e+01 0 Skip BFGS \n", - " 5 9.88e-01 1.41e+02 8.38e+01 2.24e+02 5.73e+01 0 Skip BFGS \n", - " 6 4.94e-01 1.15e+02 1.02e+02 1.65e+02 5.45e+01 0 Skip BFGS \n", + " 0 3.11e+01 3.66e+03 0.00e+00 3.66e+03 3.44e+03 0 \n", + " 1 1.56e+01 7.81e+02 1.86e+01 1.07e+03 4.86e+02 0 \n", + " 2 7.79e+00 4.44e+02 3.28e+01 7.00e+02 2.55e+02 0 Skip BFGS \n", + " 3 3.89e+00 2.74e+02 4.87e+01 4.63e+02 1.57e+02 0 Skip BFGS \n", + " 4 1.95e+00 1.80e+02 6.61e+01 3.08e+02 9.54e+01 0 Skip BFGS \n", + " 5 9.73e-01 1.31e+02 8.39e+01 2.12e+02 5.88e+01 0 Skip BFGS \n", + " 6 4.87e-01 1.06e+02 1.01e+02 1.55e+02 5.29e+01 0 Skip BFGS \n", "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 3.9595e+02\n", - "1 : |xc-x_last| = 2.9761e-01 <= tolX*(1+|x0|) = 5.2888e+00\n", - "0 : |proj(x-g)-x| = 5.4504e+01 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 5.4504e+01 <= 1e3*eps = 1.0000e-02\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 3.6631e+02\n", + "1 : |xc-x_last| = 3.7277e-01 <= tolX*(1+|x0|) = 5.2888e+00\n", + "0 : |proj(x-g)-x| = 5.2914e+01 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 5.2914e+01 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 30 <= iter = 7\n", "------------------------- DONE! -------------------------\n" ] } ], "source": [ + "std = 0.03\n", + "floor = 0.\n", "std = 0.03\n", "floor = 0.\n", "np.random.seed(1)\n", - "uncert = std*abs(dobs)+floor\n", - "survey.dobs = dobs.copy()\n", + "uncert = std*abs(d_true)+floor\n", + "noise = std*np.abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise\n", + "\n", + "dataObj = data.Data(survey, dobs=d_obs, noise_floor=uncert)\n", + "\n", "m0 = np.ones(mesh.nC) * np.log(1./20.)\n", - "dmisfit = DataMisfit.l2_DataMisfit(survey)\n", + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", "dmisfit.W = 1./uncert\n", "# p = 0\n", "# qx, qz = 1., 1.\n", @@ -253,14 +258,14 @@ "# maxIRLSiter=5, minGNiter=1, fix_Jmatrix=True,\n", "# betaSearch=False\n", "# )\n", - "opt = Optimization.InexactGaussNewton(maxIter = 30)\n", - "invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", - "beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=1)\n", - "betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", - "target = Directives.TargetMisfit()\n", - "inv = Inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", + "opt = optimization.InexactGaussNewton(maxIter = 30)\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2, coolingRate=1)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", + "target = directives.TargetMisfit()\n", + "inv = inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS,betaest])\n", - "prob.counter = opt.counter = Utils.Counter()\n", + "# prob.counter = opt.counter = Utils.Counter()\n", "opt.LSshorten = 0.5\n", "opt.remember('xc')\n", "mopt = inv.run(m0)" @@ -268,17 +273,17 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ - "sigma_est = Utils.mkvc((np.exp(mopt)).reshape((prob.n_sounding, prob.n_layer)))\n", + "sigma_est = utils.mkvc((np.exp(mopt)).reshape((sim.n_sounding, sim.n_layer)))\n", "# sigma_est_l2 = Utils.mkvc((np.exp(invProb.l2model)).reshape((prob.n_sounding, prob.n_layer)))" ] }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -288,7 +293,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -297,13 +302,13 @@ "Text(0.5, 1.0, 'Laterally-contrained model: L0 L2')" ] }, - "execution_count": 116, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -315,7 +320,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAckAAAEACAYAAADY2I0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO29e5xcVZW3/3zr0pd0dy4YMKAiqIggKt5mDBpFJAqMzg9vg8NFoyNBUUdH3tFBkImOg+g4KKPwQvR9DUYRVGYYQLkKUV+IKMwgogKOBJFLwiWQdCfd6a6q9ftj70oX1VXd1d2V2knVevpzPtV1zj5n73XOqbPOXnuttWVmOI7jOI4zkUzqBjiO4zjOzoorScdxHMepgytJx3Ecx6mDK0nHcRzHqYMrScdxHMepgytJx3Ecx6mDK0kHSask3Ve17j5Jq9K0aNdB0j6STNKyRPUvi/Xvk6L+6SBpjaQ1rd7XcWaDK8lpUPFAelWTjne6pKObcSynNpL6Ja2QdGjqtjjpiC99VzdQ7umSVkt6XNKQpBskvbzBOlbE58OiScq8QNLnJf2XpE2SHol1LJ2OPE7rcCWZltMBV5I7ln7gH4FDd9Dx/wj0Aqt30PGdFiGpF7gBOAo4G/gk8HRgjaQDm1TN+4EPAP8Vj38mMA+4VtJJTarDaSK51A1wmoskAd1mNpK6LbsikuaY2dZGy1tIWeXnuj34AHAg8Foz+xmApIuBuwnKrBkvtBcDK8xsqLxC0nnAL4HPSfq6mZWaUI/TJLwn2WQkdUn6rKRbJT0haVjSLZL+sqqcAd3Ae6KJxirHXCTNlfSlaCbaJul+SWdJ6q4+jqTzJb1T0h3ANuBdcdsySddLWh+PcY+kT0qa1nWPbdkq6Zwa2xbEY3+pgeNI0ock3R7Py2OSrpO0pKJMJrbxnnjcByV9VdK8qmOtkXSXpP0kXS1pi6QN0ZSViWX2AR6Ou/xjxXleFbeXzWMHSrpQ0uPAb+K2Z0s6L9axVdKTkq6Q9MKqdkwYk6w47n7x2pRNd9+X9LQa52WppBslDUY5bpR0SI1yr5J0s6SReD/8A6CpzntVm/ZXGIN+IrbrC/Gc7yHpe1HORyX9Y41j9MZ7sHxPrpP0uRr3pCR9QtIf43VeW0ueWLZL0qcl3R2PuT6es/kNyLSngvky38g5aIBjgF+VFSSAmT0OfBc4StLAbCsws1srFWRcNwpcCSwE9phtHU5z8Z5k85lLeCO9BPi/BFPcccBlko40s2tiuRPi9p8DK+O6DbDd7LMG2Ddu+wNwMHAK8AImvtEuAd4BfA1YD9wV13+Y8BZ8NbAVWAqcRTDvfKpRgcxss6T/AN4l6RQzK1Rs/iugi8bMjSsJ5qbrgVWEB/whsf3lB9N5wEnA5cA5wEHAycCfS3q1mY1VHG9ePNaVwGXAEcA/AOtiXY/Gc/A14D+Af4/7/aGqXd8D7gM+HWUBeCXwurjPfcBehOv6U0kvNLP1Dcj7XYKS/jSwH/ARYAw4tlxA0l8D3wZuJJjfM8D7gBskvc7MbonlDoyybgY+B4wCy4GnPHAb4GLgHsL1fxPwCeAJwovVbcCpwNuBFZJ+ZWaXxfoVz8URwLeAW4DXAKcBLwTeWlHHGcCK2N5/ibJfGev5U4XsIlyXw4BvAL8Gnku4Zi+XdEjV9a7m88B7CL+T+6Z5Hp5CfLF6CbXv41timw4C1s6mnknYCygAm3bQ8Z2ZYma+NLgAywADXjVJmSzB3Fm5rgv4LXBd1foRYFWNY3yKoNQOqFp/cqx/ScU6A0rAwTWOM6fGum8QHqzdFetWAfdVlbuvsm3AG2NdR1WV+xlwRwPn7tC4/8oa2xQ/D4plVldt/2hc//6KdWuq18X1twO/rPi+KJZbUaPeFXHbpQ2eu+fFa3Zaxbp94jGW1Tjut6v2/wrhQTgvfu8DNlbfA8AcgqL/ccW6SwmK8bkV63YHnox17TPF+S+36f9UnnfCC0MJ+GzF+p7Yrisq1r057v9PVcf9clx/ePy+kGDNuA7IVJRbHsutqVh3bKz79VXHPCqWPaHqeq+pKreqEdkr7uerJ9m+MB7rMzW2HRa3vb3Bc7xoqvZU7fdcYLjWfehL+sXNrU3GzIpmtg22m5J2I/QufwI05CVH6J3dBDwqaWF5IbyZQ/jRVnKzmd1eoy1bYzuyCmbRhYSHTR+w/zRFux54kNADJh53H+DVNNaLfEf8PL1GO8tT0bw5fv5LVZHzCT2ov6haPwJ8s2rdT4DnNNCeSv53jTZtH5eUNCeaSZ8k9MIavY7n1WhbFtg7fl8KLAC+U3Wd5xDO9xJJeUlZQg/uCjPb3gs2s0eB7zTYljLfqNjfgF8QlOX/rVg/AvyK8PAuU1aS/1p1vC/Gz/K1WUp4Kfw3e+rY2jcJ56+SvyKcz19Xyf8Lwotc9X3+FMxsmZnJzO6brFyD9MbPbTW2jVSVaRqS5hAsGSPA3zX7+M7scXPrDkDS+wk3/AE8dcyo0XnJnk8w/TxaZ3v1uEW1+bDcjtcQHA7+nHEzYpkpx3wqMbOSpG8DfytpwMwGgeMJMl1UUefuBEVQZsjCGMxzgUfM7JFJqtknHu/uqrq3Sbo3bq/kATMrVq17AtitYcECE86fpB7gswQZ96za/FiDx/1jjbbBePueHz+vneQY8wnncw5V5yVSa91k3F/1vWze+1ON9S+o+L4PsN7MnqLozOxhSU8yfm2eXatdZjYmaV1VHc8nvKw1ep/vSIbjZ3eNbT1VZZpCHEv9PsFcfZSZVV8bZyfAlWSTiWNMXyeMqX0BeIRgYnsvFWNRU5AhuKJ/vs72B6q+T/jxSnoOweT1e+BjhIfjNuBlsV0zsSJcSHBbf1v8/zjgBjN7sKLMLxl/UAJ8hmCGEo2/JNSi1v7VCnKm1Hr4nUMYP/0qoVe/iWAa/AqNn7t67Su/OJWPs4zQS6/FJqDs7FPr/DXkuDNVm2q8bEzn2KrxfyNtzRCGIT5a57iNvow0g42E30f1CxGE8UKAh5pVWRwD/RZhXPgYM7uhWcd2mosryeZzDHAvcHSFGRFJ761Rtp7S+AMwYGbX19neCH9JeAN+i5lt79FI2nemBzSz30n6JXCCpN8SehrVivw4nmqWujd+/g/wJkl7TNKbvI/wIN0fuKOizV0E54yZPEhmqpiPAb5lZh+rXClpAc17eJd7sI9Odq0lPUIYo35Bjc3Pr7FuR3Af8EZJ8yt7kwqB8/MYd5wpf76A8IJWLpcn9DZ/VXHMPxBM1zdY4rCHaCm5HfizGpv/nOBwdWcTqzyf4Cx1opld2sTjOk3GxySbT/mNfPtbc+zVvbVG2S2EMalqLgZeqaqwkXisXkn9M2xHN8FLbzZcCLye4BW5hXGPUQDM7CYzu75iKSvJH8TPz1YfMHo5Avwwfn68qshJhHHdHzJ9tsTPWud5MopU9XyilWCv2sVnxNWEcbrTq8MoYn27w/Ze3jXAWyQ9t2p7o9aJ2XIl4XxUj5v9ffwsX5vrCA5Gf6unhhq9l4km/osJwfoT7klJufhCUpcdEALyfeAlcZiiXMfTgL8mOP0MNqMShXCpE4FPmtk3pirvpMV7kjNjmaTDa6wvm1nfBlwu6XLgGQSv1HsI44yV3AocLul/EUyoj0Szy5cIjhD/HscBf0EYK9mf4OxwFCF0ZDKuITysrpR0Qdz/BILJcDZ8l5CN5B0E782GQhDMbI1CfOJJ8aWh/FBdTOg1nmlmv45tPUkhLvI6gsfrSQQz7oXTbayZDUm6mxC+cg/wOLDOYmjFJFwOvFvSZkIP4mDGrQRNwcwGJS0nnNNfSfoOIYTnmYQXkS3AkbH4GQTT3M8knUvo2SwnjHtOa3x5hvyQoNTPkLQ34XocQrAc/Ge5J2xmj0n6AiHs5RpJlxFCQN7DxHP3HcJv5RxJryM4NhnBi/gdhJCniydp03RDQJ4jaYLjGHC3mX2f4MD1fuA/Jf0rwdR9MsEi03DIFPAxSbV+F/9CuJdPAf4beEjS8VVl/sPMtkzY00lHavfaXWlhPASk3nJwLPf3hAfCCOEBezzRPbzqePsTTIhDTHSPnxP3uYswVvI44cF0BjC/opwB59dp75GEH+MwwTHjnwnehwYcWlFuFVOEgFRtuzQe443TPH8ZQk/kN1GmxwhOK6+uKvNJgqlulDAO9DVi2ERFuTXAXTXqqHWeFxNi3UZiu1dVlqWGyz6h57qSELu6hfAAfyVVoQhMHgKyqOqYh1af+7j+EEJPbWNs4zqCcji8Rrm1scz9hJjQ9zK9EJDqNp1ffb7i+ssIjjqV63oJ49n3x2tzHyFmszrkSbFtf4r33s9j259y7mLZLGHM/PZY9kmCSfYLwDOqrnf1vqsakb3ifq73u72sotwiQtzqxnjdbwRe2eD9vWKSOozwMrNqijJTyuJLa5dyfJrjNIyk7xIC7Z9ltR0+HMdx2gIfk3SmRYxjO5pganUF6ThOW7PLKklJJyvkjhyRdJsq8n86zUfSvnH85GKCOe3cxE1yHMfZ4eySSlLSMYQ4tjOBlwI3A1dFhwJnx/A6Qmad5wPvtYqwEsdxnHZllxyTlHQLIV/oiRXrfg/8wMxOTdcyx3Ecp53Y5XqSMbD85UxM5XUtwYPOcRzHcZrCrhgnuZDgNr6hav0GYELsYoxDWw6Q7ep+ec9uu+/wBtbCEr6OaNczFrQH000Y12x86t40JL7uWx5+4DEzS/Oga0N2RSVZpvrRXzM3qJmtJM7XOLDoWfbS4+qlidyxDD89nabKbkv7q80lDI0eWZjuvPduSHveiz1Tl9lRZJuaCnz6jM16euSZkx1NVzfAzf/89+4v0ER2OXMrIQC9SAj6rWQPJvYuncSkVJCO4zizZZfrSZrZqKTbCJljvl+xaSkhE0xdSlkYmu4kSk0gb5DdKgqtrxqAQn/oTRUS2IH646yMk00vv6MoJ/RMITeMm9gLCTqzOUGhN815B+iLN3uq617sNcaU5rrPibKn+L3vcg/0XYBd9ZyeDayW9AvCNEYfICSePj9pqxzHcZy2YpdUkmZ2SczOfzph/rc7CZOWTm6LzxqFua33ZpAZfX/MJrNtj5XHphK8WBf64mfrq0ZA90YlO++lOM11Cv+ZEmA5wxL1psbiPDWperIqpfOfKcWnaqrr7jSXXVJJApjZecB5qdvhOI7jtC+7rJKcCSqI7sda36/IEcanUuVt6HlM29vRaopxDDjVW3XvJsgker226GGZSXDdM4JcJp13rcXZMVPc8gbkB9PJrmz8TFF3gjrbnY5SkgYMkm15vQMUwWDIWl83QL9CHvKhUuvrz8W5nwczCc57qUihBFuKac57V8z/nuK691OkSJr7HaA38XUHGEoke19Z9lTPGqepdJSSFGluohzB27A/0Q1cvsj9mdbXX66x/OBqJXkglxl/aLUai6/1Ka57Tunudxjv0aS67nnS/d7KqjHVs8ZpLh11TjNjxsD9ra83mzGGFyrZoHr3k8HolS213hhTiE+MFCbHnMBy6czc2eitlKL+rCA7mOa8A2HKcEhib80LMiMk6kdCJjrKpTB97oqB7zs7HaUkMbFlrPW3UV++xBjpzK298W1+S6H1smctvBqkMjliMJTI3NqXTWfmLlsNUtQN0G3pTJ79ViRLOtnLpuYksru5tel0lpKU0ZdvfX8umzHyaPvYYKvJxe5EX671shcSmxxzgv5sIrNbWfYEZu5cwrqB7d2o/gTzcucVelSpZC+/iqa45/NTF3GmSUcpScuIbXNbX29OotidLoZpeGF4Yo0lMH11x0C5FEnWJdj69HSxet3xgqfKOqPRNPGpAF2pKgYwKPVAMZGp2RLGx3o/svl0lpIknemrQDpPw7kJTV/ZxB6eY6TxsATIRDP3oBJ4OVqRDAnvORJed0UzeyLZ55D2ujvNxcd5HcdxHKcOndWT7DHsxSMtr3ekBFYSeaWxQZXy4e2yK8Er0VgJbDCH1Hrj06gZ3QtHyCZ6FdRo6EnMSVB/pgSlkSxdmTTG5tKm8GjpSmAALGGQMbqSTaQa6u1JUX8qV+42xnuSzg7FBjvqPcxxnDajo55gJticb/17wdyxEmZp6gZYEL38NnclmCorJtjenEtw3gsllIHB7jTJunqj4WAwwXkfGDVKmXT33Pzo3ro5QTd+bjFkN09RN8BAKVhNksnuNBXvSTqO4zhOHTqqJ9nfvY2jnv37lteronhspI9iLs14wVyFcalSgvozC8XmsR6K2dbXnS2K/ty2JHIDbM6HtDOpZB8ey7N7orQzm4phrqyBBFN15czI5ErMS9QFyGwNj9WBBPUnCIVue7wn6exQNm+fzNJxHGfXo6N6kgCF/tZ7++WG8hRzxrY5aV7zSjGLwFhf671ri6Oh7pEEsvdszVDKWRK5AYrb0speKMHW3jS96LHyWHSC8di5o5BJOBY9JzrQp/J/cJqL9yQdx3Ecpw4d15PMDbU+u6GKIlsQ3VvTvJNk4lt9fkvrL3e2GOruSSB7tigyUhK5y/VDOtlzRZgznKY3NRbj9eaOtr7uvBmZEgxsS9OLLk/ynaJXN5vU1G96fZ89vnFiXOttd2z7L+A24Aozu2LmNeyadJSSHMgOc/iCO1teb3Esx0NzFqBcmpRRo6Nxmvh86+uf2xeekplc602epUKO+0eehiU67+tGwwtZKYHjTkZiIL8tSd0AW3vCWLQSOa/09YxSTGQn2zzSF/7Zxex0j20scss1z5ywPr/nH8zMlido0k5BRylJCXrmDrW83pHN/ciK5OYOt7xugNGY/SQ70PpsQ5mt4dU2P3dry+se2zwnKMiBBN0ZoLQlKKhtfa1X0t1bskjGaIK6AcqzsqUYFxzYZhQzsCXVeGyUfVcbkzSMMc/9OoGWXkVJr5V0uaQHJZmkZVXbJWmFpIckDUtaI+mFVWUWSFotaVNcVkua30o5HMdx2pFSjb9Op9WvOv3AncBHgVrdqk8ApwAfAV4JPAJcJ2mgosxFwMuAI4Ej4v+rd2CbHcdx2p7QkyxNWDqdlppbzexHwI8AJK2q3CZJwMeAs8zs0rjuPQRFeSxwgaQDCIrxNWZ2cyxzEvAzSfub2d2T1x9Mn62mOJbDClkKm3tbXjcAYyGivDjY+pjFkgVT59jmOa2vu5BDhSw22NXyugEy0XGne0vrI/oz0WmpK0HdMB7UnsJ5JleCbAn6EjktFXdRxx0DxrznOIGdaUxyX2ARcG15hZkNS/opcAhwAbAYGAJurtjvJmBLLDOpksxT4hnZzU1u9tQUSnl6VSCbSzMjw59KuwOQybbeeWY/PQZALt962QvKs25kIak8KAZHg3IuJtBT2SLM7279GPTOQi5TJMF0joE4+0uS2262StJnEZnAzqQkF8XPDVXrNwDPqCjzqNn4lTQzk/RIxf5PQdJyYDnAnnt1MTBvU1Mb3QiDm+aRLeaYM2+w5XUDZAoLgDTOM7mRoBz757X+5WRo01zIlbBEjjvFJ8LncIJkAr1bM5SyHey4k02YSKHsuJMoqf9MMTNGXUlOYGd0Uq6+SqpaV+sqVpcZL2y20sxeYWavmDd/ZxTXcRwnPYYYq7F0OjuT1lgfP6t7hHsw3rtcD+wRxy+B7WOZuzOxB+o4juM0SDC3asLS6exM5tZ1BCW4FPglgKQeYAnw97HMWoKH7GLGxyUXA308dZyyJmZicNO85ra6AQpjeYqlPFs3DUxdeAdQKoTLnMJ5pqBg4h3aNLf1dY/loZBBiRx3stHS2Zsk405w3ulYx52E2YZGyo47szB9zpRZO+7YztRv2jloqZKU1A88L37NAHtLOhjYaGb3S/oKcJqku4B7gNMJjjoXAZjZ7yRdTfB0PZFgZr0AuHIqz1YIN8G2BDdBIfGNN1wKmV9Uan07FO+wBDMmIcGGbXMpFdOMszw+FDypCwn0VK4YzGcppukCGBsNF76Q4Na3Eozk8yTQUQBk4ktRJsFNn5nFmGIJMUoqb6edl1b3JF8B3Fjx/TNxuRBYBnwR6AXOBRYAtwBvNLNKj5fjgH9j3Av2cuDDjVQuWTIHkmwpk8xxR6OhS5Mi409uLDjupHKYSjkLSFk5Dna3vu6BbWEey+FEzitl5ZhmFhCjkIWhVLO0ReU4mGn9G8JAaTYZd7wnWYtWx0mugfojwdFrdUVc6pXZCBzf5KY5juN0NIYYs51pBG7HIOlywjDej83sHVOV99cGx3EcBzMxatkJSxvyZeDdjRZ2Jek4juMAYVyyemk3zOxGoOGxr/bvW1dgpmRelkVL591qcXAsRVq8Qi44DaXyKs4U0s0nWZ6ha2BbmrqzRdGbZuIZhsoenqNpvFtzRehPlHBoW3Semc344EzJz8JxxxCjszS3SvoU8M/AuWbWkK/INI79WuB/AS8H9gLea2arapQ7mRARsSfwG+BjZvazmdbbUUpy1HLcX9it5fWWCjkKliWjNNlPHhwNMluCH+3uhBCQjBLNJzm4INm8gtuGgsfOWIKX8bzBY6TxLgWw+GJSSuDhaWYM0ZNM9p6tQeYULlPZWfT8guPOzM2rkl4FnAjcMUW5Q4DbzGxb1fp9Ca4p99XZtTxBxrfiUuvYxwDnACcD/y9+XiXpQDO7v3FpxukoJSkZ3XO3tLzebZv7yBh0JagbwIaDcrT+1qdny1hQjqnm8Uw6r2B8XqWaV1CZNGnhALqjckyVmi2TSeNZC+MP1cEEyWMHZjEf5GwcdyTNA74D/A1wxiTlBHwVeEjS28xsLK7fmxD58D3CbFAT2zfJBBkVfBxYZWZfj98/IukI4IPAqdMUC/AxScdxHIcYJ1nbcWeepJWS3jLJ7iuBH5jZDZPVESMYjgL2Ay6RlJP0TIKC/DkzVGQAkroIpthrqzZdS5gAY0Z0VE/ScRzHqY0Z9XqSm8xseb39YmKX5wEnNFaPbZB0GPATQs/xIOB24HizWXSFYSGQpfYkGYdXtPd64CVAn6QHgHea2dp6B3Ul6TiO40Rz6/RMxJL2B84ElphZw+M5ZvaQpHcBtwIPA8eZWbMcFyadJMPMDmcadJSSNBPbNve1vN7SWI6SZRlNUDeAyh4MQ63PYVrqCrdYismuS2O5tJPvxp9lksl3LXh5psidCsF5BhLlLzVDpTSetTD+UJ3N+OBs654JM1GShNzZC4E7K+adyAKvlfQBoK/aQQdA0kLgm8DVwIHA+ZLeZ2azuWEeA4pMPknGtOkoJTlSyvPrrc9qeb0qZBBGqmSS9w49DSBJHs9sjDqxXOtlVyHDk0/OYSxF4lggPxQeOJkEsWbCGCv0JPGsBegZDLKnuOOzQLGoJJ61ANnYn0ol+0wJ3q3TVgmXEXqDlXwT+D2hhzmhdylpN+A64CHgaMJ8wT8BVko6sXK+4OlgZqOSbiNMkvH9ik1LgUtnckzoMCVpSuPhyVAXwtJN/jsY7rmRBJP/WjadZy1DXYxJybwc50XluDmbwMOzWKKkNN6lMP6wHswk8PAsFSlKSc47QE+07A0lyFbTP4sws5n0JM3sSeDJynWSthAmrbizunz0bv0h8DhwdOxl3hvHKNcAnwNOq1XXVBNkxPVnA6sl/QK4CfgAIaby/GkJVkFHKUnHcRynNmYzMrdOsw4zSZ8GbjazkYr1v5f0BibvgE81QQZmdomkpxFmkNqTEFd5lJn9caZtdiXpOI7jAFBswiwgZnboFNuvr7P+rin2W8MkE2RUlDsPOG+qco3iStJxHMeZqeNO2+NK0nEcx5l1Wrp2paOU5Eghz28feHbL680WoStbpDSYxiX94cfnA1B4ovV1/6S0G/PnDFN8vPV1Z4uQfyLPvERejj0xC2EugZ9jDrCRLLlE3q29IWUv+QRhEHlBsSDySbKnQlc5sT0JZJ/FvoYouJKcQEcpSaf1zJ+TaBoKx3GmhRmMlTxTaTWdpSQFwwnCIHq3ZihlLUkIBoz3IFMku14QX0y3JkgyPmdYFBKGApR7kKkSXZeUpm6AXOxBDs0qcm9m9FuRIglljz3ITggB6QQ6S0k6juM4NTFEoeRKshpXko7jOE5McO7m1mpcSTqO4zjek6xDy14bJJ0q6ZeSNkt6VNIVkg6qKiNJKyQ9JGlY0hpJL6wqs0DSakmb4rJa0vxWyeE4jtOOGFCwzISl02llT/JQQhaEXxKyJnwWuF7SgWa2MZb5BHAKIcXQ3YQZrq+TtL+ZDcYyFwF7A0cSrus3gNXAZBOCAjBWyPLEgwuaJU/DDJUgky0lCcEAsMd7gPHZ4lvJRuuGfImxBL+1kRL0DKYJwYDw48qOQSZRGIRGIJ8gDAGgO6bqzaWYCUNQKqQJPwHIxadq/y4WAoJ5T7IWLVOSZvamyu+STgA2Aa8GroiJbz8GnGVml8Yy7wEeAY4FLpB0AHAE8BozuzmWOQn4WVSkd7dKHqdB8mkU1M5Adix1CxyncQwoJZixptVIuhxYAvzYzN4xVfmUY5IDBHNvuX+1L2EesGvLBcxsWNJPgUOACwhzlw0BN1cc5yZgSywzqZI0pQmDGNhmZDNp6gboij3IFDNCzM2Et+nN+QR1j4WffKpQgEziMAiRJgwBIFuWPUHPpD9TpGTpZO/bZUNAoNAZcZJfBr4OvKeRwinPyDnA7cDa+L08UWb15JgbKrYtAh6tnG8s/v8IEyfaBEDSckm3Srq1NOSB7Y7jOLUIjjuZCUu7YWY3AoNTFowkOQOSzgZeA7zdbMLAQXXUuarW1YpKry4zXthspZm9wsxekenvnWmTHcdx2hubmeOOpA9JuiM6ZW6WtFbSXzS7eZJeK+lySQ9KMknL6pQ7WdI6SSOSbpO0ZDb1tlxJSvoy8NfAYWZ2b8Wm9fGzuke4B+O9y/XAHnH8snw8AbszsQfqOI7jNEjZ3DqDnuQDwCeBlxHmfLwBuEzSi2sVlnSIpO4a6/eVtM8k9fQT5of8KFDTLCjpGIKV8kzgpYShuask7d2IILVoqZKUdA7BCeewGnOHrSMowaUV5XsIA6zlMci1hBO1uGK/xUAfTx2ndBzHcaaBIYqlzIRlyv3M/tPMrjKz/zGze8zsNII5c3F12dip+SrwA0n5ivV7EyZUPnmSen5kZp8ysx9Qf3LmjwOrzOzrZvY7M/sI8DDwwSkFqUMr45V1iJoAAB3OSURBVCTPBd5L6EU+IWlRXPph+9jiV4B/kPS2GEO5iuCoc1Es8zvgaoKn66skLSY49Fzpnq2O4zgzx+qbW+dJWilpyjA7SVlJ7yJ0ZiZ0XOJz/ihgP+ASSTlJzyQoyJ8Dp860/ZK6gJdT4fwZuZbg2DkjWundWn5D+HHV+s8AK+L/XwR6gXOBBcAtwBsrYiQBjgP+jfETcTnw4UYaoILo3dA17YbPFplRzIbYtRT0DIZ3oRS+ft2F8LI4q/itGZInS24bZBPFCpZlTjVlkkZhbirZ43v+QIo4yRKomCZGE6AUwpK3e7m2ktn9xlWv57jJzJZPuqf0IoKlr4fQsXmrmf26Vlkz2yDpMOAnwPeAgwhOnMfX8FGZDgsJp6CW8+fhFW29HngJ0CfpAeCdZraWOrQyTnJKFRHfMlYwrjRrldkIHN+0hjmO4zgYNGRercPdwMHAfODtwIWSDjWzO2vWZfZQ7HHeSjCHHmdmhZlWXn34qu9Pcew0s8OZBh2Vu9VIFCtYKGGyJLGCMH6RBzOt70tm4tt0qumijHTxcuWYtVTxchnSxCkCzE0cJylLJ3tX+Z5PYLuZldXCoDh1X6b2rmajwP/Er7dKeiXwd8Df1CovaSHwTcLw2YHA+ZLeZ2azyT7yGFBkcufPadN+QTCO4zjOtJmp404dMsAED1YASbsB1wEPAUcDrwfeAKysjFyYLlFR30aF82dkKbNw7OyonqTjOI5Tn1Jp+jpK0lnAD4E/ETKpHUvI1T0hVjIqwR8CjwNHm9k24N44RrkG+BxwWp16+oHnxa8ZYG9JBwMbzez+uP5sYLWkXxCysX0A2As4f9qCRVxJOo7jOJhBA64jtVgEfDt+bgLuAI40s2sm1mEm6dPAzWY2UrH+95LeQP3QDggxmDdWfP9MXC4kTIqBmV0i6WnA6cCehLjKo8zsjzMRDFxJOo7jOJHiDHqSZrZsmuWvr7O+Ona+evsamDoDu5mdR5hxqim4knQcx3EwRKkNc7XOlo5SkirBgk2trzePsIzIJpjPEaB7W/hMES/YOxQ+uxLUnQMsl2ZeP4CyI3WKeLkckBH0Z9PInomyz0kge4YwTdlsZsSYDTE0OMl1n5WKMyjN0Lu1nekoJek4juPUx2Zgbm13OkpJGmIw03pzwkCpFOayTFA3QC6OhaeIVcyTeF5BdoJ5BVPMJ0mRLOliBbfHiCa67mawpZhoLs3EscEzxZiZd2u701FK0nEcx6mDeU+yFq4kHcdxHECuJGvgStJxHMfxnmQdXEk6juM4AfdunYArScdxHCcwm/TibUpHKUlhDJRafxfkMcxIUjeMX+Qkc/vFz/5MojhJ0sXLbZc90XySGdKcd4BcnJgo1XXPCvoSxYiW53tK+XubEYb3JGvQWUrSRHZb6+vNIMh25kta+Xxb9QxvrahbMNozcXK5VlGMQeUprnv58VxMJHxGT21HS+sm5C4rJZK9FOd1TyX7bJjVRFVtSkcpSSPtvIYp6obx2elT1N8T36ZTxKz1ZYsUSDOvH4zHSaa650qWJkYTxnvPqWJELeF8ktvjJBPM3zpQmp1qljvuTKCjlKTjOI5TBxO4kpyAK0nHcRwn4ObWCTRswpZ0maQ3S/I08Y7jOO2GEXqS1UuHMx2FtwW4BHhA0pmS9ptORZI+JOkOSZvjslbSX1Rsl6QVkh6SNCxpjaQXVh1jgaTVkjbFZbWk+dNph+M4jlMblSYunU7DStLMjiPM9PxPwOHA3ZJ+KundknobOMQDwCeBlxFmmL4BuEzSi+P2TwCnAB8BXgk8AlwnaaDiGBfF/Y8Ejoj/r25UBsdxHKc+solLpzMt06mZbTaz/21mfwa8CLgNuABYL+kCSQdMsu9/mtlVZvY/ZnaPmZ0GDAKLJQn4GHCWmV1qZncC7wEGgGMB4rGPAJab2c1mthY4CXizpP2nLbnjOI4zjptbazIjxx1JewH/H/BmQuzsD4BnAXdIOtXMvjTF/lngnUA/cDOwL7AIuLZcxsyGJf0UOISgiBcDQ7F8mZsIZuBDgLunbDdpA3xT1J26/lz8jaUI7M4p+CEMJJp0ufwGmuqeywr6E91zMUQ0WSKFrNIlUtieTGCW4RgzIT91kUlx8+pEGlaSkvIExfg+YCnw38AXge+a2VAs81fASqCmkpT0ImAt0ENQeG81s19LOiQW2VC1ywbgGfH/RcCjZuNh6WZmkh6J2+q1ezmwHKBnwW6Nitt8Et58Fq9ykpfCsqZIYbYRlLrTBHUDWD4IXVDrT7zMIKtkspdFLkxebMfUHT8LyZIJhB+7Jbjupdlm7XAlOYHp9CQfJtx/FwH/YGZ31ChzHfDEJMe4GzgYmA+8HbhQ0qEV26uvsKrW1boDqss8BTNbSVDc9D3jWdaJyQTKadlS1D8n9mSGEiQT6M8WGSPdeZ9TPu+JJvoukfCeSxxQbwkTKXTFgbzN2dZf97nFmWu5ThmDlHQ5sAT4sZm9Y6ry07mKfwc8w8w+UkdBYmZPmNm+9Q5gZqNxTPJWMzsVuD0ed30sUt0j3IPx3uV6YI84fgkEj1hgdyb2QB3HcZzp0hljkl8G3t1o4el4t642s5EZNWny+ruBdQQluLS8QVIPQduXxyDXEsYwF1fsvxjo46njlI7jOM4M6IQQEDO7keA02hAtswdIOkvSEkn7SHqRpM8DhwLfieOMXwH+QdLbJB0ErCKMW14EYGa/A64GLpD0KkmLCQ49V5rZlE47juM4ziTYzJSkpFMl/TLGvz8q6Yr4DG8qkl4r6XJJD0oyScvqlDtZ0jpJI5Juk7RkNvW20mi+CPg2YVzyx4RYyCPN7Kq4/YvA2cC5wK2EmMw3mlmlxj8O+BXBC/aa+P8JLWm94zhOmzPDnuShwHmEKIPDCP5a10uq6Skp6RBJ3TXW7ytpn0nq6QfuBD4KDNc59jHAOcCZwEsJVsarJO3dkCQ1aFnuVjNbNsV2A1bEpV6ZjcDxzWyX4ziOE5mB446Zvanyu6QTgE3Aq4ErqrYJ+CrwkKS3mdlYXL83cCPwPUJimVr1/Aj4USy/qk5zPg6sMrOvx+8fkXQE8EHg1GkLR2t7ko7jOM7OSn1z6zxJKyW9pcEjDRB0y4RIh9gZOgrYD7hEUk7SMwkK8ufMUJEBSOoCXk5FvH3kWkIvd0Z01CwgHZtMIL4dpgiqLycT6E+UTCBPuvOeiTFrA6XWez/kzciidPdcvO6pAupzCRMplGMVZxOOMVNys4iTFHXNq5vMbPk0DnUOIXJhba2NZrZB0mHATwg9x4Ni+ePNZnXRFgJZasfbH17+Iul64CVAn6QHgHfGDG416SglCWBpQqcwpYmnByj2hDu/lCC4udgV6iwmEF6CQq9RTCA3ANl0571khhWVTHbFgLsU9WfMMGUYa3nNsf7uIHspQdDhrHIJ2Oy9WSWdDbwGeM1kCs/MHpL0LoL/ycPAcWbWrNwTk8bbm9nhTIOOUpKpAvq3JxNIEFgN0JcwuLk3/mqHEryd9FOkICWRG6A/PnE25xIElRdKZBLKPmBR9kQB9RnS/d7KSSRSXfdZMYvdJX0ZeBfwejO7d4qyC4FvEiIWDgTOl/Q+M5uNAI8REmxNFm8/bXxM0nEcxwFmHicp6RzCZBSHmdldU5TdjZCd7SHgaOD1wBuAlZXJYqaLmY0SJt1YWrVpKbOIpe+onqTjOI5ThxmaWyWdSwjFOxp4QlK5JzdUzutdUVbAD4HHgaPNbBtwbxyjXAN8DjitTj39wPPi1wywt6SDgY1mdn9cfzawWtIvCBNgfADYCzh/+pIFXEk6juM4gZmNaZ4cP39ctf4zVIX0xUkpPg3cXJnBzcx+L+kNTG7wfQXBC7by+J8BLgSWxeNcIulpwOmEWPs7gaPM7I/TlGk7riQdx3EcYGY9STOblonUzK6vs35SM62ZrWF8kpfJyp1HSG7QFFxJOo7jOB0zC8h0cSXpOI7jAO2Z0Hy2uJJ0HMdxAq4kJ9BRSjJVxp08YTw8RfYRGM/8kiQDSPTo7k+U7SdnlkRugGw2nvfZxq7NgLwZsjTXHCCndPdc3owMSvh7C59prvssdm5CMoF2pKOUpMkoTsg9v+MpK6kUmVcA6ClnP2n9gMNYXwjoblYqjelggPWUKCWKBs5m4hMnRf0lKJVEMVWyoXivWQLZrRTu9VTZhjJdaa/7bHAlOZEOU5JiMNP6O7ecuzNF3VCRASTf+vrL7ySpMh2NZdJkPgGYG59YKc773LESZmnqBphXSnfPzR0rgZTuumcSyz5TvCdZk45Sko7jOE5tJklw3tG4knQcx3EAUMljQKpxJek4juO4ubUOriQdx3GcgHckJ+BK0nEcxwG8J1kLV5KO4ziOm1vr4ErScRzHid6tbm+tJtmky5I+Jckkfa1inSStkPSQpGFJayS9sGq/BZJWS9oUl9WS5rdeAsdxnDbCZj7pcjuTpCcp6VXAicAdVZs+AZxCmBvsbuAM4DpJ+5vZYCxzEbA3cCRhmPkbwGrgLVPXa/TlW5/7JWsGBn2J7riu7iDzghSvRM8CnuiiVwlShJnR1VVgXiZN5pWumHVmfiZBerI8WA4WZNKkZstTlj1BGkhBCWNuoi5Ad0xHOD9BItT8LHN2pPiZ7uy0/DaSNA/4DvA3wBMV6wV8DDjLzC41szuB9wADwLGxzAHAEcByM7vZzNYCJwFvlrR/ayVxGuKJrtQtcBynESyYW6uXTidFT3Il8AMzu0HSGRXr9wUWAdeWV5jZsKSfAocAFwCLgSHg5or9bgK2xDJ3T1axkSZFWTnRcao0WfNjtZu7Wt+jmhvzZ27OJjjvxRKWURK5AeYVwwNmMEH9A6PBepFK9rmFtLKXMulS8s2PyfyTXfdZ4ObVibRUSUo6EXgecEKNzYvi54aq9RuAZ1SUedTMtt8JZmaSHqnYv7rO5cBygK6n7TbzxjuO47QxMu851qJlSjKaQ88ElpjZ6CRFq6+SqtbVuorVZcYLm60k9F6Zs/cz/Q5wHMepg/ckJ9JKe8RiYCFwp6SCpALwOuDk+P/jsVx1j3APxnuX64E94vglsH0sc3cm9kAdx3GcRjFQ0SYsnU4rleRlwIuAgyuWW4GL4//3EJTg0vIOknqAJYyPQa4F+gkKt8xioI+njlM6juM408VqLB1Oy8ytZvYk8GTlOklbgI3RkxVJXwFOk3QXQWmeTnDUuSge43eSrgYuiOObIjj0XGlmkzrtOI7jOJPjY5IT2dky7nwR6AXOBRYAtwBvrIiRBDgO+DfGvWAvBz7cykY6juO0HZ6WriZJlaSZHVr13YAVcam3z0bg+B3ZLsdxnE5D4GOQNdjZepKO4zhOCszNrbXoKCUpwdz8WMvrzWcBg7mJUoT1xlR8+QRx5cU5wTesL0HdGYOurjESxZTTVfXZSnLZ4HORT1A3QHcuPGy7E9Sdz0FBmXTXPYZx5xPom9ys0tJ5nGQtOkpJOo7jOHUwN7fWoqOUpClNqqq5Y6WQIizRq213rHawu/XduXLvNdV5z2TSyA0wL6YIG0zQnRrYBmbpZM+MBdmHelpfd/8IFBLKPn7dE6Sl2zZLJec9yQl0lJJ0HMdx6qOSu7dW40rScRzHCblb3dw6AVeSjuM4TsB7khNwJek4juO4404dXEk6juM4AXMlWY0rScdxHCcoSDe3TsCVpOM4jgO4ubUWriQdx3GckKKp6D3JajpKSUrGgsxoy+vN58EQ8xOlpevPhVR8CeK6ye02ytbh7iQpwvI56M0W6En0cpzPxtRsCdOTpbjmAN1R9t4Et3wuG9LS9ba+agCy8V7vSqBvcrP6nbm5tRYdpSSd1rN1OEX2Tsdxpo33JGvSUUrSSJcqyoDBrjRpsgZir2JLim7F1vCR6rzns2lSo4X6w2eK8943kq5ugGy5/t7Wd6P7hkVB6a5733D4TJWSb+YYlNJYu3ZmOkpJOo7jOHXwnmRNXEk6juM4+JhkbVxJOo7jOLEn6ebWalxJOo7jOIC5ubUGiebudhzHcXYqDMxKE5ZWIelySU9I+kHLKm2AlilJSSskWdWyvmK7YpmHJA1LWiPphVXHWCBptaRNcVktaX6rZHAcx2lriqWJS+v4MvDuVlbYCK3uSd4N7FmxvKhi2yeAU4CPAK8EHgGukzRQUeYi4GXAkcAR8f/VO77ZjuM4bY5ZGJOsXlpWvd0IDLaswgZptZIsmNn6iuVRCL1I4GPAWWZ2qZndCbwHGACOjWUOICjG5WZ2s5mtBU4C3ixp/xbL4TiO02YYVixOWBpB0mujufTBaCVcVqPMyZLWSRqRdJukJc2WYEfQaiX5nHgS10m6WNJz4vp9gUXAteWCZjYM/BQ4JK5aDAwBN1cc7yZgS0UZx3EcZyaUvVtn1pPsB+4EPgoMV2+UdAxwDnAm8FLCc/wqSXs3pe07kFZ6t94CLAPuAvYATgdujuOOi2KZDVX7bACeEf9fBDxqNj7hmZmZpEcq9p+ApOXAcoDePRbw9My22UsyTXJdULIMvWkS7jA3G3K3zim1PvtJbmCM4bE8/ZkEdfeI7mwhidwA2Uy44L0JZlZIWTdA1/bcrQlkzwpD9KWaGzETUlz1pMhbO4tuj5k13HOsse+PgB8BSFpVo8jHgVVm9vX4/SOSjgA+CJw6o0pbRMuUpJldVfld0s+Bewlm1Z+Xi1Xtpqp1te766jLV9a4EVgIMPHcvnwemxQyP5VM3wXGcBhjkiWuuK1yysMamHkm3VnxfGZ+rDSGpC3g58KWqTdeyC1gBk8VJmtmQpN8A+wGXxdWLgD9VFNuD8d7lemAPSSr3JuNY5u5M7IHWrpN0+RRLpXS5JOfGXtxwgjyajIY6tySYkqFv2Mhlja0p5AbmRKNTivpT1g2QHUl3z/UOQylR3QD52BlLc91nbq4ysyOa2JRKFgJZalsKDy9/kXQ98BKgT9IDwDuj70lSksVJSuoBXgA8DKwjKMGlVduXMD4GuZZg915ccZjFQB9PHad0HMdxdj4mtRSa2eFmtruZzTGzZ+4MChJa2JOU9CXgCuB+Qg/x0wQFd2EcW/wKcJqku4B7CGOWQ4SwD8zsd5KuBi6QdCLhBF8AXGlmd7dKDsdxHGdaPAYUmeg7Umkp3GlpZU/ymcB3CbGS/w5sA15lZn+M278InA2cC9xKiKN8o5lVxs0cB/yKYMu+Jv5/Qkta7ziO40wbMxsFbqPCUhhZyi5gBWyl4867pthuwIq41CuzETi+qQ1zHMdxZoWkfuB58WsG2FvSwcBGM7uf0AFaLekXhNC9DwB7AeenaO908ATnjuM4zmx5BXBjxffPxOVCYJmZXSLpaYRhtD0JMZVHVVgSd1pcSTqO4zizwszWEPxEJitzHnBeSxrURHwWEMdxHMepgytJx3Ecx6mDK0nHcRzHqUNHjUmKkP2m1eSKULI0dQPkumMezwlph3c8Y6VQd99wgtytJZEtanv2mVaTLQbZU9Sfsm6AbJyGMMU9ly2KDEpSNxAiApld9puZkkuQL7bd6SglmVWJBQl+OdkiFCxLIZsmTda8bEjqXkpQfyZl3UVRMlHKpTnvmUJ4SKaoP1MQGVmS8w6Qi0qymKD+bFFkVUom+4i6gHT3vNNcOkpJIhie09KZtgHo3ZqhYJYsl2QpzsSwra/1r5ndW7JJ6y4B2+akeb3u3hplT1B/qNuSnHcAbQ0jOaMJ6u/akkWyJHUDlArh9zaS4FnTs9VH0JqNn1HHcRzHqYMrScdxHMepgytJx3Ecx6mDK0nHcRzHqYMrScdxHMepgytJx3Ecx6mDK0nHcRzHqYMrScdxHMepgytJx3Ecx6mDK0nHcRzHqUNnpaWzkCKu1WSLYJYu4XImG/I5llPEtbTuYuK6TdvTw7W8/pi7NUX9IXdrmvMO4wnOuxLUny2KjJSkboBSvOdTpIjz3K3NR2Zp8ommQNIgcHfqdiRiIfBY6kYkoFPlBpe9U2Xf38wGUjeiXeisniTcbWavSN2IFEi6tRNl71S5wWXvZNlTt6Gd8DFJx3Ecx6mDK0nHcRzHqUOnKcmVqRuQkE6VvVPlBpe9U+lk2ZtORznuOI7jOM506LSepOM4juM0jCtJx3Ecx6lDRyhJSSdLWidpRNJtkpakbtNskHSqpF9K2izpUUlXSDqoqowkrZD0kKRhSWskvbCqzAJJqyVtistqSfNbK83skPQpSSbpaxXr2lZ2SXtKujBe9xFJv5X0uortbSm7pKykf6r4Ha+T9DlJuYoybSG7pNdKulzSg/HeXla1vSlySnqRpJ/EYzwo6QxJno2gGjNr6wU4BhgDTgQOAL4KDAF7p27bLGS6BngvcBDwIuA/gPXAbhVlPgkMAm+P5b4HPAQMVJS5CvgNcAiwOP5/RWr5pnEeXgWsA34FfK3dZQfmA/cC3wL+DNgXeANwQAfI/ilgI/AWYB/gL4EngE+3m+zAUcCZwDuArcCyqu2zlhOYG58Z34vHeHs85imp5d/ZluQN2OECwi3A16vW/R74fOq2NVHGfqAIvCV+F/AwcFpFmd74Izgpfj8AMODVFWVeE9ftn1qmBmSeB/wBOAxYU1aS7Sx7fHDeNMn2dpb9SuDCqnUXAle2s+yEF/plzb7GwAeBzUBvRZnTgQeJDp2+hKWtza2SuoCXA9dWbbqW8IbVLgwQTOdPxO/7AouokNvMhoGfMi73YsIP8OaK49wEbGHXODcrgR+Y2Q1V69tZ9qOBWyRdIukRSbdL+nCFiaydZf9/wOslvQBA0oGEF6Qfxe3tLHslzZJzMfCzuG+Za4C9CD11J9LWSpKQvzELbKhav4Fwo7UL5wC3A2vj97Jsk8m9CHjU4iskQPz/EXbycyPpROB5wKdrbG5n2Z8DnEwwub6JcN3PAj4Ut7ez7F8AVgO/lTRGMB9eaGbnxe3tLHslzZJzUZ1jVNbh0Dm5W6uDQVVj3S6JpLMJppTXmFmxavNUctc6Bzv1uZG0P8HsuMTMRicp2nayE15qbzWzU+P3/5a0H0FJfq2iXDvKfgzwbuBYgoI8GDhH0joz+z8V5dpR9lo0Q85ax6i3b8fS7j3JxwhjddVvRnsw8S1ql0PSl4G/Bg4zs3srNq2Pn5PJvR7Yo9KbLf6/Ozv3uVlMsBDcKakgqQC8Djg5/v94LNeOsj8M/LZq3e+AveP/7Xzd/wX4kpldbGa/NrPVwNlA+YWhnWWvpFlyrq9zDNh1zkVLaGslGXsatwFLqzYt5an2+l0OSecQ3qoPM7O7qjavI/wIllaU7wGWMC73WoLDz+KK/RYDfezc5+YygkfvwRXLrcDF8f97aF/ZbwL2r1r3fOCP8f92vu5zCC+8lRQZf4a1s+yVNEvOtcCSuG+ZpQQv2ft2RMN3WVJ7Du3ohWCmGQXeT/D6OocwqP3s1G2bhUznEjzTDiO8DZaX/ooyn4xl3kZw8b6Y2m7ivyaEUiyO/+9U7vANno81TAwBaTvZgVcSwplOI4zJvhPYBHyoA2RfBTwA/AXBseStwKPAv7ab7AQFV34B3AqcEf/fu1lyErzD18d9D4rH2oyHgEy8Hqkb0BIhg7PDfcA2Qs/ytanbNEt5rM6yoqKMgBUEE90I8BPgoKrj7AZ8O/44Nsf/56eWbwbno1pJtq3sUUn8Ksp1D/C3VLjst6vsBA/urxB6zcME56UzgZ52kx04tM7ve1Uz5SRYZH4aj/Ew8I+V95IvYfEE547jOI5Th7Yek3Qcx3Gc2eBK0nEcx3Hq4ErScRzHcergStJxHMdx6uBK0nEcx3Hq4ErScRzHcergStJxHMdx6uBK0nEcx3Hq4ErScRzHcergStJxmoik3SU9LOmMinUvljQi6R0p2+Y4zvTxtHSO02QkvQm4gjCF1+2EWUp+YWbvTdowx3GmjStJx9kBSPoK8JeE5NNLgIPNbChtqxzHmS6uJB1nByCpmzBbx37AIWZ2S+ImOY4zA3xM0nF2DPsAzyJMcfSctE1xHGemeE/ScZqMpDxh5vffA7cQ5v57sZndn7JdjuNMH1eSjtNkJJ0FHAu8GNhEmCW+F3i9mZVSts1xnOnh5lbHaSKSXgecArzbzJ608Ba6DDgA+GTKtjmOM328J+k4juM4dfCepOM4juPUwZWk4ziO49TBlaTjOI7j1MGVpOM4juPUwZWk4ziO49TBlaTjOI7j1MGVpOM4juPUwZWk4ziO49TBlaTjOI7j1OH/B5T8HduOtmOMAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -355,7 +360,7 @@ }, { "cell_type": "code", - "execution_count": 155, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -364,22 +369,22 @@ }, { "cell_type": "code", - "execution_count": 156, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "n_time = time.size\n", - "PRED = invProb.dpred.reshape((prob.n_sounding, n_time))" + "PRED = invProb.dpred.reshape((sim.n_sounding, n_time))" ] }, { "cell_type": "code", - "execution_count": 157, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -398,17 +403,17 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ - "J_sigma = prob.getJ_sigma(m)\n", + "J_sigma = sim.getJ_sigma(m)\n", "J = J_sigma" ] }, { "cell_type": "code", - "execution_count": 159, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -417,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 160, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -426,7 +431,7 @@ "True" ] }, - "execution_count": 160, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -438,13 +443,13 @@ " alpha_x = 1.,\n", " alpha_y = 1., \n", ")\n", - "xy = Utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", + "xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.])\n", "reg.get_grad_horizontal(xy, hz, dim=2)" ] }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -453,16 +458,16 @@ }, { "cell_type": "code", - "execution_count": 162, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "24.06444818614206" + "24.024082588956453" ] }, - "execution_count": 162, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -473,7 +478,7 @@ }, { "cell_type": "code", - "execution_count": 163, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -492,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 164, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -503,12 +508,12 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": 25, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -524,7 +529,7 @@ "ax1 = plt.subplot(121)\n", "ax2 = plt.subplot(122)\n", "ii = 2\n", - "sigma_est = Utils.mkvc((np.exp(mopt)).reshape((prob.n_sounding, prob.n_layer)))\n", + "sigma_est = utils.mkvc((np.exp(mopt)).reshape((sim.n_sounding, sim.n_layer)))\n", "cb = plt.colorbar(\n", " mesh.plotImage(\n", " 1./sigma_est, grid=True, clim=(20, 50),pcolorOpts={\"norm\":LogNorm()},\n", @@ -532,7 +537,7 @@ " )[0],\n", " fraction=0.02, pad=0.04, ax=ax1\n", ")\n", - "sigma_est = Utils.mkvc((np.exp(mopt+x[:,ii])).reshape((prob.n_sounding, prob.n_layer)))\n", + "sigma_est = utils.mkvc((np.exp(mopt+x[:,ii])).reshape((sim.n_sounding, sim.n_layer)))\n", "cb = plt.colorbar(\n", " mesh.plotImage(\n", " 1./sigma_est, grid=True, clim=(20, 50),pcolorOpts={\"norm\":LogNorm()},\n", @@ -548,7 +553,7 @@ }, { "cell_type": "code", - "execution_count": 166, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -558,7 +563,7 @@ }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -569,26 +574,15 @@ ] }, { - "data": { - "text/plain": [ - "(2, 200)" - ] - }, - "execution_count": 167, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "ename": "NameError", + "evalue": "name 'plotLayer' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[0mjj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m12\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[0mprint\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 19\u001b[1;33m \u001b[0mplotLayer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlows\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmesh_1d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m'color'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'b'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'lw'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 20\u001b[0m \u001b[0mplotLayer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mhighs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmesh_1d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m'color'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'b'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'lw'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'plotLayer' is not defined" + ] } ], "source": [ @@ -625,12 +619,12 @@ }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 27, "metadata": {}, "outputs": [ { "data": { - "image/png": "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4scff9TYPR6P9KP4+OOP2bNnj/QfcLvdJCYmcs011wCwc+dOAoGAzHXhcrlwu92/+eCZBr8MxqR3Iwh9e2SDIaSnAHv27KG0tFTT6NhsNgYPHgzAN998Q3FxsabBiouLY8yYMUC9rruwsFBj79ChAw8++CBQ75NQWFiokRDm5OTwyCOPAPVJeCorKzWy3J49e3LzzTcD8Morr8icC6JkZ2dz6aWXAvW6b5HJTcgTO3fuzAUXXEAoFCI3N1cTfln89o4dO+L1elm0aJHm3NTV1dG3b18uuOACSktLmTJliq7BHTlyJP3796egoIDnn39e12A/9NBDDB48mA0bNnD//ffrnJfefPNNLr74YnJzcxk7dqxu+6+//pohQ4bw0Ucfccstt+iu6fr168nJyeFf//oX99xzj86en59PRkYGEydOlI13JAcPHqR169Y888wz0lEqkurqatxuNw899BB/+9vfdHZxn/3pT3/i3Xff1diioqKorKwE4KabbtJp8du0aSP9bq688krpjyPIzMxkx44dQL0/z6pVqzT2Xr16Sb+fESNGsHfvXk2H0rdvX/mbJkyYQG1trexo3G436enpDBo0CKiXbFutVmlzOBwymRdAeXm5TsHjdDrxeDyoqsqRI0d09qioKGJiYgiFQhw4cEBnj4+PJzY2lkAgwN69e6WDnPA1iYmJITY2VkrOhfxWyGczMzNJSkqirKyM7777Tpd868ILL5RJqr766itNtsVQKMS1115LcnIyO3fu5PPPP9fZx48fT7t27VizZg2zZ8/WqR2feuopWrVqxdKlS/n44481iqZwOMzrr79OXFwcc+fO5ZNPPtGp9T744APcbjfvvfcec+bM0dm//PJLTCYTf/vb35g/fz69evVqNG9IUzGi1TaDbdu28cc//lE62QncbjfPPPMMqqry/vvv60aBcXFxPPzwwwBMnTqVvXv3auxJSUns3r0bqHc0Ki4u1jieJScny8RAn3/+ufRYFZVj69atFBUVEQqFmDlzJjU1NZpKk5yczIIFCwiFQsybN0+X36JNmzZkZGQQCoUaHSHHx8eTmJhIMBiUxxlJixYtaNWqFYqiyMYpkqysLLKysvB6vXz++edyuZBx7tq1iwEDBlBaWsqcOXM0TnNWq5WvvvqKmpoaDhw4QG1trcwxEhMTg81mo7Kykv3791NXV8ewYcM0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OJ1O9u3bx/bt23X2kSNH4nQ6+eGHH1izZo3OT+P+++/HZrPx1VdfsXr1ap39//2//4eiKMyePZu8vDyNzWq1MmnSJKDekzovL0+zfUxMDNOmTQPg2Wef5bvvvpPRA5xOJ8nJydK7fOrUqRw4cACHw4HT6cThcNC6dWuZfW3t2rX4/X5pczqdREVFyWySv7bwFZHS3nA4TE1NjSb1b11dHS1atMDtduP1etm/f78mJEwoFCItLY24uDjKysrYtGmTLmzMgAEDSEpKorCwkOXLl2v2HQqFuO6662jdujXbtv3/7J15fBT1/f+fs/duNncIJBDCabivgEAFQdQi4tF639qKCCqttli0WsWvRxVt/ZUqVaiigBe0KmA9ECgeXAFF7kuOQEjIvcne5/z+CPPpTjZggKCgn+fjMY/dnffM7Ozszvv9mdnP6/XZIsaDjx+F75prriErK4sdO3awdu3ahPiYMWNwOp3s2bOHnTt3JowUOXToUCwWCyUlJZSVlSWM9NetWzcMBgPV1dW43W4cDof4PluakyoYiqKcC0wGCoFc4Feqqr7WaJm7gPuBHGArcK+qql809z1UVa1QFOU54AAQBt5SVXXdyez3sViyZAmPP/64sP4AxFCs8dYg8WpWTUSXnZ2NoijU1NQkxM1mM61btxbWIdrYxdrJabVaRfzw4cM68ZaiKCQnJ9OhQwdMJhNbt24V418rikIsFiMnJ4fCwkJMJhOLFi0S/fQ1NWnPnj35+c9/jslk4oknnkgQp11wwQXcdNNNhMNhrr/+ep2PkqqqjBs3jokTJ1JdXc3o0aMTjtukSZO49dZbOXDgAFdddVVCfMqUKVx11VXs3LmTW265JSE+depUxowZwzfffMOECRMS4s888wwjR47kiy++4O6779adsJFIhH/9618MGzaM9957j/Hjxyesv2LFCgoLC3njjTeYNGlSQnzz5s1069aNd999l8mTJyfEzzvvPNq2bctHH33Eo48+mhC/8847sVgsLFmyhOeeew5ApyZ+6qmnUBSFNWvWMG/ePF0svuvst99+y7p163RJoVWrViLudrupq6sTqu5AIEBtba2Iv/nmmyxfvly3bwMHDhQF48477+Sbb77RxUeMGMGKFSsAKCgooLi4WFdwLrroImbMmEEwGOS6667D4/HoVO19+/YVlhl/+MMfhJeX9tsaOXIkN998M5FIhJtvvjlBDHnllVfy61//GrfbzWWXXZbw25w4cSJ33HEHZWVljBgxQjdEqaqqPPHEE4wbN44dO3YwcuTIhO9m+vTp3Hzzzaxbt65JMducOXO48sorWbVqFZdeemlCfPHixYwZM4aioqImf7t9+vQhJyeHr776ivvvvz8hPnz4cLKysli6dGmTv729e/fidDqZP3++8BSLp7KykqysLGbMmMGf//znhLjf78dmszF16lReeOEFLrjgAj799NOE5VqCkxLuKYpyMTAM+BqYA9wVXzAURbkWmAfcBXx55PFXQA9VVQ8cWWbLUTY/RlXVg4qipANvATcAfuAjYKqqqiuOtW8nKtxbuHAhv/71r6mpqdHNN5lMQom9f//+hMHmzWYzXbp0QVVVDhw4gM/n08UtFgt5eXmoqsqhQ4d0BQkaCkZ2djaqqiYUDPjfmOHRaDRhXcmpJ14sFj/WeLznj9VqFfOPZv3RUpPRaBR+R9r42tqj3+/H4/Hg9XrxeDyEQiHMZjPBYJCSkhLcbrdubG7NiSAYDIrfZjgcFsVYS/CSo6OJATUBYfwVgubGEL9M/BWGw+HAYrGIIqg1ULXfXKtWrbBYLPh8Pnw+X4JwsWvXrpjNZiorK6mtrSU1NZWJEyc2WTybw/ei9FYUxQPc06hgrAU2qap6R9y83cC/VFV9sJnbvRoYqarq3Ude339kv6c1sex4YDxA+/btC4uLi0/os+zZs0dYe2iYTCYGDBgAwO7du3G5XLq41WqlT58+AOzcuVNn/QEN1iE9e/YEGgwONbM5DafTSbdu3YAGozvtRNaSU3JyMm3btgWgqqpK/KiOfG5xNRHv0Ppdz5uznHYlczK0xG/s+1Q0H2vSjrFm79ESU2OzvpZGURrG7LbZbCf0eKyY2WxO+I6aev5d8eN9frT4Dz1Pu/ppfFvraI/Hs+zxbOuxxx7jgQceONHfy/dfMBRFsQA+4HpVVRfELfci0EtV1RHN3O4QYAbwMxpuSS0CZqqquvBY60lrEMmZguZP1dgl9VhTJBLBYrE0O6mfSf9LSH5YfihrkCzASOIf1OXABc3diKqqaxRF+QjYAMSAZTQUDYnkR4F2e8Jms/3QuyKRHJPvo5dU40sYpYl5x96Aqj4EPPSdC0okEonklHEqdRhVNHSDbdNofjayW6xEIpGccZyygqGqagj4CriwUehCYNWpel+JRCKRnBpOVofhBLoceWkA2iuK0g+oOdJt9q/AXEVRioCVwAQa9Bovncz7SiQSieT752T/wxgI/Dfu9WNHpteB21RVfUdRlEzgYRqEe1uAi1VVPbH+rhKJRCL5wTipgnFEPHfM/nqqqs6goVusRHLGo6qqTsWsPSYnJ+vGXW4c79SpEwClpaVUV1frYtCgxoYGjU55eXmCdYg2Fvbq1as5dOgQqqoKkWBqairnnHMO0KAUDwQCOpGf3W4nPT1d7P+Z0MVWVVXR1VgbgjgSiXDw4EHdyIPhcJi8vDxycnLwer18/fXXYhva5+zSpQtt2rTB7XazadOmhPhZZ51FVlYWdXV1bN++PSFeUFBAWloatbW17N69OyHerVs3kpOTqa6uZs+ePeL3oekiBg8ejNPpZN++fWzcuDFBQ/HLX/6S5ORkvv76a1avXp2grfjNb36Dw+Fg6dKl/Pe//03QXzz//POYTCbefPNNlixZQo8ePfjDH/5wSr6XM8FL6ieLJgTSkoomkqqrqyMcDussEmw2G1lZWUCDsLBxPCMjgw4dOgDwxRdf6H7U0WiU/Px8evToQSQS4f3339clRVVV6d27N/369SMQCPDee+8ljDXcp08fCgoK8Hq9LFmyJGH84T59+tChQwfq6+tZuXJlQrxXr17k5ubicrnYsGFDwhjGPXr0ICsri4qKCtatW5egSxgzZgy5ubls27aN9957T6drCIVCTJ48mfbt27Ns2TJmzpyZsP7cuXNp3749r732Gk8//XTCuNvbtm0jJyeHxx57jMceeyzhu6qvryc5OZmpU6fy17/+NSG+Y8cOAoEAjz76KAsX6iVEVquVZ599Fr/fz9y5c9myRW9+YLPZOP/88/H7/WzYsEFnBQINotDhw4djtVpZs2YNlZWVunibNm2YOHEiVquVF154gdLSUjGcqclkolevXjz22GPYbDYeeughqqqqdOr1IUOGMHXqVKxWK7/73e/wer06xXm/fv246aabALj99tvxeDwEg0ExnXvuuVx77bV4PB5uueUW3fCzkUiE8847j9GjR1NTU8NDDz2kK6QAZ599Nj179qSmpibh2AHk5OSQmZlJJBJhx44dCfGePXuSn5+P2+3miy8SXYlGjRpFQUEBpaWlTW7/lltuoXv37mzfvp05c+YkxB966CF69uzJqlWrhCdYPDNmzKBLly4sXryYv//97wlxp9NJ+/btef3115tcf+TIkbRq1YqFCxfy0ksv6VTkRqORKVOmkJSUxKZNm1i+fLlQ6seLKlsKOaZ3Iz7++GPGjx9Pebm+I5fZbGbIkCFAgxJbU4Jrx89mszFo0CBUVWXz5s1CCa7Fk5KS6N+/PwDffPNNghI8OTmZPn36oKoqGzZsSLAWSUtLo6CgQMQ1L6r4eMeOHVFVlU2bNiVYOaSlpZGbmwvAtm3bEj53WloaWVlZxGIx9u7dmxDPyMgQ1iU7d+5MiHfs2JEOHToQDAZZtSqxT8OAAQPo3r07dXV1fPDBBwnx0aNH07t3b0pLS3nzzTcT4rfccgu9evVi+/btzJ49OyF+880306FDB7Zu3cq7774L6C0YrrzySlq1asWuXbtYvXo1BoNBN40YMYKkpCSKi4v59ttvxfz4gmYymSgvL6esrEynig+Hw9jtdgKBgLDdOBkrDZPJpEvYNpuNjIwM7Ha7iJvNZsLhMIFAgHA4jMViEb5Sfr9fFDtt/1rS2qPxFYq2j5otSUuhjcFtt9txOp3C3kQrVmazGavVSmZmJk6nk2AwSFVVle7qLhqNYrFYMBgMhEIh3G53QmPJYDCgqqpOea+tf6bmxyeffLJJX6rm8L0ovU83TrRgLF68mHvvvRePxwP87+QwGo107NgRgMOHD+P1enUnjtlsJj8/H4CysjJx4mjLWCwW2rdvD0BJSUmCOaHNZhPWH1o8vgWflJREmzZtUBSFQ4cOiR86IAzsNJO6srIysV3Nd8bhcJCeno6iKJSXlyckRIfDgdPpBBquYLSYdjJpJ284HKa+vj7hpNMSczgcxuPxJNy20bYXCoVEQm3s6KqqqrjMPtEEF++zo3n1xM+L/9yNnzc3brPZhDnf0aYTjdtsNmH50pJEo1Fx7LWWf0s8j0QiCUrzpl4fK9bUshaL5bS4dRZv9dGUtU5jGx3tt9zU7/v7nD9s2DCGDh16Qp9ZFgzJGYnm26QVH+CoCT3+FpZEIjlxfihrEInkpDAYDFgslh96NyQSyRFO+xH3JBKJRHJ6IAuGRCKRSJqFLBgSiUQiaRayYEgkEomkWciCIZFIJJJmIXtJSSSSMxLNpgUaxIyxWIxwOCw0QadjN2tNIOjz+fD7/fj9fvLz8zGZTOzdu5ddu3bpYj6fj4kTJ2I2m1m4cCFLly4V8/1+P8FgkA8//BCAP/3pT7zxxhsMHTqUN95445TsvywYEkkcXq+X6upqcUJqjyNGjMBsNrN+/Xo2btyYIJS68847MZlMrFixgq+//jrB1mXKlCkALFq0KCFutVp55JFHAJgzZw7ffPONEDLGYjFSU1N54oknAPjb3/7G5s2bUVVVKNlzc3PF+jNmzKC4uFiIFo1GI3l5eYwbN05sv6qqSmctkZeXxyWXXALAwoUL8Xq9unjbtm05++yzAfj888+JRCK6pJyZmSnGo3/33XcJBAK6oWZ79erFeeedRyQS4ZFHHkkYhnbMmDFcdtlllJeXc9ttt+kEgsFgkMsvv5wLLriAAwcOcP/99+tEc6qqctFFF9G/f3+qqqqYNWuW+C41bc6VV17JoEGDKCkpYebMmQkq/5tuuom+ffuyZ88eZs+eLY6bFh83bhzdunVj+/btvPXWW7q40WhkwoQJdOzYkU2bNrFgwQKRyLXp4YcfpnXr1ixevJjZs2cnqMenTZtGamoqixcvbtIFobq6GovFwpIlSygqKsJsNgtbF6PRyL333gvApk2bMJvN7N27l48++ogxY8a0wBmhRwr3msDv9xMIBHRKZlVVadOmDdFolJKSElwul84Tx2g00rVrV6LRKFu3bqWmpkaoPzU1bJ8+fYhGoxQVFYm4phJNTk5mwIABRKNRVqxYgcvl0g0un5mZSWFhIaqq8tlnnxEIBHSD0WdnZ9OzZ09UVRUndfxA9a1bt6Zr167EYjFWrlypU1Jrn619+/ZEIhHWr1+vWxegXbt2tGvXjmg0ypYtW8TJpJ04bdu2pU2bNoTDYXbv3q2z5TAYDOTm5pKRkUEoFOLgwYO6mMlkolWrVqSmphIKhURC02IGg4GMjAxsNhtut5sDBw4kJJX+/fuTlpbGvn37+OKLL8R8LTnddNNNtG7dmtWrV7NgwYKEpPXss8+SnZ3NokWLePvttxN+E9OnTyclJYV///vfLF68OCH+6quvYrPZmDNnDh9//LEupigKCxYsQFEUZsyYwbJlywCE6DApKYk333wTRVH4y1/+wurVq3Xq8qysLGbOnImiKPz5z39m48aN4ruJRqPk5uby/PPPo6oqDzzwAFu3btUVpK5du/L0008Ti8WYPHkyxcV6s2jNrE5VVe6//36qqqp08T59+jB+/Hixfa/Xq4v37duXiy++mEAgwPTp00WrXyM3N5f27dvj9/vZuHGjruXfUvnHZDKd0VYex4PmYhBftBo/f+CBB0QhOYHtS6V3c5k7dy6//vWviUQip2CvJJIfJ5rnk8lkEvYe8fYnSUlJwvqkqelYse+KN7YRiS+WzbHRaE68OetqFjhHS+It8VxrRJxKpNL7ODjrrLO45JJLcLlcustyq9VK//79MRqNFBcX4/F4hL+SyWTC4XDQs2dPDAYDJSUlBAIBjEajuHx0OBx07twZo9HI4cOHicViOsfQpKQkWrdujdFopL6+Xte6VhQFs9ksLLQ1Y8N4SwzN5lpRFGpqasTn0eI2m03nJdXYLdbpdJKWlgY0eGVpMWg4AZ1OJykpKYTDYfbu3auz7YhEImRlZZGVlYXP52Pbtm1EIhGdD09+fj6tWrWivr6eDRs2JNh+dOvWjdatW1NdXU1RUVGCF1W/fv3IycmhtraWXbt2YbVasdvt4rFVq1bYbLaE49L4czb1ujnLxL+Ov/KLn7RjdbJTc7fzXT5YzX08mXW0c8NkOn1SSXwLXNKyyCsMiUQikQiOdYUhu9VKJBKJpFnIgiGRSCSSZiELhkQikUiahSwYEolEImkWsmBIJBKJpFmcPn3hJBKJ5CdMJBLB7XZTX18vJo/Hw+jRowH48MMPKSoq0sUVReGdd94BYPz48cyfP59hw4Y1qRhvCWTBkEgkpxRVVVEUhVgsRlVVlVDZa0r77OxscnNz8fv9LF++XKfCDwaDDBkyhN69e1NRUcE//vEPXSwUCnHzzTczbNgw9u3bx1NPPaXTRxmNRm6++Wb69evHvn37mDt3rpivPf7iF7+gQ4cOFBcXs2zZMl3cZDIxYsQIsrKyKCkpEUp1TRyoqiodO3bEZDJRVVXFgQMH8Hg8uN1uPB6PSPh2u50vv/yS5cuX4/P58Pl8eL1efD4f06dPx2azMXPmTN5///2E4/f222+jKAqzZs1i6dKlOkGk0+nk1VdfRVVVAoEAhYWFpKWl8dVXX1FYWNji36XUYUh+ssRiMdGiy83NxWg0smPHDjZu3ChacHV1ddTX1/Pss89iNpt54YUXeO+99wC9rcXy5csBeO655/jggw90Ajy73c4nn3wCwGOPPcann36qWz8rK4uFCxcCcP/99/Pll1/q4nl5eSxYsACAO++8U3hRaULCbt26MWfOHABuvfVWduzYofucAwYM4B//+AcA11xzDQcOHNDFhw0bxnPPPQfAZZddlmANcuGFF/LYY4+J5z6fT3cML7vsMh588EGi0SidOnVKSOj33Xcf06ZNw+VykZ6envA9TJ06lUcffZSSkhLy8vIS4vfffz/XXXcdO3fu5IYbbhCCWC2pX3HFFfTt25e9e/cye/ZsIfbUkvrIkSNp164dBw4cELYs8XTr1o2kpCQqKysTjg2A1WoVAtQzhSeeeIKHHnrohNaV1iAnQTQaJRQKEY1GcTqdAFRWVlJfXy98pMLhMCaTib59+wJQVFRERUWFiIXDYVJTU7n00ksBeOONNzh06JCIhcNh8vLymDBhAgAPP/wwJSUlxGIxYQnQp08ffvvb3wINrpSaGlyL9+vXjxtuuAGAP//5z4TDYV28b9++XHTRRQC88MILOsWu0WikV69eDBkyhEgkwjvvvJNgsNatWze6d+9OKBTiyy+/1LXATCYT7dq1o3Xr1oRCIYqLixNaaSkpKdhsNmKxGKFQSMRPxOZAVVW8Xq9I5nV1dfTo0YOUlBS2b9/Oxx9/rEv2dXV1PP/887Rr147Zs2eL4+d2u8U2Dx48SE5ODlOnThVGf9CgGnY4HMybNw+j0ciiRYv4/PPPE1TX48ePJxKJsGLFCnbt2iW8umKxGEajkVGjRhEKhdi0aRPl5eViPS3esWNHwuEwhw4dwufz6cwHAcxms/itNEZT8ptMJkKhkCgmmhrbbrfTrl07zGYzxcXFRCIRUWw0n66+fftiNptZuXIl4XBYF8/Pz+fcc8/FbDbz1ltvEY1GdSr4bt26MXjwYAKBAO+++26CWj0tLY3U1FR8Ph8HDhwQyVebNJdZv9+v8zg7GcxmMxaLBYvFkvA8ftIsTWw2GwaDAVVVE65QsrKycDqdhEIh6urqdOeFoij07NmT1NRUKisrKSsrIykpSUxOp5PU1FTMZvN3quxPNh4/z+l0inx1vMiCcRwUFRVx++23s337dp2JmsPh4O6770ZRFN59912+/fZb3XppaWlMnDgRRVF44403EgzesrOzufPOOwF45ZVXKC0tFTFFUejQoQO33XYbALNnz6a2tlZnQ5Gfn8/ll19OLBZj5syZuN1uXcLq2rUro0ePRlVVZsyYkZBYunXrxrBhw1BVlVdeeSXhcxcUFNC/f39CoRDvvvtuQrxnz57069ePUCgkWrvxnHfeeQwbNoy6ujqmT5+eEL/xxhu54IILKCkp4U9/+pOYr514999/Pz//+c/ZsWMHDzzwQMJJ++STT3L22Wfz8ccfc9999yUklt///ve0a9eO1atXM3/+fABdUigsLMRsNlNaWkpZWZlIxtFoVBhEtlQL0mQyiSQVn5ziXx/teXNjJpNJmFtq+x/fADnavOOdHz+vObnCYrEIj6d4T6nven08yzb12mKxYLVaxXE6Ha3NzxRkwTgOXn/9de68884Ex03NnwYQl7taS047htqPtLETrPYYv+yJcDRvn8bzjrasNmlXLvGtRC1BK4oiWqDaZ4rFYuJ1OBzG6/UKryfND0rzhjpdsNlswvAufnI4HM2ad6z58YmpqaT+Y01WWnGNLySxWEyXtLXfn+TMRRaM05jGNuKN58Un9jMBrXDEt9qb8/q7lgmHw5jN5mYlfavVesYcL4nkdEO61Z7GxLfkfwwYDAZxv1gikfy4kNePEolEImkWsmBIJBKJpFnIgiGRSCSSZiH/w5BIJJLTDL/fj8vlwuPx0LVrVwBWrFjBtm3bcLlc1NbW4nK5sNvtohv7jTfeyCeffMLQoUNS4ADRAAAgAElEQVSbHHe+JZAFQyKRnJaoqkowGBQdKfx+P/v378fv9xMIBMTUr18/cnNzqaqqYtWqVQnWH7179yYzMxOXy8W+fft0glOTyUROTg42m41AIIDX69Xpf05UYBoOh3G5XLhcLjp37ozBYODrr79m/fr1uoRfX1/PvHnzUBSFP/7xj7z66qu4XC6CwSAAKSkp1NXVAfDyyy/z9ttvAw3dxlNSUsjNzeWzzz7D7XZjMBjo3bs3NpuNNWvWMGTIkJb9QpAFQyI5LsrKyoTpW7wGplOnTkCDC4DX69X1fjOZTOTm5gJQU1NDIBBIiGdlZQFQV1cnlNbx8ZSUFAA8Ho/QxcQrxZOTkwGorq4WIjtNLW61WmnVqhUAxcXFQj+hLZOcnEy7du0A2LJli1Bfa/GsrCw6duwIwMqVK3WxaDRK27Zt6datG6FQiDlz5uiSud/vZ+TIkVx44YXU1NRwzz336OKBQIC7776ba665hm3btjF69GhREEKhENDgfDB27Fg2btwo3BDiGTduHAMHDmT37t385S9/SYg//vjjDBs2jDVr1vDggw8mxDXDvvfff5+77rorIf7111/Tv39/Zs2axb333pvgYrBy5Uo6duzIP//5T6ZOnYrL5cLr9Yr19+/fj8ViYdasWbz00ksAGI1GkpKSsNlsPPPMMwSDQTZs2EB6ejoZGRmoqip0TgUFBXg8HlE4AHHsKioqGDlyZMI+9+nT55QUDKnDkPykCIVC1NTUJEw33HADFouFBQsW8O9//5uamhpqa2upqanB5XJRWVmJwWDgzjvvZObMmbpt2u124a9000038cYbb+ji2dnZ7N27F7/fzw033CC8pDRycnKYPn06Pp+Pp556ip07d+rimZmZXHbZZfj9fj7++GNcLpcunpqaysCBAzEYDKxatUqXrLT3Hzp0KIqi8PHHHxMIBHTx9u3bM2zYMAwGA++8806CS8BZZ53FyJEjURSFl19+OeGY9urVi4EDB+Lz+YTKvvHny8rKElcI8D+tkVZ8TlcURRHCTEVRhC1KvC1Hbm4udrsdt9tNdXW1sDoJhUKi6DUHu91OcnKymJxO53G9jp/ndDoxmU7sekAK91oYVVUJh8PCcTMYDKKqqq6VVlVVJWKBQIDk5GTGjBkDwNy5cykpKSEQCIhlOnbsyG9+8xsA7rnnHuH5o1lnDBo0SFhqTJw4EZfLJTxtDAYDQ4YMEa2v3/3ud4RCIZ1X1JAhQ7j66quBBi+qeOW3wWBg8ODBXHDBBYRCIV588cUEL6mBAwdSWFhIIBDggw8+EPYUmrq5S5cu5OXlEQwG2bFjR4JnT3p6Og6HQ3hzaeZxJ+MlpSX72tpaBgwYQGpqKuvXr2fBggUJBWHx4sW0b9+ep59+uslW5kcffURSUhLz5s3jgw8+ECpxTcH885//nHA4zP79+zl8+LDOXC8cDpOWlobf76eqqgqv10swGBRJo7FrwPFgNpuxWq2kpaVht9vF1Ul8MjCbzWRmZqKqKhUVFUJxr53bJpOJ5ORkYrEYLpdLtz+xWAyTyYTVakVVVTweT4JPlsFgwGQyEYvFCAaDOp8szcfKbrcLpXdj6w7NtkPT52jPm5r3XfGjzVMUpVn2J6c6bjabj5rEjzUvKSnphBN8SyOFe8fBihUrmDRpEqWlpeKSOxaLYbVaufbaazEYDHz44Yfs27dPt156ejqTJk3CYDDw+uuvJ8Tbtm3LlClTMBqNTJs2TXhNaZe13bt3Jzs7G4PBwNq1a6murhYnqaaeXrBgAaqq8t///pe6ujrROlNVlZKSEmHuN3fuXPx+v+62xFdffUV5eTmxWIwnn3wyoVU3fPhwvvrqKwKBAFOnTk04LiNHjmTUqFG43W6effbZhPjFF1/MueeeS1VVlXA+jeeqq67iZz/7GSUlJfz1r38V87WCdPPNNzNgwAD27t3Lq6++itFoFJPBYOC6666jQ4cOrF+/nnnz5iUk4VGjRuF0OtmzZw/btm3DZDKJFqCqqvTu3ZtQKJTQutbQivnR0Bxkm7IKsdvtGI1GWrVqRfv27U/YdqTxPKlYl5xuyCuMRixYsICJEyfqLJzhf66lsVgMv9+v85OKT8yS7weDwSBa39ofgNo9YS35xo8b0Jzn37WcTOCSnwLyltT3iHZFoF2ZaCZ9jec1JxZvEthc48Hvip3I8vGuuYCuUJ7M6+Nd12KxiOR9uly+SyQ/NuQtqe8R7T8BmdAkEsmPDan0lkgkEkmzkAVDIpFIJM1C3jeRSCSS05BYLIbP5xNDrW7YsIH9+/frlOIOh4MHHngAgPHjx7Ny5UoGDhzI66+/fkr2SRYMiURyRhAOh6mursbj8eimfv360aZNGyoqKli9erVOH2QymejVqxfp6enU1dVx6NChhDG9MzIyMJvNoufjieqDmkLTHCmKwp49e9i1a5cu4ft8PjGG/JNPPsm7774r4nV1dWRlZVFeXg7AY489xsKFC8W2FUWhe/fuXH755WKdpKQkXC4X69atY9CgQS3yGeKRBUMikbQokUgEr9crEnpaWhqtW7fG6/Xyn//8R8x3u914PB7Gjh3LsGHD2LdvH3fddVdCQfjrX//K9ddfz9q1axk+fHjC+z3wwAOcffbZbN68mUcffTQh/s4773DRRRfx4YcfcsMNNyTEV61axdChQ5kzZw6//vWvAXTC1DVr1tC9e3dmz57N448/nlBwFi1aRE5ODm+99RYvvPCCriD4/X68Xi8Oh4MXX3yR559/XvfeDoeDcePGUV9fz6FDhzAYDGRnZ5Obmyt6KN58883U1tZSWlpKp06dcLvduN1uAoEA27Zto0ePHgmfqbCw8JQUDNmtViKJIxwOC0sQTUXucrm48cYbAZg3bx5r1qzRrWOxWIQYcc6cOTT+3SUnJ/Pkk08CMGvWLLZs2aKLZ2VlCRX/jBkz2L17N4DQ97Ru3ZoJEyYQDAZ56aWXOHjwoFBZK4pCp06dmDhxIlarlWeeeYaKigrgf128+/Tpw7333gvApEmTqK6u1mmHhg4dyn333QfA9ddfj9fr1flFjR49Wqx//vnni+1qjgfXXHMN9913H3V1dbRp0yZBHDl16lQeffRRiouL6dChgy5mMpm49tprGTx4MMXFxbz55puida/5KTkcDvG9NNZHHS+KouiSvaaST05OJhKJUF9frxOMai4KmZmZlJSUsHXrVt3Vh6qq/P73v6d169YsW7aMTz75RCjRtfHNu3btisfj4dChQ1RXV+Pz+XC73dTV1R3TBUBRFFJTU0lLSyM9PZ309HTd8+96bTabT/QYSR2G5KeDqqr4/X6dNcjgwYOx2+18+eWX/Oc//9HFamtrWbFiBSkpKfzhD39oUsleVFSE1+tl+vTpwgsq3npjypQphEIh3n//fXbs2KHTkVitVn7+858TDAZZv349VVVVurjZbKZNmzaEQiGqqqoSvJxOFC2xaeaDFouF0tJSotGoTmeTnZ1Nnz59sFqtrFixQsS1qaCggPPOO08Y6DW2jenZsye9evWitraWpUuXCi+lcDhMIBAgHA7j8/malextNhupqalNTikpKUeNmc1mgsGgMC6Md7Rt6vmJxDUH2ePBZDI1mcyPlei15ykpKRiNxuN+z5NFFowWRrNd1n5Mmg1H586dgYbkUlZWJmJ+v5/09HSuv/56AJ577jlhRqdN3bt35+mnnwbgoosuYteuXcK11GAwcOGFFzJr1iwAhg4dSnV1tU5Yd/HFF/Pkk08SjUYZOXIkfr9fJAyDwcDYsWO55557iEQiXH755To3VEVRGDNmDNdeey0ej4dJkybpWlFGo5HLL7+cq6++mkAgwMMPPyw8fDRrk6uvvpoLL7yQiooKnnvuuQRHz7Fjx9KvXz8qKiqYP39+goX08OHD6dChg86iOn6Z3r17k5GRwd69e/n4448TvKKee+45zjrrLF577TXRGo9nxYoVZGZm8vLLL/PSSy8JGw6tpTlgwAD8fj8HDhygsrJS3ErQfJOai9lsPqr/0fH6JR0rZjKZiEQiwuBO87VqPDU1/3iW1eZr/lTHwuFwHDWhf1fC16bTeSx4zUvrWEXGYrHoEn9SUtIZ5w4gC8ZxsHbtWn7/+9+zf/9+YTIWiUQwm81ccsklRKNRli9fTmlpqW49h8PBiBEjiEajFBUVJTiKOhwOunfvTjQaZffu3cJETpssFgtpaWk6g7jGBnBGo5FoNCrsq08HtJMhNTWVzMxMDAYDe/bs0am1Ac455xz69euHy+VKcHMF+O1vf8v555/P9u3bmTJlSkJ8/vz5DB8+nH/9619MmjQJQFh3WK1WRo4cidlsZt++fezbt08kOp/Pd8xkpyiKaNFlZGSIkz3+efzrtLQ0HA5Hk4ncbDaL2xA/Nho7sGrFRVVVUlJSSElJOeFbIJLTizOmYCiKsggYDixTVfWquPkXA8/ToBt5XlXVGd+1rRMtGHPnzuWOO+4QTrFaC99oNJKZmYnRaMTn8xGNRnUGeVrLwmg0EgwGhaOodp9USyrathqb6zX1On5+/C2C7/t1NBrVXQ0da4q/6vL7/fh8Pl3M5/Md1QDwZEhJSTlmom/qdUZGBikpKT/aJC+RnAhnUsE4D3ACt2oFQ1EUE7AdGAVUA+uB81VVLTvWtuR/GKcvqqoSCoWOuwjZbLYmi0BaWpq0YpFIWogzxktKVdX/KooystHss4FtqqoeBFAU5T3gEmDW97x7khZCURSsVqsY50EikZwZNOtaXFGUcxVFWaQoyiFFUVRFUW5rYpm7FEXZpyhKQFGUrxRFSewwfWLkAgfjXpcAbVto2xKJRCJpJs29wnACW4A5RyYdiqJcC/wNuAv48sjjR4qi9FBV9cCRZbY0Xu8IY7Srh6PQVBeD0+c+mkQikXwP1NTUUFVVhcvlEpPRaOTKK68EYNq0aWzcuJGCggIeeeSRU7IPzSoYqqp+CHwIoCjKa00s8jvgNVVVtdtEkxRFuQiYCDx4ZBu9TnAfDwF5ca/bAfubWlBRlPHAeGgYp1gikfx48Pl87N69G5fLRV1dnUiaY8eOpXPnzuzbt4/58+eL253aNGrUKHJycqioqGDbtm2iA4o25eXlYbPZRK9IrXNKS1NbW0t5ebku4Xu9Xm6//XYA/vnPf7Js2TJd3Gq18s033wBw2223sXjxYt02O3XqJApGUVER33zzDXa7vcX3XeOk/8NQFMUCFAKNx+VcAvzsZLcPFAE9FUXJA6qAXwIXNLWgqqozgZnQ8Kd3C7y3RCJpJqqqim7o8eNea49+v58dO3bovJJcLhc9evSgc+fOlJaW8o9//ENYgni9Xnw+H9dddx0DBw5k9+7duuF9NZYvX0737t0pLi7mrbfeSojff//99O/fn/Xr1ze5/muvvcagQYNYuHAhf/zjHwHEOOcWi4Uvv/ySHj16MG/ePJ555pmEgvT666+TnZ3N4sWLmTdvni7hu1wuiouLsdlsTJ06lenTp+veW1EURo4cSSQS4csvv2TlypUkJSXhcDjIysoiOTmZ+fPnEwwG6dKlC7feeqvofan1aJw8eTLBYJCMjAzOOeccvF4v7733Hr/85S9b6JuN29/j7SWlKIoHuEdV1deOvM6l4SpghKqqn8ct9whwo6qqBcex7aVAXyAJqAGuVlV1taIolwJ/oeE/l7+pqvr379qW7CUl+SHQdAraaIqaniY7OxuA8vJy6uvriUQiBINBvF4v4XCYvLw8fD4fW7Zsoby8XNdLLBaL0bZtW3w+H9u3b6e2tpZgMCgsOjSleCwW4+DBgyKmvbfZbCYjI4NYLEZZWRnhcFhn72EymXA6ncRiMaqrq8Voj1rcYDBgsViIxWK43W6dbUj882PZXJxKNP1HSynkm0JL0PGjYEJDwu/QoQMOh4Pq6mrKy8t1cVVVsdvtomC29D6aTKaEKyaLxcLvfvc7JkyYcELb/L56STWuPEoT8469AVU92pXDYmBxUzGJ5Hjwer1UVlZSX1+P2+2mvr6e+vp6Lr/8cmw2G59++ikfffSRiNfW1lJbW8usWbPwer08//zz/Oc//xHJUlOCT5kyBb/fz0cffcTOnTt172k0GunWrRs+n4/S0tITspg4FhaLhXbt2mEwGETBiCc5OZkePXoIUWVjHUx2djYFBQUYjUa2b99OKBTSxTt16sSIESMwGo3Mnj07oTD06dOHSy65BJPJxMsvvyzGVNdayn369KF///4oisKmTZuE0E9Td6elpQnho6Zbau5j/K0j7QonXmAYPx3P/BPZRmZmJt26ddMl7qaen+zreMHo920d0hJXGBbAB1yvquqCuOVeBHqpqjqi5Xa3+ZzuVxixWEwI2Xw+H0ajkbZtGzp/ffHFF9TU1IgTV1EU2rZty9ChQwH48MMPhThQa8nk5eUxYMAAAD766COi0agunp+fT8+ePVFVlSVLlojtavEOHTrQtWtXAoEAS5cuFUreYDCIqqp06tSJTp06AbBt2zbMZrO416soCvn5+eTk5OD3+4VBW/yUl5dHZmYmPp+PvXv3JliTtG3blpSUFJFU4/dNURRat26Nw+GgsrKSjRs3ikSvJf3bbruNtm3bsmzZMv72t79RX19PXV2deHzllVdISUnh9ddfb3KsgNGjRxMKhdixYweHDx8GOC41vdlsxm63C2tsTQlusViw2WwUFBTgcDhwuVyEw2GsVis2mw2bzUZKSgqDBg3C4XBQWlpKKBTC4XCIKSMjg4EDB+JwODh48CCBQEBnwW21WsnPzwfg4MGDut+NoijYbDZycnIAKCkpEb8NbRm73U5WVhYApaWlqKqaENe6P2vGhlrMZDL9YJ5HklNDiwr3GheMI/PWAhtVVR0fN28X8G9VVR88ob0+SU60YHi9XsrKyoRYLBQKEQgEUFVVtJJWrVrF/v37darm1NRUfvvb32IwGPi///s/Nm3aJFTOPp+Prl27Mn/+fAAGDx5MUVGR7n1HjRrFsmXLAOjSpQt79uzRxceOHcvs2bPx+XwUFhZSXV2ti59zzjncfvvt+Hw+7rvvvoRL365du9KrVy98Ph+ffPJJwue2WCzCffRESEpKIi0tDUVRKCkpSYj36dOHgoIC3G43H3/8cUL8+uuvZ9CgQezbt4+//z3xjuPTTz9Nv379WLJkSZP3oYcMGYLRaOTgwYOUlZWJ2yrfhcPhICUlhczMTCEC1Fq92mPjeU6nU7Si4z2pJJIfAyddMBRFcQJdjrxcBTwNLAJqVFU9cKRb7VwautOuBCYAtwM9VVUtPvmPcPycaMF45ZVXGDdu3CnYI0SrMN6aWpuMRqMYaEWLq6oq3D5PBJPJhM1mw2q1kpSUREpKirifqs3XWroZGRnk5ORgsVioqKjQXf4CpKWlkZKSgsfjYfv27YTDYYLBoLhEdzqdWK1W3G43JSUlwq1Ui5vNZlRVFdbO8fHjNfiLP56aJUh6evp3JvrG82TLWCJJpCX+wxgI/Dfu9WNHpteB21RVfUdRlEzgYSCHBs3GxT9UsTgZhg0bxm9+8xvKy8t1A6VYLBa6du2Kqqq4XC5hSKh5PWmJPn6cAe2xufMaxwwGg2jBxj82Na+pxzMlGWouoJoTqPa88Tzt1oiW8B0OxxnnBCqRnMmcVl5SLcnp/h+GRCKRnI4c6wpD2nRKJBKJpFmcVuaDEolEIvluVFUVwkZN47Ny5UqKi4vJyMjgoosuOiXvKwuGRCI5IwgEAuzdu1doY7Tpoosu4qyzzuLAgQMsWLBADKylTUOHDqV169bU1dVx4MABXcxut2Oz2b73/8Ki0ajo9q2Nc15UVMS2bdt01icAzz//PNAwyNgHH3wg4tFolC5duogx4B955BGWL1/OqFGjZMGQSCRnNrFYjPLycjGOujb17duXvn37UlZWxpQpUxIKwtNPP80tt9zCpk2bGDx4cMJ2Z8+eTU5ODt988w2TJ09OiH/wwQdcfPHFLF++nCuuuCIh/vnnnzN8+HAWLFjAvffem1BwXn31Vbp06cLSpUt54403EgrOXXfdRXp6Olu2bGHVqlUJXlevvvoqVquVJ598kpdeeom6ujrcbjfQ0NNvz549RCIRpk2bxr///W+xX3a7nczMTMaMGUM4HKauro7c3Fw6deqEzWbDYrHgdDr529/+Rjgcpl+/fvTs2ROz2cxnn33GiBEtL4GTf3pLJKch2iBTgUCASCRCZmYmAN9++y01NTVCUAkNGpjCwkIAvv76a+rr63Wiw9TUVCHqXLt2LV6vVxfPzMykX79+QINoVNMdabRu3Zq+ffsCsHTpUt2Qt+FwmJycHAYOHEgkEuH3v/99QsK/9dZbmTx5MgcOHKBjx44Jn/W6665j7NixlJSUMG3aNN245QaDgdzcXOx2O3V1dRw+fFioqzXh6/F0y44f5157rY0bH4vFmhzOVxt+1u/34/F4dEMnQ4Mo1mw2U1tbq9NHaV3mrVarUKB/HyiKwhNPPCF8sU5g/TNjxL2WRBYMyYkSiUSor68XLeGamhpSUlLw+/3s3buX0tJS3WiAgUCAAQMGEIlE2Lp1K8XFxTrbiGg0yvDhwwmHw2zYsIGDBw8SjUaFUZ/RaGTgwIGEw2G2bt1KdXW1LmGbTCbatGlDJBKhqqoqIanFDx9cVVWVkJgcDgddunTBZDKxbdu2BGuQzMxMBg4ciNFoZPny5Qnx/Px8zjvvPIxGI3Pnzk2wDjnrrLMoLCzE7XbzySef6LyUtK7ix5ssrVYrTqeTpKQkkpKSmnweP08Tnjbupn60ruvHemzusppXGDQUeL/fL4633W7HYrHouubHd9Fvan5zp+9a/2S708uCcYahjaGtnWSKomA2m0lKSgIQrZx4+wzNXRMQJ3x8XNOLxLeM4sWBmsWG2+1OeK5pTuJbfZpjptY607yDFEUR1hXx45G3atWKjIwMotEoZWVlOsO6WCxG+/btSU9Pp66ujh07duhisViM3r17k5mZyaFDh1i5cqVOo+F2u7n44otJTk5mzZo1vP/++8JyRUvqo0ePxmKx8PXXX7N27Vrhoqqd9Pn5+QSDQSorK1t8zHFFUUhPTxet1GAwqBs7XdP4mM1mqqqq8Pv9ugTgcDgoKCjAbDZTWVlJNBoVCTIWi2E0GsnKyiISiVBeXq4zJtT0PMnJyUSjUaqrqwmHw7pjazAYsFqtRKNR8X3HxwExtnsgEBAxzWJEE4V+V4I/WrJv/NzhcMghd39AZME4STRVs9PpBKC4uFic2NpksVjEH01vv/02e/bs0cVzcnL405/+BMCECRPYunWriPl8PgYNGiSsQzp37szevXt1+3DZZZexcOFCANq0aUN5ebkufv755zNp0iTq6+sZN25cQiuwY8eOdOnShfr6etauXdsix6Ul0ZTXkUiE0tLShHjfvn1JSUmhpKSEffv2nfD72Gw24fCqFUGLxUK/fv3IysrC7XZTUVEhBJJOpxOn08kFF1xAZmYmNTU1VFdXC2M9LdF17twZq9WKqqpYLBbsdrsUFUrOSGTBOA6Kioq488472blzp7hloKoqDoeDcePGoaoqixcvZv/+/br1UlJSuO6661BVlQ8++ICysjJh+aHdMrjwwgtRVZVVq1bhdrt1rfDU1FS6desGwO7du4lEIkIBHQgExGWw1upvDvFjZ6emppKbm4vT6aS0tFQkSu1+cffu3Rk8eDBWq5VFixaJy16LxYLBYOBnP/sZZ599NrW1tcyePVt3H1dVVXr27EmHDh2ora3lv//9r66FG4vFyM/PJy0tTVxBxNt/x2IxMjIyMJvNeDweysvLdfFIJCL+4NMMD51Op3A9TUtLIz09XbRyjzbZ7fZTMjCORPJjQhaM4+D1119n/PjxTfo9Wa1WFEUR4wwoiiLu1xoMBuEFBSSsezyTtr7ZbCY5OZmUlBSSk5N1z5ua1/i5bOVKJJLjRRYMiUQikTQLaQ0ikUgkkpNGFgyJRCKRNAvZd00ikZyRBAIB6urqRLfcYDCIy+USFv9natdcVVXxeDy4XC68Xq/oDPPZZ5+xbds26urqxGS1WoV1yB133MEnn3zCkCFDRI/LlubMPKISieSMRTPO05JeRkYGbdq0ob6+nnfeeUcMq6tNN954I6NGjWLDhg1cc801wlpD0yndd999DBs2jO3bt/Pwww+L9zEajVgsFu677z4GDhzI9u3beeWVV3Q9BK1WK1dddRX5+fkUFxezcuXKhHGzCwsLSUlJoba2lvLy8oSxtZOSkoRYTlEU0Q1f6zbfq1cvrFYrW7ZsYfPmzfh8PrxeLx6PB5/Px8yZMzGZTDzzzDO88cYbuN1uoX9JSkqiuroak8nEzJkzefPNN4EG3VVqaqoYNhkaRtWMRCJCtX8qkH96SyQ/IYLBoK47czQaFd26AcrKynTCvmg0SlJSkhhvfvPmzbp4KBQiIyODgoICPB4P06ZN09mC1NfXM2DAAIYNG0ZVVRVTpkxJsB7p06cPXbp0obq6ms8++0zM13oNGgyGJi07forEW5k0fox/PnnyZO6+++4TfY+THnFPIpHQ0DqORCIJowI2NQUCAbxeL16vF6PRSDAYpKysjKqqKmFNrY0b36FDB4LBIDt37qSqqkoMfxsOh1EUhdzcXILBICUlJfj9ftECVVUVk8lEWloaAC6XK8GGw2QykZ6eDkBNTY2ws9Awm82iYNTU1CR4M1ksFlJSUgASbEugQQV+LD+nNWvWMGPGjIT5Wku9urqaWCwmnGWTk5PF2OmaODJeJNnUvPgu7Y2/r6PRVEyzMdEU+YFAgOzsbKxWK+Xl5Xz77bfCDkYbCfKSSy4hOTmZoqIi1q5dS1JSkjAmdDgc9O7dG4PBgNfrJRqNYjKZEnRGTT0/Vuy7lsvLyzvq5z4ZZMGQHDday1P7kUYiEWw2GzabjXA4TFlZWUI8NzeXjIwMPB4PmzdvFjEtKfbq1Ys2bdpw+Dy58/AAAA5lSURBVPBhPv/8czFfM20bMWIE2dnZfPvtt3z66ae6WDgcZsiQISQnJ7N3717WrVsn4toyvXr1wmKxcPDgQSGM1KZoNEpubi6qqlJZWUl1dXXCCWkymYTh3amgVatWWK1Wamtr8fl8wjrEaDRit9tp164dVqsVk8mE1+vFbDYLDZDT6RTmg5s2bcLj8QiBoiZy7NGjBwDbt28nEAjodD/Jycni1oZ2bBrHc3JyANi/f7/OlsZoNNK6dWvy8vJwOByYzWbS0tISknvjRP9DWIqfagYMGMCECRN+6N04pciC0YhgMMjBgwfxeDwiWYRCIRRF4ZxzzgEaHD2Li4sJBoPCYM7pdHL77bcD8NJLL7Fjxw4RCwaD5OXl8dRTTwH/swbRYqFQiAEDBjBv3jwACgsL2b59u+4y/OKLL+b9998HoFOnTgn2GVdffTVz584FGtxFNTW41oq69NJLueeee/B6vVxxxRU6TylVVenfvz+FhYW4XC4WLFigi0GDQV1WVhahUIg9e/YkHLeUlBSSkpIIhUI6x04Ni8WC0Wg8Za6d//jHP44Z//TTT7FYLCiKQjAYTIjbbDbS0tKIRCJUVFQA6ESU119/PRkZGaxfv56ioiLdfXC73c6UKVNITU1l7dq1bNmyRSRGTWU+btw47HY7u3btoqamRlihaMk0Pz8fQCRjieR0RP6H0YhXX31VJP7GpKWlYTabcbvdCS1Nq9XKgAEDMJvNbN26lbq6Op3BXHp6OqNHj8ZsNvPFF19QX1+PyWQSnkZt2rRhzJgxmM1m4RhqMBhECzolJYXOnTvj9XopKirC6/WKmHbbQrvsba51SDzabQeHw4HH48FsNov9MxqNtGnThtzcXKLRKLt27RKfS/uMOTk5ZGdnEw6H2b9/v4hrreQ2bdqQkZEhrkAa33PNysoiOTmZSCSCy+VKMDfUEq9mgqfdzrBarSLZJyUliZa1zWYTMZvNhtPpFBbWTan4JRJJA1LpfRxs2bKFl156SbSS451dW7VqRTgcxuVyCX8nzUNfswvREngoFNIl9GPNb853YDAYRGu0OVP8rYDmLCs9liQSCciCcdqj3fZqqpBoSV3zsZJIJJJTiewldZqj/bFpt9t/6F2RSCSSoyLvQ0gkEomkWcgrDIlEIvkRUFdXR01NDQaDQfS6a2lkwZBIJKcl4XBYaE6SkpLw+Xx89dVXeDweYa3h9XoZMWIEvXr1orKyknfeeUfXg85qtTJw4EDatWtHfX09u3btSohnZGRgsVi+18/l8Xhwu914PB4KCgowGo1s2rSJzZs362Jer5dp06ahKArTp0/n/fff18UNBgMbN27E5/Nxxx138OGHHzJo0CD+9a9/0b59+xbfd1kwJBLJCaP1EtQSrpbw4hN6ly5dGDx4MMFgkEcffVTM15a59tprufXWW6moqKCwsFDM1/Q6zz77LJMnT6akpIRzzz03YR+eeuopUlNT2bRpE5MmTUqIz5o1i2uuuYYvv/ySsWPHJsQXLlzIZZddxuLFi7niiisSCsrbb7/N4MGDWbJkCY8//nhC/KmnnqJjx46sXr2auXPnioTudrupr69n1qxZOJ1OXnzxRV588cWE4ZOfeeYZABYtWsTKlSt1MaPRyLp16wgEAhQXF+NyuUTvTK1npqbi11i3bh3z5s3jj3/843F8k81D9pKSSH5gVFXViTjjHxvP0+xG/H6/6M4NkJ2djcFg4MCBA3g8Hp2SPikpicGDB6MoCp9++inV1dU6pXzbtm259tprMRgMPPPMM1RUVOh67Q0YMIApU6agKAqXXXYZlZWVun365S9/ydSpUwkGg5xzzjkJwszzzjuPq666Cq/Xy4MPPii0R5rGpnPnznTs2BGPx8OGDRvEMVFVVYy/rqoqfr8fn88nvKxOBY1HvVQUBYvFIuw8Gos+VVUlMzMTq9WK1+vF5XLpRLHHi9VqFePJJyUlCXuU+HnNeV1QUEDHjh1P9BjIbrU/VuJ/nJqWIhgMijHAtclkMmGz2QBEKyX+pLTb7SQnJ6OqKmVlZbp1Y7EYqampQgm9Z88e3Xjd0WiUnJwcWrduTSAQ4JtvvkkY07tr1660bduW+vp6Vq1apVs3FotRWFhI+/btqaioYNmyZbpYLBbj/PPPJz8/n5KSEpYtWyZEg9o0cuRIsrKy2L9/P+vWrdPteywWo3fv3tjtdsrKytizZ49onWnv0759ewwGA9XV1VRUVOj2LxqNkpaWRiwWo76+ntraWuFEqnkKZWZmEolEOHz4MNXV1ULlryXdzMxMgsEgNTU1+Hw+MWa7th8/NeJFldrzk5lnNBp137f2+278OzyV86PRKBaLpdlJvfHr02XMedmt9jiorKzk5ZdfZtu2bcIHSbvk/tWvfkUkEuH9999n9+7dOq8hp9PJjTfeSDQaZcGCBRw4cECXcDIyMrjiiitEvKKiQiREVVVp1aoVF154IdFolIULF4qWCjQUhfz8fK666iosFgsvvPACdXV1uv0eNGgQ9913HxaLhVtuuQWfz6eL/+IXv+DPf/4zFouFLl26JCSp3/72t/y///f/8Pv9wpk0nocffpjHH3+c6upq4c8fzwMPPMBtt93G7t27ufTSSxPit956K+eccw7ffvst06ZNS4iPGDGC9u3bc/DgQVasWJEQz83NxWq1Ul9f36T1yA9Nbm4uNpsNl8tFTU1NQvzss8/GarWyefNm9u7dK6xSzGYzNpuNiRMnYrVa+fzzz9m/f7+wHtFU7BMmTMBqtbJixQrKy8ux2+2ipZ6amsqoUaOIxWJs3rwZr9crVPJmsxm73U52djaxWEz8LoxGI4qiNJn8jpV4Gz8HjjvBaxYtkjMPeYXRiH/+85/ccccdp2CP/kdjWwqDwYDJZCI5ORmj0YjX6xUno1Z0NEKh0Cm5HFcUBavVitlsJhaL6aw5tHgsFhMt65aym7bZbJjNZtHa0kz1tCSjJc3k5GQcDgeKohAKhXSWzkajkczMTBwOB5FIhPr6ejFfuwLJz88nJSUFt9tNeXl5whXKgAEDSE1NpaysjL179wpjP+37GTt2LKmpqWzbto1vv/0Wu90uEqDVamXo0KGYzWYqKytxu926e9xa8pdJUnImIG9JHQcHDx5k8+bNCT7z3/W6ucu2xCWndm86/j7y0aaTjYdCIVRV1SXIxi3Ipl43J2YymWQSlUhOM+QtqeMgLy/vlHnJtxRaEdL+k5BIJJLvgx/+HxaJRCKRnBHIgiGRSCSSZiELhkQikUiahSwYEolEImkWsmBIJBKJpFnIgiGRSCSSZiELhkQikUiahSwYEolEImkWP1qlt6IolUDxD70fpwFZQNUPvROnEfJ4/A95LPTI49FAvqqqrZoK/GgLhqQBRVHWH03m/1NEHo//IY+FHnk8vht5S0oikUgkzUIWDIlEIpE0C1kwfvzM/KF34DRDHo//IY+FHnk8vgP5H4ZEIpFImoW8wpBIJBJJs5AFQyKRSCTNQhYMiUQikTQLWTDOMBRFeVBRlHWKotQrilKpKMpiRVF6NVpGURRlqqIopYqi+BVFWaEoSs9Gy6QrijJXUZS6I9NcRVHSvt9P07IoivJHRVFURVFeiJv3kzoWiqLkKIry+pHfRkBRlG2KooyIi/9kjoeiKEZFUR5XFGXfkWOxT1GUJxRFMcUt85M5Hi2CqqpyOoMm4BPgV0AvoDfwHnAYyIhbZgrgBq48stx8oBRIjlvmI2Ar8DNg6JHni3/oz3cSx2UIsA/YCLzwUzwWQBqwl//f3v2EyFFEcRz/PPEQNaIIhoAgRtQY8bAXhcUEMeJJIiqIKOhNhES8igYhF4OiJi7+OQiCUQ8RPHgIHjyIijEIASORKAHNRTB/0GBQIpqlPFQt27ZLnDgLu2O/LxRTf94007/p6ff6VXUPb+FmrMHtWDdQPZ7Cz9iEq3AXTuLpIeqxKJou9QfIMuYXyErMYlNrB37E1o7NBe1H8Whrr0PBLR2b9a1v7VLv03/Q4BJ8h434eM5hDE0LbMfes4wPTY892NXr24U9Q9RjMUqmpCafi9XU4snWXoPV+HDOoJRyGp+qERI1SvoVn3e2sxe/dWwmidfxXinlo17/0LS4G19ExLsRcTwiDkTEYxERbXxoenyG2yLieoiIG9Sg4oM2PjQ9xub8fzdJljkzOIB9rb26vR7r2R3DFR2bE6WFS1BKKRFxvPP+iSAiHsE1eGiB4UFpgauxGTvxLKbwcht7xfD0eE4NqA5FxKx6vnumlPJaGx+aHmOTDmOCiYgd6uXx+lLKbG+4f0dm9PoWumOzb7OsiYi1ahpmQynlj7OY/u+1aJyH/aWUJ1v7y4i4FltUhzHHUPS4Hw/jQXXeYQozEXGklPJGx24oeoxNpqQmlIjYiQewsZTyfWfoaHvtRz+rzEdSR7Gqk6rQ6pf7Z7S1nJlWH0n9dUSciYgzuBWbW/2nZjcELaj5+EO9vm9wZasP6diA5/FCKWV3KeVgKeVt7MCcQx2aHmOTDmMCiYgZNWraWEr5tjd8RD3I7+jYr8AG83nYfepk+XTnfdO4yN9ztcud99WVYlOdsh+7W/2w4WhBza2v7fVdZ/5/YYZ0bMCF6oKQLrPmz3tD02N8lnrWPcu5FbyKU+rk3epOWdmxeaLZ3KsuFdxt4aWCB9XlqNOtPvFLBXVWSQ1NC9yEP7FVnde5D79gy0D1eBM/4E51We09OIEXh6jHomi61B8gyzl+YTVvulDZ1rEJbFNTFL/jE9zY285leKf9WE61+qVLvX+LoE/fYQxKi3Zy/Krt62E8rj1kdGh6qBPeL6lXWKfVe1S2Y8UQ9ViMkk+rTZIkSUYi5zCSJEmSkUiHkSRJkoxEOowkSZJkJNJhJEmSJCORDiNJkiQZiXQYSZIkyUikw0iSJElGIh1GkiRJMhJ/AckSu8gYhQa6AAAAAElFTkSuQmCC\n", + "image/png": "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Lhf//GcwS/u4ceP4z3/+I3Sv10t6ejr/+te/ABgxYgRLly4VxsDr9dK5c2cWLVoEwBlnnGHw5x44cKCIT7jgggv45ptvdPqwYcNEfET37t1FIJfGNddcIwaN1NRUGhoaRPEks9nMiBEjeOGFF4Cg3zsgNIvFwvDhwxk1ahStra2cd955Ok1VVX7zm98wYsQIqqqquOSSSwwD/oMPPshNN93Ezp07GTBggEH/xz/+wS233MK6devo08fogPHuu+/y61//mpUrVzJ48GCD/u9//5tLL72Ur776issuu8ygl5aWcu6557J06VJ+/etfG/TVq1eTlJTE4sWLue222wz6+eefT0JCAosXL+ZPf/qTQb/55puJiYlh2bJl/O1vfxNuwlqa98cffxy73c7WrVv5/PPPdenfNXdiRVGoqqpi7969uv6hBXFsNhsul0vXNykpSegFBQUiDsTj8dDa2ipiOAB27tzJypUrRXElt9tN165dhcF44oknKCsr023bL37xCxHfcMkll7Bz506dftlllwmDVlhYSF1dnTAmdrudyy67TFQEHDp0KD6fTxx7FouFSy65hNtvv51AIMDw4cN1mtls5oILLuDyyy+npaWFcePG6XSLxcLAgQPp378/jY2NvPvuuwa9V69eFBYWcvToUWbPni3OWa0NGTKE4uJi9u/fz+TJkw3H5m9/+1u6d+/Opk2beP7553UBqT6fj7/+9a/07NmTRYsW8eijj+r6er1epk6dSvfu3Zk+fboICg0d1L/66iuKi4uZOHEi9957ry6WBmDPnj3k5uYyYcKEiMW7qqqqSEpK4sUXX+Tpp5826G63G5vNxqRJk5g4cSJDhw5l/vz5hvlOBtKtNow333xTREyH813+0/8N+vGOB6mfXvEiP2R9TvTYCR/sNO27dJPJJOI2wtEC0LQr70i6ZnTDA1IBXYxPeFAh/P+FkZb2pS166L61WCyYTCZRByR8n2jGXbsrDNe1bAmhtTRCl2+z2XT1NkJ1RVFEf+1uN7SvFuehXXioqorJZOKRRx7hvvvuM2xrWzieW628wwijR48eohSrRHK68nO40DvWOh5v3UODSUMHSIvFIgLvwh8XulwuHA4HPp+P+vp6QyS0zWYTd8ragHqqCU8f8mNPKy4uPglbYUQajDB69epFr169furVkEgkktMO6SUlkUgkkjYhDYZE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k5PDL3/5SwA+//xzmpubdf1TU1NFloNvvvkGRVGEZjabsdvtJCQkAMGgUy3djLZ9ycnJ5OXloaoqpaWluv3q8/lo3749Xbt2xePx8H/tnXd8VFX6/993MiUzk04SAtKE0ASlSBEQEBEXqUpZ21dRXLF81VVZfrbvrquCq+sCIq6NXVYEUXBR6Up1XYFdUBQiLXRCCymTMr3d3x/JPc7NDRogSDDn/Xqd18zc59w7d87MPM+5557ncz788ENd20UiEbp3707Pnj0pKytj5syZhv2HDRtG3759OXXqFH/5y19EHoJWRo4cSbdu3Th+/DizZ8822IcNG0b79u05evQoH3/8sUgy1eyDBw+mefPm5OXlsXbtWoN94MCBZGZmkpeXx6ZNmwiFQgSDQUKhEKFQiF//+tdkZGSwZcsWli1bZrA/99xzZGRksHjxYubOnSu2a3UWL15MSkoKM2fO5M033xTbtcejR48SHx/Po48+yowZMxg0aBCrVq06L/8vGTCqcPz4cT7++GNOnjypS5CyWCz069cPgG+//VZkU0NF0pDdbmfAgAEAbNy4kYKCAt3+SUlJDBw4EIC1a9dSVFSkS8hKT09n0KCK+QFLliyhtLRUZ2/cuDGDBw9GURTmzp1LeXm5yKpWVZU2bdowfPhwAKZPny6kQzR7ly5duOmmm1AUhSeffFKns6SqKv3792f06NEEg0EeeeQRg33kyJGMGTOG0tJSHnjgAUOC2e23387IkSM5efIk//u//yvaRfv8EyZM4IYbbuDAgQNCHiJ2/4kTJzJw4EBycnKYOHGiIUntueee4+qrr2bjxo1MmjSJaDQqnHo0GuWdd97hqquuYsWKFdXKS3z00Ud06tSJhQsX8n//938G++eff052djazZ89mypQpBvumTZto3Lgxs2bNYtq0aQZ79+7dSU5O5v333+ftt9822O+44w7i4uJYsWIFH330EWazmbi4OMxmM3a7nf379wOwa9cudu/ejclkEnUikYjQigqHwyQnJ6MoinCqHo9H2L///nu+/fZbIQsSCoXIzs5m9OjRAMycOZMdO3bozq1Hjx4iIDzwwAMcOnRIZx8wYID4TP369ePUqVM6+9ChQ3nllVdQVZVu3brh8/l09lGjRvH0008TiUTEfyCWm2++mQcffBC32824ceMM9ttvvx2Xy0VBQYHuu9PkVQoL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\n", "text/plain": [ "
" ] @@ -643,9 +637,9 @@ ], "source": [ "ii = 12\n", - "dpred = survey.dpred(mopt+x[:,ii])\n", + "dpred = sim.dpred(mopt+x[:,ii])\n", "n_time = time.size\n", - "PRED = dpred.reshape((prob.n_sounding, n_time))\n", + "PRED = dpred.reshape((sim.n_sounding, n_time))\n", "\n", "for i_time in range(n_time):\n", " plt.semilogy(mesh.vectorCCx, -DOBS[:,i_time], 'k')\n", @@ -676,7 +670,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/simpegEM1D/EM1DSimulation.py b/simpegEM1D/EM1DSimulation.py index de51130..dc300b8 100644 --- a/simpegEM1D/EM1DSimulation.py +++ b/simpegEM1D/EM1DSimulation.py @@ -2,7 +2,7 @@ from discretize import TensorMesh from SimPEG import maps, utils from .EM1DAnalytics import skin_depth, diffusion_distance -from .EM1D import EM1D +from .simulation import EM1DFMSimulation, EM1DTMSimulation from .survey import EM1DSurveyFD, EM1DSurveyTD @@ -85,45 +85,37 @@ def run_simulation_FD(args): # Use Exponential Map # This is hard-wired at the moment expmap = maps.ExpMap(mesh_1d) - prob = EM1D( - mesh_1d, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', + sim = EM1DFMSimulation( + mesh_1d, survey=FDsurvey, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c ) - if prob.ispaired: - prob.unpair() - if FDsurvey.ispaired: - FDsurvey.unpair() - prob.pair(FDsurvey) + if jac_switch == 'sensitivity_sigma': - drespdsig = prob.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * prob.sigmaDeriv) + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) # return utils.mkvc(drespdsig) else: - resp = FDsurvey.dpred(np.log(sigma)) + resp = sim.dpred(np.log(sigma)) return resp else: wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) expmap = maps.ExpMap(mesh_1d) sigmaMap = expmap * wires.sigma - prob = EM1D( - mesh_1d, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', + sim = EM1DFMSimulation( + mesh_1d, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c ) - if prob.ispaired: - prob.unpair() - if FDsurvey.ispaired: - FDsurvey.unpair() - prob.pair(FDsurvey) + m = np.r_[np.log(sigma), h] if jac_switch == 'sensitivity_sigma': - drespdsig = prob.getJ_sigma(m) + drespdsig = sim.getJ_sigma(m) return utils.mkvc(drespdsig * utils.sdiag(sigma)) # return utils.mkvc(drespdsig) elif jac_switch == 'sensitivity_height': - drespdh = prob.getJ_height(m) + drespdh = sim.getJ_height(m) return utils.mkvc(drespdh) else: - resp = FDsurvey.dpred(m) + resp = sim.dpred(m) return resp @@ -182,43 +174,35 @@ def run_simulation_TD(args): # Use Exponential Map # This is hard-wired at the moment expmap = maps.ExpMap(mesh_1d) - prob = EM1D( - mesh_1d, sigmaMap=expmap, hankel_filter='key_101_2009', + sim = EM1DTMSimulation( + mesh_1d, survey=TDsurvey, sigmaMap=expmap, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c ) - if prob.ispaired: - prob.unpair() - if TDsurvey.ispaired: - TDsurvey.unpair() - prob.pair(TDsurvey) + if jac_switch == 'sensitivity_sigma': - drespdsig = prob.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * prob.sigmaDeriv) + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) else: - resp = TDsurvey.dpred(np.log(sigma)) + resp = sim.dpred(np.log(sigma)) return resp else: wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) expmap = maps.ExpMap(mesh_1d) sigmaMap = expmap * wires.sigma - prob = EM1D( - mesh_1d, sigmaMap=sigmaMap, hMap=wires.h, + sim = EM1DTMSimulation( + mesh_1d, survey=TDsurvey, sigmaMap=sigmaMap, hMap=wires.h, hankel_filter='key_101_2009', eta=eta, tau=tau, c=c ) - if prob.ispaired: - prob.unpair() - if TDsurvey.ispaired: - TDsurvey.unpair() - prob.pair(TDsurvey) + m = np.r_[np.log(sigma), h] if jac_switch == 'sensitivity_sigma': - drespdsig = prob.getJ_sigma(m) + drespdsig = sim.getJ_sigma(m) return utils.mkvc(drespdsig * utils.sdiag(sigma)) elif jac_switch == 'sensitivity_height': - drespdh = prob.getJ_height(m) + drespdh = sim.getJ_height(m) return utils.mkvc(drespdh) else: - resp = TDsurvey.dpred(m) + resp = sim.dpred(m) return resp diff --git a/simpegEM1D/GlobalEM1D.py b/simpegEM1D/GlobalEM1D.py index 747331f..c72f0f0 100644 --- a/simpegEM1D/GlobalEM1D.py +++ b/simpegEM1D/GlobalEM1D.py @@ -22,7 +22,7 @@ def dot(args): return np.dot(args[0], args[1]) -class GlobalEM1DProblem(BaseSimulation): +class GlobalEM1DSimulation(BaseSimulation): """ The GlobalProblem allows you to run a whole bunch of SubProblems, potentially in parallel, potentially of different meshes. @@ -218,22 +218,33 @@ def Sigma(self): def IJLayers(self): if getattr(self, '_IJLayers', None) is None: # Ordering: first z then x - self._IJLayers = self.survey.set_ij_n_layer() + self._IJLayers = self.set_ij_n_layer() return self._IJLayers @property def IJHeight(self): if getattr(self, '_IJHeight', None) is None: # Ordering: first z then x - self._IJHeight = self.survey.set_ij_n_layer(n_layer=1) + self._IJHeight = self.set_ij_n_layer(n_layer=1) return self._IJHeight # ------------- For physics ------------- # def fields(self, m): if self.verbose: print("Compute fields") - self.survey._pred = self.forward(m) - return [] + + return self.forward(m) + + def dpred(self, m, f=None): + """ + Return predicted data. + Predicted data, (`_pred`) are computed when + self.fields is called. + """ + if f is None: + f = self.fields(m) + + return f def forward(self, m): self.model = m @@ -263,6 +274,63 @@ def forward(self, m): ] return np.hstack(result) + def set_ij_n_layer(self, n_layer=None): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + if n_layer is None: + m = self.n_layer + else: + m = n_layer + + for i in range(self.survey.n_sounding): + n = self.survey.nD_vec[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + def set_ij_height(self): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + m = self.n_layer + for i in range(n_sounding): + n = self.survey.nD_vec[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + def getJ_sigma(self, m): """ Compute d F / d sigma @@ -465,7 +533,7 @@ def deleteTheseOnModelUpdate(self): return toDelete -class GlobalEM1DProblemFD(GlobalEM1DProblem): +class GlobalEM1DSimulationFD(GlobalEM1DSimulation): def run_simulation(self, args): if self.verbose: @@ -504,7 +572,7 @@ def input_args(self, i_sounding, jac_switch='forward'): return output -class GlobalEM1DProblemTD(GlobalEM1DProblem): +class GlobalEM1DSimulationTD(GlobalEM1DSimulation): @property def wave_type(self): @@ -664,19 +732,17 @@ class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): half_switch = properties.Bool("Switch for half-space", default=False) - _pred = None - - @utils.requires('prob') - def dpred(self, m, f=None): - """ - Return predicted data. - Predicted data, (`_pred`) are computed when - self.prob.fields is called. - """ - if f is None: - f = self.prob.fields(m) + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Return predicted data. + # Predicted data, (`_pred`) are computed when + # self.prob.fields is called. + # """ + # if f is None: + # f = self.prob.fields(m) - return self._pred + # return self._pred @property def n_sounding(self): @@ -690,7 +756,7 @@ def n_layer(self): """ # of Receiver locations """ - return self.prob.n_layer + return self.sim.n_layer def read_xyz_data(self, fname): """ @@ -706,61 +772,7 @@ def nD(self): self._nD = self.nD_vec.sum() return self._nD - def set_ij_n_layer(self, n_layer=None): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DProblem when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - if n_layer is None: - m = self.n_layer - else: - m = n_layer - - for i in range(self.n_sounding): - n = self.nD_vec[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) - - def set_ij_height(self): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DProblem when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - m = self.n_layer - for i in range(n_sounding): - n = self.nD_vec[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) + class GlobalEM1DSurveyFD(GlobalEM1DSurvey, EM1DSurveyFD): @@ -865,7 +877,7 @@ class GlobalEM1DSurveyTD(GlobalEM1DSurvey): ) def __init__(self, **kwargs): - GlobalEM1Dsurvey.__init__(self, **kwargs) + GlobalEM1DSurvey.__init__(self, **kwargs) self.set_parameters() def set_parameters(self): diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index 137c7ba..b838bf2 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -19,8 +19,8 @@ ) from .Utils1D import * from .GlobalEM1D import ( - GlobalEM1DProblemFD, GlobalEM1DSurveyFD, - GlobalEM1DProblemTD, GlobalEM1DSurveyTD + GlobalEM1DSimulationFD, GlobalEM1DSurveyFD, + GlobalEM1DSimulationTD, GlobalEM1DSurveyTD ) from .EM1DSimulation import ( get_vertical_discretization_frequency, From 833a19e7f67ec38f3a077cdffab2bf751d95dd86 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 26 May 2020 20:56:50 -0700 Subject: [PATCH 05/54] Create kernels.py --- notebooks/examples/EM1D_TD_FWD.ipynb | 14 +- notebooks/examples/EM1D_fwd.ipynb | 29 +- .../EM1D_inversion_FD_height_correction.ipynb | 8 +- ...EM1D_inversion_FD_sensitivity_weight.ipynb | 362 +++--------------- .../examples/EM1D_inversion_TD_layers.ipynb | 50 +-- .../Test_global_em1d_inversion_td.ipynb | 269 ++----------- ...h-of-investigation-christiansen-2012.ipynb | 127 ++---- notebooks/examples/resistivity.png | Bin 0 -> 34198 bytes simpegEM1D/EM1DSimulation.py | 2 +- simpegEM1D/Kernels.py | 211 ++++++++++ simpegEM1D/Survey.py | 2 +- simpegEM1D/__init__.py | 2 +- simpegEM1D/{EM1DAnalytics.py => analytics.py} | 0 simpegEM1D/simulation.py | 225 +---------- 14 files changed, 409 insertions(+), 892 deletions(-) create mode 100644 notebooks/examples/resistivity.png rename simpegEM1D/{EM1DAnalytics.py => analytics.py} (100%) diff --git a/notebooks/examples/EM1D_TD_FWD.ipynb b/notebooks/examples/EM1D_TD_FWD.ipynb index c95deec..76669bd 100644 --- a/notebooks/examples/EM1D_TD_FWD.ipynb +++ b/notebooks/examples/EM1D_TD_FWD.ipynb @@ -23,7 +23,7 @@ ")\n", "from simpegEM1D.simulation import EM1DTMSimulation\n", "from simpegEM1D.survey import EM1DSurveyTD\n", - "from simpegEM1D import EM1DAnalytics\n", + "from simpegEM1D import analytics\n", "import numpy as np\n", "from simpegEM1D import skytem_HM_2015\n", "from simpegEM1D.DigFilter import setFrequency, transFilt\n", @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -97,7 +97,7 @@ " sigma: conductivity of the half-space earth\n", " \"\"\"\n", " wt, tbase, omega_int = setFrequency(t)\n", - " hz = EM1DAnalytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", + " hz = analytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", " # Treatment for inaccuracy in analytic solutions\n", " ind = omega_int < 0.2\n", " hz[ind] = 0.\n", @@ -107,7 +107,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -134,16 +134,16 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index 75ec570..2a9c8bc 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -18,7 +18,7 @@ "from SimPEG import maps\n", "from simpegEM1D.simulation import EM1DFMSimulation\n", "from simpegEM1D.survey import EM1DSurveyFD\n", - "from simpegEM1D import EM1DAnalytics\n", + "from simpegEM1D import analytics\n", "import numpy as np\n", "import matplotlib\n", "%pylab inline" @@ -190,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -247,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -299,14 +299,14 @@ "\n", "# HzCole = simCole.dpred(m_1D)\n", "HzCole = simCole.fields(m_1D)\n", - "Hzanal = EM1DAnalytics.Hzanal(sig_half, FDsurvey.frequency, FDsurvey.offset, 'secondary')\n", + "Hzanal = analytics.Hzanal(sig_half, FDsurvey.frequency, FDsurvey.offset, 'secondary')\n", "print(np.shape(HzCole))\n", "print(HzCole)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -315,16 +315,16 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 14, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -352,16 +352,16 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 15, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, @@ -387,6 +387,13 @@ "legend(('Real $H_{z}$', 'Real $H_{z \\ IP}$', 'Imag $H_{z}$', 'Imag $H_{z \\ IP}$'))" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb b/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb index 8b9db1d..722d860 100644 --- a/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb +++ b/notebooks/examples/EM1D_inversion_FD_height_correction.ipynb @@ -75,7 +75,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 2, @@ -278,7 +278,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['floor', 'inv', 'beta', 'std', 'axes']\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['beta', 'std', 'axes', 'floor', 'inv']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] @@ -286,7 +286,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 8, @@ -322,7 +322,7 @@ { "data": { "text/plain": [ - ">" + ">" ] }, "execution_count": 9, diff --git a/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb b/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb index 083e699..5cbd941 100644 --- a/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb +++ b/notebooks/examples/EM1D_inversion_FD_sensitivity_weight.ipynb @@ -31,7 +31,7 @@ "sig_half = 1e-3\n", "sig_blk = sig_half*50.\n", "chi_half = 0.\n", - "expmap = Maps.ExpMap(mesh1D)\n", + "expmap = maps.ExpMap(mesh1D)\n", "sig = np.ones(FDsurvey.n_layer)*sig_half\n", "blk_ind = (-50>LocSigZ) & (-80> Fix Jmatrix\n", - "Eps_p: 3.849488979385257\n", - "Eps_q: 3.849488979385257\n", - "delta phim: inf\n", - " 9 3.33e-02 4.54e+00 4.84e+01 6.15e+00 2.79e+01 1 Skip BFGS \n", - ">> Fix Jmatrix\n", - "Eps_p: 3.2079074828210477\n", - "Eps_q: 3.2079074828210477\n", - "delta phim: 7.441e-01\n", - " 10 5.41e-02 4.00e+00 4.97e+01 6.68e+00 2.43e+00 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 2.6732562356842067\n", - "Eps_q: 2.6732562356842067\n", - "delta phim: 3.276e-02\n", - " 11 9.48e-02 3.32e+00 4.92e+01 7.99e+00 2.06e+01 1 \n", - ">> Fix Jmatrix\n", - "Eps_p: 2.227713529736839\n", - "Eps_q: 2.227713529736839\n", - "delta phim: 4.107e-01\n", - " 12 1.72e-01 3.08e+00 4.85e+01 1.14e+01 2.58e+00 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 1.856427941447366\n", - "Eps_q: 1.856427941447366\n", - "delta phim: 2.237e-02\n", - " 13 3.09e-01 3.13e+00 4.32e+01 1.65e+01 1.60e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 1.5470232845394716\n", - "Eps_q: 1.5470232845394716\n", - "delta phim: 3.360e-01\n", - " 14 5.66e-01 2.99e+00 4.08e+01 2.61e+01 7.34e+00 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 1.2891860704495597\n", - "Eps_q: 1.2891860704495597\n", - "delta phim: 9.189e-02\n", - " 15 9.79e-01 3.44e+00 3.84e+01 4.10e+01 1.38e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 1.074321725374633\n", - "Eps_q: 1.074321725374633\n", - "delta phim: 2.503e-02\n", - " 16 4.89e-01 5.02e+00 3.51e+01 2.22e+01 1.28e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.895268104478861\n", - "Eps_q: 0.895268104478861\n", - "delta phim: 3.847e-02\n", - " 17 2.45e-01 4.95e+00 3.39e+01 1.32e+01 4.12e+00 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.7460567537323841\n", - "Eps_q: 0.7460567537323841\n", - "delta phim: 2.283e-02\n", - " 18 1.22e-01 4.78e+00 3.21e+01 8.70e+00 7.77e+00 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.6217139614436534\n", - "Eps_q: 0.6217139614436534\n", - "delta phim: 9.067e-03\n", - " 19 1.94e-01 4.25e+00 3.18e+01 1.04e+01 3.11e+00 0 Skip BFGS \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.5180949678697112\n", - "Eps_q: 0.5180949678697112\n", - "delta phim: 3.956e-03\n", - " 20 3.07e-01 4.32e+00 2.99e+01 1.35e+01 1.01e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.4317458065580927\n", - "Eps_q: 0.4317458065580927\n", - "delta phim: 1.166e-02\n", - " 21 4.90e-01 4.18e+00 2.77e+01 1.78e+01 1.25e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.3597881721317439\n", - "Eps_q: 0.3597881721317439\n", - "delta phim: 8.923e-03\n", - " 22 7.80e-01 4.23e+00 2.63e+01 2.47e+01 1.67e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.29982347677645327\n", - "Eps_q: 0.29982347677645327\n", - "delta phim: 9.063e-03\n", - " 23 1.22e+00 4.44e+00 2.47e+01 3.45e+01 2.44e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.24985289731371108\n", - "Eps_q: 0.24985289731371108\n", - "delta phim: 1.245e-02\n", - " 24 6.09e-01 4.58e+00 2.39e+01 1.91e+01 2.16e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.2082107477614259\n", - "Eps_q: 0.2082107477614259\n", - "delta phim: 2.046e-02\n", - " 25 3.05e-01 4.55e+00 2.34e+01 1.17e+01 1.83e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.1735089564678549\n", - "Eps_q: 0.1735089564678549\n", - "delta phim: 1.715e-02\n", - " 26 4.77e-01 4.43e+00 2.29e+01 1.54e+01 1.73e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.14459079705654576\n", - "Eps_q: 0.14459079705654576\n", - "delta phim: 1.722e-02\n", - " 27 7.46e-01 4.42e+00 2.22e+01 2.10e+01 1.64e+01 0 \n", - ">> Fix Jmatrix\n", - "Eps_p: 0.1204923308804548\n", - "Eps_q: 0.1204923308804548\n", - "delta phim: 2.699e-03\n", - " 28 1.17e+00 4.37e+00 2.13e+01 2.93e+01 2.10e+01 0 \n", - ">> Fix Jmatrix\n", - "Reach maximum number of IRLS cycles: 20\n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 8.4267e+01\n", - "1 : |xc-x_last| = 1.5616e-01 <= tolX*(1+|x0|) = 3.1110e+00\n", - "0 : |proj(x-g)-x| = 2.1001e+01 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 2.1001e+01 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 29\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "\n", - "dmisfit = DataMisfit.l2_DataMisfit(FDsurvey)\n", - "dmisfit.W = 1./(abs(FDsurvey.dobs)*std+floor)\n", + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", + "dmisfit.W = 1./(abs(data_obj.dobs)*std+floor)\n", "\n", - "reg = Regularization.Sparse(\n", - " mesh1D, mapping=Maps.IdentityMap(mesh1D)\n", + "reg = regularization.Sparse(\n", + " mesh1D, mapping=maps.IdentityMap(mesh1D)\n", ")\n", "p=0.\n", "qx, qz = 2., 2.\n", "reg.norms = np.c_[p, qx, qz, 0.]\n", - "IRLS = Directives.Update_IRLS(\n", - " maxIRLSiter=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, \n", + "IRLS = directives.update_IRLS(\n", + " max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, \n", " betaSearch=False,\n", " chifact_start = 1.\n", ")\n", - "opt = Optimization.ProjectedGNCG(maxIter = 40)\n", + "opt = optimization.ProjectedGNCG(maxIter = 40)\n", "opt.maxIterLS = 5\n", - "invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", - "beta = Directives.BetaSchedule(coolingFactor=2, coolingRate=2)\n", - "betaest = Directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", - "target = Directives.TargetMisfit()\n", - "sense = Directives.UpdateSensitivityWeights(threshold=delta)\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2, coolingRate=2)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", + "target = directives.TargetMisfit()\n", + "sense = directives.UpdateSensitivityWeights(threshold=delta)\n", "# inv = Inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", - "inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", + "inv = inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", "\n", - "prob.counter = opt.counter = Utils.Counter()\n", "opt.LSshorten = 0.5\n", "opt.remember('xc')\n", "mopt = inv.run(m0)" @@ -295,72 +134,27 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "doi, act_ind = prob.depth_of_investigation(uncert)" + "doi, act_ind = sim.depth_of_investigation_christiansen_2012(uncert)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "230.0630993146064\n" - ] - } - ], + "outputs": [], "source": [ "print (doi)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/sgkang/anaconda2/envs/simpeg/lib/python3.6/site-packages/IPython/core/magics/pylab.py:160: UserWarning: pylab import has clobbered these variables: ['beta', 'floor', 'inv', 'pi', 'std']\n", - "`%matplotlib` prevents importing * from pylab and numpy\n", - " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" - ] - }, - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "%pylab inline\n", "fig, ax = subplots(1,1, figsize=(5, 8))\n", @@ -371,24 +165,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "230.0630993146064\n" - ] - } - ], + "outputs": [], "source": [ "print (doi)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -397,24 +183,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0037711442200994323\n" - ] - } - ], + "outputs": [], "source": [ "print (delta)" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "scrolled": false }, @@ -425,20 +203,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", "axes.plot(FDsurvey.frequency, -invProb.dpred[0:FDsurvey.n_frequency], 'k.-')\n", @@ -452,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -462,30 +229,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = subplots(1,1, figsize=(5, 8))\n", "Utils1D.plotLayer(sig, mesh1D, showlayers=True)" diff --git a/notebooks/examples/EM1D_inversion_TD_layers.ipynb b/notebooks/examples/EM1D_inversion_TD_layers.ipynb index dd53b86..d0b01bb 100644 --- a/notebooks/examples/EM1D_inversion_TD_layers.ipynb +++ b/notebooks/examples/EM1D_inversion_TD_layers.ipynb @@ -87,7 +87,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 5, @@ -114,14 +114,14 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Wall time: 77.8 ms\n" + "Wall time: 87.7 ms\n" ] } ], @@ -134,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -143,7 +143,7 @@ "(116,)" ] }, - "execution_count": 10, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -154,7 +154,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -179,7 +179,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -195,7 +195,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -221,7 +221,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -231,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -242,7 +242,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -274,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 14, "metadata": { "scrolled": false }, @@ -302,7 +302,7 @@ "0 : |proj(x-g)-x| = 9.6958e+01 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 25 <= iter = 3\n", "------------------------- DONE! -------------------------\n", - "Wall time: 1.71 s\n" + "Wall time: 2.07 s\n" ] } ], @@ -313,21 +313,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'NoneType' object has no attribute 'summary'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mopt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcounter\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msummary\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mxc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrecall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'xc'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'summary'" - ] - } - ], + "outputs": [], "source": [ "# opt.counter.summary()\n", "# xc = opt.recall('xc')" @@ -335,16 +323,16 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 21, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, @@ -370,7 +358,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 17, "metadata": {}, "outputs": [ { diff --git a/notebooks/examples/Test_global_em1d_inversion_td.ipynb b/notebooks/examples/Test_global_em1d_inversion_td.ipynb index e0e5f10..ec8a14d 100644 --- a/notebooks/examples/Test_global_em1d_inversion_td.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion_td.ipynb @@ -2,17 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], + "outputs": [], "source": [ "from discretize import TensorMesh\n", "from SimPEG import maps, data\n", @@ -34,22 +26,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from simpegEM1D import skytem_HM_2015\n", "wave = skytem_HM_2015()\n", @@ -89,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -101,18 +80,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ">> Set parameters\n", - ">> Serial version is used\n" - ] - } - ], + "outputs": [], "source": [ "x = mesh.vectorCCx\n", "y = np.zeros_like(x)\n", @@ -149,22 +119,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "DOBS = d_true.reshape(( sim.n_sounding, time.size))\n", "for i_time in range(time.size):\n", @@ -173,20 +130,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "mesh_reg = get_2d_mesh(n_sounding, hz)\n", "regmap = maps.IdentityMap(mesh_reg)\n", @@ -203,39 +149,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - "model has any nan: 0\n", - "============================ Inexact Gauss Newton ============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 3.11e+01 3.66e+03 0.00e+00 3.66e+03 3.44e+03 0 \n", - " 1 1.56e+01 7.81e+02 1.86e+01 1.07e+03 4.86e+02 0 \n", - " 2 7.79e+00 4.44e+02 3.28e+01 7.00e+02 2.55e+02 0 Skip BFGS \n", - " 3 3.89e+00 2.74e+02 4.87e+01 4.63e+02 1.57e+02 0 Skip BFGS \n", - " 4 1.95e+00 1.80e+02 6.61e+01 3.08e+02 9.54e+01 0 Skip BFGS \n", - " 5 9.73e-01 1.31e+02 8.39e+01 2.12e+02 5.88e+01 0 Skip BFGS \n", - " 6 4.87e-01 1.06e+02 1.01e+02 1.55e+02 5.29e+01 0 Skip BFGS \n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 3.6631e+02\n", - "1 : |xc-x_last| = 3.7277e-01 <= tolX*(1+|x0|) = 5.2888e+00\n", - "0 : |proj(x-g)-x| = 5.2914e+01 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 5.2914e+01 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 30 <= iter = 7\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "std = 0.03\n", "floor = 0.\n", @@ -273,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -283,7 +199,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -293,44 +209,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Laterally-contrained model: L0 L2')" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "cb = plt.colorbar(\n", " mesh.plotImage(\n", @@ -369,7 +250,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -379,22 +260,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "for i_time in range(n_time):\n", " plt.semilogy(mesh.vectorCCx, -DOBS[:,i_time], 'k')\n", @@ -403,7 +271,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -413,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -422,20 +290,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "reg = LateralConstraint(\n", " mesh_reg, mapping=regmap,\n", @@ -449,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -458,27 +315,16 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "24.024082588956453" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "betaest.beta0 " ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -497,7 +343,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -508,22 +354,9 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig = plt.figure(figsize=(10, 5))\n", "ax1 = plt.subplot(121)\n", @@ -563,28 +396,9 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1000\n" - ] - }, - { - "ename": "NameError", - "evalue": "name 'plotLayer' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[0mjj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m12\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 18\u001b[0m \u001b[0mprint\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mn_samples\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 19\u001b[1;33m \u001b[0mplotLayer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlows\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmesh_1d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m'color'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'b'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'lw'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 20\u001b[0m \u001b[0mplotLayer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1.\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexp\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mhighs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mjj\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmesh_1d\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m'color'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'b'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'lw'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'plotLayer' is not defined" - ] - } - ], + "outputs": [], "source": [ "ii=1\n", "n_samples = [3, 5, 20, 50, 80, 100, 200, 300, 400, 500, 600, 700, 1000, 10000]\n", @@ -619,22 +433,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Lhf//GcwS/u4ceP4z3/+I3Sv10t6ejr/+te/ABgxYgRLly4VxsDr9dK5c2cWLVoEwBlnnGHw5x44cKCIT7jgggv45ptvdPqwYcNEfET37t1FIJfGNddcIwaN1NRUGhoaRPEks9nMiBEjeOGFF4Cg3zsgNIvFwvDhwxk1ahStra2cd955Ok1VVX7zm98wYsQIqqqquOSSSwwD/oMPPshNN93Ezp07GTBggEH/xz/+wS233MK6devo08fogPHuu+/y61//mpUrVzJ48GCD/u9//5tLL72Ur776issuu8ygl5aWcu6557J06VJ+/etfG/TVq1eTlJTE4sWLue222wz6+eefT0JCAosXL+ZPf/qTQb/55puJiYlh2bJl/O1vfxNuwlqa98cffxy73c7WrVv5/PPPdenfNXdiRVGoqqpi7969uv6hBXFsNhsul0vXNykpSegFBQUiDsTj8dDa2ipiOAB27tzJypUrRXElt9tN165dhcF44oknKCsr023bL37xCxHfcMkll7Bz506dftlllwmDVlhYSF1dnTAmdrudyy67TFQEHDp0KD6fTxx7FouFSy65hNtvv51AIMDw4cN1mtls5oILLuDyyy+npaWFcePG6XSLxcLAgQPp378/jY2NvPvuuwa9V69eFBYWcvToUWbPni3OWa0NGTKE4uJi9u/fz+TJkw3H5m9/+1u6d+/Opk2beP7553UBqT6fj7/+9a/07NmTRYsW8eijj+r6er1epk6dSvfu3Zk+fboICg0d1L/66iuKi4uZOHEi9957ry6WBmDPnj3k5uYyYcKEiMW7qqqqSEpK4sUXX+Tpp5826G63G5vNxqRJk5g4cSJDhw5l/vz5hvlOBtKtNow333xTREyH813+0/8N+vGOB6mfXvEiP2R9TvTYCR/sNO27dJPJJOI2wtEC0LQr70i6ZnTDA1IBXYxPeFAh/P+FkZb2pS166L61WCyYTCZRByR8n2jGXbsrDNe1bAmhtTRCl2+z2XT1NkJ1RVFEf+1uN7SvFuehXXioqorJZOKRRx7hvvvuM2xrWzieW628wwijR48eohSrRHK68nO40DvWOh5v3UODSUMHSIvFIgLvwh8XulwuHA4HPp+P+vp6QyS0zWYTd8ragHqqCU8f8mNPKy4uPglbYUQajDB69epFr169furVkEgkktMO6SUlkUgkkjYhDYZE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k5PDL3/5SwA+//xzmpubdf1TU1NFloNvvvkGRVGEZjabsdvtJCQkAMGgUy3djLZ9ycnJ5OXloaoqpaWluv3q8/lo3749Xbt2xePx8H/tnXd8VFX6/993MiUzk04SAtKE0ASlSBEQEBEXqUpZ21dRXLF81VVZfrbvrquCq+sCIq6NXVYEUXBR6Up1XYFdUBQiLXRCCymTMr3d3x/JPc7NDRogSDDn/Xqd18zc59w7d87MPM+5557ncz788ENd20UiEbp3707Pnj0pKytj5syZhv2HDRtG3759OXXqFH/5y19EHoJWRo4cSbdu3Th+/DizZ8822IcNG0b79u05evQoH3/8sUgy1eyDBw+mefPm5OXlsXbtWoN94MCBZGZmkpeXx6ZNmwiFQgSDQUKhEKFQiF//+tdkZGSwZcsWli1bZrA/99xzZGRksHjxYubOnSu2a3UWL15MSkoKM2fO5M033xTbtcejR48SHx/Po48+yowZMxg0aBCrVq06L/8vGTCqcPz4cT7++GNOnjypS5CyWCz069cPgG+//VZkU0NF0pDdbmfAgAEAbNy4kYKCAt3+SUlJDBw4EIC1a9dSVFSkS8hKT09n0KCK+QFLliyhtLRUZ2/cuDGDBw9GURTmzp1LeXm5yKpWVZU2bdowfPhwAKZPny6kQzR7ly5duOmmm1AUhSeffFKns6SqKv3792f06NEEg0EeeeQRg33kyJGMGTOG0tJSHnjgAUOC2e23387IkSM5efIk//u//yvaRfv8EyZM4IYbbuDAgQNCHiJ2/4kTJzJw4EBycnKYOHGiIUntueee4+qrr2bjxo1MmjSJaDQqnHo0GuWdd97hqquuYsWKFdXKS3z00Ud06tSJhQsX8n//938G++eff052djazZ89mypQpBvumTZto3Lgxs2bNYtq0aQZ79+7dSU5O5v333+ftt9822O+44w7i4uJYsWIFH330EWazmbi4OMxmM3a7nf379wOwa9cudu/ejclkEnUikYjQigqHwyQnJ6MoinCqHo9H2L///nu+/fZbIQsSCoXIzs5m9OjRAMycOZMdO3bozq1Hjx4iIDzwwAMcOnRIZx8wYID4TP369ePUqVM6+9ChQ3nllVdQVZVu3brh8/l09lGjRvH0008TiUTEfyCWm2++mQcffBC32824ceMM9ttvvx2Xy0VBQYHuu9PkVQoL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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "ii = 12\n", "dpred = sim.dpred(mopt+x[:,ii])\n", diff --git a/notebooks/examples/depth-of-investigation-christiansen-2012.ipynb b/notebooks/examples/depth-of-investigation-christiansen-2012.ipynb index 27873a5..d990658 100644 --- a/notebooks/examples/depth-of-investigation-christiansen-2012.ipynb +++ b/notebooks/examples/depth-of-investigation-christiansen-2012.ipynb @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -153,21 +153,17 @@ " base_frequency_dual_moment=210, \n", " )\n", " \n", - " expmap = Maps.ExpMap(mesh1D)\n", + " expmap = maps.ExpMap(mesh1D)\n", "\n", - " prob = EM1D(mesh1D, sigmaMap=expmap, verbose=False)\n", - " if prob.ispaired:\n", - " prob.unpair()\n", - " if TDsurvey.ispaired:\n", - " TDsurvey.unpair()\n", - " prob.pair(TDsurvey)\n", + " sim = EM1D(mesh1D, survey=TDsurvey, sigmaMap=expmap, verbose=False)\n", + " \n", " prob.chi = np.zeros(TDsurvey.n_layer)\n", - " return TDsurvey, prob" + " return TDsurvey, sim" ] }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -187,22 +183,18 @@ " \n", " expmap = Maps.ExpMap(mesh1D)\n", " \n", - " prob = EM1D(\n", - " mesh1D, sigmaMap=expmap,\n", + " sim = EM1D(\n", + " mesh1D, survey=FDsurvey, sigmaMap=expmap,\n", " chi= np.zeros(FDsurvey.n_layer),\n", " verbose=False\n", " )\n", - " if prob.ispaired:\n", - " prob.unpair()\n", - " if FDsurvey.ispaired:\n", - " FDsurvey.unpair()\n", - " prob.pair(FDsurvey) \n", - " return FDsurvey, prob" + " \n", + " return FDsurvey, sim" ] }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -211,13 +203,13 @@ "(0.5, 100)" ] }, - "execution_count": 116, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -239,9 +231,22 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "TypeError", + "evalue": "'module' object is not callable", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0msurvey_skytem\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mprob_skytem\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mget_skytem_survey_problem\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm_true\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0msurvey_resolve\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mprob_resolve\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mget_resolve_survey_problem\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm_true\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m\u001b[0m in \u001b[0;36mget_skytem_survey_problem\u001b[1;34m(mesh1D, m_true)\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[0mexpmap\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmaps\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mExpMap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 32\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 33\u001b[1;33m \u001b[0msim\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEM1D\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msurvey\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTDsurvey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msigmaMap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mexpmap\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 34\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[0mprob\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchi\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTDsurvey\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_layer\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: 'module' object is not callable" + ] + } + ], "source": [ "survey_skytem, prob_skytem = get_skytem_survey_problem(mesh1D, m_true)\n", "survey_resolve, prob_resolve = get_resolve_survey_problem(mesh1D, m_true)" @@ -249,7 +254,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -264,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -278,22 +283,9 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = subplots(1,1, figsize = (6,4))\n", "axes.plot(survey_skytem.time, -survey_skytem.dobs[:survey_skytem.n_time], '-', lw=2)\n", @@ -308,22 +300,9 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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GTO48MILGTVqFGvWrCE6OpqcnBzatGnD2rVriY6ODvQfoYhfLd+WzYhpG5i0bMdxzXVJ8Yd61zkdGlqdl0BMlBYl96XwDqhnEnz0vtleH7p48WJWrlxJtWrVSEtL484772TOnDm8/vrrvPnmm7z22mv07NmTWbNmYYxh5MiRvPjii7zyyis8++yzXHjhhTz++ONMnjyZ4cOHn/AcCxcuZPny5Zx33nn06NGDGTNm0LNnT+655x6eeuopAG655Ra++eYbrrrqKgD279/Pzz//DEBGRgYTJ07kmmuuYezYsQwYMEDhJOWGtZZpa/cwYtoGflm35/D+xjXjD392lJ6cSLKa6/wuvAMqCHTq1Ik6deoA0LBhQy655BIAWrduzU8//QRAZmYmN954I9u3b6eoqIjU1FQAfvnll8NLcPTr14/ExMQTnqNz587Uq1cP4PAyHz179uSnn37ixRdfJC8vj6ysLFq2bHk4oG688cbDr7/zzjt58cUXueaaa3jvvfcYMWKED/4kRIJLkcvNhMXbGDF9A6t2HAAgLiaSmzo14PYeKdSvFhfgCiW8A+oM7nR8pUKFIxM0RkREHN6OiIjA5XIBcO+99/Lggw9y9dVXH26yA+d/dmd6jsjISFwuFwUFBfz+979n3rx51K9fn2eeeeaoJTwqVap0+PsePXqQkZHBzz//TElJCa1atTrrn1ck2OUUFDNm9mbem5HBjhzn30SNyhW4vUcKgzsnkxCn1oNgEd4BFSKys7OpW7cuAO+///7h/T179mTcuHE8+uijTJkyhX379nn9nofCKCkpidzcXMaPH8/1119/0uNvvfVWBg0axJNPPnmWP4VIcNu2P59RMzP4ePZmcgud/xw2rhnP0N5p9G93nrp/ByEFVBB45plnuOGGG6hbty5du3Zl48aNADz99NMMGjSITz75hPPPP586depQuXJlr96zatWqDB06lNatW5OSkkKnTp1OefzgwYN54oknGDRo0Dn/PCLBZMW2HEZM38CExdtwuZ1Wia5p1RjWO40+TWr6dQlzOTNabiOIFRYWEhkZSVRUFL/++it33303ixYt8sm5xo8fz1dffcWHH354wufD6c9Vwp+1ll/W7WH4tA1MX+t0fIgwcHnrOgzrnUabelUDXKGUpuU2QtDmzZsZOHAgbrebmJgYn3VeuPfee/n222+ZNGmST95f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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = subplots(1,1, figsize = (6,4))\n", "axes.plot(survey_resolve.frequency, survey_resolve.dobs[:survey_resolve.n_frequency], '-', lw=2)\n", @@ -338,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -347,27 +326,16 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "312.6502800164722" - ] - }, - "execution_count": 123, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "doi_skytem" ] }, { "cell_type": "code", - "execution_count": 99, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -376,20 +344,9 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "79.94504332369223" - ] - }, - "execution_count": 100, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "doi_resolve" ] @@ -420,7 +377,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/notebooks/examples/resistivity.png b/notebooks/examples/resistivity.png new file mode 100644 index 0000000000000000000000000000000000000000..6bfa589cbb595c119bbc80f021da22bc36a5f5ec GIT binary patch literal 34198 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 Date: Wed, 27 May 2020 14:33:13 -0700 Subject: [PATCH 06/54] move kernels and digital filter to supporting_functions. Create basic sources and receivers classes --- notebooks/examples/EM1D_fwd.ipynb | 16 +- .../examples/Test_global_em1d_inversion.ipynb | 175 +++--- simpegEM1D/Kernels.py | 292 ---------- simpegEM1D/RTEfun.py | 441 -------------- simpegEM1D/Survey.py | 32 +- simpegEM1D/__init__.py | 8 +- simpegEM1D/analytics.py | 2 +- simpegEM1D/receivers.py | 64 ++ simpegEM1D/simulation.py | 2 +- .../{EM1D.py => simulation_original.py} | 466 ++++++++------- ...GlobalEM1D.py => simulation_stitched1d.py} | 0 simpegEM1D/sources.py | 115 ++++ .../digital_filter.py} | 0 .../{ => supporting_functions}/dummy.py | 0 .../kernels.py} | 329 ++++++++++- simpegEM1D/survey_original.py | 548 ++++++++++++++++++ 16 files changed, 1411 insertions(+), 1079 deletions(-) delete mode 100644 simpegEM1D/Kernels.py delete mode 100644 simpegEM1D/RTEfun.py create mode 100644 simpegEM1D/receivers.py rename simpegEM1D/{EM1D.py => simulation_original.py} (57%) rename simpegEM1D/{GlobalEM1D.py => simulation_stitched1d.py} (100%) create mode 100644 simpegEM1D/sources.py rename simpegEM1D/{DigFilter.py => supporting_functions/digital_filter.py} (100%) rename simpegEM1D/{ => supporting_functions}/dummy.py (100%) rename simpegEM1D/{RTEfun_vec.py => supporting_functions/kernels.py} (67%) create mode 100644 simpegEM1D/survey_original.py diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index 2a9c8bc..c1c6ef7 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -247,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -306,7 +306,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -315,16 +315,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -352,16 +352,16 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, diff --git a/notebooks/examples/Test_global_em1d_inversion.ipynb b/notebooks/examples/Test_global_em1d_inversion.ipynb index 271ced4..2b13c86 100644 --- a/notebooks/examples/Test_global_em1d_inversion.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion.ipynb @@ -249,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -337,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 13, "metadata": { "scrolled": false }, @@ -348,7 +348,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -357,7 +357,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 15, "metadata": { "scrolled": false }, @@ -416,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 16, "metadata": { "scrolled": false }, @@ -469,135 +469,135 @@ "Compute fields\n", ">> Compute response\n", "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.4831159414302415 eps_q: 0.4831159414302415\n", + "eps_p: 0.48452322852378993 eps_q: 0.48452322852378993\n", ">> Fix Jmatrix\n", ">> Compute J sigma\n", - " 4 2.49e+02 2.96e+02 4.09e-01 3.98e+02 2.15e+01 0 \n", + " 4 2.49e+02 2.96e+02 4.09e-01 3.98e+02 2.08e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 5 3.88e+02 2.69e+02 5.87e-01 4.97e+02 7.72e+01 0 Skip BFGS \n", + " 5 3.88e+02 2.69e+02 5.87e-01 4.97e+02 7.65e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 6 3.88e+02 3.11e+02 4.02e-01 4.67e+02 9.25e+00 0 \n", + " 6 3.88e+02 3.11e+02 4.01e-01 4.67e+02 9.75e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 7 3.88e+02 3.05e+02 4.63e-01 4.84e+02 1.35e+01 0 \n", + " 7 3.88e+02 3.05e+02 4.61e-01 4.84e+02 1.33e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 8 3.88e+02 3.17e+02 4.43e-01 4.89e+02 5.72e+00 0 \n", + " 8 3.88e+02 3.17e+02 4.43e-01 4.89e+02 6.18e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 9 3.88e+02 3.22e+02 4.53e-01 4.98e+02 7.55e+00 0 Skip BFGS \n", + " 9 3.88e+02 3.22e+02 4.53e-01 4.98e+02 7.70e+00 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 10 3.88e+02 3.30e+02 4.55e-01 5.06e+02 7.70e+00 0 \n", + " 10 3.88e+02 3.29e+02 4.55e-01 5.06e+02 7.53e+00 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 11 3.19e+02 3.36e+02 4.61e-01 4.83e+02 2.29e+01 0 Skip BFGS \n", + " 11 3.19e+02 3.36e+02 4.60e-01 4.82e+02 2.26e+01 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 12 3.19e+02 3.29e+02 5.35e-01 4.99e+02 1.52e+01 0 \n", + " 12 3.19e+02 3.28e+02 5.33e-01 4.98e+02 1.46e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 13 2.60e+02 3.41e+02 5.19e-01 4.76e+02 2.28e+01 0 \n", + " 13 2.60e+02 3.40e+02 5.18e-01 4.75e+02 2.29e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 14 2.15e+02 3.32e+02 6.23e-01 4.66e+02 1.96e+01 0 \n", + " 14 2.15e+02 3.32e+02 6.14e-01 4.64e+02 2.02e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 15 1.78e+02 3.32e+02 7.07e-01 4.58e+02 1.96e+01 0 \n", + " 15 1.79e+02 3.30e+02 6.90e-01 4.54e+02 2.01e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 16 1.47e+02 3.31e+02 8.23e-01 4.52e+02 2.05e+01 0 \n", + " 16 1.79e+02 3.28e+02 7.96e-01 4.70e+02 2.15e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 17 1.22e+02 3.31e+02 9.40e-01 4.45e+02 2.31e+01 0 \n", + " 17 1.46e+02 3.39e+02 8.09e-01 4.57e+02 2.43e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 18 1.01e+02 3.31e+02 1.14e+00 4.46e+02 3.15e+01 0 \n", + " 18 1.20e+02 3.37e+02 9.58e-01 4.52e+02 2.99e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 19 8.32e+01 3.34e+02 1.43e+00 4.52e+02 4.61e+01 0 \n", + " 19 9.80e+01 3.38e+02 1.09e+00 4.44e+02 3.63e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 20 6.81e+01 3.38e+02 1.64e+00 4.50e+02 6.42e+01 0 \n", + " 20 8.02e+01 3.38e+02 1.23e+00 4.37e+02 5.04e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 21 5.56e+01 3.40e+02 1.72e+00 4.36e+02 7.93e+01 0 \n", + " 21 6.58e+01 3.37e+02 1.45e+00 4.32e+02 6.74e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 22 4.53e+01 3.41e+02 1.52e+00 4.10e+02 8.46e+01 0 \n", + " 22 5.39e+01 3.38e+02 1.37e+00 4.11e+02 7.78e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 23 3.70e+01 3.39e+02 1.23e+00 3.85e+02 8.85e+01 0 \n", + " 23 4.45e+01 3.33e+02 1.25e+00 3.89e+02 9.40e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 24 3.05e+01 3.34e+02 1.06e+00 3.66e+02 8.26e+01 0 \n", + " 24 4.45e+01 3.29e+02 1.08e+00 3.76e+02 1.02e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 25 3.05e+01 3.19e+02 1.21e+00 3.56e+02 1.14e+02 0 Skip BFGS \n", + " 25 4.45e+01 3.25e+02 9.16e-01 3.66e+02 1.17e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 26 3.05e+01 3.19e+02 1.06e+00 3.51e+02 1.01e+02 0 \n", + " 26 4.45e+01 3.23e+02 7.93e-01 3.59e+02 1.09e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 27 3.05e+01 3.16e+02 1.04e+00 3.47e+02 9.84e+01 0 \n", + " 27 4.45e+01 3.21e+02 7.58e-01 3.55e+02 1.09e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 28 3.05e+01 3.11e+02 9.35e-01 3.39e+02 9.74e+01 0 Skip BFGS \n", + " 28 4.45e+01 3.18e+02 7.47e-01 3.51e+02 1.23e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 29 3.05e+01 3.04e+02 9.40e-01 3.33e+02 1.07e+02 0 \n", + " 29 4.45e+01 2.99e+02 8.97e-01 3.39e+02 1.03e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 30 3.05e+01 2.92e+02 9.35e-01 3.21e+02 9.35e+01 0 \n", + " 30 4.45e+01 2.91e+02 9.14e-01 3.32e+02 1.26e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 31 3.05e+01 2.72e+02 1.11e+00 3.06e+02 1.17e+02 0 Skip BFGS \n", + " 31 4.45e+01 2.87e+02 8.76e-01 3.26e+02 1.19e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 32 4.80e+01 2.61e+02 1.19e+00 3.18e+02 2.44e+02 0 \n", + " 32 4.45e+01 2.81e+02 8.71e-01 3.20e+02 1.63e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 33 7.58e+01 2.59e+02 1.10e+00 3.42e+02 2.96e+02 0 \n", + " 33 4.45e+01 2.75e+02 8.75e-01 3.14e+02 1.76e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", "Reach maximum number of IRLS cycles: 30\n", "------------------------- STOP! -------------------------\n", "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", - "1 : |xc-x_last| = 2.4402e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 2.9632e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 2.9632e+02 <= 1e3*eps = 1.0000e-02\n", + "1 : |xc-x_last| = 3.0590e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 1.7618e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 1.7618e+02 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 40 <= iter = 34\n", "------------------------- DONE! -------------------------\n" ] @@ -609,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 17, "metadata": { "scrolled": false }, @@ -662,7 +662,7 @@ "Compute fields\n", ">> Compute response\n", "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.48314840326940844 eps_q: 0.48314840326940844\n", + "eps_p: 0.4831159414302415 eps_q: 0.4831159414302415\n", ">> Fix Jmatrix\n", ">> Compute J sigma\n", " 4 2.49e+02 2.96e+02 4.90e-01 4.18e+02 1.22e+02 0 \n", @@ -673,124 +673,124 @@ "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 6 3.91e+02 3.30e+02 3.66e-01 4.73e+02 9.99e+01 0 \n", + " 6 3.91e+02 3.30e+02 3.66e-01 4.73e+02 9.98e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 7 3.91e+02 3.02e+02 5.25e-01 5.07e+02 1.11e+02 0 \n", + " 7 3.91e+02 3.02e+02 5.24e-01 5.07e+02 1.09e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 8 3.23e+02 3.32e+02 4.08e-01 4.64e+02 7.64e+01 0 \n", + " 8 3.23e+02 3.32e+02 4.09e-01 4.64e+02 7.57e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 9 3.23e+02 3.12e+02 5.57e-01 4.92e+02 6.66e+01 0 \n", + " 9 3.23e+02 3.12e+02 5.56e-01 4.92e+02 6.54e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 10 2.65e+02 3.36e+02 4.61e-01 4.58e+02 6.60e+01 0 \n", + " 10 2.65e+02 3.36e+02 4.61e-01 4.58e+02 6.63e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 11 2.65e+02 3.20e+02 6.12e-01 4.83e+02 5.31e+01 0 \n", + " 11 2.65e+02 3.20e+02 6.13e-01 4.83e+02 5.38e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 12 2.16e+02 3.41e+02 5.25e-01 4.54e+02 6.32e+01 0 \n", + " 12 2.16e+02 3.41e+02 5.25e-01 4.54e+02 6.39e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 13 2.16e+02 3.27e+02 6.88e-01 4.75e+02 4.93e+01 0 \n", + " 13 2.16e+02 3.27e+02 6.92e-01 4.76e+02 5.09e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 14 1.75e+02 3.44e+02 6.09e-01 4.51e+02 6.23e+01 0 \n", + " 14 1.75e+02 3.45e+02 6.07e-01 4.51e+02 6.31e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 15 1.44e+02 3.38e+02 6.93e-01 4.37e+02 1.70e+01 0 \n", + " 15 1.43e+02 3.38e+02 6.91e-01 4.37e+02 1.72e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 16 1.18e+02 3.35e+02 7.53e-01 4.24e+02 3.52e+01 0 \n", + " 16 1.18e+02 3.35e+02 7.53e-01 4.24e+02 3.66e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 17 9.80e+01 3.31e+02 9.20e-01 4.21e+02 3.90e+01 0 \n", + " 17 9.79e+01 3.30e+02 9.71e-01 4.25e+02 3.73e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 18 9.80e+01 3.24e+02 1.13e+00 4.35e+02 4.21e+01 0 \n", + " 18 9.79e+01 3.29e+02 1.10e+00 4.37e+02 3.95e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 19 9.80e+01 3.24e+02 1.21e+00 4.42e+02 6.19e+01 0 \n", + " 19 9.79e+01 3.26e+02 1.29e+00 4.52e+02 6.31e+01 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 20 9.80e+01 3.16e+02 1.48e+00 4.61e+02 1.15e+02 0 \n", + " 20 9.79e+01 3.22e+02 1.35e+00 4.54e+02 1.05e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 21 9.80e+01 3.12e+02 1.52e+00 4.61e+02 1.68e+02 0 \n", + " 21 9.79e+01 3.17e+02 1.41e+00 4.55e+02 1.58e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 22 9.80e+01 3.08e+02 1.66e+00 4.71e+02 2.81e+02 0 \n", + " 22 9.79e+01 3.14e+02 1.36e+00 4.46e+02 2.30e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 23 9.80e+01 3.07e+02 1.61e+00 4.65e+02 3.77e+02 0 \n", + " 23 9.79e+01 3.12e+02 1.23e+00 4.32e+02 2.72e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 24 9.80e+01 3.07e+02 1.39e+00 4.43e+02 4.17e+02 0 \n", + " 24 9.79e+01 3.13e+02 1.07e+00 4.18e+02 3.23e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 25 9.80e+01 3.12e+02 1.27e+00 4.36e+02 4.86e+02 0 \n", + " 25 9.79e+01 3.15e+02 1.02e+00 4.15e+02 4.11e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 26 9.80e+01 3.12e+02 1.06e+00 4.16e+02 5.33e+02 0 \n", + " 26 9.79e+01 3.22e+02 8.80e-01 4.08e+02 3.66e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 27 9.80e+01 3.13e+02 9.06e-01 4.02e+02 5.32e+02 0 \n", + " 27 9.79e+01 3.26e+02 7.70e-01 4.02e+02 3.17e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 28 9.80e+01 3.18e+02 7.68e-01 3.93e+02 4.56e+02 0 \n", + " 28 9.79e+01 3.29e+02 7.07e-01 3.98e+02 3.16e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 29 9.80e+01 3.19e+02 6.75e-01 3.85e+02 3.74e+02 0 \n", + " 29 8.11e+01 3.31e+02 6.18e-01 3.81e+02 1.74e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 30 9.80e+01 3.20e+02 6.04e-01 3.79e+02 3.51e+02 0 \n", + " 30 8.11e+01 3.29e+02 5.83e-01 3.76e+02 1.63e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 31 9.80e+01 3.20e+02 5.42e-01 3.73e+02 3.13e+02 0 \n", + " 31 8.11e+01 3.28e+02 5.56e-01 3.73e+02 2.14e+02 0 Skip BFGS \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 32 9.80e+01 3.20e+02 5.04e-01 3.70e+02 3.15e+02 0 Skip BFGS \n", + " 32 8.11e+01 3.28e+02 5.23e-01 3.70e+02 2.53e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", - " 33 9.80e+01 3.21e+02 4.71e-01 3.67e+02 3.27e+02 0 \n", + " 33 8.11e+01 3.27e+02 4.99e-01 3.67e+02 3.08e+02 0 \n", "Compute fields\n", ">> Compute response\n", ">> Fix Jmatrix\n", "Reach maximum number of IRLS cycles: 30\n", "------------------------- STOP! -------------------------\n", "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", - "1 : |xc-x_last| = 5.7465e-02 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 3.2656e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 3.2656e+02 <= 1e3*eps = 1.0000e-02\n", + "1 : |xc-x_last| = 1.8464e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 3.0787e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 3.0787e+02 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 40 <= iter = 34\n", "------------------------- DONE! -------------------------\n" ] @@ -802,12 +802,12 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 18, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -831,7 +831,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -846,12 +846,12 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -888,20 +888,19 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 21, "metadata": {}, "outputs": [ { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" + "ename": "NameError", + "evalue": "name 'sigma_est_l2_ps0' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0msigma_est_l2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0msigma_est_l2_qx2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0msigma_est_l2_ps0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m ]\n\u001b[0;32m 7\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'sigma_est_l2_ps0' is not defined" + ] } ], "source": [ diff --git a/simpegEM1D/Kernels.py b/simpegEM1D/Kernels.py deleted file mode 100644 index 08f96d2..0000000 --- a/simpegEM1D/Kernels.py +++ /dev/null @@ -1,292 +0,0 @@ -import numpy as np -from .RTEfun_vec import rTEfunfwd, rTEfunjac - -try: - from simpegEM1D.m_rTE_Fortran import rte_fortran -except ImportError as e: - rte_fortran = None - - -def hz_kernel_vertical_magnetic_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, - flag, I, output_type='response' -): - - """ - Kernel for vertical magnetic component (Hz) due to - vertical magnetic diopole (VMD) source in (kx,ky) domain - - """ - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 - - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer - n_filter = simulation.n_filter - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, drTE, - n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel * I - - # Note - # Here only computes secondary field. - # I am not sure why it does not work if we add primary term. - # This term can be analytically evaluated, where h = 0. - # kernel = ( - # 1./(4*np.pi) * - # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 - # ) - -# TODO: make this to take a vector rather than a single frequency -def hz_kernel_circular_loop( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, I, a, - flag, output_type='response' -): - - """ - - Kernel for vertical magnetic component (Hz) at the center - due to circular loop source in (kx,ky) domain - - .. math:: - - H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + - \\r_{TE}e^{u_0|z-h|}] - \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda - - """ - - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer - n_filter = simulation.n_filter - - w = 2*np.pi*f - u0 = lamda - radius = np.empty([n_frequency, n_filter], order='F') - radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - - coefficient_wavenumber = I*radius*0.5*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.empty( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - if flag == 'secondary': - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - kernel = rTE * ( - np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) - ) * coefficient_wavenumber - - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - -def hz_kernel_horizontal_electric_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, - flag, output_type='response' -): - - """ - Kernel for vertical magnetic field (Hz) due to - horizontal electric diopole (HED) source in (kx,ky) domain - - """ - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer - n_filter = simulation.n_filter - - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], dtype=np.complex128, - order='F' - ) - if rte_fortran is None: - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - - - - - - - - - - - - - -# import numpy as np -# from scipy.constants import mu_0 -# from .DigFilter import EvalDigitalFilt -# from RTEfun import rTEfun - -# def HzKernel_layer(lamda, f, nlay, sig, chi, depth, h, z, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) due to vertical magnetic -# diopole (VMD) source in (kx,ky) domain - -# """ -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag=='secondary': -# # Note -# # Here only computes secondary field. -# # I am not sure why it does not work if we add primary term. -# # This term can be analytically evaluated, where h = 0. - -# kernel = 1/(4*np.pi)*(rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# else: -# kernel = 1/(4*np.pi)*(np.exp(u0*(z-h))+ rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# return kernel - -# def HzkernelCirc_layer(lamda, f, nlay, sig, chi, depth, h, z, I, a, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) at the center -# due to circular loop source in (kx,ky) domain - -# .. math:: - -# H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + r_{TE}e^{u_0|z-h|}] \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda - -# """ - -# w = 2*np.pi*f -# rTE = np.zeros(lamda.size, dtype=complex) -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag == 'secondary': -# kernel = I*a*0.5*(rTE*np.exp(-u0*(z+h)))*lamda**2/u0 -# else: -# kernel = I*a*0.5*(np.exp(u0*(z-h))+rTE*np.exp(-u0*(z+h)))*lamda**2/u0 - -# return kernel - -#TODO: Get rid of below two functions and put in in main class -# def HzFreq_layer(nlay, sig, chi, depth, f, z, h, r, flag, YBASE, WT0): -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzKernel_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT0, kernel, r) - -# return HzFHT - -# def HzCircFreq_layer(nlay, sig, chi, depth, f, z, h, I, a, flag, YBASE, WT1): - -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzkernelCirc_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, I, a, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT1, kernel, a) - -# return HzFHT diff --git a/simpegEM1D/RTEfun.py b/simpegEM1D/RTEfun.py deleted file mode 100644 index d1b0ced..0000000 --- a/simpegEM1D/RTEfun.py +++ /dev/null @@ -1,441 +0,0 @@ -import numpy as np -from scipy.constants import mu_0 - - -# TODO: make this to take a vector rather than a single frequency -def rTEfunfwd(nlay, f, lamda, sig, chi, depth, HalfSwitch): - """ - Compute reflection coefficients for Transverse Electric (TE) mode. - Only one for loop for multiple layers. Do not use for loop for lambda, - which has 801 times of loops (actually, this makes the code really slow). - """ - Mtemp00 = np.zeros(lamda.size, dtype=complex) - Mtemp10 = np.zeros(lamda.size, dtype=complex) - Mtemp01 = np.zeros(lamda.size, dtype=complex) - Mtemp11 = np.zeros(lamda.size, dtype=complex) - - M1sum00 = np.zeros(lamda.size, dtype=complex) - M1sum10 = np.zeros(lamda.size, dtype=complex) - M1sum01 = np.zeros(lamda.size, dtype=complex) - M1sum11 = np.zeros(lamda.size, dtype=complex) - - thick = -np.diff(depth) - w = 2*np.pi*f - - rTE = np.zeros(lamda.size, dtype=complex) - utemp0 = np.zeros(lamda.size, dtype=complex) - utemp1 = np.zeros(lamda.size, dtype=complex) - const = np.zeros(lamda.size, dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - M0sum00 = Mtemp00 - M0sum10 = Mtemp10 - M0sum01 = Mtemp01 - M0sum11 = Mtemp11 - - if HalfSwitch == True: - - M1sum00 = np.zeros(lamda.size, dtype=complex) - M1sum10 = np.zeros(lamda.size, dtype=complex) - M1sum01 = np.zeros(lamda.size, dtype=complex) - M1sum11 = np.zeros(lamda.size, dtype=complex) - - M1sum00 = M0sum00 - M1sum10 = M0sum10 - M1sum01 = M0sum01 - M1sum11 = M0sum11 - - else : - - for j in range (nlay-1): - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.- const) - Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+ const) - - M1sum00 = M0sum00*Mtemp00 + M0sum01*Mtemp10 - M1sum10 = M0sum10*Mtemp00 + M0sum11*Mtemp10 - M1sum01 = M0sum00*Mtemp01 + M0sum01*Mtemp11 - M1sum11 = M0sum10*Mtemp01 + M0sum11*Mtemp11 - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - rTE = M1sum01/M1sum11 - - return rTE - - -def matmul(a00, a10, a01, a11, b00, b10, b01, b11): - """ - Compute 2x2 matrix mutiplication in vector way - C = A*B - C = [a00 a01] * [b00 b01] = [c00 c01] - [a10 a11] [b10 b11] [c10 c11] - """ - - c00 = a00*b00 + a01*b10 - c10 = a10*b00 + a11*b10 - c01 = a00*b01 + a01*b11 - c11 = a10*b01 + a11*b11 - - return c00, c10, c01, c11 - - -# TODO: make this to take a vector rather than a single frequency -def rTEfunjac(nlay, f, lamda, sig, chi, depth, HalfSwitch): - """ - Compute reflection coefficients for Transverse Electric (TE) mode. - Only one for loop for multiple layers. Do not use for loop for lambda, - which has 801 times of loops (actually, this makes the code really slow). - """ - # Initializing arrays - Mtemp00 = np.zeros(lamda.size, dtype=complex) - Mtemp10 = np.zeros(lamda.size, dtype=complex) - Mtemp01 = np.zeros(lamda.size, dtype=complex) - Mtemp11 = np.zeros(lamda.size, dtype=complex) - - M1sum00 = np.zeros(lamda.size, dtype=complex) - M1sum10 = np.zeros(lamda.size, dtype=complex) - M1sum01 = np.zeros(lamda.size, dtype=complex) - M1sum11 = np.zeros(lamda.size, dtype=complex) - - M0sum00 = np.zeros(lamda.size, dtype=complex) - M0sum10 = np.zeros(lamda.size, dtype=complex) - M0sum01 = np.zeros(lamda.size, dtype=complex) - M0sum11 = np.zeros(lamda.size, dtype=complex) - - dMtemp00 = np.zeros(lamda.size, dtype=complex) - dMtemp10 = np.zeros(lamda.size, dtype=complex) - dMtemp01 = np.zeros(lamda.size, dtype=complex) - dMtemp11 = np.zeros(lamda.size, dtype=complex) - - dj0temp00 = np.zeros(lamda.size, dtype=complex) - dj0temp10 = np.zeros(lamda.size, dtype=complex) - dj0temp01 = np.zeros(lamda.size, dtype=complex) - dj0temp11 = np.zeros(lamda.size, dtype=complex) - - dj1temp00 = np.zeros(lamda.size, dtype=complex) - dj1temp10 = np.zeros(lamda.size, dtype=complex) - dj1temp01 = np.zeros(lamda.size, dtype=complex) - dj1temp11 = np.zeros(lamda.size, dtype=complex) - - thick = -np.diff(depth) - w = 2*np.pi*f - - rTE = np.zeros(lamda.size, dtype=complex) - drTE = np.zeros((nlay, lamda.size) , dtype=complex) - utemp0 = np.zeros(lamda.size, dtype=complex) - utemp1 = np.zeros(lamda.size, dtype=complex) - const = np.zeros(lamda.size, dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute M1 - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute dM1du1 - dj0Mtemp00 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp10 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp01 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp11 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - - # TODO: for computing Jacobian - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - dJ00 = [] - dJ10 = [] - dJ01 = [] - dJ11 = [] - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - M0sum00 = Mtemp00.copy() - M0sum10 = Mtemp10.copy() - M0sum01 = Mtemp01.copy() - M0sum11 = Mtemp11.copy() - - if HalfSwitch == True: - - M1sum00 = np.zeros(lamda.size, dtype=complex) - M1sum10 = np.zeros(lamda.size, dtype=complex) - M1sum01 = np.zeros(lamda.size, dtype=complex) - M1sum11 = np.zeros(lamda.size, dtype=complex) - - M1sum00 = M0sum00.copy() - M1sum10 = M0sum10.copy() - M1sum01 = M0sum01.copy() - M1sum11 = M0sum11.copy() - - else: - - for j in range (nlay-1): - - dJ_10Mtemp00 = np.zeros(lamda.size, dtype=complex) - dJ_10Mtemp10 = np.zeros(lamda.size, dtype=complex) - dJ_10Mtemp01 = np.zeros(lamda.size, dtype=complex) - dJ_10Mtemp11 = np.zeros(lamda.size, dtype=complex) - - dJ01Mtemp00 = np.zeros(lamda.size, dtype=complex) - dJ01Mtemp10 = np.zeros(lamda.size, dtype=complex) - dJ01Mtemp01 = np.zeros(lamda.size, dtype=complex) - dJ01Mtemp11 = np.zeros(lamda.size, dtype=complex) - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.- const) - Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+ const) - - M1sum00, M1sum10, M1sum01, M1sum11 = matmul( - M0sum00, M0sum10, M0sum01, M0sum11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - # TODO: for Computing Jacobian - - dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 - - if j==0: - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - #Compute dM1dm1*M2 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul(dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, Mtemp00, Mtemp10, Mtemp01, Mtemp11) - - #Compute M1*dM2dm1 - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul(M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - else: - - h_1 = thick[j-1] - utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j-1])*sig[j-1]) - const0 = mu_0*(1+chi[j-1])/(mu_0*(1+chi[j])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - #Compute dMjdmj*Mj+1 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul(dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, Mtemp00, Mtemp10, Mtemp01, Mtemp11) - - #Compute Mj*dMj+1dmj - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul(M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - # rTE = M1sum01/M1sum11 - - if HalfSwitch == True: - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 - - dJ1sum00 = np.zeros(lamda.size, dtype=complex) - dJ1sum10 = np.zeros(lamda.size, dtype=complex) - dJ1sum01 = np.zeros(lamda.size, dtype=complex) - dJ1sum11 = np.zeros(lamda.size, dtype=complex) - - dJ1sum00 = dudsig*dj0Mtemp00 - dJ1sum10 = dudsig*dj0Mtemp10 - dJ1sum01 = dudsig*dj0Mtemp01 - dJ1sum11 = dudsig*dj0Mtemp11 - - drTE = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - else: - - #j = nlay - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[nlay-1])*sig[nlay-1]) - dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 - - h_1 = thick[nlay-2] - utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[nlay-2])*sig[nlay-2]) - const0 = mu_0*(1+chi[nlay-2])/(mu_0*(1+chi[nlay-1])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - dJ_10Mtemp00 = dj0Mtemp00 - dJ_10Mtemp10 = dj0Mtemp10 - dJ_10Mtemp01 = dj0Mtemp01 - dJ_10Mtemp11 = dj0Mtemp11 - - dJ00.append(dudsig*dJ_10Mtemp00) - dJ10.append(dudsig*dJ_10Mtemp10) - dJ01.append(dudsig*dJ_10Mtemp01) - dJ11.append(dudsig*dJ_10Mtemp11) - - for i in range (nlay): - - dJ0sum00 = np.zeros(lamda.size, dtype=complex) - dJ0sum10 = np.zeros(lamda.size, dtype=complex) - dJ0sum01 = np.zeros(lamda.size, dtype=complex) - dJ0sum11 = np.zeros(lamda.size, dtype=complex) - - dJ1sum00 = np.zeros(lamda.size, dtype=complex) - dJ1sum10 = np.zeros(lamda.size, dtype=complex) - dJ1sum01 = np.zeros(lamda.size, dtype=complex) - dJ1sum11 = np.zeros(lamda.size, dtype=complex) - - if i==0: - - for j in range (nlay-2): - - if j==0: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ00[i], dJ10[i], dJ01[i], dJ11[i], M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - else: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif (i>0) & (i i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif i==nlay-1: - - dJ0sum00 = M00[0] - dJ0sum10 = M10[0] - dJ0sum01 = M01[0] - dJ0sum11 = M11[0] - - for j in range (nlay-1): - - if j < nlay-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, M00[j+1], M10[j+1], M01[j+1], M11[j+1] - ) - - elif j == nlay-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, dJ00[i], dJ10[i], dJ01[i], dJ11[i] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - drTE[i, :] = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - return drTE - # return rTE, drTE - diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index 49a31a8..8653372 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -4,7 +4,7 @@ import scipy.sparse as sp from scipy.constants import mu_0 from .analytics import ColeCole -from .DigFilter import ( +from .supporting_functions.digital_filter import ( transFilt, transFiltImpulse, transFiltInterp, transFiltImpulseInterp ) from .Waveform import CausalConv @@ -26,38 +26,10 @@ class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): """ - frequency = properties.Array("Frequency (Hz)", dtype=float) - - rx_location = properties.Array("Receiver location (x, y, z)", dtype=float) - src_location = properties.Array("Source location (x, y, z)", dtype=float) - - src_path = properties.Array( - "Source path (xi, yi, zi), i=0,...N", - dtype=float - ) - - src_type = properties.StringChoice( - "Source type", - default="VMD", - choices=[ - "VMD", "CircularLoop", "piecewise_segment" - ] - ) + frequencies = properties.Array("Frequencies evaluated for forward simulation (Hz)", dtype=float) offset = properties.Array("Src-Rx offsets", dtype=float) - rx_type = properties.StringChoice( - "Source location", - default="Hz", - choices=["Hz", "ppm", "Bz", "dBzdt"] - ) - field_type = properties.StringChoice( - "Field type", - default="secondary", - choices=["total", "secondary"] - ) depth = properties.Array("Depth of the layers", dtype=float) topo = properties.Array("Topography (x, y, z)", dtype=float) - I = properties.Float("Src loop current", default=1.) - a = properties.Float("Src loop radius", default=1.) half_switch = properties.Bool("Switch for half-space", default=False) def __init__(self, **kwargs): diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index fed48a8..d53b216 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,8 +1,10 @@ from .simulation import BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD -from .DigFilter import * +from . import supporting_functions from .analytics import * -from .RTEfun import rTEfunfwd, rTEfunjac +from .sources import * +from .receivers import * +# from .RTEfun import rTEfunfwd, rTEfunjac from .Waveform import * from .Waveforms import ( skytem_HM_2015, skytem_LM_2015, @@ -18,7 +20,7 @@ tempest ) from .Utils1D import * -from .GlobalEM1D import ( +from .simulation_stitched1d import ( GlobalEM1DSimulationFD, GlobalEM1DSurveyFD, GlobalEM1DSimulationTD, GlobalEM1DSurveyTD ) diff --git a/simpegEM1D/analytics.py b/simpegEM1D/analytics.py index 54e91c0..9b89204 100644 --- a/simpegEM1D/analytics.py +++ b/simpegEM1D/analytics.py @@ -3,7 +3,7 @@ from scipy.constants import mu_0, pi from scipy.special import erf import matplotlib.pyplot as plt -from .DigFilter import transFiltImpulse, transFilt, setFrequency +from .supporting_functions.digital_filter import transFiltImpulse, transFilt, setFrequency def Hzanal(sig, f, r, flag): diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py new file mode 100644 index 0000000..a181b77 --- /dev/null +++ b/simpegEM1D/receivers.py @@ -0,0 +1,64 @@ +import numpy as np +import properties +from SimPEG.survey import BaseRx, BaseTimeRx + + +class HarmonicPointReceiver(BaseRx) + + orientation = properties.StringChoice( + "Field orientation", default="z", choices=["z"] + ) + + field_type = properties.StringChoice( + "Data type", + default="secondary", + choices=["total", "secondary", "ppm"] + ) + + component = properties.StringChoice( + "component of the field (real or imag)", { + "real": ["re", "in-phase", "in phase"], + "imag": ["imaginary", "im", "out-of-phase", "out of phase"] + } + ) + + def __init__(self, locations=None, orientation=None, field_type=None, component=None, **kwargs): + + super(HarmonicPointReceiver, self).__init__(locations, **kwargs) + if orientation is not None: + self.orientation = orientation + if component is not None: + self.component = component + if field_type is not None: + self.field_type = field_type + + + +class TDEMPointReceiver(BaseTimeRx): + + orientation = properties.StringChoice( + "Field orientation", default="z", choices=["z"] + ) + + component = properties.StringChoice( + "component of the field (h, b, dhdt, dbdt)", { + "h": ["h", "H"], + "b": ["b", "B"], + "dhdt": ["dhdt", "dHdt"], + "dbdt": ["dbdt", "dBdt"] + }, + default="dbdt" + ) + + def __init__(self, locations=None, times=None, orientation=None, component=None, **kwargs): + + super(TDEMPointReceiver, self).__init__(locations, times, **kwargs) + + if orientation is not None: + self.orientation = orientation + if component is not None: + self.component = component + + + + diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index aa75b12..659c2bc 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -2,7 +2,7 @@ from SimPEG.simulation import BaseSimulation import numpy as np from .survey import BaseEM1DSurvey -from .kernels import * +from .supporting_functions.kernels import * from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline import properties diff --git a/simpegEM1D/EM1D.py b/simpegEM1D/simulation_original.py similarity index 57% rename from simpegEM1D/EM1D.py rename to simpegEM1D/simulation_original.py index 7cf28cb..659c2bc 100644 --- a/simpegEM1D/EM1D.py +++ b/simpegEM1D/simulation_original.py @@ -2,21 +2,19 @@ from SimPEG.simulation import BaseSimulation import numpy as np from .survey import BaseEM1DSurvey +from .supporting_functions.kernels import * from scipy.constants import mu_0 -from .RTEfun_vec import rTEfunfwd, rTEfunjac from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline +import properties from empymod import filters -from empymod.transform import dlf, get_dlf_points +from empymod.transform import dlf, fourier_dlf, get_dlf_points from empymod.utils import check_hankel -try: - from simpegEM1D.m_rTE_Fortran import rte_fortran -except ImportError as e: - rte_fortran = None -class EM1D(BaseSimulation): + +class BaseEM1DSimulation(BaseSimulation): """ Pseudo analytic solutions for frequency and time domain EM problems assumingLayered earth (1D). @@ -36,6 +34,12 @@ class EM1D(BaseSimulation): "Electrical conductivity at infinite frequency(S/m)" ) + rho, rhoMap, rhoDeriv = props.Invertible( + "Electrical resistivity (Ohm m)" + ) + + props.Reciprocal(sigma, rho) + chi = props.PhysicalProperty( "Magnetic susceptibility", default=0. @@ -60,6 +64,10 @@ class EM1D(BaseSimulation): "Receiver Height (m), h > 0", ) + survey = properties.Instance( + "a survey object", BaseEM1DSurvey, required=True + ) + def __init__(self, mesh, **kwargs): BaseSimulation.__init__(self, mesh, **kwargs) @@ -83,196 +91,6 @@ def __init__(self, mesh, **kwargs): # if self.hankel_pts_per_dec != 0: # raise NotImplementedError() - def hz_kernel_vertical_magnetic_dipole( - self, lamda, f, n_layer, sig, chi, depth, h, z, - flag, I, output_type='response' - ): - - """ - Kernel for vertical magnetic component (Hz) due to - vertical magnetic diopole (VMD) source in (kx,ky) domain - - """ - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 - - n_frequency = self.survey.n_frequency - n_layer = self.survey.n_layer - n_filter = self.n_filter - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, self.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, self.survey.half_switch, drTE, - n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - self.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, self.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel * I - - # Note - # Here only computes secondary field. - # I am not sure why it does not work if we add primary term. - # This term can be analytically evaluated, where h = 0. - # kernel = ( - # 1./(4*np.pi) * - # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 - # ) - - # TODO: make this to take a vector rather than a single frequency - def hz_kernel_circular_loop( - self, lamda, f, n_layer, sig, chi, depth, h, z, I, a, - flag, output_type='response' - ): - - """ - - Kernel for vertical magnetic component (Hz) at the center - due to circular loop source in (kx,ky) domain - - .. math:: - - H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + - \\r_{TE}e^{u_0|z-h|}] - \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda - - """ - - n_frequency = self.survey.n_frequency - n_layer = self.survey.n_layer - n_filter = self.n_filter - - w = 2*np.pi*f - u0 = lamda - radius = np.empty([n_frequency, n_filter], order='F') - radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - - coefficient_wavenumber = I*radius*0.5*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.empty( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, - self.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, self.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, self.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, self.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - if flag == 'secondary': - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - kernel = rTE * ( - np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) - ) * coefficient_wavenumber - - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - - def hz_kernel_horizontal_electric_dipole( - self, lamda, f, n_layer, sig, chi, depth, h, z, - flag, output_type='response' - ): - - """ - Kernel for vertical magnetic field (Hz) due to - horizontal electric diopole (HED) source in (kx,ky) domain - - """ - n_frequency = self.survey.n_frequency - n_layer = self.survey.n_layer - n_filter = self.n_filter - - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], dtype=np.complex128, - order='F' - ) - if rte_fortran is None: - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, self.survey.half_switch - ) - else: - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, self.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - self.survey.half_switch - ) - else: - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, self.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - # make it as a property? def sigma_cole(self): @@ -389,8 +207,8 @@ def forward(self, m, output_type='response'): if output_type == 'response': # for simulation if self.survey.src_type == 'VMD': - hz = self.hz_kernel_vertical_magnetic_dipole( - lambd, f, n_layer, + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, sig, chi, depth, h, z, flag, I, output_type=output_type ) @@ -400,8 +218,8 @@ def forward(self, m, output_type='response'): PJ = (hz, None, None) # PJ0 elif self.survey.src_type == 'CircularLoop': - hz = self.hz_kernel_circular_loop( - lambd, f, n_layer, + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, sig, chi, depth, h, z, I, r, flag, output_type=output_type ) @@ -413,8 +231,8 @@ def forward(self, m, output_type='response'): # TODO: This has not implemented yet! elif self.survey.src_type == "piecewise_line": # Need to compute y - hz = self.hz_kernel_horizontal_electric_dipole( - lambd, f, n_layer, + hz = hz_kernel_horizontal_electric_dipole( + self, lambd, f, n_layer, sig, chi, depth, h, z, I, r, flag, output_type=output_type ) @@ -429,8 +247,8 @@ def forward(self, m, output_type='response'): # for simulation if self.survey.src_type == 'VMD': - hz = self.hz_kernel_vertical_magnetic_dipole( - lambd, f, n_layer, + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, sig, chi, depth, h, z, flag, I, output_type=output_type ) @@ -439,8 +257,8 @@ def forward(self, m, output_type='response'): elif self.survey.src_type == 'CircularLoop': - hz = self.hz_kernel_circular_loop( - lambd, f, n_layer, + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, sig, chi, depth, h, z, I, r, flag, output_type=output_type ) @@ -456,8 +274,8 @@ def forward(self, m, output_type='response'): # for simulation if self.survey.src_type == 'VMD': - hz = self.hz_kernel_vertical_magnetic_dipole( - lambd, f, n_layer, + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, sig, chi, depth, h, z, flag, I, output_type=output_type ) @@ -466,8 +284,8 @@ def forward(self, m, output_type='response'): elif self.survey.src_type == 'CircularLoop': - hz = self.hz_kernel_circular_loop( - lambd, f, n_layer, + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, sig, chi, depth, h, z, I, r, flag, output_type=output_type ) @@ -495,7 +313,7 @@ def forward(self, m, output_type='response'): # @profile def fields(self, m): f = self.forward(m, output_type='response') - self.survey._pred = utils.mkvc(self.survey.projectFields(f)) + # self.survey._pred = utils.mkvc(self.survey.projectFields(f)) return f def getJ_height(self, m, f=None): @@ -515,7 +333,7 @@ def getJ_height(self, m, f=None): dudz = self.forward(m, output_type="sensitivity_height") self._Jmatrix_height = ( - self.survey.projectFields(dudz) + self.projectFields(dudz) ).reshape([-1, 1]) return self._Jmatrix_height @@ -535,7 +353,7 @@ def getJ_sigma(self, m, f=None): dudsig = self.forward(m, output_type="sensitivity_sigma") - self._Jmatrix_sigma = self.survey.projectFields(dudsig) + self._Jmatrix_sigma = self.projectFields(dudsig) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma @@ -601,5 +419,225 @@ def get_JtJdiag(self, uncert): JtJdiag = (np.power((utils.sdiag(1./uncert)*J), 2)).sum(axis=0) return JtJdiag + + def dpred(self, m, f=None): + """ + Computes predicted data. + Here we do not store predicted data + because projection (`d = P(f)`) is cheap. + """ + + if f is None: + f = self.fields(m) + return utils.mkvc(self.projectFields(f)) + + + +class EM1DFMSimulation(BaseEM1DSimulation): + + def __init__(self, mesh, **kwargs): + BaseEM1DSimulation.__init__(self, mesh, **kwargs) + + + @property + def hz_primary(self): + # Assumes HCP only at the moment + if self.survey.src_type == 'VMD': + return -1./(4*np.pi*self.survey.offset**3) + elif self.survey.src_type == 'CircularLoop': + return self.I/(2*self.survey.a) * np.ones_like(self.survey.frequency) + else: + raise NotImplementedError() + + + def projectFields(self, u): + """ + Decompose frequency domain EM responses as real and imaginary + components + """ + + ureal = (u.real).copy() + uimag = (u.imag).copy() + + if self.survey.rx_type == 'Hz': + factor = 1. + elif self.survey.rx_type == 'ppm': + factor = 1./self.hz_primary * 1e6 + + if self.survey.switch_real_imag == 'all': + ureal = (u.real).copy() + uimag = (u.imag).copy() + if ureal.ndim == 1 or 0: + resp = np.r_[ureal*factor, uimag*factor] + elif ureal.ndim == 2: + if np.isscalar(factor): + resp = np.vstack( + (factor*ureal, factor*uimag) + ) + else: + resp = np.vstack( + (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) + ) + else: + raise NotImplementedError() + elif self.survey.switch_real_imag == 'real': + resp = (u.real).copy() + elif self.survey.switch_real_imag == 'imag': + resp = (u.imag).copy() + else: + raise NotImplementedError() + + return resp + + + + + + +class EM1DTMSimulation(BaseEM1DSimulation): + + + + + + def __init__(self, mesh, **kwargs): + BaseEM1DSimulation.__init__(self, mesh, **kwargs) + + + def projectFields(self, u): + """ + Transform frequency domain responses to time domain responses + """ + # Compute frequency domain reponses right at filter coefficient values + # Src waveform: Step-off + + if self.survey.use_lowpass_filter: + factor = self.survey.lowpass_filter.copy() + else: + factor = np.ones_like(self.survey.frequency, dtype=complex) + + if self.survey.rx_type == 'Bz': + factor *= 1./(2j*np.pi*self.survey.frequency) + + if self.survey.wave_type == 'stepoff': + # Compute EM responses + if u.size == self.survey.n_frequency: + resp, _ = fourier_dlf( + u.flatten()*factor, self.survey.time, + self.survey.frequency, self.survey.ftarg + ) + # Compute EM sensitivities + else: + resp = np.zeros( + (self.survey.n_time, self.survey.n_layer), dtype=np.float64, order='F') + # ) + # TODO: remove for loop + for i in range(self.survey.n_layer): + resp_i, _ = fourier_dlf( + u[:, i]*factor, self.survey.time, + self.survey.frequency, self.survey.ftarg + ) + resp[:, i] = resp_i + + # Evaluate piecewise linear input current waveforms + # Using Fittermann's approach (19XX) with Gaussian Quadrature + elif self.survey.wave_type == 'general': + # Compute EM responses + if u.size == self.survey.n_frequency: + resp_int, _ = fourier_dlf( + u.flatten()*factor, self.survey.time_int, + self.survey.frequency, self.survey.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int + # ) + step_func = iuSpline( + np.log10(self.survey.time_int), resp_int + ) + + resp = piecewise_pulse_fast( + step_func, self.survey.time, + self.survey.time_input_currents, + self.survey.input_currents, + self.survey.period, + n_pulse=self.survey.n_pulse + ) + + # Compute response for the dual moment + if self.survey.moment_type == "dual": + resp_dual_moment = piecewise_pulse_fast( + step_func, self.survey.time_dual_moment, + self.survey.time_input_currents_dual_moment, + self.survey.input_currents_dual_moment, + self.survey.period_dual_moment, + n_pulse=self.survey.n_pulse + ) + # concatenate dual moment response + # so, ordering is the first moment data + # then the second moment data. + resp = np.r_[resp, resp_dual_moment] + + # Compute EM sensitivities + else: + if self.survey.moment_type == "single": + resp = np.zeros( + (self.survey.n_time, self.survey.n_layer), + dtype=np.float64, order='F' + ) + else: + # For dual moment + resp = np.zeros( + (self.survey.n_time+self.survey.n_time_dual_moment, self.survey.n_layer), + dtype=np.float64, order='F') + + # TODO: remove for loop (?) + for i in range(self.survey.n_layer): + resp_int_i, _ = fourier_dlf( + u[:, i]*factor, self.survey.time_int, + self.survey.frequency, self.survey.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int_i + # ) + + step_func = iuSpline( + np.log10(self.survey.time_int), resp_int_i + ) + + resp_i = piecewise_pulse_fast( + step_func, self.survey.time, + self.survey.time_input_currents, self.survey.input_currents, + self.survey.period, n_pulse=self.survey.n_pulse + ) + + if self.survey.moment_type == "single": + resp[:, i] = resp_i + else: + resp_dual_moment_i = piecewise_pulse_fast( + step_func, + self.survey.time_dual_moment, + self.survey.time_input_currents_dual_moment, + self.survey.input_currents_dual_moment, + self.survey.period_dual_moment, + n_pulse=self.survey.n_pulse + ) + resp[:, i] = np.r_[resp_i, resp_dual_moment_i] + return resp * (-2.0/np.pi) * mu_0 + + + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Predicted data (`_pred`) are computed and stored + # when self.prob.fields(m) is called. + # """ + # if f is None: + # f = self.fields(m) + + # return f + + + + if __name__ == '__main__': main() diff --git a/simpegEM1D/GlobalEM1D.py b/simpegEM1D/simulation_stitched1d.py similarity index 100% rename from simpegEM1D/GlobalEM1D.py rename to simpegEM1D/simulation_stitched1d.py diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py new file mode 100644 index 0000000..6a3da7e --- /dev/null +++ b/simpegEM1D/sources.py @@ -0,0 +1,115 @@ +import numpy as np +from SimPEG.survey import BaseSrc +import properties + +class HarmonicMagneticDipoleSource(BaseSrc): + + frequency = properties.Array("Frequency (Hz)", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + orientation = properties.StringChoice( + "Dipole Orientation", default="Z", choices=["Z"] + ) + + def __init__(self, receiver_list=None, frequency=None, **kwargs): + super(HarmonicMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) + if frequency is not None: + self.frequency = frequency + +class HarmonicHorizontalLoopSource(BaseSrc): + + frequency = properties.Array("Frequency (Hz)", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + a = properties.Float("Source loop radius", default=1.) + + def __init__(self, receiver_list=None, frequency=None, **kwargs): + super(HarmonicHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) + if frequency is not None: + self.frequency = frequency + + +class HarmonicLineSource(BaseSrc): + + frequency = properties.Array("Frequency (Hz)", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + src_path = properties.Array( + "Source path (xi, yi, zi), i=0,...N", + dtype=float + ) + + def __init__(self, receiver_list=None, frequency=None, **kwargs): + super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) + if frequency is not None: + self.frequency = frequency + + +class TimeDomainMagneticDipoleSource(BaseSrc): + + time = properties.Array("Time channels (s) at current off-time", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + orientation = properties.StringChoice( + "Dipole Orientation", default="z", choices=["z"] + ) + + wave_type = properties.StringChoice( + "Source location", + default="stepoff", + choices=["stepoff", "general"] + ) + + def __init__(self, receiver_list=None, time=None, **kwargs): + super(TimeDomainMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) + if time is not None: + self.time = time + + +class TimeDomainHorizontalLoopSource(BaseSrc): + + time = properties.Array("Time channels (s) at current off-time", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + a = properties.Float("Source loop radius", default=1.) + + wave_type = properties.StringChoice( + "Source location", + default="stepoff", + choices=["stepoff", "general"] + ) + + def __init__(self, receiver_list=None, time=None, **kwargs): + super(TimeDomainHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) + if time is not None: + self.time = time + +class TimeDomainLineSource(BaseSrc): + + time = properties.Array("Time channels (s) at current off-time", dtype=float) + + I = properties.Float("Source loop current", default=1.) + + src_path = properties.Array( + "Source path (xi, yi, zi), i=0,...N", + dtype=float + ) + + wave_type = properties.StringChoice( + "Source location", + default="stepoff", + choices=["stepoff", "general"] + ) + + def __init__(self, receiver_list=None, time=None, **kwargs): + super(TimeDomainLineSource, self).__init__(receiver_list=receiver_list, **kwargs) + if time is not None: + self.time = time + + + diff --git a/simpegEM1D/DigFilter.py b/simpegEM1D/supporting_functions/digital_filter.py similarity index 100% rename from simpegEM1D/DigFilter.py rename to simpegEM1D/supporting_functions/digital_filter.py diff --git a/simpegEM1D/dummy.py b/simpegEM1D/supporting_functions/dummy.py similarity index 100% rename from simpegEM1D/dummy.py rename to simpegEM1D/supporting_functions/dummy.py diff --git a/simpegEM1D/RTEfun_vec.py b/simpegEM1D/supporting_functions/kernels.py similarity index 67% rename from simpegEM1D/RTEfun_vec.py rename to simpegEM1D/supporting_functions/kernels.py index c6e65bb..20d7414 100644 --- a/simpegEM1D/RTEfun_vec.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -1,8 +1,16 @@ import numpy as np from scipy.constants import mu_0 +try: + from simpegEM1D.m_rTE_Fortran import rte_fortran +except ImportError as e: + rte_fortran = None + + + + + -# TODO: make this to take a vector rather than a single frequency def rTEfunfwd(n_layer, f, lamda, sig, chi, depth, HalfSwitch): """ Compute reflection coefficients for Transverse Electric (TE) mode. @@ -129,6 +137,7 @@ def matmul(a00, a10, a01, a11, b00, b10, b01, b11): return c00, c10, c01, c11 + # TODO: make this to take a vector rather than a single frequency def rTEfunjac(n_layer, f, lamda, sig, chi, depth, HalfSwitch): """ @@ -508,3 +517,321 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, depth, HalfSwitch): # Still worthwhile to output both? # return rTE, drTE + + + +def hz_kernel_vertical_magnetic_dipole( + simulation, lamda, f, n_layer, sig, chi, depth, h, z, + flag, I, output_type='response' +): + + """ + Kernel for vertical magnetic component (Hz) due to + vertical magnetic diopole (VMD) source in (kx,ky) domain + + """ + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 + + n_frequency = simulation.survey.n_frequency + n_layer = simulation.survey.n_layer + n_filter = simulation.n_filter + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, drTE, + n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, + simulation.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel * I + + # Note + # Here only computes secondary field. + # I am not sure why it does not work if we add primary term. + # This term can be analytically evaluated, where h = 0. + # kernel = ( + # 1./(4*np.pi) * + # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 + # ) + +# TODO: make this to take a vector rather than a single frequency +def hz_kernel_circular_loop( + simulation, lamda, f, n_layer, sig, chi, depth, h, z, I, a, + flag, output_type='response' +): + + """ + + Kernel for vertical magnetic component (Hz) at the center + due to circular loop source in (kx,ky) domain + + .. math:: + + H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + + \\r_{TE}e^{u_0|z-h|}] + \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda + + """ + + n_frequency = simulation.survey.n_frequency + n_layer = simulation.survey.n_layer + n_filter = simulation.n_filter + + w = 2*np.pi*f + u0 = lamda + radius = np.empty([n_frequency, n_filter], order='F') + radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) + + coefficient_wavenumber = I*radius*0.5*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.empty( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + drTE[:, :] = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, + simulation.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE[:, :] = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + if flag == 'secondary': + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + kernel = rTE * ( + np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) + ) * coefficient_wavenumber + + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + +def hz_kernel_horizontal_electric_dipole( + simulation, lamda, f, n_layer, sig, chi, depth, h, z, + flag, output_type='response' +): + + """ + Kernel for vertical magnetic field (Hz) due to + horizontal electric diopole (HED) source in (kx,ky) domain + + """ + n_frequency = simulation.survey.n_frequency + n_layer = simulation.survey.n_layer + n_filter = simulation.n_filter + + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], dtype=np.complex128, + order='F' + ) + if rte_fortran is None: + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + ) + else: + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, depth, + simulation.survey.half_switch + ) + else: + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# import numpy as np +# from scipy.constants import mu_0 +# from .DigFilter import EvalDigitalFilt +# from RTEfun import rTEfun + +# def HzKernel_layer(lamda, f, nlay, sig, chi, depth, h, z, flag): + +# """ + +# Kernel for vertical magnetic component (Hz) due to vertical magnetic +# diopole (VMD) source in (kx,ky) domain + +# """ +# u0 = lamda +# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) + +# if flag=='secondary': +# # Note +# # Here only computes secondary field. +# # I am not sure why it does not work if we add primary term. +# # This term can be analytically evaluated, where h = 0. + +# kernel = 1/(4*np.pi)*(rTE*np.exp(-u0*(z+h)))*lamda**3/u0 + +# else: +# kernel = 1/(4*np.pi)*(np.exp(u0*(z-h))+ rTE*np.exp(-u0*(z+h)))*lamda**3/u0 + +# return kernel + +# def HzkernelCirc_layer(lamda, f, nlay, sig, chi, depth, h, z, I, a, flag): + +# """ + +# Kernel for vertical magnetic component (Hz) at the center +# due to circular loop source in (kx,ky) domain + +# .. math:: + +# H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + r_{TE}e^{u_0|z-h|}] \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda + +# """ + +# w = 2*np.pi*f +# rTE = np.zeros(lamda.size, dtype=complex) +# u0 = lamda +# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) + +# if flag == 'secondary': +# kernel = I*a*0.5*(rTE*np.exp(-u0*(z+h)))*lamda**2/u0 +# else: +# kernel = I*a*0.5*(np.exp(u0*(z-h))+rTE*np.exp(-u0*(z+h)))*lamda**2/u0 + +# return kernel + +#TODO: Get rid of below two functions and put in in main class +# def HzFreq_layer(nlay, sig, chi, depth, f, z, h, r, flag, YBASE, WT0): +# """ + +# """ +# nfreq = np.size(f) +# HzFHT = np.zeros(nfreq, dtype = complex) +# for ifreq in range(nfreq): + +# kernel = lambda x: HzKernel_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, flag) +# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT0, kernel, r) + +# return HzFHT + +# def HzCircFreq_layer(nlay, sig, chi, depth, f, z, h, I, a, flag, YBASE, WT1): + +# """ + +# """ +# nfreq = np.size(f) +# HzFHT = np.zeros(nfreq, dtype = complex) +# for ifreq in range(nfreq): + +# kernel = lambda x: HzkernelCirc_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, I, a, flag) +# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT1, kernel, a) + +# return HzFHT diff --git a/simpegEM1D/survey_original.py b/simpegEM1D/survey_original.py new file mode 100644 index 0000000..afa3bc0 --- /dev/null +++ b/simpegEM1D/survey_original.py @@ -0,0 +1,548 @@ +from SimPEG import maps, utils +from SimPEG.survey import BaseSurvey +import numpy as np +import scipy.sparse as sp +from scipy.constants import mu_0 +from .analytics import ColeCole +from .supporting_functions.digital_filter import ( + transFilt, transFiltImpulse, transFiltInterp, transFiltImpulseInterp +) +from .Waveform import CausalConv +from scipy.interpolate import interp1d +from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline +import properties +from empymod import filters +from empymod.utils import check_time +from empymod.transform import fourier_dlf +from .Waveforms import ( + piecewise_pulse_fast, + butterworth_type_filter, butter_lowpass_filter +) + + +class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): + """ + Base EM1D Survey + + """ + + frequency = properties.Array("Frequency (Hz)", dtype=float) + + rx_location = properties.Array("Receiver location (x, y, z)", dtype=float) + src_location = properties.Array("Source location (x, y, z)", dtype=float) + + src_path = properties.Array( + "Source path (xi, yi, zi), i=0,...N", + dtype=float + ) + + src_type = properties.StringChoice( + "Source type", + default="VMD", + choices=[ + "VMD", "CircularLoop", "piecewise_segment" + ] + ) + offset = properties.Array("Src-Rx offsets", dtype=float) + rx_type = properties.StringChoice( + "Source location", + default="Hz", + choices=["Hz", "ppm", "Bz", "dBzdt"] + ) + field_type = properties.StringChoice( + "Field type", + default="secondary", + choices=["total", "secondary"] + ) + depth = properties.Array("Depth of the layers", dtype=float) + topo = properties.Array("Topography (x, y, z)", dtype=float) + I = properties.Float("Src loop current", default=1.) + a = properties.Float("Src loop radius", default=1.) + half_switch = properties.Bool("Switch for half-space", default=False) + + def __init__(self, **kwargs): + BaseSurvey.__init__(self, **kwargs) + + @property + def h(self): + """ + Source height + """ + return self.src_location[2]-self.topo[2] + + @property + def z(self): + """ + Receiver height + """ + return self.rx_location[2]-self.topo[2] + + @property + def dz(self): + """ + Source height - Rx height + """ + return self.z - self.h + + @property + def n_layer(self): + """ + Srource height + """ + if self.half_switch is False: + return self.depth.size + elif self.half_switch is True: + return int(1) + + @property + def n_frequency(self): + """ + # of frequency + """ + + return int(self.frequency.size) + + @property + def src_paths_on_x(self): + """ + # of frequency + """ + if getattr(self, '_src_paths_on_x', None) is None: + offset = np.unique(self.offset) + if offset.size != 1: + raise Exception( + "For the sourth paths, only single offset works!" + ) + xy_rot, xy_obs_rot, angle = rotate_to_x_axis( + np.flipud(xy), np.r_[offset, 0.] + ) + + return self._src_paths + + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Here we do not store predicted data + # because projection (`d = P(f)`) is cheap. + # """ + + # if f is None: + # f = self.prob.fields(m) + # return utils.mkvc(self.projectFields(f)) + + +class EM1DSurveyFD(BaseEM1DSurvey): + """ + Freqency-domain EM1D survey + """ + # Nfreq = None + switch_real_imag = properties.StringChoice( + "Switch for real and imaginary part of the data", + default="all", + choices=["all", "real", "imag"] + ) + + def __init__(self, **kwargs): + BaseEM1DSurvey.__init__(self, **kwargs) + + if self.src_type == "VMD": + if self.offset is None: + raise Exception("offset is required!") + + if self.offset.size == 1: + self.offset = self.offset * np.ones(self.n_frequency) + + @property + def nD(self): + """ + # of data + """ + + if self.switch_real_imag == "all": + return int(self.frequency.size * 2) + elif ( + self.switch_real_imag == "imag" or self.switch_real_imag == "real" + ): + return int(self.n_frequency) + + # @property + # def hz_primary(self): + # # Assumes HCP only at the moment + # if self.src_type == 'VMD': + # return -1./(4*np.pi*self.offset**3) + # elif self.src_type == 'CircularLoop': + # return self.I/(2*self.a) * np.ones_like(self.frequency) + # else: + # raise NotImplementedError() + + # def projectFields(self, u): + # """ + # Decompose frequency domain EM responses as real and imaginary + # components + # """ + + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + + # if self.rx_type == 'Hz': + # factor = 1. + # elif self.rx_type == 'ppm': + # factor = 1./self.hz_primary * 1e6 + + # if self.switch_real_imag == 'all': + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + # if ureal.ndim == 1 or 0: + # resp = np.r_[ureal*factor, uimag*factor] + # elif ureal.ndim == 2: + # if np.isscalar(factor): + # resp = np.vstack( + # (factor*ureal, factor*uimag) + # ) + # else: + # resp = np.vstack( + # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) + # ) + # else: + # raise NotImplementedError() + # elif self.switch_real_imag == 'real': + # resp = (u.real).copy() + # elif self.switch_real_imag == 'imag': + # resp = (u.imag).copy() + # else: + # raise NotImplementedError() + + # return resp + + +class EM1DSurveyTD(BaseEM1DSurvey): + """docstring for EM1DSurveyTD""" + + time = properties.Array( + "Time channels (s) at current off-time", dtype=float + ) + + wave_type = properties.StringChoice( + "Source location", + default="stepoff", + choices=["stepoff", "general"] + ) + + moment_type = properties.StringChoice( + "Source moment type", + default="single", + choices=["single", "dual"] + ) + + n_pulse = properties.Integer( + "The number of pulses", + ) + + base_frequency = properties.Float( + "Base frequency (Hz)" + ) + + time_input_currents = properties.Array( + "Time for input currents", dtype=float + ) + + input_currents = properties.Array( + "Input currents", dtype=float + ) + + use_lowpass_filter = properties.Bool( + "Switch for low pass filter", default=False + ) + + high_cut_frequency = properties.Float( + "High cut frequency for low pass filter (Hz)", + default=210*1e3 + ) + + # Predicted data + _pred = None + + # ------------- For dual moment ------------- # + + time_dual_moment = properties.Array( + "Off-time channels (s) for the dual moment", dtype=float + ) + + time_input_currents_dual_moment = properties.Array( + "Time for input currents (dual moment)", dtype=float + ) + + input_currents_dual_moment = properties.Array( + "Input currents (dual moment)", dtype=float + ) + + base_frequency_dual_moment = properties.Float( + "Base frequency for the dual moment (Hz)" + ) + + def __init__(self, **kwargs): + BaseEM1DSurvey.__init__(self, **kwargs) + if self.time is None: + raise Exception("time is required!") + + # Use Sin filter for frequency to time transform + self.fftfilt = filters.key_81_CosSin_2009() + self.set_frequency() + + if self.src_type == "VMD": + if self.offset is None: + raise Exception("offset is required!") + + if self.offset.size == 1: + self.offset = self.offset * np.ones(self.n_frequency) + + @property + def time_int(self): + """ + Time channels (s) for interpolation" + """ + if getattr(self, '_time_int', None) is None: + + if self.moment_type == "single": + time = self.time + pulse_period = self.pulse_period + period = self.period + # Dual moment + else: + time = np.unique(np.r_[self.time, self.time_dual_moment]) + pulse_period = np.maximum( + self.pulse_period, self.pulse_period_dual_moment + ) + period = np.maximum(self.period, self.period_dual_moment) + tmin = time[time>0.].min() + if self.n_pulse == 1: + tmax = time.max() + pulse_period + elif self.n_pulse == 2: + tmax = time.max() + pulse_period + period/2. + else: + raise NotImplementedError("n_pulse must be either 1 or 2") + n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) + self._time_int = np.logspace( + np.log10(tmin), np.log10(tmax), n_time + ) + # print (tmin, tmax) + + return self._time_int + + @property + def n_time(self): + return int(self.time.size) + + @property + def period(self): + return 1./self.base_frequency + + @property + def pulse_period(self): + Tp = ( + self.time_input_currents.max() - + self.time_input_currents.min() + ) + return Tp + + # ------------- For dual moment ------------- # + @property + def n_time_dual_moment(self): + return int(self.time_dual_moment.size) + + @property + def period_dual_moment(self): + return 1./self.base_frequency_dual_moment + + @property + def pulse_period_dual_moment(self): + Tp = ( + self.time_input_currents_dual_moment.max() - + self.time_input_currents_dual_moment.min() + ) + return Tp + + @property + def nD(self): + """ + # of data + """ + if self.moment_type == "single": + return self.n_time + else: + return self.n_time + self.n_time_dual_moment + + @property + def lowpass_filter(self): + """ + Low pass filter values + """ + if getattr(self, '_lowpass_filter', None) is None: + # self._lowpass_filter = butterworth_type_filter( + # self.frequency, self.high_cut_frequency + # ) + + self._lowpass_filter = (1+1j*(self.frequency/self.high_cut_frequency))**-1 + self._lowpass_filter *= (1+1j*(self.frequency/3e5))**-0.99 + # For actual butterworth filter + + # filter_frequency, values = butter_lowpass_filter( + # self.high_cut_frequency + # ) + # lowpass_func = interp1d( + # filter_frequency, values, fill_value='extrapolate' + # ) + # self._lowpass_filter = lowpass_func(self.frequency) + + return self._lowpass_filter + + def set_frequency(self, pts_per_dec=-1): + """ + Compute Frequency reqired for frequency to time transform + """ + if self.wave_type == "general": + _, frequency, ft, ftarg = check_time( + self.time_int, -1, 'dlf', + {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0 + ) + elif self.wave_type == "stepoff": + _, frequency, ft, ftarg = check_time( + self.time, -1, 'dlf', + {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0, + ) + else: + raise Exception("wave_type must be either general or stepoff") + + self.frequency = frequency + self.ftarg = ftarg + + # def projectFields(self, u): + # """ + # Transform frequency domain responses to time domain responses + # """ + # # Compute frequency domain reponses right at filter coefficient values + # # Src waveform: Step-off + + # if self.use_lowpass_filter: + # factor = self.lowpass_filter.copy() + # else: + # factor = np.ones_like(self.frequency, dtype=complex) + + # if self.rx_type == 'Bz': + # factor *= 1./(2j*np.pi*self.frequency) + + # if self.wave_type == 'stepoff': + # # Compute EM responses + # if u.size == self.n_frequency: + # resp, _ = fourier_dlf( + # u.flatten()*factor, self.time, + # self.frequency, self.ftarg + # ) + # # Compute EM sensitivities + # else: + # resp = np.zeros( + # (self.n_time, self.n_layer), dtype=np.float64, order='F') + # # ) + # # TODO: remove for loop + # for i in range(self.n_layer): + # resp_i, _ = fourier_dlf( + # u[:, i]*factor, self.time, + # self.frequency, self.ftarg + # ) + # resp[:, i] = resp_i + + # # Evaluate piecewise linear input current waveforms + # # Using Fittermann's approach (19XX) with Gaussian Quadrature + # elif self.wave_type == 'general': + # # Compute EM responses + # if u.size == self.n_frequency: + # resp_int, _ = fourier_dlf( + # u.flatten()*factor, self.time_int, + # self.frequency, self.ftarg + # ) + # # step_func = interp1d( + # # self.time_int, resp_int + # # ) + # step_func = iuSpline( + # np.log10(self.time_int), resp_int + # ) + + # resp = piecewise_pulse_fast( + # step_func, self.time, + # self.time_input_currents, self.input_currents, + # self.period, n_pulse=self.n_pulse + # ) + + # # Compute response for the dual moment + # if self.moment_type == "dual": + # resp_dual_moment = piecewise_pulse_fast( + # step_func, self.time_dual_moment, + # self.time_input_currents_dual_moment, + # self.input_currents_dual_moment, + # self.period_dual_moment, + # n_pulse=self.n_pulse + # ) + # # concatenate dual moment response + # # so, ordering is the first moment data + # # then the second moment data. + # resp = np.r_[resp, resp_dual_moment] + + # # Compute EM sensitivities + # else: + # if self.moment_type == "single": + # resp = np.zeros( + # (self.n_time, self.n_layer), + # dtype=np.float64, order='F' + # ) + # else: + # # For dual moment + # resp = np.zeros( + # (self.n_time+self.n_time_dual_moment, self.n_layer), + # dtype=np.float64, order='F') + + # # TODO: remove for loop (?) + # for i in range(self.n_layer): + # resp_int_i, _ = fourier_dlf( + # u[:, i]*factor, self.time_int, + # self.frequency, self.ftarg + # ) + # # step_func = interp1d( + # # self.time_int, resp_int_i + # # ) + + # step_func = iuSpline( + # np.log10(self.time_int), resp_int_i + # ) + + # resp_i = piecewise_pulse_fast( + # step_func, self.time, + # self.time_input_currents, self.input_currents, + # self.period, n_pulse=self.n_pulse + # ) + + # if self.moment_type == "single": + # resp[:, i] = resp_i + # else: + # resp_dual_moment_i = piecewise_pulse_fast( + # step_func, + # self.time_dual_moment, + # self.time_input_currents_dual_moment, + # self.input_currents_dual_moment, + # self.period_dual_moment, + # n_pulse=self.n_pulse + # ) + # resp[:, i] = np.r_[resp_i, resp_dual_moment_i] + # return resp * (-2.0/np.pi) * mu_0 + + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Computes predicted data. + # Predicted data (`_pred`) are computed and stored + # when self.prob.fields(m) is called. + # """ + # if f is None: + # f = self.prob.fields(m) + + # return self._pred From 4e34ff57c7fcd534efe87987e4f35e6bef0f9aba Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 29 May 2020 10:01:11 -0700 Subject: [PATCH 07/54] Basic FDEM forward problem --- notebooks/examples/EM1DFM_forward.ipynb | 413 +++++++++++++++++ .../EM1DFM_inversion_sigma_height.ipynb | 384 ++++++++++++++++ notebooks/examples/EM1DTM_fwd.ipynb | 285 ++++++++++++ notebooks/examples/EM1D_TD_FWD.ipynb | 83 +--- notebooks/examples/EM1D_fwd.ipynb | 157 +------ simpegEM1D/Survey.py | 163 ++----- simpegEM1D/__init__.py | 11 +- simpegEM1D/receivers.py | 20 +- simpegEM1D/simulation.py | 414 +++++++++++------- simpegEM1D/simulation_original.py | 4 +- simpegEM1D/sources.py | 83 ++-- simpegEM1D/supporting_functions/kernels.py | 33 +- 12 files changed, 1489 insertions(+), 561 deletions(-) create mode 100644 notebooks/examples/EM1DFM_forward.ipynb create mode 100644 notebooks/examples/EM1DFM_inversion_sigma_height.ipynb create mode 100644 notebooks/examples/EM1DTM_fwd.ipynb diff --git a/notebooks/examples/EM1DFM_forward.ipynb b/notebooks/examples/EM1DFM_forward.ipynb new file mode 100644 index 0000000..22512c0 --- /dev/null +++ b/notebooks/examples/EM1DFM_forward.ipynb @@ -0,0 +1,413 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + } + ], + "source": [ + "from discretize import TensorMesh\n", + "from SimPEG import maps\n", + "from simpegEM1D.simulation import EM1DFMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyFD\n", + "from simpegEM1D.sources import *\n", + "from simpegEM1D.receivers import *\n", + "from simpegEM1D import analytics\n", + "import numpy as np\n", + "import matplotlib\n", + "%pylab inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set up for EM1D program" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step1: Generate mesh" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "nearthick = np.logspace(-1, 1, 5)\n", + "deepthick = np.logspace(1, 2, 10)\n", + "hx = np.r_[nearthick, deepthick]\n", + "mesh1D = TensorMesh([hx], [0.])\n", + "depth = -mesh1D.gridN[:-1]\n", + "LocSigZ = -mesh1D.gridCC\n", + "nlay = depth.size\n", + "topo = np.r_[0., 0., 0.]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step2: Set survey parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "rx_location = np.c_[8., 0., 0.]\n", + "src_location = np.array([0., 0., 0.])\n", + "frequencies = np.logspace(-2, 8, 61)\n", + "I = 1.\n", + "a = 1.\n", + "field_type = \"secondary\" # \"total\", \"ppm\"\n", + "\n", + "# Receiver list\n", + "receiver_list = []\n", + "receiver_list.append(\n", + " HarmonicPointReceiver(\n", + " rx_location, frequencies, orientation=\"z\",\n", + " field_type=\"secondary\", component=\"real\"\n", + " )\n", + ")\n", + "receiver_list.append(\n", + " HarmonicPointReceiver(\n", + " rx_location, frequencies, orientation=\"z\",\n", + " field_type=\"secondary\", component=\"imag\"\n", + " )\n", + ")\n", + "\n", + "# Sources\n", + "source_list = [\n", + " HarmonicMagneticDipoleSource(\n", + " receiver_list=receiver_list, location=src_location, orientation=\"z\", I=I\n", + " )\n", + "]\n", + "\n", + "# source_list = [\n", + "# HarmonicHorizontalLoopSource(\n", + "# receiver_list=receiver_list, location=src_location, a=a, I=I\n", + "# )\n", + "# ]\n", + "\n", + "# Survey\n", + "FDsurvey = EM1DSurveyFD(source_list)\n", + "\n", + "Colesurvey = EM1DSurveyFD(source_list)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step3: Set mappings (Exponential and Cole-Cole maps)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exponential map" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### $$ m = log(\\sigma) $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### $$ M_{exp}(m) = e^{m}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cole-Cole map" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$ m(\\sigma_{\\infty}, \\eta, \\tau, c; \\omega) = \\sigma_{\\infty} - \\sigma_{\\infty}\\eta \\frac{1}{1+(1-\\eta)(\\imath\\omega\\tau)^c}$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sig_half = 1e-2\n", + "chi_half = 0.\n", + "Expmap = maps.ExpMap(mesh1D)\n", + "tau = np.ones(nlay, dtype=float)*1e-1\n", + "eta = np.ones(nlay, dtype=float)*0.5\n", + "c = np.ones(nlay, dtype=float)*0.88" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "m_1D = np.log(np.ones(nlay)*sig_half)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[-5.46799058e-17-1.96234252e-12j -1.16896402e-16-2.88032431e-12j\n", + " -2.50681887e-16-4.22773603e-12j -5.38655317e-16-6.20546187e-12j\n", + " -1.15903476e-15-9.10835352e-12j -2.49280581e-15-1.33691751e-11j\n", + " -5.35440132e-15-1.96230780e-11j -1.14648491e-14-2.88021529e-11j\n", + " -2.43827071e-14-4.22739644e-11j -5.11171297e-14-6.20442205e-11j\n", + " -1.04109185e-13-9.10528105e-11j -2.01013662e-13-1.33607199e-10j\n", + " -3.58829149e-13-1.96026112e-10j -6.06720506e-13-2.87606012e-10j\n", + " -1.06394230e-12-4.21978042e-10j -1.88584081e-12-6.19036850e-10j\n", + " -3.33558439e-12-9.08050705e-10j -5.90958825e-12-1.33179306e-09j\n", + " -1.04968251e-11-1.95296525e-09j -1.86339180e-11-2.86329900e-09j\n", + " -3.30761887e-11-4.19693573e-09j -5.87189264e-11-6.14991769e-09j\n", + " -1.04226195e-10-9.00846260e-09j -1.84935729e-10-1.31899359e-08j\n", + " -3.27993936e-10-1.93020685e-08j -5.81400117e-10-2.82282279e-08j\n", + " -1.02990773e-09-4.12496321e-08j -1.82292821e-09-6.02194990e-08j\n", + " -3.22336302e-09-8.78093657e-08j -5.69275377e-09-1.27854148e-07j\n", + " -1.00390953e-08-1.85829392e-07j -1.76720061e-08-2.69500033e-07j\n", + " -3.10401974e-08-3.89781198e-07j -5.43749881e-08-5.61840573e-07j\n", + " -9.49400531e-08-8.06433738e-07j -1.65102293e-07-1.15137109e-06j\n", + " -2.85699664e-07-1.63281838e-06j -4.91382245e-07-2.29574962e-06j\n", + " -8.38792464e-07-3.19217123e-06j -1.41847289e-06-4.37453520e-06j\n", + " -2.37086483e-06-5.87985144e-06j -3.90488430e-06-7.69730526e-06j\n", + " -6.31284960e-06-9.70911744e-06j -9.96569115e-06-1.15928368e-05j\n", + " -1.52549352e-05-1.26783691e-05j -2.24233036e-05-1.17757633e-05j\n", + " -3.12054975e-05-7.04803009e-06j -4.02239115e-05+3.88605557e-06j\n", + " -4.62349237e-05+2.32906067e-05j -4.37081555e-05+5.17274430e-05j\n", + " -2.58109982e-05+8.56119100e-05j 1.19223605e-05+1.15323668e-04j\n", + " 6.56056428e-05+1.27189018e-04j 1.19607359e-04+1.12212357e-04j\n", + " 1.54009845e-04+7.71012129e-05j 1.62201830e-04+4.27991495e-05j\n", + " 1.57645995e-04+2.42228201e-05j 1.55099666e-04+1.69490802e-05j\n", + " 1.55346211e-04+1.20096985e-05j 1.55438183e-04+8.12727627e-06j\n", + " 1.55423866e-04+5.53589383e-06j]\n" + ] + } + ], + "source": [ + "# Conductivity\n", + "simFD = EM1DFMSimulation(\n", + " mesh1D, survey=FDsurvey, depth=depth, sigmaMap=Expmap,\n", + " chi=np.zeros(nlay)\n", + ")\n", + "\n", + "# Hz = simFD.dpred(m_1D)\n", + "Hz = simFD.fields(m_1D)\n", + "print(np.shape(Hz))\n", + "print(Hz)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[ 5.53757290e-15-9.82263144e-13j 1.13879984e-14-1.44243389e-12j\n", + " 2.33869700e-14-2.11861458e-12j 4.80265611e-14-3.11270526e-12j\n", + " 9.85321185e-14-4.57529619e-12j 2.01925484e-13-6.72974845e-12j\n", + " 4.13070866e-13-9.90931818e-12j 8.42699459e-13-1.46159963e-11j\n", + " 1.71187054e-12-2.16175922e-11j 3.45402835e-12-3.21164614e-11j\n", + " 6.89324945e-12-4.80592236e-11j 1.35141956e-11-7.27264954e-11j\n", + " 2.57469873e-11-1.11841532e-10j 4.69381200e-11-1.75456456e-10j\n", + " 8.03625965e-11-2.80588017e-10j 1.26323796e-10-4.53489970e-10j\n", + " 1.80484076e-10-7.29084498e-10j 2.34605771e-10-1.15219144e-09j\n", + " 2.81668418e-10-1.78240651e-09j 3.17628539e-10-2.70633190e-09j\n", + " 3.40249353e-10-4.05412480e-09j 3.46382970e-10-6.01972956e-09j\n", + " 3.29112985e-10-8.88867071e-09j 2.74424515e-10-1.30783931e-08j\n", + " 1.56052188e-10-1.91970525e-08j -7.34649201e-11-2.81285629e-08j\n", + " -4.98587742e-10-4.11547143e-08j -1.26861497e-09-6.01292914e-08j\n", + " -2.64647850e-09-8.77243958e-08j -5.09387832e-09-1.27775521e-07j\n", + " -9.41909607e-09-1.85758825e-07j -1.70321780e-08-2.69439907e-07j\n", + " -3.03824285e-08-3.89734624e-07j -5.37019594e-08-5.61811467e-07j\n", + " -9.42554839e-08-8.06426882e-07j -1.64411243e-07-1.15139217e-06j\n", + " -2.85008894e-07-1.63287394e-06j -4.90700650e-07-2.29584692e-06j\n", + " -8.38131544e-07-3.19231789e-06j -1.41784724e-06-4.37473857e-06j\n", + " -2.37029252e-06-5.88011751e-06j -3.90438704e-06-7.69763704e-06j\n", + " -6.31245224e-06-9.70951271e-06j -9.96542029e-06-1.15932852e-05j\n", + " -1.52548159e-05-1.26788492e-05j -2.24233543e-05-1.17762397e-05j\n", + " -3.12057216e-05-7.04845415e-06j -4.02242882e-05+3.88574150e-06j\n", + " -4.62353997e-05+2.32904563e-05j -4.37086455e-05+5.17274855e-05j\n", + " -2.58114013e-05+8.56121270e-05j 1.19221248e-05+1.15323983e-04j\n", + " 6.56055912e-05+1.27189320e-04j 1.19607430e-04+1.12212552e-04j\n", + " 1.54009937e-04+7.71012871e-05j 1.62201883e-04+4.27991566e-05j\n", + " 1.57646011e-04+2.42228164e-05j 1.55099671e-04+1.69490808e-05j\n", + " 1.55346214e-04+1.20096993e-05j 1.55438184e-04+8.12727655e-06j\n", + " 1.55423867e-04+5.53589397e-06j]\n" + ] + } + ], + "source": [ + "# Frequency-dependent conductivity\n", + "simCole = EM1DFMSimulation(\n", + " mesh1D, survey=Colesurvey, depth=depth, sigmaMap=Expmap,\n", + " eta=eta, tau=tau, c=c,\n", + " chi=np.zeros(nlay)\n", + ")\n", + "\n", + "# HzCole = simCole.dpred(m_1D)\n", + "HzCole = simCole.fields(m_1D)\n", + "Hzanal = analytics.Hzanal(sig_half, frequencies, 8., 'secondary')\n", + "print(np.shape(HzCole))\n", + "print(HzCole)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "matplotlib.rcParams['font.size'] = 16" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", + "ax.loglog(frequencies, np.abs(np.real(Hz)), 'b-')\n", + "ax.loglog(frequencies, np.abs(np.real(Hzanal)), 'bx')\n", + "ax.loglog(frequencies, np.abs(np.imag(Hz)), 'r-')\n", + "ax.loglog(frequencies, np.abs(np.imag(Hzanal)), 'rx')\n", + "legend(('Real $H_{z}$', 'Real $H_{z \\ true}$', 'Imag $H_{z}$', 'Imag $H_{z \\ true}$'))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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zJgxtGjRgtKlS/Prr7/Ss2fPHC0rjI2NpUaNGnTo0CHda1u2bAGynwC4fv16mjZtmup5u3btWLJkCQC33XYb48aNY8aMGdlub07ZACAf2bZNO//jx3WbghT/rYWkULkLMaYgyWjjrLz+/7+GDRtSu3ZtANq0acOll17K0KFDueGGGyhZsiTlypUjIiKCe++99+ygIK2IiAjmzp3LgAEDGDVq1NnjR48ezXG7YmNjucrH3VNsbCxFixalfv36Z48NGDCAuLg4AA4dOsT+/fs5fPgwhVLsC+NtAHDJJZecfV69enV27tyZ4zbnhA0A8gnP1gSJibrW/9JLg92ijIXSXYgxBcmwYemPhcLgu2jRokycOJFu3boxdepUhg4dSsmSJWnZsiWbNm2iSZMmRPjYrez48eNEpinHntM76b1797Jnz54MVwA0aNAg1efNnj0b0CTGbt26M+gp9QAAGi1JREFUMW3atFSdP2iH371791TPhw8fDsCuXbt48803mTx5co7anFM2AMgHYmM12z8yUjvWFAPToMoo0x9C5y7EGBMaunbtSvPmzZk0aRL33XcfxYsX59lnn+Waa66hffv23H777Zx33nns37+fDRs2kJCQwDPPPEOHDh2YNWsWl1xyCbVr12bRokV8+eWXOWqDZ/7f2wAgMTGR7777jn79+qV7bcuWLfTu3Ztp06Zx9dVXp3rt1KlTfP/992cjAJ7nY8eOZfz48ZQuXZonn3ySbt265ajNOWUDgDC3di20awelS2vYPymaFhLSLudLe9efVijchRhjguvJJ5+kffv2vPLKK9x///00adKEtWvX8thjj/Gf//yHw4cPU7lyZZo0acLdd98NwJQpUxARRo4cCUCnTp2YM2cOl19+ebY/31Pkx1uS37Zt2zh+/Hi619avX8+AAQN4++23vb4vLi6OihUrct555519XqZMGTZv3pzt9vmVt6UBofAARgBbgUSgu5fXVwKbgFjgM6BRZtfMb8sAP/9cpHRpkRo1RH76Kdit8c6zvG/06NTL/owxWROoZYDGP1atWiUNGzaUrVu3+jzn5Zdfls6dO6d63qFDB7+1IT8uA1wJvAO87uP1niJyGMA51wOYCeSDygxZs2oVdO4M558PK1dC1arBbpF3lulvjMnPevXqRbFixeiTtGNZoUKFWLNmTaocgfXr19OkSZNUz5uH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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", + "ax.loglog(frequencies, np.abs(np.real(HzCole)), 'b-')\n", + "ax.loglog(frequencies, np.abs(np.real(Hzanal)), 'bx')\n", + "ax.loglog(frequencies, np.abs(np.imag(HzCole)), 'r-')\n", + "ax.loglog(frequencies, np.abs(np.imag(Hzanal)), 'rx')\n", + "legend(('Real $H_{z}$', 'Real $H_{z \\ IP}$', 'Imag $H_{z}$', 'Imag $H_{z \\ IP}$'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb new file mode 100644 index 0000000..722d860 --- /dev/null +++ b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb @@ -0,0 +1,384 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", + "`%matplotlib` prevents importing * from pylab and numpy\n", + " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" + ] + } + ], + "source": [ + "from SimPEG import *\n", + "from discretize import TensorMesh\n", + "from simpegEM1D import *\n", + "from scipy.constants import mu_0\n", + "import numpy as np\n", + "%pylab inline\n", + "\n", + "sig_half = 1e-1\n", + "sig_blk = 1e0\n", + "\n", + "frequency = np.array([382, 1822, 7970, 35920, 130100], dtype=float)\n", + "hz = get_vertical_discretization_frequency(frequency, sigma_background=sig_half)\n", + "mesh1D = set_mesh_1d(hz)\n", + "depth = -mesh1D.gridN[:-1]\n", + "LocSigZ = -mesh1D.gridCC\n", + "\n", + "FDsurvey = EM1DSurveyFD(\n", + " rx_location = np.array([0., 0., 100.+30.]),\n", + " src_location = np.array([0., 0., 100.+30.]),\n", + " field_type = 'secondary',\n", + " rx_type = 'ppm',\n", + " src_type = 'VMD',\n", + " offset = np.ones(frequency.size)*7.86,\n", + " topo = np.r_[0., 0., 100.],\n", + " depth = depth,\n", + " frequency = frequency\n", + ")\n", + "\n", + "chi_half = 0.\n", + "wires = maps.Wires(('sigma', mesh1D.nC),('h', 1))\n", + "expmap = maps.ExpMap(mesh1D)\n", + "# expmap_h = Maps.ExpMap(nP=1)\n", + "sigmaMap = expmap * wires.sigma\n", + "# hMap = expmap_h*wires.h\n", + "sig = np.ones(FDsurvey.n_layer)*sig_half\n", + "blk_ind = (-20>LocSigZ) & (-40]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = subplots(1,1, figsize=(5, 8))\n", + "Utils1D.plotLayer(sig, mesh1D, showlayers=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sim = EM1DFMSimulation(\n", + " mesh1D, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h,\n", + " chi= np.zeros(FDsurvey.n_layer)\n", + ")\n", + " \n", + "d_true = sim.dpred(m_true)\n", + "# d_p = FDsurvey.dpred(m_dx_p)\n", + "# d_n = FDsurvey.dpred(m_dx_n)\n", + "d_dh = sim.dpred(m_true_dh)\n", + "# J_h_diff = (d_p-d_n) / (dh)\n", + "# plt.plot(J_h_diff, 'k')\n", + "# plt.plot(prob.getJ_height(m_true), 'bx')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ZO0LL1h7993Wlinj/HtdfbW1Awda+/HH1paSTbZY5BRquZ6n5iadpyarV69m8ODBbNy4kfbt2/Paa69x4403ul1WkTp1ChYtgunT4fPPnW7F4GB49FF44AG49FK3K5TcHDgAixc7/45LlsDx486/W2godOkC998PtWq5XWXJldN5ago18Un79+/nueeeY8aMGdSpU4d//etfhIWF+fw1zi7GN984x8lmzYJff4VrroH+/Z2bn+e4Xzt1yhmdumiRc9u1y2m//XYn4Dp3hltuyTx2J7lTqEmJkZaWxrRp0xgxYgTHjx/nr3/9K1FRUVSqVMnt0orEkSPOoI/p0yE5GcqVg65dnb2ytm2dEXbiP6yFjRszAy5joM9112UONLn3Xihlg3jzTaEmJUJSUhKDBw8mOTmZkJAQpkyZwk033eR2WYUuPR1WrHD2yt5/H06ehMaNYcAAiIiAmjXdrlCKy9698MknTsAtXQonTjinB7Rv7wRcx45Qo4bbVfoehZr4tEOHDjFixAimTZtGrVq1mDx5Mj169PC7rsbdu2HmTPj3v2HbNqhcGXr1cvbKAgPV/VTanTgBy5Zl7sXt3euce3jXXZl7cQ0bajsBhZr4qPT0dGbMmMFzzz3H4cOH+fOf/8zYsWOpXLmy26UVmlOnYOFCZ69syRKn+ykkxAmy7t016EOyl54OX3/thNvChbB+vdN+442ZAXfPPU53dWmkUBOfs2HDBgYPHsyaNWu4++67eeONN2jSpInbZRWajRudIJs92xn0Ubt25qCPG25wuzopaXbvho8/dgJu+XI4fRqqVoUOHZzBJu3bO49LC4Wa+IyjR48yevRoXnvtNapXr050dDR9+/alTJmSf2m/I0fgvfecMMsY9NGtm7NXdt99GvQhheP4cef426JFTtAdOABly0LLls4eXJcu/v+Hk0JNXGetZc6cOQwbNox9+/YxaNAgJk6cSLVqJfsKROnpznDtt9+GDz5wBn3cckvmoA8d5JeilJbmjKBcuNAJuU2bnPabbsoMuDvv9L8/qBRq4orExEQSEhK47rrrePPNN0lISCAwMJA33niDoKAgt8u7KLt3w4wZzqCP7duhSpXMQR+33aaD+eKObdsyuylXrHDmAq1RwxlF2aWLc5rI5Ze7XeXFU6hJsUtMTKR169acOnUKay2XX345//jHP3jssccIKKF/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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1,1, figsize = (7,5))\n", + "axes.plot(FDsurvey.frequency, d_true[0:FDsurvey.n_frequency], 'k.-')\n", + "axes.plot(FDsurvey.frequency, d_true[FDsurvey.n_frequency:], 'b.-')\n", + "axes.plot(FDsurvey.frequency, d_dh[0:FDsurvey.n_frequency], 'kx')\n", + "axes.plot(FDsurvey.frequency, d_dh[FDsurvey.n_frequency:], 'bx')\n", + "axes.set_xscale('log')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from SimPEG import regularization, data" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + "model has any nan: 0\n", + "=============================== Projected GNCG ===============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 3.56e+00 4.42e+02 0.00e+00 4.42e+02 3.90e+01 0 \n", + " 1 3.56e+00 2.92e+02 3.98e+00 3.06e+02 2.15e+01 1 \n", + " 2 1.78e+00 2.44e+02 1.42e+01 2.69e+02 3.15e+01 0 Skip BFGS \n", + " 3 1.78e+00 1.02e+02 4.81e+01 1.87e+02 2.17e+01 0 \n", + " 4 8.89e-01 6.26e+01 6.18e+01 1.18e+02 1.66e+01 0 \n", + " 5 8.89e-01 1.43e+01 8.60e+01 9.08e+01 8.66e+00 0 \n", + " 6 4.44e-01 1.09e+01 8.70e+01 4.96e+01 8.91e+00 0 \n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 4.4342e+01\n", + "1 : |xc-x_last| = 1.1550e+00 <= tolX*(1+|x0|) = 4.7106e+00\n", + "0 : |proj(x-g)-x| = 8.9111e+00 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 8.9111e+00 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 7\n", + "------------------------- DONE! -------------------------\n" + ] + } + ], + "source": [ + "std = 0.07\n", + "floor = 0.\n", + "np.random.seed(1)\n", + "uncert = std*abs(d_true)+floor\n", + "noise = std*np.abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise\n", + "dataObj = data.Data(FDsurvey, dobs=d_obs, noise_floor=uncert)\n", + "\n", + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", + "dmisfit.W = utils.sdiag(1/uncert)\n", + "m0 = np.r_[np.log(np.ones_like(sig)*sig_half), 45.]\n", + "reg_sigma = regularization.Sparse(\n", + " mesh1D, mapping=wires.sigma, cell_weights=mesh1D.vol,\n", + " alpha_s = 0.01\n", + ")\n", + "p=0.\n", + "qx, qz = 1., 1.\n", + "reg_sigma.norms = np.c_[p, qx, qz, 0.]\n", + "IRLS = directives.Update_IRLS(\n", + " max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, \n", + " beta_tol=1e-2,\n", + " chifact_start = 1.\n", + ")\n", + "mesh_h = TensorMesh([1])\n", + "reg_h = regularization.Sparse(\n", + " mesh_h, mapping=wires.h, \n", + " alpha_s = 1.\n", + ")\n", + "reg = reg_sigma + reg_h\n", + "opt = optimization.ProjectedGNCG(maxIter = 40)\n", + "opt.maxIterLS = 5\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2, coolingRate=2)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.)\n", + "target = directives.TargetMisfit()\n", + "update_sense = directives.UpdateSensitivityWeights()\n", + "inv = inversion.BaseInversion(invProb, directiveList=[beta,betaest,target])\n", + "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", + "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS])\n", + "\n", + "# prob.counter = opt.counter = utils.Counter()\n", + "opt.LSshorten = 0.5\n", + "opt.remember('xc')\n", + "mopt = inv.run(m0)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[45.]\n", + "[31.38778403]\n", + "30.0\n" + ] + } + ], + "source": [ + "print (wires.h*m0)\n", + "print (wires.h*mopt)\n", + "print (FDsurvey.h)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['beta', 'std', 'axes', 'floor', 'inv']\n", + "`%matplotlib` prevents importing * from pylab and numpy\n", + " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%pylab inline\n", + "fig, ax = subplots(1,1, figsize=(5, 8))\n", + "Utils1D.plotLayer(sig, mesh1D, showlayers=False)\n", + "Utils1D.plotLayer(sigmaMap*mopt, mesh1D, showlayers=True, **{'color':'r'})\n", + "# Utils1D.plotLayer(sigmaMap*invProb.l2model, LocSigZ, showlayers=True,**{'color':'g'})" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + ">" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEzCAYAAAC2Q50YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hUddrG8e8DoqirgoKKFV1ZXwsqkiDWNaJSJJZlDagrRRCJoiJSRYpk6QiIYBBFij26iIBIH5S1kSA2xF1ZVwUEhcWCIi153j/OBEILCSQ5k8n9ua65ZuZ3zsw8Q05y8ytzxtwdERGReFAu7AJERESKikJNRETihkJNRETihkJNRETihkJNRETihkJNRETixkFhF5CfKlWqePXq1cMuQ0REYsjixYvXuXvVPW2L6VCrXr06WVlZYZchIiIxxMy+2ds2DT+KiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEixGTx4MJFIZKe2SCTC4MGDi+X1FGoiIlJsEhMTSUlJ2R5skUiElJQUEhMTi+X1Yvo0WSIiUrolJSWRkZFBSkoKqamppKenk5GRQVJSUrG8nnpqIiJSrJKSkkhNTSUtLY3U1NRiCzRQqImISDGLRCKkp6fTs2dP0tPTd5tjK0r7DDUzq2hmi8zsYzNbamaPRNsnmNl/zeyj6OWCaLuZ2UgzW25mn5jZhXmeq4WZfRm9tCi2dyUiIjEhdw4tIyODvn37bh+KLK5gK0hPbTNwlbufD1wANDCzutFtnd39gujlo2hbQ6BG9NIWSAcws6OB3sBFQB2gt5lVLrq3IiIisSYzM3OnObTcObbMzMxieb19LhRxdwd+jd6tEL14Pg+5AZgUfdz7ZlbJzKoBVwJz3H09gJnNARoAL+5/+SIiEsu6dOmyW1tSUlK4C0XMrLyZfQT8QBBMH0Q39YsOMQ43s0OibScCK/I8fGW0bW/tIiIiRaJAoebu2e5+AXASUMfMzgW6A/8HJAJHA12ju9ueniKf9p2YWVszyzKzrLVr1xakPBEREaCQqx/d/SdgAdDA3Vd7YDMwnmCeDIIe2Ml5HnYS8F0+7bu+xlh3T3D3hKpVqxamPBERKeMKsvqxqplVit4+FLga+CI6T4aZGXAj8Fn0IVOB5tFVkHWBn919NTALuNbMKkcXiFwbbRMRESkSBTmjSDVgopmVJwjBDHefbmbzzawqwbDiR0C76P4zgEbAcmAj0ArA3debWRqQu+Slb+6iERERkaJgwSLF2JSQkOBZWVlhlyEiIjHEzBa7e8KetumMIiIiEjcUaiIiEjcUaiIiEjcUaiIiUuwmT55M/fr12bJlS7G+jkJNRESKzfr167ntttto0qQJ69atY926dcX6ego1EREpFjNmzODcc88lIyODRx55hPfff58TTjihWF9ToSYiIkXql19+oXXr1lx33XUcc8wxLFq0iF69elGhQoVif22FmoiIFJl58+ZRs2ZNJkyYQLdu3cjKyqJWrVol9voKNREROWC//fYb7du35+qrr6ZixYq88847DBgwgEMOOWTfDy5CCjURETkg77zzDueffz6jR4+mQ4cOLFmyhLp16+77gcVAoSYiIvtl06ZNdO7cmcsvv5ycnBwWLFjA8OHDOeyww0KrqSAnNBYREdlJZmYmLVq0YNmyZdx1110MGTKEI444Iuyy1FMTEZGC27JlCz179uTiiy9mw4YNzJo1izFjxsREoIF6aiIiUkCffPIJzZs35+OPP6ZFixaMGDGCSpUqhV3WTtRTExGRfG3bto3+/fuTkJDAmjVreP3115kwYULMBRqopyYiIvn44osvaNGiBYsWLaJp06aMGjWKKlWqhF3WXqmnJiIiu8nOzmbYsGHUqlWL//znP7z88su89NJLMR1ooJ6aiIjs4j//+Q8tW7bkn//8J9dffz1PPvkkxx9/fNhlFYh6aiIiAoC7k56eznnnncenn37KhAkTmDJlSqkJNFBPTUREgG+//ZbWrVszd+5crr32WsaNG8dJJ50UdlmFpp6aiEgZ5u6MHz+emjVr8t577zFmzBhmzpxZKgMN1FMTESmzVq9eTdu2bZk+fTpXXHEF48eP5/TTTw+7rAOinpqISBnj7rz00kucc845zJ07l+HDhxOJREp9oIFCTUSkTFm7di0pKSnccsstnHnmmXz00Ud06NCBcuXiIw7i412IiMg+TZkyhXPPPZepU6cyYMAAFi5cyJlnnhl2WUVKc2oiInHuxx9/5L777uO5556jVq1azJ07l5o1a4ZdVrFQT01EJI7NnDmTc889lxdffJHevXvzwQcfxG2ggUJNRCQubdiwgbZt29KwYUMqV67M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a5OYCCkpO4YYIpEd9wtjzZpgnuzZZ4MPSR90ULCaasSI4PyLFSsWT/0iUnTy/v7nhlne+0VNoRbD3J0lS5ZsH1ZcvHgxANWrV6dNmzYkJyfz5z//OeaGFZOSggM2JQVSU4P/mRX0AN64MThN1aRJwWmrcnKCkHz88WCerDSeUVykLMvM3Pn3P/fvQ2Zm8YSaForEmN9//5358+dvX624atUqzIy6detuX614zjnnlIrVir167RhDz+8sWTk5weqoSZOCEwn/+iuccsqOz5P93/+VWMkiUgpooUiMW7NmzfZhxblz57Jx40b+8Ic/cO21124fVjy2lH11bUHG0Jcu3TFPtnIlHHnkjs+TXX655slEpPAUaiFwdz7++OPtw4qZ0U8pnnLKKbRq1Yrk5GSuvPJKDimlH67Kbwz97LPhxReDMPvww+AbeBs0gKFD4frr4dBDw65eREozhVoJ2bRpE5FIZPuw4ooVKzAz6tSpw9///neSk5OpWbNmqRhW3Jddx9Dr1g0+bJmaCsuXB8vya9cOFnzccguUsk6oiMSwA5pTM7OvgQ1ANrDN3RPM7GjgZaA68DWQ4u4/WvDX+jGgEbARaOnuH+b3/KV9Tu3777/njTfeYNq0acyZM4fffvuNww47bPuw4nXXXcdxxx0XdplF6rff4Jtv4Ouvg+vMTHj1VdiwAU4+OZgju/12OOussCsVkdKquOfUktx9XZ773YB57j7QzLpF73cFGgI1opeLgPToddxwdz799NPtw4qLFi3C3TnppJNo3rw5ycnJJCUlUbEUr0X/5ZcdoZUbXHmv163bef8jjoC//jUIsj//WfNkIlK8imP48QbgyujticACglC7AZgU/dqA982skplVc/fVxVBDidm8eTMLFizYHmTffvstAImJiTzyyCMkJydz/vnnl4phRXf46af8Q+vHH3d+TMWKwRk9Tj01GFLMvV29enA57jgFmYiUnAMNNQdmm5kDT7r7WOC43KBy99VmljtjciKwIs9jV0bbSl2o/fDDD8yYMYNp06Yxe/Zsfv31Vw499FCuueYaevbsyXXXXUe1atXCLnM37sFXQ+waVHlv//LLzo85/PAdQXXxxbuHVtWqOuu9iMSOAw21S939u2hwzTGzL/LZd09/+nab0DOztkBbCFYD7q+i/E4vd+ezzz7bvuz+/fffx9058cQTue22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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = subplots(1,1, figsize = (7,5))\n", + "axes.plot(FDsurvey.frequency, d_true[0:FDsurvey.n_frequency], 'k-')\n", + "axes.plot(FDsurvey.frequency, d_true[FDsurvey.n_frequency:], 'b-')\n", + "axes.plot(FDsurvey.frequency, d_obs[0:FDsurvey.n_frequency], 'kx')\n", + "axes.plot(FDsurvey.frequency, d_obs[FDsurvey.n_frequency:], 'bx')\n", + "axes.set_xscale('log')\n", + "axes.set_xlabel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/examples/EM1DTM_fwd.ipynb b/notebooks/examples/EM1DTM_fwd.ipynb new file mode 100644 index 0000000..5ad776e --- /dev/null +++ b/notebooks/examples/EM1DTM_fwd.ipynb @@ -0,0 +1,285 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + } + ], + "source": [ + "from SimPEG import *\n", + "from simpegEM1D import (\n", + " Utils1D, get_vertical_discretization_time, \n", + " set_mesh_1d, skytem_HM_2015\n", + ")\n", + "from simpegEM1D.simulation import EM1DTMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyTD\n", + "from simpegEM1D import analytics\n", + "import numpy as np\n", + "from simpegEM1D import skytem_HM_2015\n", + "from simpegEM1D.supporting_functions.digital_filter import setFrequency, transFilt\n", + "from scipy.constants import mu_0\n", + "%pylab inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set up for EM1D program\n", + "\n", + "## Step 1: Generate Mesh" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hz = np.array([10, 10, 10])\n", + "mesh1D = set_mesh_1d(hz)\n", + "depth = -mesh1D.gridN[:-1]\n", + "nlay = len(depth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step2: Set survey parameters" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "rx_location = np.c_[10., 0., 0.]\n", + "src_location = np.array([0., 0., 0.])\n", + "times = np.logspace(-5, -2, 31)\n", + "I = 1.\n", + "a = 1.\n", + "field_type = \"b\"\n", + "\n", + "# Receiver list\n", + "receiver_list = []\n", + "receiver_list.append(\n", + " TimeDomainPointReceiver(\n", + " rx_location, times, orientation=\"z\", component=\"dbdt\"\n", + " )\n", + ")\n", + "\n", + "# Sources\n", + "source_list = [\n", + " TimeDomainMagneticDipoleSource(\n", + " receiver_list=receiver_list, location=src_location, orientation=\"z\", I=I\n", + " )\n", + "]\n", + "\n", + "# Survey\n", + "TDsurvey = EM1DSurveyTD(source_list)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 3: Model and Mapping" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sigma_half = 0.1\n", + "sigma = np.ones(hz.size) * sigma_half\n", + "\n", + "chi_half = 0.\n", + "Expmap = maps.ExpMap(mesh1D)\n", + "tau = np.ones(nlay, dtype=float)*1e-1\n", + "eta = np.ones(nlay, dtype=float)*0.5\n", + "c = np.ones(nlay, dtype=float)*0.88" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "m_1D = np.log(np.ones(nlay)*sig_half)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.08568701e-12 6.05308651e-12 4.47918289e-12 3.28434137e-12\n", + " 2.39082145e-12 1.73041915e-12 1.24673427e-12 8.95008883e-13\n", + " 6.40665731e-13 4.57562169e-13 3.26195179e-13 2.32213450e-13\n", + " 1.65119120e-13 1.17304714e-13 8.32766395e-14 5.90851502e-14\n", + " 4.19025878e-14 2.97060668e-14 2.10535441e-14 1.49178592e-14\n", + " 1.05684045e-14 7.48600648e-15 5.30202123e-15 3.75485979e-15\n", + " 2.65897727e-15 1.88283018e-15 1.33317778e-15 9.43952283e-16\n", + " 6.68343667e-16 4.73196098e-16 3.35023064e-16]\n" + ] + } + ], + "source": [ + "# Conductivity\n", + "simFD = EM1DTMSimulation(\n", + " mesh1D, survey=TDsurvey, depth=depth, sigmaMap=Expmap,\n", + " chi=np.zeros(nlay)\n", + ")\n", + "\n", + "# Hz = simFD.dpred(m_1D)\n", + "bz = simFD.fields(m_1D)\n", + "print(np.shape(bz))\n", + "print(bz)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def bz_analytic_solution(r, t, sigma):\n", + " \"\"\"\n", + " r: offset bewteen VMD soure and Bz receiver (m)\n", + " t: measured times\n", + " sigma: conductivity of the half-space earth\n", + " \"\"\"\n", + " wt, tbase, omega_int = setFrequency(t)\n", + " hz = analytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", + " # Treatment for inaccuracy in analytic solutions\n", + " ind = omega_int < 0.2\n", + " hz[ind] = 0.\n", + " hzTD, f0 = transFilt(hz, wt, tbase, omega_int, t)\n", + " return hzTD*mu_0" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.09316857e-12 6.06698620e-12 4.49551685e-12 3.29172016e-12\n", + " 2.39503887e-12 1.73740816e-12 1.25093533e-12 8.95539752e-13\n", + " 6.43131939e-13 4.59430578e-13 3.26462306e-13 2.32942155e-13\n", + " 1.65831926e-13 1.17543076e-13 8.34320390e-14 5.93153625e-14\n", + " 4.20071771e-14 2.96975019e-14 2.11024543e-14 1.49397731e-14\n", + " 1.05327498e-14 7.47226130e-15 5.28550866e-15 3.72160909e-15\n", + " 2.62520779e-15 1.85067287e-15 1.29653552e-15 9.04398964e-16\n", + " 6.30339448e-16 4.34161312e-16 2.94066345e-16]\n" + ] + } + ], + "source": [ + "bz_analytic = bz_analytic_solution(offset, time, sigma_half)\n", + "print(np.shape(bz_analytic))\n", + "print(bz_analytic)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAccAAAFBCAYAAAACFWR3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXgUVdbH8e/JHragLCIERUSQJRAUcUVRFHGJICLuviqCzogLMyrozCji7uiwiCOiOOioLCIiIILoiCCoEATZN3GLqATQIJIAIff9IwmG0B2S0N3V3fl9nidP0reqq0+mzByq6p57zDmHiIiI/CHG6wBERETCjZKjiIhIKUqOIiIipSg5ioiIlKLkKCIiUoqSo4iISClxXgcQCnXr1nVNmjTxOgwREQkjixcv3uKcq+drW5VIjk2aNCEzM9PrMEREJIyY2bf+tum2qoiISClhnxzNrKmZjTGzSWWNiYiIBEpQk6OZvWxmm81sRanxbma21sw2mNmgso7hnNvonOtzsDEREZFACfYzx7HASODV4gEziwWeA84DsoBFZjYViAUeL/X+m5xzm4Mco4hIwOzZs4esrCzy8vK8DkWKJCUlkZqaSnx8fLnfE9Tk6Jyba2ZNSg13BDY45zYCmNl4oLtz7nHg4mDGIyISbFlZWdSsWZMmTZpgZl6HU+U559i6dStZWVkcc8wx5X6fF88cGwHfl3idVTTmk5nVMbNRQHszu8/fmI/39TOzTDPLzM7ODmD4IiL+5eXlUadOHSXGMGFm1KlTp8JX8l6Ucvj6L8Zv3yzn3Fbg1oON+XjfaGA0QIcOHdSXS0RCRokxvFTmfHhx5ZgFNC7xOhXY5EEcIiJR7e2338bMWLNmTaWPccMNNzBpUtmFAY899th+r0877bRKf1648CI5LgKOM7NjzCwBuBKYGowPMrMMMxudk5NzaAdaNhGGtoHBtQu/L5sYmABFRIJo3LhxnHHGGYwfPz6on1M6OS5YsCConxcKwS7lGAd8CrQwsywz6+Ocywf6A7OA1cBE59zKYHy+c26ac65fSkpK5Q+ybCJMuwNyvgdc4fdpdyhBikhY27FjB/Pnz2fMmDH7kuOcOXPo3LkzvXr14vjjj+eaa67BucKnTkOGDOGkk06iTZs29OvXb994sQ8//JBLL7103+vZs2fTs2dPBg0aRG5uLunp6VxzzTUA1KhRY99+Tz31FGlpabRr145Bg8qs3AsrQU2OzrmrnHNHOufinXOpzrkxReMznHPNnXPHOuceDWYMh+zDIbAnd/+xPbmF4yIiYWrKlCl069aN5s2bc/jhh/PFF18AsGTJEoYNG8aqVavYuHEj8+fPB6B///4sWrSIFStWkJuby/Tp0/c73jnnnMPq1aspnuD4n//8hxtvvJEnnniC5ORkli5dyuuvv77fe9577z2mTJnC559/zpdffsm9994bgt88MKJ6bVUzywAymjVrVvmD5GT5HHY5WeCcHryLiF8PTVvJqk3bA3rMVg1r8WBG64PuN27cOO666y4ArrzySsaNG8dFF11Ex44dSU1NBSA9PZ1vvvmGM844g48++oinnnqKnTt3sm3bNlq3bk1GRsa+45kZ1113Ha+99ho33ngjn376Ka+++qrPzy72wQcfcOONN1KtWjUADj/88Mr+2iEX1cnROTcNmNahQ4e+lT5ISmrRLdX9/VBQh3tf+pzBl7Sm+RE1DyFKEZHA2rp1K//73/9YsWIFZsbevXsxMy688EISExP37RcbG0t+fj55eXn8+c9/JjMzk8aNGzN48GCfpQ833ngjGRkZJCUlcfnllxMXV3YKcRF8ARHVyTEgujxQ+IyxxK1VF5/M18f/hZUrtnPB8Hlcf+rR3HVuc1KSy7/6gohEv/Jc4QXDpEmTuP7663nhhRf2jZ111ll88sknPvcvToR169Zlx44dTJo0iV69eh2wX8OGDWnYsCGPPPIIs2fP3jceHx/Pnj17DliBpmvXrgwZMoSrr76aatWqsW3btoi5egz7hccPRUBmq7btDRkjIKUxYJDSGMsYQafLbuOjuztzxUmNGbvgG855eg4TFn1HQYFKKkXEW+PGjdtv8gzAZZddxhtvvOFz/9q1a9O3b1/S0tLo0aMHJ510kt9jX3PNNTRu3JhWrVrtG+vXrx9t27bdNyGnWLdu3bjkkkvo0KED6enpPP3004fwW4WWlZ6RFI06dOjggtnPccUPOQyeupLMb3+hbWoKI1qvp8nSZwqfV6akFl59tu0dtM8XkfCxevVqWrZs6XUYQdO/f3/at29Pnz6R1fvB13kxs8XOuQ6+9tdt1QBo0yiFN289lSlLf+CLaaOpP+d5sN2FG4tLP0AJUkQi2oknnkj16tV55plnvA4l6JQcA8TMuLR9Kt0/eouY7bv331hc+qHkKCIRbPHixV6HEDJ65hhgMdt/8Dnu/JSEiIhI+Inq5BiQFXIqKiXV5/APrg4PvLOCnNw9oYtFREQqJaqToye6PADxyfsNubhkPm9yG6999i1dnvmYKUt+OGBpJhERCR9KjoHmq/TjkhFcduNfeOe2M2hUO4m7Jizlmpc+Z8PmHV5HKyIiPkR1cvTimSNQmCAHrIDBvxZ+L5qIk5aawuQ/n84jPdqw4occLhg+l3/OWsPuL8ar64eIBNXNN9/MqlWrPPnswYMH06hRI9LT0/d9/frrr8yZMwczY8yYMfv2XbJkCWa2rybyzTffpHXr1sTExFCyJG/OnDmkpKTQvn17WrRowZlnnnnAerCHIqpnqwZk+bgAi40xrj3laM5v3YDHZ6zm+49fYW/CGGBX4Q4q/RCRIHjppZc8/fwBAwZw9913HzCelpbGhAkT9tVNjh8/nnbt2u3b3qZNGyZPnswtt9xywHs7deq0LyEuXbqUHj16kJycTJcuXQ453qi+cgxn9Wom8q8r0vnnYVNILk6MxdT1Q6TqCEK/2N9//52LLrqIdu3a0aZNGyZMmEDnzp33XXnVqFGDgQMHcuKJJ3LuueeycOFCOnfuTNOmTZk6tbC97tixY+nevTvdunWjRYsWPPTQQ/uO/9prr9GxY0fS09O55ZZb2Lt3LwBjxoyhefPmdO7cmb59+9K/f/+DxnrUUUeRl5fHzz//jHOOmTNncsEFF+zb3rJlS1q0aHHQ46Snp/PAAw8wcuTICv1v5Y+So8cSf//R57hKP0SqgCD1i505cyYNGzbkyy+/ZMWKFXTr1m2/7b///judO3dm8eLF1KxZk7///e/Mnj2bt99+mwceeGDffgsXLuT1119n6dKlvPnmm2RmZrJ69WomTJjA/PnzWbp0KbGxsbz++uts2rSJhx9+mM8++4zZs2ezZs2a/T5z6NCh+26pnn322ftt69WrF2+++SYLFizghBNO2G9x9Io44YQTDvjcyorq26oRwU/Xjy0x9cjZvINm9Wv4eJOIRIWy+sUewmOVtLQ07r77bgYOHMjFF19Mp06d9tuekJCwL2GmpaWRmJhIfHw8aWlpfPPNN/v2O++886hTpw4APXv25JNPPiEuLo7FixfvW381NzeX+vXrs3DhQs4666x9C4tffvnlrFu3bt+x/N1WBejduzdXXHEFa9as4aqrrmLBggWV+r0DWQWgK0ev+Sj9yI9N4pmCK7lw+DyGf7Ce3fkFHgUnIkHl7w7RId45at68OYsXLyYtLY377ruPIUP2f0wTHx+/r5VUTEzMviu1mJgY8vPz9+1Xut2UmeGc4//+7/9YunQpS5cuZe3atQwePPiQElODBg2Ij49n9uzZh/S8cMmSJQFb1zaqk6Nns1UrwkfpR1z3Z/nrX//O+W0aMPSDdVw0Yh6Lv93mdaQiEmh+Fg3xO15OmzZtolq1alx77bXcfffdfPHFF5U6zuzZs9m2bRu5ublMmTKF008/nS5dujBp0iQ2b94MwLZt2/j222/p2LEjH3/8Mb/88gv5+fm89dZbFfqsIUOG8OSTTxIbG1upWJctW8bDDz/MbbfdVqn3lxbVt1XDcbaqT217H3ALpR7w7FXt6dm+EX+fsoJeoz7l2pOP5t5uLai57u3C2y7q+iES2Xz0iyU+uXD8ECxfvpx77rmHmJgY4uPjef755/3e0izLGWecwXXXXceGDRu4+uqr6dChsIHFI488QteuXSkoKCA+Pp7nnnuOU045hfvvv5+TTz6Zhg0b0qpVK0quTjZ06FBee+21fa+nTJmy32eddtppPmN4++23uf3228nOzuaiiy4iPT2dWbNmATBv3jzat2/Pzp07qV+/PiNGjAjITFVQy6qI8PuufJ5+fy1jF3zDddUW8iCjiN1bokt3fHLh1acSpIjnKtyyatnEsPzH7tixY8nMzKzQ7M8dO3ZQo0YN8vPzufTSS7npppsO6CvpFbWsikLVE+N4MKM13dMbceTLdxLr8vbfQV0/RCKXjztHkWrw4MF88MEH5OXl0bVrV3r06OF1SJWm5BhB0hvXxrktvjeq9ENEAuiGG27ghhtuqNB7ile1iQZRPSEnGpmfB/X5NRuFOBIRkeil5BhpfJR+5LoEBuX04OVPvmZvQfQ/QxYJd1VhLkckqcz5iOrkGBGlHBXlo/Qj74KhbDmmO0Omr6LXqAWs//k3r6MUqbKSkpLYunWrEmSYcM6xdetWkpKSKvQ+zVaNEs453lm6iYemreT3XXvpf04zbj3rWBLiovrfPyJhZ8+ePWRlZZGXl3fwnSUkkpKSSE1NJT4+fr/xsmarKjlGmS07djF46kqmL/uR4xvUZHT6Ro5a8nTYTRMXEfGaSjmqkLo1Ehl59Qlc0u4n5k3+N3U/eh5sd+FGtcMSESkX3XOLUl1bN+Ch6m9RrTgxFlM7LBGRg1JyjGIx23/wOa52WCIiZVNyjGZ+aiJ/pi7z1meHOBgRkcih5BjNfNRE7o1N5qXE67huzELunfQlObl7PApORCR8aUJONCuedFNiUePYLg9wd8vLiP9wPaPnbuTjddk82iONc1sd4W2sIiJhJKpLOcwsA8ho1qxZ3/Xr13sdTthZlvUr905axpqffqN7ekMezGjN4dUTvA5LRCQkVOdYheocK2p3fgH/nrOB5z7aQK2keF5q/zXp60dgqosUkSinOkfxKyEuhrvObU63Ng2Y/tpwWiwagakuUkSqOE3IEQCOb1CLv8aOV12kiAhKjlKC5aguUkQElBylJD91kT9Sh6lfblKXARGpMpQc5Q8+6iIL4pIZV/NG7hi3hD+//gVbduzyKDgRkdBRcpQ/+OgVGXPJCO68634GdjueD1dvpuvQuby77EevIxURCSqVcki5rfv5N+5+80uWZeVwUdsjebh7G9VFikjEUimHBETzI2oy+U+n8cLcjQz7YB2fb9zKmBO+pt3aEeoXKSJRRclRKiQuNobbzm5Gl5b1mfbfYRz3+bPqFykiUUfPHKVSjm9Qi7vjJqguUkSikpKjVJrqIkUkWkVEcjSzpmY2xswmlRjrYWYvmtk7ZtbVy/iqrDL6RS74akuIgxERCZygJ0cze9nMNpvZilLj3cxsrZltMLNBZR3DObfROden1NgU51xf4AbgioAHLgdXRr/Iq1/8nMFTV5K7e69HwYmIVF4oJuSMBUYCrxYPmFks8BxwHpAFLDKzqUAs8Hip99/knNtcxvH/XnQsCTU//SL/cnxP8meuZeyCb5i7Lptnerej/VGHeRuriEgFhKTO0cyaANOdc22KXp8KDHbOnV/0+j4A51zpxFj6OJOcc72KfjbgCWC2c+6Dst6nOkdvzN+whXve/JKftufxp87HcmeX5iTERcSdfBGpAsqqc/Tq/6kaAd+XeJ1VNOaTmdUxs1FA++JECtwOnAv0MrNbfbynn5llmllmdnZ2AEOX8jq9WV1mDjiTy05I5bmPvuKSkZ/ww9xXYGgbGFy78PuyiV6HKSJyAK/qHM3HmN9LWOfcVuDWUmMjgBFlvGc0MBoKrxwrF6YcqlpJ8fzz8nZ0bd2AOW8+x2EfPq+6SBEJe15dOWYBjUu8TgU2eRSLhMB5rY5gSM23VBcpIhHBq+S4CDjOzI4xswTgSmBqoD/EzDLMbHROTk6gDy2VELtddZEiEhlCUcoxDvgUaGFmWWbWxzmXD/QHZgGrgYnOuZWB/mzn3DTnXL+UlJRAH1oqw09d5JaYeny3dWeIgxER8S/oydE5d5Vz7kjnXLxzLtU5N6ZofIZzrrlz7ljn3KPB+GxdOYYZH3WR+bFJPL33CroNn8t/P/tWDZVFJCxE9bx6XTmGGR/9IuO6P8sdA/7GiUcfxj+mrOC6MQv54ddcryMVkSpO/RwlLDjneP3z73hsxmpizfjHxa24vEMqheWsIiKBp36OEvbMjGtPOZozj6vH3ZO+5N63ljFz5U8MbbmOlAWPq1+kiIRUVCdHM8sAMpo1a+Z1KFJOR9Wpxvi+pzB2wTesnPUSCd+MBlQXKSKhpduqErb2PN2K+B0+yj9SGsOAFQeOi4hUQDguHydyUPE7/KwLobpIEQmyqE6OKuWIcH7qIn+Jr89veXtCHIyIVCVRnRxVyhHhfNRF7olJ4qGdl9Ft2Dw+27jVo8BEJNpFdXKUCOejLjK+x7Nc1+8e4mKNq178jEemryJvjxoqi0hgaUKORKSdu/N5bMZqXvvsO46rX4N/9U4nLVV3CESk/DQhR6JOtYQ4HumRxis3dWR73h4u/fd8hn+wnvylE9QvUkQOWVQnR03IiX5nNa/H+3edxUVtj+Sr/71M/pTbC+shcX/URSpBikgF6baqRI2dT7akWq6P8g/VRYqID7qtKlVCtdwffW9QXaSIVJCSo0QPP3WRO5OPDHEgIhLplBwlevioi8wjkUE5PRgwYSnbtXCAiJRTVCdHTcipYnz1i+zxLMecfSNTv9zEBVo4QETKSRNypEpY8t0vDJiwlG+37aRvp6b8tWtzEuNivQ5LRDykfo5S5bU/6jBm3NmJR95dzei5G5m7LpsxJ35No8x/qlekiBxAyVGqjGoJcTx2aRrntqzPhxNGctgHo8DUK1JEDhTVzxxFfDnn+CMYUnMy1YoTY7E9ufDhEG+CEpGwouQoVVLsdh9NlAGnmkgRQclRqio/NZHb4uqxdceuEAcjIuEmqpOjSjnELz+9Ih/N6835w+bywaqfPQpMRMJBVCdHNTsWv/z0iuzXfyD1aiZx86uZDJy0jN+0cIBIlaQ6R5FSduXvZfgH6xn18Vc0rJ3MM5e34+SmdbwOS0QCTAuPi1RAYlws93Y7nom3nEpsjHHli5/x2IzV7F4yXr0iRaoI1TmK+NGhyeHMuKMTj85YzU+fvEpBwhigaLKO6iJFopquHEXKUD2xcOGAJ2tPIYlSs1hVFykStZQcRcohead6RYpUJUqOIuXhpy7y96QGVIVJbSJVjZKjSHn4qIvcZYnct/1Sbn4lk82/5XkUmIgEg5KjSHn4rIscSfqF/fhkwxa6DZvHzBU/eR2liARIVNc5mlkGkNGsWbO+69ev9zociVLrf/6NAROXsuKH7fQ6MZUHM1pRMyne67BE5CDKqnOM6uRYTIsASLDtzi9gxIfr+fecDRyZksy/emvhAJFwp0UARIIsIS6Gu89vwZu3nkZcbOHCAe+8OhQ3tLUWDRCJQEqOIgF04tGHMeOOTjzRbA3nffUYlpMFuD8WDVCCFIkISo4iAVY9MY4rtv9HzZRFIpiSo0gw+FkcQM2URSKDkqNIMPhZNOBH6jDty00hDkZEKkrJUSQYfCwaUBCXzLiaN3L7uCUMmLCU7eoVKRK21JVDJBiKO3V8OKTwFmtKKjFdHuDO1r2I/WgDz/5vAwu/3qaSD5EwpTpHEQ8s+e4XBkxYyrfbdnLrWccy4NzmJMTpRo5IKJVV56grRxEPtD/qMN69oxOPvLuK5+d8xdx12Yw54WsaLHpq35UmXR5Qr0gRjyg5inikemIcj/dsy9kt6jNn0nOkzB4FxeUfaqYs4indxxHxWNfWDXi4xmSSVRcpEjbCPjmaWVMzG2Nmk0qMtTSzUWY2ycz+5GV8IoEQ+9sPvjeoLlLEE0FNjmb2spltNrMVpca7mdlaM9tgZoPKOoZzbqNzrk+psdXOuVuB3oDPh6kiEcVPXeQv8fXZsSs/xMGISLCvHMcC3UoOmFks8BxwAdAKuMrMWplZmplNL/VV39+BzewS4BPgw+CFLxIiPuoi98Qk8dDOy7hg+Fwyv9nmUWAiVVNQk6Nzbi5Q+q+6I7Ch6IpwNzAe6O6cW+6cu7jU1+Yyjj3VOXcacE3wfgOREPHZTPlZru17DwC9X/iUp2etZc/eAm/jFKkivJit2gj4vsTrLOBkfzubWR3gUaC9md3nnHvczDoDPYFEYIaf9/UD+gEcddRRgYlcJJja9j5gZmoH4L07z+ShqSsZ+dEGPl6XzdAr0mlWv4Y3MYpUEUFfBMDMmgDTnXNtil5fDpzvnLu56PV1QEfn3O3BikGLAEg0mLniR+6bvJzcPXu5/8KWXFd9IVZiBR7VRYpUTLgtApAFNC7xOhUIykrMZpYBZDRr1iwYhxcJqW5tjuSEow7jnknLyJz2AlckjiHR7SrcqLpIkYDyopRjEXCcmR1jZgnAlcDUYHyQc26ac65fSkpKMA4vEnL1ayUx9saTeKzW238kxmKqixQJmAolRzOrXjTbtLz7jwM+BVqYWZaZ9XHO5QP9gVnAamCic25lReIQqcrMjBp5P/neqLpIkYAo87aqmcVQeGV3DXASsAtINLNsCifCjHbOrff3fufcVX7GZ+BnIk0g6baqRK2U1MJbqaXsqt6QRA/CEYk2B7ty/Ag4FrgPaOCca+ycqw90Aj4DnjCza4McY6XptqpELR91kXkkcu+v3Xly5hp256vkQ+RQHGxCzrnOuQM6sjrntgFvAW+ZWXxQIhMR/3z0i+Ssv1Ptm1Y8P+cr5qzNZviV6TQ/oqa3cYpEqDJLOczsC+fcCSGMJ6BK3Fbtu36937u/IlFl9qqfGfTWMn7blc+957fgptOPISbGvA5LJOyUVcpxsNuqEf0XpduqUhWd1+oIZg04kzOPq8cj767m2jGfs+nXXFg2EYa2gcG1C78vm+h1qCJh62BXjlnAv/xtd8753RZOtAiAVEXOOSZmfs9D01aREfMJj8a+SNzevD92iE8uXLJOdZFSRR3KIgCxQA0i/ApSpCoyM6446ShOaVqH5Odu3z8xwh91kUqOIgc4WHL80TkXsVXFKuUQgaPrVMcVZPveqLpIEZ/0zFGkCjA//SJdSqMQRyISGQ6WHC852AHMTO0BRMKdj7rInS6BJ3dfwbqff/MoKJHwdbDkONbMnjGzM82sevGgmTU1sz5mNotSzYxFJAz56Be58dTHeHP3qVz87Cf8Z/7XFBQEt0OPSCQ5aMsqM7uQwuXjTgcOA/KBtcC7wBjnnJ9FHsOHZquK+Jb92y4GvbWMD9dsptNxdXn68nYcUSvJ67BEQqKs2apB7+foJS0CIHJwzjneWPgdD09fRXJ8LI/3TKNbmyO9Dksk6KpsciymK0eRg/sqewd3jV/K8h9y6N0hlSFNV5P08SNqpixRK9yaHYtIGDq2Xg3e+tNpDP9wHVlzX4EVYyhsxIOaKUuV40WzYxEJUwlxMdxz/vE8VfsdklAzZam6ypUczWyMmaWXGhsclIhExHOJv2/yvUGLBkgVUd4rx/MpLOu4vsTYQWsgvWZmGWY2Oicnx+tQRCKLn0UDfk9uQFWYpyBS3uS4GTgTuNzMnjOzOCJg9RytkCNSSX6aKd+Xcym3vfEFv+7c7VFgIqFR3uRozrntzrkMIBv4GFDGEYlWPhYNSLh0JMd37cP7K3+m27B5LNiwxesoRYKmXKUcZvaQc+7BEq8vBv7inDsnmMEFiko5RAJneVYOd05Ywtdbfqdvp6b8tWtzEuNivQ5LpMICWudoZnWBrS6CHjwoOYoE1s7d+Tz67mpe//w7Wh1Zi5dP/JoGi55STaRElLKSY5m3Vc3sFDObY2aTzay9ma0AVgA/m5nWVBWpoqolxPHopWm8eH0H0n99n5TZfy2shcT9URO5bKLXYYpU2sGeOY4EHgPGAf8DbnbONaBwcs7jQY5NRMLcea2O4OEak0m2UhN0VBMpEe5gyTHOOfe+c+5N4Cfn3GcAzrk1wQ/t0KmUQyT4Yn/7wfcG1URKBDtYciwo8XNuqW1h/8xRpRwiIeCnJvKX+Prs2JUf4mBEAuNgybGdmW03s9+AtkU/F79OC0F8IhLufNRE7olJ4qGdl3HB8LlkfrPNo8BEKq/M5Oici3XO1XLO1XTOxRX9XPw6PlRBikgY81ETGd/jWa7pew8AvV/4lH/OWsPu/IKyjyMSRtSySkSC5re8PTw8fRUTM7No06gWw65Ip1n9ml6HJQIcQimHiMihqJkUz1O92jHq2hPZ9GseF434hLHzv6bgy4kwtA0Mrl34XWUfEmbUz1FEgq5bmwaccHRtBk5axhfvjuaqxDEkOvWKlPClK0cRCYn6NZN4+YaTeKzW238kxmKqi5Qwo+QoIiFjZtTI+8n3RtVFShhRchSR0PJTF7mresMQByLiX1QnR62QIxKG/PSKHPhrd555fy179qrkQ7wX1clRK+SIhCEfdZFcMoK49Ct59n8b6PX8AjZm7/A6SqniVOcoImFjxvIfuW/ycnbnF/CPi1txVcfGmJnXYUmUUp2jiESEC9OOZNZdZ3LC0bW5/+3l9H11MVt37Dr4G0UCTFeOIhJ2CgocL8//mqdmrqVWcjyvdPiG1quHqZmyBFRZV45aBEBEwk5MjHFzp6ac3qwu77w6jGM+fRaKe0Zq0QAJAd1WFZGw1fLIWtwbP4FqaqYsIabkKCJhLWa772bKTosGSBApOYpIePOzaMDW2Hps3p4X4mCkqlByFJHw5mPRgPyYJB7f05vzh81l9qqfPQpMopmSo4iENx+LBsT1eJY/9R/EkSnJ9H01k7+9vZzc3Xu9jlSiiEo5RCRi7crfy9Oz1vLivK9pVr8Gw69Mp3VDrYgl5RPRiwCYWVMzG2Nmk0qNVzezxWZ2sVexiYi3EuNi+dtFrfhvn45sz93Dpc8t4KV5G9VMWQ5ZUJOjmb1sZpvNbEWp8W5mttbMNpjZoAg3PYMAABHjSURBVLKO4Zzb6Jzr42PTQED/xYsInY6rx8y7zuSsFvVY9t6L7JnSv7AeEvdHXaQSpFRAsK8cxwLdSg6YWSzwHHAB0Aq4ysxamVmamU0v9VXf10HN7FxgFaAn8SICwOHVExh93Yk8rmbKEgBBXSHHOTfXzJqUGu4IbHDObQQws/FAd+fc40B5b5GeDVSnMLnmmtkM55z63IhUcWZGdTVTlgDw4pljI+D7Eq+zisZ8MrM6ZjYKaG9m9wE45/7mnLsLeAN40VdiNLN+ZpZpZpnZ2dmB/Q1EJHypmbIEgBfJ0Vf/Gb9TZp1zW51ztzrnji26uiy5baxzbrqf9412znVwznWoV6/eIYYsIhHDR11kLokMzOnB0Nnr1ExZysWL5JgFNC7xOhXY5EEcIhKNfNRFuozhxKT1ZviH6+k16lO+3vK711FKmAt6nWPRM8fpzrk2Ra/jgHVAF+AHYBFwtXNuZRA+OwPIaNasWd/169cH+vAiEmHeXfYj97+tZspSyLM6RzMbB3wKtDCzLDPr45zLB/oDs4DVwMRgJEYA59w051y/lBQVBYsIXNS2sJnyiUcfxv1vL+fmVzLZsmNXYZmH6iKlBK2QIyJVTkGBY+yCb3hi5houj1/AkJjRxO4tsYh5fHLhrVn1i4xqZV05RnVy1G1VESnL2p9+o/bo9hxR4GNGe0pjGLDiwHGJGhG9fNyh0G1VESlLiwY1qV+wxfdG1UVWaVGdHEVEDsb81EU6P+NSNUR1cjSzDDMbnZOT43UoIhKufNRF7nQJjHBX8v22nR4FJV6L6uSo26oiclCl6iJdSmNWnPgwL+acxIXD5zFlyQ9eRygeiOoJOcU0W1VEKur7bTsZMGEpmd/+wiXtGvJwjzakJMd7HZYEUJWdkCMiUlmND6/G+H6n8NfzmvPu8h+5cPg8Ptu41euwJESiOjnqmaOIHIq42Bhu73Icb/3pNOJjjate/IwnZ64hf+kELRoQ5XRbVUSkHH7flc/D01exc/E4nkoYQxIlekZq0YCIpNuqIiKHqHpiHE9c1pYna0/ZPzGCmilHISVHEZEKSN75o+8NWjQgqkR1ctQzRxEJOD+LA+RVPzLEgUgwRXVyVJ2jiAScj0UD8khk4K89eHzGanbnq5lyNIjq5CgiEnA+minHXDKC6h2u5oW5G7ns+QV8lb3D6yjlEGm2qohIgMxa+RMD31rGrj0FPJjRiitOUjPlcFbWbNW4UAcjIhKtzm/dgHaptfnLxKUMmrycj9dl8/Txa6k+77HCCTspqYW3ZVXyEfaUHEVEAqhBShKv9TmZF+dtZM3sMcRseAmKSz9yvodpdxT+rAQZ1qL6maNmq4qIF2JijFvOOpYna08hWTWRESmqk6Nmq4qIlxJ2bPK9QTWRYS+qk6OIiKf81ET+ntyAqjAZMpIpOYqIBIuPmshdlsh9OZfy59e/4Neduz0KTA5GyVFEJFh81ETG9xhJq/Nv5oPVP9Nt2DwWfLXF6yjFB9U5ioh4YHlWDneOX8LXW3/nljOP5S/nNSchTtcroaSuHCIiYSYtNYXpd5zBlScdxaiPv6Ln8/MLV9ZZNlG9IsNAVF85mlkGkNGsWbO+69ev9zocERGfZq74iUGTl3Fu/sc8EfcScQV5f2xUr8igKevKMaqTYzHdVhWRcPfz9jxihqdRb+/mAzemNIYBK0IfVJTT8nEiImHuiFpJuL3ZvjeqLjLk9MxRRCRMmJ+6SJfSKMSRiJKjiEi48FEXudMl8M/8K9iwWW2wQknJUUQkXPioi9xw8mOMyz2Fi5+dx+uff6uVdUJEE3JERMLcz9vzuPvNL5m3fgtdWx3BE5e15fDqCV6HFfFU5ygiEsGOqJXEKzd25O8XteSjtZvpNmwun6zXyjrBpOQoIhIBYmKMmzs1Zcptp1MzKY5rx3zOYzNWs2fpeC0aEARRXcpRYhEAr0MREQmI1g1TmH57Jx6dsYqfPnmVvQljiFcz5YDTM0cRkQiV+1RLknf66BmpRQPKRc8cRUSiUPLOH31v0KIBh0zJUUQkUvlZNGBX9YYhDiT6KDmKiEQqH4sG5JHIwF+7M+yDdeTvLfAosMin5CgiEql8LBrAJSOwtlcw7IP1XP3i52z6NdfrKCOSJuSIiEShyV9k8Y8pK4iLjeHJy9rSrU0Dr0MKO5qQIyJSxfQ8IZV37+jE0XWqcetri/nb28vJ27NXzZTLKarrHEVEqrImdasz6dbTePr9tYyeu5Ea6yYzcM/zxOQX3WpVXaRfunIUEYliCXEx3H9hS165qSM35L76R2IsticXPhziTXBhTFeOIiJVwFnN6+HY6nuj6iIPoCtHEZEqwl8zZX/1klWZkqOISFXhp5ny+0feQkFB9FcuVETYJ0cza2pmY8xsUomxzmY2z8xGmVlnD8MTEYkcpeoiC2qlMvHIe+i3tCnXv7yQzb/leR1h2AjqM0czexm4GNjsnGtTYrwbMByIBV5yzj3h7xjOuY1An5LJEXDADiAJ0M1yEZHyatt738zUGOD/nCNp0fcMnraSC4fP41+90zmzeT1vYwwDwb5yHAt0KzlgZrHAc8AFQCvgKjNrZWZpZja91Fd9P8ed55y7ABgIPBTE+EVEopqZcWXHo5ja/wwOr57A9S8v5In31rCneOm5KloXGdQrR+fcXDNrUmq4I7Ch6IoQMxsPdHfOPU7hVWZ5jlu8YOAvQGJgohURqbqaH1GTd247gyHTVzHq46/4/OutvNT+a+r87+7Ccg+oUnWRXjxzbAR8X+J1VtGYT2ZWx8xGAe3N7L6isZ5m9gLwX2Ckn/f1M7NMM8vMzs4OXPQiIlEqOSGWx3umMfLq9mz4eQe7Zj34R2IsVkXqIr2oczQfY36nSTnntgK3lhqbDEwu60Occ6OB0VC4tmrFwxQRqZoubtuQdqm1aTCi6tZFenHlmAU0LvE6FfDRylpERLzS+PBqWIqfm3pVoC7Si+S4CDjOzI4xswTgSmBqMD7IzDLMbHROTk4wDi8iEtWsy4MH1EXmxybhujzgUUShE9TkaGbjgE+BFmaWZWZ9nHP5QH9gFrAamOicWxmMz3fOTXPO9UtJSQnG4UVEoluJukiHkR1bn7/k3sSAVcexY1e+19EFVVT3czSzDCCjWbNmfdevX+91OCIiEW1vgeO5jzYw7IN1HHV4NUZefQJtGkXuxUeV7eeoK0cRkcCJjTHu6HIc4/udSt6eAnr+ewH/mf810XiRFdXJUUREAq/jMYfz3p2d6HRcXR6atoq+ry7ml993F26MkkUDovq2arEOHTq4zMxMr8MQEYkqzjlenv8NT7y3mro1Enmt47cc+9n9+9dGxicXPrcMw0UDquxtVc1WFREJHjOjzxnH8NafTiMhLoakuY9GzaIBUZ0c9cxRRCT42qbWZvrtZ9DQomfRgKhOjiIiEho1k+L9Lw4QgYsGRHVy1G1VEZHQMR/NlPfEJFFwTuQtGhDVyVG3VUVEQqjUogFb447gr3k30eeLJn/MZo0Qmq0qIiJB4Zzjv599y8PTV1G/ZhLPXXMC6Y1rex3WPlV2tqqIiHjHzLj+1CZMuvU0AC4ftYCxJRcNCOOaSCVHEREJqnaNa/PuHWdw5nH1GDxtFf3fWELu4nGFjZNzvgfcH42UwyRBRnVy1IQcEZHwULtaAi9e34FBFxzPzJU/kTP9H2FdExnVyVETckREwkdMjHHrWcfyxs0nU99t8b1TmNRERnVyFBGR8HNy0zq4muHdSFnJUUREQi72vAdxpWoiC+KSIUwaKSs5iohI6LXtjZWoidzk6vL3vX1ZUO0cryMDorzOUc2ORUQiw8bsHdzy38V8lb2D+y9sSZ8zjsHMgvqZVbbOURNyREQiQ9N6NXj7ttM5v3UDHnl3NXeOX0ru7r377xTCusioTo4iIhI5aiTG8e9rTuCe81swbdkmLv33fL7burNw47KJIa2LVHIUEZGwYWbcdnYz/nPDSfyYk0fGyE+Yuy67sP4xhHWRSo4iIhJ2Oreoz9T+p3NkShI3/Gchzl/9Y5DqIpUcRUQkLB1dpzqT/3waF7VtyA8FdXzvFKS6SCVHEREJW9US4hhxZTrr2gxgp0vYf2N88Ooiozo5am1VEZHIZ2ac07s/35/xBJuoSwHG3lqphb0j2/YOzmdGc51jMfVzFBGJDlm/7GTBhq30PqnxIR+rrDrHuEM+uoiISIikHlaN3idVC/rnRPVtVRERkcpQchQRESlFyVFERKQUJUcREZFSlBxFRERKUXIUEREpRclRRESklKhOjlohR0REKiOqk6OaHYuISGVEdXIUERGpjCqxtqqZZQPf+tmcAvi67+prvC6wJYChHSp/sXtxzIq+rzz7H2yfsrbrvAbumBV5b3n3rey5reh4OJ3bSD6v5d0/0v5mj3bO1fO5xTlXpb+A0eUdBzK9jrc8sXtxzIq+rzz7H2yfsrbrvAbumBV5b3n3rey5rcR42JzbSD6v5d0/mv5mdVsVplVwPJwEI8bKHrOi7yvP/gfbp6ztOq+BO2ZF3lvefSt7bnVeA3dM/c2WoUrcVg0UM8t0ftqbSOTSeY1eOrfRKRTnVVeOFTPa6wAkKHReo5fObXQK+nnVlaOIiEgpunIUEREpRclRRESkFCVHERGRUpQcA8TMOpvZPDMbZWadvY5HAsfMqpvZYjO72OtYJHDMrGXR3+skM/uT1/FIYJhZDzN70czeMbOulT2OkiNgZi+b2WYzW1FqvJuZrTWzDWY26CCHccAOIAnIClasUn4BOq8AA4GJwYlSKiMQ59Y5t9o5dyvQG1C5RxgI0Hmd4pzrC9wAXFHpWDRbFczsTAoT26vOuTZFY7HAOuA8CpPdIuAqIBZ4vNQhbgK2OOcKzOwI4F/OuWtCFb/4FqDz2pbCpaqSKDzH00MTvZQlEOfWObfZzC4BBgEjnXNvhCp+8S1Q57Xofc8ArzvnvqhMLHGV+g2ijHNurpk1KTXcEdjgnNsIYGbjge7OuceBsm6v/QIkBiNOqZhAnFczOxuoDrQCcs1shnOuIKiBy0EF6m/WOTcVmGpm7wJKjh4L0N+sAU8A71U2MYKSY1kaAd+XeJ0FnOxvZzPrCZwP1AZGBjc0OQQVOq/Oub8BmNkNFN0dCGp0cigq+jfbGehJ4T9mZwQ1MjkUFTqvwO3AuUCKmTVzzo2qzIcqOfpnPsb83oN2zk0GJgcvHAmQCp3XfTs4NzbwoUiAVfRvdg4wJ1jBSMBU9LyOAEYc6odqQo5/WUDjEq9TgU0exSKBo/MavXRuo5Mn51XJ0b9FwHFmdoyZJQBXAlM9jkkOnc5r9NK5jU6enFclR8DMxgGfAi3MLMvM+jjn8oH+wCxgNTDRObfSyzilYnReo5fObXQKp/OqUg4REZFSdOUoIiJSipKjiIhIKUqOIiIipSg5ioiIlKLkKCIiUoqSo4iISClKjiJhzMzqmNnSoq+fzOyHEq8XBOkz25vZS2Vsr2dmM4Px2SLhQmurioQx59xWIB3AzAYDO5xzTwf5Y+8HHikjpmwz+9HMTnfOzQ9yLCKe0JWjSIQysx1F3zub2cdmNtHM1pnZE2Z2jZktNLPlZnZs0X71zOwtM1tU9HW6j2PWBNo6574sen1WiSvVJUXbAaYA6lkqUUvJUSQ6tAPuBNKA64DmzrmOwEsUtvABGA4Mdc6dBFxWtK20DkDJLux3A7c559KBTkBu0Xhm0WuRqKTbqiLRYZFz7kcAM/sKeL9ofDlwdtHP5wKtCnvBAlDLzGo6534rcZwjgewSr+cD/zKz14HJzrmsovHNQMPA/xoi4UHJUSQ67Crxc0GJ1wX88XceA5zqnMvFv1wgqfiFc+4JM3sXuBD4zMzOdc6tKdqnrOOIRDTdVhWpOt6nsLsBAGaW7mOf1UCzEvsc65xb7px7ksJbqccXbWrO/rdfRaKKkqNI1XEH0MHMlpnZKuDW0jsUXRWmlJh4c5eZrTCzLym8UnyvaPxs4N1QBC3iBbWsEpH9mNkA4DfnXFm1jnOB7s65X0IXmUjo6MpRREp7nv2fYe7HzOoB/1JilGimK0cREZFSdOUoIiJSipKjiIhIKUqOIiIipSg5ioiIlKLkKCIiUoqSo4iISCn/D/YQZ3OIHxOZAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = subplots(1,1, figsize = (7,5))\n", + "axes.loglog(TDsurvey.time, bz_analytic, '-')\n", + "axes.loglog(TDsurvey.time, bz, 'o')\n", + "axes.set_xscale('log')\n", + "axes.set_yscale('log')\n", + "axes.set_xlabel('Time (s)')\n", + "axes.set_ylabel('Bz (T)')\n", + "axes.legend((\"Analytic\", \"simpegEM1D\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/examples/EM1D_TD_FWD.ipynb b/notebooks/examples/EM1D_TD_FWD.ipynb index 76669bd..6655726 100644 --- a/notebooks/examples/EM1D_TD_FWD.ipynb +++ b/notebooks/examples/EM1D_TD_FWD.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "scrolled": true }, @@ -21,34 +21,34 @@ " Utils1D, get_vertical_discretization_time, \n", " set_mesh_1d, skytem_HM_2015\n", ")\n", - "from simpegEM1D.simulation import EM1DTMSimulation\n", - "from simpegEM1D.survey import EM1DSurveyTD\n", + "from simpegEM1D.simulation_original import EM1DTMSimulation\n", + "from simpegEM1D.survey_original import EM1DSurveyTD\n", "from simpegEM1D import analytics\n", "import numpy as np\n", "from simpegEM1D import skytem_HM_2015\n", - "from simpegEM1D.DigFilter import setFrequency, transFilt\n", + "from simpegEM1D.supporting_functions.digital_filter import setFrequency, transFilt\n", "from scipy.constants import mu_0\n", "%pylab inline" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "(31,)\n", - "[8.08568701e-12 6.05308651e-12 4.47918289e-12 3.28434137e-12\n", - " 2.39082145e-12 1.73041915e-12 1.24673427e-12 8.95008883e-13\n", - " 6.40665731e-13 4.57562169e-13 3.26195179e-13 2.32213450e-13\n", - " 1.65119120e-13 1.17304714e-13 8.32766395e-14 5.90851502e-14\n", - " 4.19025878e-14 2.97060668e-14 2.10535441e-14 1.49178592e-14\n", - " 1.05684045e-14 7.48600648e-15 5.30202123e-15 3.75485979e-15\n", - " 2.65897727e-15 1.88283018e-15 1.33317778e-15 9.43952283e-16\n", - " 6.68343667e-16 4.73196098e-16 3.35023064e-16]\n" + "ename": "AttributeError", + "evalue": "'EM1DTMSimulation' object has no attribute 'n_layer'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[0mimap\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmaps\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIdentityMap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[0msim\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEM1DTMSimulation\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msurvey\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTDsurvey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msigmaMap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mimap\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[0mbz\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msim\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdpred\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msigma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbz\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbz\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mdpred\u001b[1;34m(self, m, f)\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 430\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mf\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 431\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 432\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mutils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmkvc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprojectFields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 433\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mfields\u001b[1;34m(self, m)\u001b[0m\n\u001b[0;32m 313\u001b[0m \u001b[1;31m# @profile\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 314\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 315\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'response'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 316\u001b[0m \u001b[1;31m# self.survey._pred = utils.mkvc(self.survey.projectFields(f))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 317\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, m, output_type)\u001b[0m\n\u001b[0;32m 211\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlambd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mz\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 213\u001b[1;33m \u001b[0mflag\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mI\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moutput_type\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 214\u001b[0m )\n\u001b[0;32m 215\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\supporting_functions\\kernels.py\u001b[0m in \u001b[0;36mhz_kernel_vertical_magnetic_dipole\u001b[1;34m(simulation, lamda, f, n_layer, sig, chi, depth, h, z, flag, I, output_type)\u001b[0m\n\u001b[0;32m 535\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 536\u001b[0m \u001b[0mn_frequency\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mn_layer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_layer\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[0mn_filter\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_filter\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'EM1DTMSimulation' object has no attribute 'n_layer'" ] } ], @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -107,25 +107,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(31,)\n", - "[8.09316857e-12 6.06698620e-12 4.49551685e-12 3.29172016e-12\n", - " 2.39503887e-12 1.73740816e-12 1.25093533e-12 8.95539752e-13\n", - " 6.43131939e-13 4.59430578e-13 3.26462306e-13 2.32942155e-13\n", - " 1.65831926e-13 1.17543076e-13 8.34320390e-14 5.93153625e-14\n", - " 4.20071771e-14 2.96975019e-14 2.11024543e-14 1.49397731e-14\n", - " 1.05327498e-14 7.47226130e-15 5.28550866e-15 3.72160909e-15\n", - " 2.62520779e-15 1.85067287e-15 1.29653552e-15 9.04398964e-16\n", - " 6.30339448e-16 4.34161312e-16 2.94066345e-16]\n" - ] - } - ], + "outputs": [], "source": [ "bz_analytic = bz_analytic_solution(offset, time, sigma_half)\n", "print(np.shape(bz_analytic))\n", @@ -134,32 +118,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", "axes.loglog(TDsurvey.time, bz_analytic, '-')\n", diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index c1c6ef7..e52c0d2 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -16,8 +16,8 @@ "source": [ "from discretize import TensorMesh\n", "from SimPEG import maps\n", - "from simpegEM1D.simulation import EM1DFMSimulation\n", - "from simpegEM1D.survey import EM1DSurveyFD\n", + "from simpegEM1D.simulation_original import EM1DFMSimulation\n", + "from simpegEM1D.survey_original import EM1DSurveyFD\n", "from simpegEM1D import analytics\n", "import numpy as np\n", "import matplotlib\n", @@ -194,41 +194,17 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "(61,)\n", - "[-5.46799058e-17-1.96234252e-12j -1.16896402e-16-2.88032431e-12j\n", - " -2.50681887e-16-4.22773603e-12j -5.38655317e-16-6.20546187e-12j\n", - " -1.15903476e-15-9.10835352e-12j -2.49280581e-15-1.33691751e-11j\n", - " -5.35440132e-15-1.96230780e-11j -1.14648491e-14-2.88021529e-11j\n", - " -2.43827071e-14-4.22739644e-11j -5.11171297e-14-6.20442205e-11j\n", - " -1.04109185e-13-9.10528105e-11j -2.01013662e-13-1.33607199e-10j\n", - " -3.58829149e-13-1.96026112e-10j -6.06720506e-13-2.87606012e-10j\n", - " -1.06394230e-12-4.21978042e-10j -1.88584081e-12-6.19036850e-10j\n", - " -3.33558439e-12-9.08050705e-10j -5.90958825e-12-1.33179306e-09j\n", - " -1.04968251e-11-1.95296525e-09j -1.86339180e-11-2.86329900e-09j\n", - " -3.30761887e-11-4.19693573e-09j -5.87189264e-11-6.14991769e-09j\n", - " -1.04226195e-10-9.00846260e-09j -1.84935729e-10-1.31899359e-08j\n", - " -3.27993936e-10-1.93020685e-08j -5.81400117e-10-2.82282279e-08j\n", - " -1.02990773e-09-4.12496321e-08j -1.82292821e-09-6.02194990e-08j\n", - " -3.22336302e-09-8.78093657e-08j -5.69275377e-09-1.27854148e-07j\n", - " -1.00390953e-08-1.85829392e-07j -1.76720061e-08-2.69500033e-07j\n", - " -3.10401974e-08-3.89781198e-07j -5.43749881e-08-5.61840573e-07j\n", - " -9.49400531e-08-8.06433738e-07j -1.65102293e-07-1.15137109e-06j\n", - " -2.85699664e-07-1.63281838e-06j -4.91382245e-07-2.29574962e-06j\n", - " -8.38792464e-07-3.19217123e-06j -1.41847289e-06-4.37453520e-06j\n", - " -2.37086483e-06-5.87985144e-06j -3.90488430e-06-7.69730526e-06j\n", - " -6.31284960e-06-9.70911744e-06j -9.96569115e-06-1.15928368e-05j\n", - " -1.52549352e-05-1.26783691e-05j -2.24233036e-05-1.17757633e-05j\n", - " -3.12054975e-05-7.04803009e-06j -4.02239115e-05+3.88605557e-06j\n", - " -4.62349237e-05+2.32906067e-05j -4.37081555e-05+5.17274430e-05j\n", - " -2.58109982e-05+8.56119100e-05j 1.19223605e-05+1.15323668e-04j\n", - " 6.56056428e-05+1.27189018e-04j 1.19607359e-04+1.12212357e-04j\n", - " 1.54009845e-04+7.71012129e-05j 1.62201830e-04+4.27991495e-05j\n", - " 1.57645995e-04+2.42228201e-05j 1.55099666e-04+1.69490802e-05j\n", - " 1.55346211e-04+1.20096985e-05j 1.55438183e-04+8.12727627e-06j\n", - " 1.55423866e-04+5.53589383e-06j]\n" + "ename": "AttributeError", + "evalue": "'EM1DFMSimulation' object has no attribute 'half_switch'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Hz = simFD.dpred(m_1D)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mHz\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimFD\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm_1D\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;31m# print(np.shape(Hz))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;31m# print(Hz)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mfields\u001b[1;34m(self, m)\u001b[0m\n\u001b[0;32m 313\u001b[0m \u001b[1;31m# @profile\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 314\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 315\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'response'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 316\u001b[0m \u001b[1;31m# self.survey._pred = utils.mkvc(self.survey.projectFields(f))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 317\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, m, output_type)\u001b[0m\n\u001b[0;32m 211\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlambd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mz\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 213\u001b[1;33m \u001b[0mflag\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mI\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moutput_type\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 214\u001b[0m )\n\u001b[0;32m 215\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\supporting_functions\\kernels.py\u001b[0m in \u001b[0;36mhz_kernel_vertical_magnetic_dipole\u001b[1;34m(simulation, lamda, f, n_layer, sig, chi, depth, h, z, flag, I, output_type)\u001b[0m\n\u001b[0;32m 560\u001b[0m rTE = rTEfunfwd(\n\u001b[0;32m 561\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlamda\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 562\u001b[1;33m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhalf_switch\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 563\u001b[0m )\n\u001b[0;32m 564\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'EM1DFMSimulation' object has no attribute 'half_switch'" ] } ], @@ -236,65 +212,26 @@ "# Conductivity\n", "simFD = EM1DFMSimulation(\n", " mesh1D, survey=FDsurvey, sigmaMap=Expmap,\n", - " chi=np.zeros(FDsurvey.n_layer)\n", + " chi=np.zeros(nlay)\n", ")\n", "\n", "# Hz = simFD.dpred(m_1D)\n", "Hz = simFD.fields(m_1D)\n", - "print(np.shape(Hz))\n", - "print(Hz)" + "# print(np.shape(Hz))\n", + "# print(Hz)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(61,)\n", - "[ 5.53757290e-15-9.82263144e-13j 1.13879984e-14-1.44243389e-12j\n", - " 2.33869700e-14-2.11861458e-12j 4.80265611e-14-3.11270526e-12j\n", - " 9.85321185e-14-4.57529619e-12j 2.01925484e-13-6.72974845e-12j\n", - " 4.13070866e-13-9.90931818e-12j 8.42699459e-13-1.46159963e-11j\n", - " 1.71187054e-12-2.16175922e-11j 3.45402835e-12-3.21164614e-11j\n", - " 6.89324945e-12-4.80592236e-11j 1.35141956e-11-7.27264954e-11j\n", - " 2.57469873e-11-1.11841532e-10j 4.69381200e-11-1.75456456e-10j\n", - " 8.03625965e-11-2.80588017e-10j 1.26323796e-10-4.53489970e-10j\n", - " 1.80484076e-10-7.29084498e-10j 2.34605771e-10-1.15219144e-09j\n", - " 2.81668418e-10-1.78240651e-09j 3.17628539e-10-2.70633190e-09j\n", - " 3.40249353e-10-4.05412480e-09j 3.46382970e-10-6.01972956e-09j\n", - " 3.29112985e-10-8.88867071e-09j 2.74424515e-10-1.30783931e-08j\n", - " 1.56052188e-10-1.91970525e-08j -7.34649201e-11-2.81285629e-08j\n", - " -4.98587742e-10-4.11547143e-08j -1.26861497e-09-6.01292914e-08j\n", - " -2.64647850e-09-8.77243958e-08j -5.09387832e-09-1.27775521e-07j\n", - " -9.41909607e-09-1.85758825e-07j -1.70321780e-08-2.69439907e-07j\n", - " -3.03824285e-08-3.89734624e-07j -5.37019594e-08-5.61811467e-07j\n", - " -9.42554839e-08-8.06426882e-07j -1.64411243e-07-1.15139217e-06j\n", - " -2.85008894e-07-1.63287394e-06j -4.90700650e-07-2.29584692e-06j\n", - " -8.38131544e-07-3.19231789e-06j -1.41784724e-06-4.37473857e-06j\n", - " -2.37029252e-06-5.88011751e-06j -3.90438704e-06-7.69763704e-06j\n", - " -6.31245224e-06-9.70951271e-06j -9.96542029e-06-1.15932852e-05j\n", - " -1.52548159e-05-1.26788492e-05j -2.24233543e-05-1.17762397e-05j\n", - " -3.12057216e-05-7.04845415e-06j -4.02242882e-05+3.88574150e-06j\n", - " -4.62353997e-05+2.32904563e-05j -4.37086455e-05+5.17274855e-05j\n", - " -2.58114013e-05+8.56121270e-05j 1.19221248e-05+1.15323983e-04j\n", - " 6.56055912e-05+1.27189320e-04j 1.19607430e-04+1.12212552e-04j\n", - " 1.54009937e-04+7.71012871e-05j 1.62201883e-04+4.27991566e-05j\n", - " 1.57646011e-04+2.42228164e-05j 1.55099671e-04+1.69490808e-05j\n", - " 1.55346214e-04+1.20096993e-05j 1.55438184e-04+8.12727655e-06j\n", - " 1.55423867e-04+5.53589397e-06j]\n" - ] - } - ], + "outputs": [], "source": [ "# Frequency-dependent conductivity\n", "simCole = EM1DFMSimulation(\n", " mesh1D, survey=Colesurvey, sigmaMap=Expmap,\n", " eta=eta, tau=tau, c=c,\n", - " chi=np.zeros(FDsurvey.n_layer)\n", + " chi=np.zeros(nlay)\n", ")\n", "\n", "# HzCole = simCole.dpred(m_1D)\n", @@ -306,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -315,32 +252,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", "ax.loglog(FDsurvey.frequency, np.abs(np.real(Hz)), 'b-')\n", @@ -352,32 +266,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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zJgxtGjRgtKlS/Prr7/Ss2fPHC0rjI2NpUaNGnTo0CHda1u2bAGynwC4fv16mjZtmup5u3btWLJkCQC33XYb48aNY8aMGdlub07ZACAf2bZNO//jx3WbghT/rYWkULkLMaYgyWjjrLz+/7+GDRtSu3ZtANq0acOll17K0KFDueGGGyhZsiTlypUjIiKCe++99+ygIK2IiAjmzp3LgAEDGDVq1NnjR48ezXG7YmNjucrH3VNsbCxFixalfv36Z48NGDCAuLg4AA4dOsT+/fs5fPgwhVLsC+NtAHDJJZecfV69enV27tyZ4zbnhA0A8gnP1gSJibrW/9JLg92ijIXSXYgxBcmwYemPhcLgu2jRokycOJFu3boxdepUhg4dSsmSJWnZsiWbNm2iSZMmRPjYrez48eNEpinHntM76b1797Jnz54MVwA0aNAg1efNnj0b0CTGbt26M+gp9QAAGi1JREFUMW3atFSdP2iH371791TPhw8fDsCuXbt48803mTx5co7anFM2AMgHYmM12z8yUjvWFAPToMoo0x9C5y7EGBMaunbtSvPmzZk0aRL33XcfxYsX59lnn+Waa66hffv23H777Zx33nns37+fDRs2kJCQwDPPPEOHDh2YNWsWl1xyCbVr12bRokV8+eWXOWqDZ/7f2wAgMTGR7777jn79+qV7bcuWLfTu3Ztp06Zx9dVXp3rt1KlTfP/992cjAJ7nY8eOZfz48ZQuXZonn3ySbt265ajNOWUDgDC3di20awelS2vYPymaFhLSLudLe9efVijchRhjguvJJ5+kffv2vPLKK9x///00adKEtWvX8thjj/Gf//yHw4cPU7lyZZo0acLdd98NwJQpUxARRo4cCUCnTp2YM2cOl19+ebY/31Pkx1uS37Zt2zh+/Hi619avX8+AAQN4++23vb4vLi6OihUrct555519XqZMGTZv3pzt9vmVt6UBofAARgBbgUSgu5fXVwKbgFjgM6BRZtfMb8sAP/9cpHRpkRo1RH76Kdit8c6zvG/06NTL/owxWROoZYDGP1atWiUNGzaUrVu3+jzn5Zdfls6dO6d63qFDB7+1IT8uA1wJvAO87uP1niJyGMA51wOYCeSDygxZs2oVdO4M558PK1dC1arBbpF3lulvjMnPevXqRbFixeiTtGNZoUKFWLNmTaocgfXr19OkSZNUz5uH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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", "ax.loglog(FDsurvey.frequency, np.abs(np.real(HzCole)), 'b-')\n", diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index 8653372..e98a8ca 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -26,70 +26,39 @@ class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): """ - frequencies = properties.Array("Frequencies evaluated for forward simulation (Hz)", dtype=float) - offset = properties.Array("Src-Rx offsets", dtype=float) depth = properties.Array("Depth of the layers", dtype=float) - topo = properties.Array("Topography (x, y, z)", dtype=float) + # topo = properties.Array("Topography (x, y, z)", dtype=float) half_switch = properties.Bool("Switch for half-space", default=False) - def __init__(self, **kwargs): - BaseSurvey.__init__(self, **kwargs) - - @property - def h(self): - """ - Source height - """ - return self.src_location[2]-self.topo[2] + def __init__(self, source_list=None, **kwargs): + BaseSurvey.__init__(self, source_list, **kwargs) - @property - def z(self): - """ - Receiver height - """ - return self.rx_location[2]-self.topo[2] - - @property - def dz(self): - """ - Source height - Rx height - """ - return self.z - self.h - - @property - def n_layer(self): - """ - Srource height - """ - if self.half_switch is False: - return self.depth.size - elif self.half_switch is True: - return int(1) + - @property - def n_frequency(self): - """ - # of frequency - """ + # @property + # def n_frequency(self): + # """ + # # of frequency + # """ - return int(self.frequency.size) + # return int(self.frequency.size) - @property - def src_paths_on_x(self): - """ - # of frequency - """ - if getattr(self, '_src_paths_on_x', None) is None: - offset = np.unique(self.offset) - if offset.size != 1: - raise Exception( - "For the sourth paths, only single offset works!" - ) - xy_rot, xy_obs_rot, angle = rotate_to_x_axis( - np.flipud(xy), np.r_[offset, 0.] - ) + # @property + # def src_paths_on_x(self): + # """ + # # of frequency + # """ + # if getattr(self, '_src_paths_on_x', None) is None: + # offset = np.unique(self.offset) + # if offset.size != 1: + # raise Exception( + # "For the sourth paths, only single offset works!" + # ) + # xy_rot, xy_obs_rot, angle = rotate_to_x_axis( + # np.flipud(xy), np.r_[offset, 0.] + # ) - return self._src_paths + # return self._src_paths # @utils.requires('prob') # def dpred(self, m, f=None): @@ -108,35 +77,28 @@ class EM1DSurveyFD(BaseEM1DSurvey): """ Freqency-domain EM1D survey """ - # Nfreq = None - switch_real_imag = properties.StringChoice( - "Switch for real and imaginary part of the data", - default="all", - choices=["all", "real", "imag"] - ) - def __init__(self, **kwargs): - BaseEM1DSurvey.__init__(self, **kwargs) + # switch_real_imag = properties.StringChoice( + # "Switch for real and imaginary part of the data", + # default="all", + # choices=["all", "real", "imag"] + # ) - if self.src_type == "VMD": - if self.offset is None: - raise Exception("offset is required!") + def __init__(self, source_list=None, **kwargs): + BaseEM1DSurvey.__init__(self, source_list, **kwargs) - if self.offset.size == 1: - self.offset = self.offset * np.ones(self.n_frequency) - - @property - def nD(self): - """ - # of data - """ + # @property + # def nD(self): + # """ + # # of data + # """ - if self.switch_real_imag == "all": - return int(self.frequency.size * 2) - elif ( - self.switch_real_imag == "imag" or self.switch_real_imag == "real" - ): - return int(self.n_frequency) + # if self.switch_real_imag == "all": + # return int(self.frequency.size * 2) + # elif ( + # self.switch_real_imag == "imag" or self.switch_real_imag == "real" + # ): + # return int(self.n_frequency) # @property # def hz_primary(self): @@ -148,45 +110,6 @@ def nD(self): # else: # raise NotImplementedError() - # def projectFields(self, u): - # """ - # Decompose frequency domain EM responses as real and imaginary - # components - # """ - - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - - # if self.rx_type == 'Hz': - # factor = 1. - # elif self.rx_type == 'ppm': - # factor = 1./self.hz_primary * 1e6 - - # if self.switch_real_imag == 'all': - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - # if ureal.ndim == 1 or 0: - # resp = np.r_[ureal*factor, uimag*factor] - # elif ureal.ndim == 2: - # if np.isscalar(factor): - # resp = np.vstack( - # (factor*ureal, factor*uimag) - # ) - # else: - # resp = np.vstack( - # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - # ) - # else: - # raise NotImplementedError() - # elif self.switch_real_imag == 'real': - # resp = (u.real).copy() - # elif self.switch_real_imag == 'imag': - # resp = (u.imag).copy() - # else: - # raise NotImplementedError() - - # return resp - class EM1DSurveyTD(BaseEM1DSurvey): """docstring for EM1DSurveyTD""" diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index d53b216..6b09d58 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,9 +1,12 @@ -from .simulation import BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation -from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD +from .simulation_original import BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation +from .survey_original import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD from . import supporting_functions from .analytics import * -from .sources import * -from .receivers import * +from .sources import ( + HarmonicMagneticDipoleSource, HarmonicHorizontalLoopSource, HarmonicLineSource, + TimeDomainMagneticDipoleSource, TimeDomainHorizontalLoopSource, TimeDomainLineSource +) +from .receivers import HarmonicPointReceiver, TimeDomainPointReceiver # from .RTEfun import rTEfunfwd, rTEfunjac from .Waveform import * from .Waveforms import ( diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index a181b77..5dd288e 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -3,7 +3,9 @@ from SimPEG.survey import BaseRx, BaseTimeRx -class HarmonicPointReceiver(BaseRx) +class HarmonicPointReceiver(BaseRx): + + frequencies = properties.Array("Frequency (Hz)", dtype=float) orientation = properties.StringChoice( "Field orientation", default="z", choices=["z"] @@ -22,9 +24,11 @@ class HarmonicPointReceiver(BaseRx) } ) - def __init__(self, locations=None, orientation=None, field_type=None, component=None, **kwargs): + def __init__(self, locations=None, frequencies=None, orientation=None, field_type=None, component=None, **kwargs): super(HarmonicPointReceiver, self).__init__(locations, **kwargs) + if frequencies is not None: + self.frequencies = frequencies if orientation is not None: self.orientation = orientation if component is not None: @@ -34,20 +38,16 @@ def __init__(self, locations=None, orientation=None, field_type=None, component= -class TDEMPointReceiver(BaseTimeRx): +class TimeDomainPointReceiver(BaseTimeRx): orientation = properties.StringChoice( "Field orientation", default="z", choices=["z"] ) component = properties.StringChoice( - "component of the field (h, b, dhdt, dbdt)", { - "h": ["h", "H"], - "b": ["b", "B"], - "dhdt": ["dhdt", "dHdt"], - "dbdt": ["dbdt", "dBdt"] - }, - default="dbdt" + "component of the field (h, b, dhdt, dbdt)", + default="dbdt", + choices=["h", "b", "dhdt", "dbdt"] ) def __init__(self, locations=None, times=None, orientation=None, component=None, **kwargs): diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 659c2bc..43ca9f8 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -1,6 +1,7 @@ from SimPEG import maps, utils, props from SimPEG.simulation import BaseSimulation import numpy as np +from .sources import * from .survey import BaseEM1DSurvey from .supporting_functions.kernels import * from scipy.constants import mu_0 @@ -68,6 +69,12 @@ class BaseEM1DSimulation(BaseSimulation): "a survey object", BaseEM1DSurvey, required=True ) + topo = properties.Array("Topography (x, y, z)", dtype=float) + + half_switch = properties.Bool("Switch for half-space", default=False) + + depth = properties.Array("Depth of the layers", dtype=float) + def __init__(self, mesh, **kwargs): BaseSimulation.__init__(self, mesh, **kwargs) @@ -91,9 +98,36 @@ def __init__(self, mesh, **kwargs): # if self.hankel_pts_per_dec != 0: # raise NotImplementedError() - # make it as a property? + @property + def h(self): + """ + Source height + """ + + if self._h is not None: + return self._h + + else: + if self.survey.source_list is not None: + # Could include topography here too + self._h = np.array([src.location[2] for src in self.source_list]) + return self._h + + else: + return - def sigma_cole(self): + + @property + def n_layer(self): + """ + number of layers + """ + if self.half_switch is False: + return self.depth.size + elif self.half_switch is True: + return int(1) + + def sigma_cole(self, frequencies): """ Computes Pelton's Cole-Cole conductivity model in frequency domain. @@ -113,10 +147,9 @@ def sigma_cole(self): Cole-Cole conductivity values at given frequencies """ - n_layer = self.survey.n_layer - n_frequency = self.survey.n_frequency + n_layer = self.n_layer + n_frequency = len(frequencies) n_filter = self.n_filter - f = self.survey.frequency sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) if np.isscalar(self.eta): @@ -129,7 +162,7 @@ def sigma_cole(self): c = np.tile(self.c.reshape([-1, 1]), (1, n_frequency)) w = np.tile( - 2*np.pi*f, + 2*np.pi*frequencies, (n_layer, 1) ) @@ -155,167 +188,212 @@ def n_filter(self): """ Length of filter """ return self.fhtfilt.base.size - def forward(self, m, output_type='response'): + def compute_integral(self, m, output_type='response'): """ - Return Bz or dBzdt + """ + # Physical Properties self.model = m - n_frequency = self.survey.n_frequency - flag = self.survey.field_type - n_layer = self.survey.n_layer - depth = self.survey.depth - I = self.survey.I - n_filter = self.n_filter + chi = self.chi + if np.isscalar(self.chi): + chi = np.ones_like(self.sigma) * self.chi - # Get lambd and offset, will depend on pts_per_dec - if self.survey.src_type == "VMD": - r = self.survey.offset - else: - # a is the radius of the loop - r = self.survey.a * np.ones(n_frequency) - - # Use function from empymod - # size of lambd is (n_frequency x n_filter) - lambd = np.empty([self.survey.frequency.size, n_filter], order='F') - lambd[:, :], _ = get_dlf_points( - self.fhtfilt, r, self.hankel_pts_per_dec - ) + n_layer = self.n_layer + depth = self.depth - # TODO: potentially store - f = np.empty([self.survey.frequency.size, n_filter], order='F') - f[:, :] = np.tile( - self.survey.frequency.reshape([-1, 1]), (1, n_filter) - ) - # h is an inversion parameter + + # Source heights if self.hMap is not None: - h = self.h + h_vector = self.h else: - h = self.survey.h + if self.topo is None: + h_vector = np.array([src.location[2] for src in self.survey.source_list]) + else: + h_vector = np.array([src.location[2]-self.topo[0] for src in self.survey.source_list]) - z = h + self.survey.dz - chi = self.chi - if np.isscalar(self.chi): - chi = np.ones_like(self.sigma) * self.chi + + n_filter = self.n_filter - # TODO: potentially store - sig = self.sigma_cole() + f_full = [] + + for ii, src in enumerate(self.survey.source_list): - if output_type == 'response': - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) + # list of x,y,z offsets between sources and receivers + offset_list = src.offset_list + I = src.I - # kernels for each bessel function - # (j0, j1, j2) - PJ = (hz, None, None) # PJ0 + for jj, rx in enumerate(src.receiver_list): - elif self.survey.src_type == 'CircularLoop': - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type + n_frequency = len(rx.frequencies) + # TODO: potentially store + + f = np.empty([n_frequency, n_filter], order='F') + f[:, :] = np.tile( + rx.frequencies.reshape([-1, 1]), (1, n_filter) ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - - # TODO: This has not implemented yet! - elif self.survey.src_type == "piecewise_line": - # Need to compute y - hz = hz_kernel_horizontal_electric_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 + # Create globally, not for each receiver + sig = self.sigma_cole(rx.frequencies) - else: - raise Exception("Src options are only VMD or CircularLoop!!") + for kk in range(0, rx.nD): - elif output_type == 'sensitivity_sigma': + if isinstance(src, HarmonicMagneticDipoleSource): + r = np.sqrt(np.sum(offset_list[jj][kk, 0:2]**2)) * np.ones(n_frequency) + else: + # a is the radius of the loop + r = src.a * np.ones(n_frequency) + + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, r, self.hankel_pts_per_dec + ) - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) + # Compute receiver height + h = h_vector[ii] + z = h + offset_list[jj][kk, 2] + + flag = rx.field_type + + if output_type == 'response': + # for forward simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) + + # kernels for each bessel function + # (j0, j1, j2) + PJ = (hz, None, None) # PJ0 - PJ = (hz, None, None) # PJ0 + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) - elif self.survey.src_type == 'CircularLoop': + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) + # TODO: This has not implemented yet! + elif isinstance(src, HarmonicLineSource) | isinstance(src, TimeDomainLineSource): + # Need to compute y + hz = hz_kernel_horizontal_electric_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 - PJ = (None, hz, None) # PJ1 + else: + raise Exception("Src options are only VMD or CircularLoop!!") - else: - raise Exception("Src options are only VMD or CircularLoop!!") + elif output_type == 'sensitivity_sigma': - r = np.tile(r, (n_layer, 1)) + # for simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) - elif output_type == 'sensitivity_height': + PJ = (hz, None, None) # PJ0 - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) - PJ = (hz, None, None) # PJ0 + PJ = (None, hz, None) # PJ1 - elif self.survey.src_type == 'CircularLoop': + else: + raise Exception("Src options are only VMD or CircularLoop!!") - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) + r = np.tile(r, (n_layer, 1)) - PJ = (None, hz, None) # PJ1 + elif output_type == 'sensitivity_height': + + # for simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) + + PJ = (hz, None, None) # PJ0 + + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + + PJ = (None, hz, None) # PJ1 + + else: + raise Exception("Src options are only VMD or CircularLoop!!") + + # Carry out Hankel DLF + # ab=66 => 33 (vertical magnetic src and rec) + # For response + # HzFHT size = (n_frequency,) + # For sensitivity + # HzFHT size = (n_layer, n_frequency) + + HzFHT = dlf(PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, + ang_fact=None, ab=33) + + if output_type == "sensitivity_sigma": + return HzFHT.T + + return HzFHT - else: - raise Exception("Src options are only VMD or CircularLoop!!") - # Carry out Hankel DLF - # ab=66 => 33 (vertical magnetic src and rec) - # For response - # HzFHT size = (n_frequency,) - # For sensitivity - # HzFHT size = (n_layer, n_frequency) - HzFHT = dlf(PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, - ang_fact=None, ab=33) - if output_type == "sensitivity_sigma": - return HzFHT.T - return HzFHT - # @profile def fields(self, m): - f = self.forward(m, output_type='response') + f = self.compute_integral(m, output_type='response') # self.survey._pred = utils.mkvc(self.survey.projectFields(f)) return f + def dpred(self, m, f=None): + """ + Computes predicted data. + Here we do not store predicted data + because projection (`d = P(f)`) is cheap. + """ + + # if f is None: + # f = self.fields(m) + # return utils.mkvc(self.projectFields(f)) + + if f is None: + if m is None: + m = self.model + f = self.fields(m) + + return f + def getJ_height(self, m, f=None): """ @@ -330,7 +408,7 @@ def getJ_height(self, m, f=None): if self.verbose: print(">> Compute J height ") - dudz = self.forward(m, output_type="sensitivity_height") + dudz = self.compute_integral(m, output_type="sensitivity_height") self._Jmatrix_height = ( self.projectFields(dudz) @@ -351,7 +429,7 @@ def getJ_sigma(self, m, f=None): if self.verbose: print(">> Compute J sigma") - dudsig = self.forward(m, output_type="sensitivity_sigma") + dudsig = self.compute_integral(m, output_type="sensitivity_sigma") self._Jmatrix_sigma = self.projectFields(dudsig) if self._Jmatrix_sigma.ndim == 1: @@ -420,16 +498,7 @@ def get_JtJdiag(self, uncert): return JtJdiag - def dpred(self, m, f=None): - """ - Computes predicted data. - Here we do not store predicted data - because projection (`d = P(f)`) is cheap. - """ - - if f is None: - f = self.fields(m) - return utils.mkvc(self.projectFields(f)) + @@ -449,6 +518,9 @@ def hz_primary(self): else: raise NotImplementedError() + + + def projectFields(self, u): """ @@ -456,38 +528,42 @@ def projectFields(self, u): components """ - ureal = (u.real).copy() - uimag = (u.imag).copy() - - if self.survey.rx_type == 'Hz': - factor = 1. - elif self.survey.rx_type == 'ppm': - factor = 1./self.hz_primary * 1e6 - - if self.survey.switch_real_imag == 'all': - ureal = (u.real).copy() - uimag = (u.imag).copy() - if ureal.ndim == 1 or 0: - resp = np.r_[ureal*factor, uimag*factor] - elif ureal.ndim == 2: - if np.isscalar(factor): - resp = np.vstack( - (factor*ureal, factor*uimag) - ) - else: - resp = np.vstack( - (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - ) - else: - raise NotImplementedError() - elif self.survey.switch_real_imag == 'real': - resp = (u.real).copy() - elif self.survey.switch_real_imag == 'imag': - resp = (u.imag).copy() - else: - raise NotImplementedError() + + + + + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + + # if self.survey.rx_type == 'Hz': + # factor = 1. + # elif self.survey.rx_type == 'ppm': + # factor = 1./self.hz_primary * 1e6 + + # if self.survey.switch_real_imag == 'all': + # ureal = (u.real).copy() + # uimag = (u.imag).copy() + # if ureal.ndim == 1 or 0: + # resp = np.r_[ureal*factor, uimag*factor] + # elif ureal.ndim == 2: + # if np.isscalar(factor): + # resp = np.vstack( + # (factor*ureal, factor*uimag) + # ) + # else: + # resp = np.vstack( + # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) + # ) + # else: + # raise NotImplementedError() + # elif self.survey.switch_real_imag == 'real': + # resp = (u.real).copy() + # elif self.survey.switch_real_imag == 'imag': + # resp = (u.imag).copy() + # else: + # raise NotImplementedError() - return resp + # return resp @@ -529,10 +605,10 @@ def projectFields(self, u): # Compute EM sensitivities else: resp = np.zeros( - (self.survey.n_time, self.survey.n_layer), dtype=np.float64, order='F') + (self.survey.n_time, self.n_layer), dtype=np.float64, order='F') # ) # TODO: remove for loop - for i in range(self.survey.n_layer): + for i in range(self.n_layer): resp_i, _ = fourier_dlf( u[:, i]*factor, self.survey.time, self.survey.frequency, self.survey.ftarg diff --git a/simpegEM1D/simulation_original.py b/simpegEM1D/simulation_original.py index 659c2bc..dcaaf4a 100644 --- a/simpegEM1D/simulation_original.py +++ b/simpegEM1D/simulation_original.py @@ -1,7 +1,7 @@ from SimPEG import maps, utils, props from SimPEG.simulation import BaseSimulation import numpy as np -from .survey import BaseEM1DSurvey +from .survey_original import BaseEM1DSurvey from .supporting_functions.kernels import * from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline @@ -454,7 +454,7 @@ def projectFields(self, u): """ Decompose frequency domain EM responses as real and imaginary components - """ + """ ureal = (u.real).copy() uimag = (u.imag).copy() diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index 6a3da7e..fb8aa90 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -1,59 +1,67 @@ import numpy as np -from SimPEG.survey import BaseSrc +from SimPEG import survey import properties -class HarmonicMagneticDipoleSource(BaseSrc): - - frequency = properties.Array("Frequency (Hz)", dtype=float) - +class BaseSrc(survey.BaseSrc): + + _offset_list = properties.List("List containing offsets") # Contains the list of xyz offsets for each source-receiver pair + I = properties.Float("Source loop current", default=1.) + + def __init__(self, receiver_list=None, **kwargs): + super(BaseSrc, self).__init__(receiver_list=receiver_list, **kwargs) + + @property + def offset_list(self): + + if self._offset_list is not None: + return self._offset_list + + else: + if self.receiver_list is not None: + temp = len(self.receiver_list)*[None] + src_loc = np.reshape(self.location, (1, 3)) + for ii, rx in enumerate(self.receiver_list): + temp[ii] = rx.locations - np.repeat(src_loc, rx.nD, axis=0) + + self._offset_list = temp + return self._offset_list + + else: + return + + + +class HarmonicMagneticDipoleSource(BaseSrc): orientation = properties.StringChoice( - "Dipole Orientation", default="Z", choices=["Z"] + "Dipole Orientation", default="z", choices=["z"] ) - def __init__(self, receiver_list=None, frequency=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(HarmonicMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) - if frequency is not None: - self.frequency = frequency class HarmonicHorizontalLoopSource(BaseSrc): - - frequency = properties.Array("Frequency (Hz)", dtype=float) - - I = properties.Float("Source loop current", default=1.) a = properties.Float("Source loop radius", default=1.) - def __init__(self, receiver_list=None, frequency=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(HarmonicHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) - if frequency is not None: - self.frequency = frequency class HarmonicLineSource(BaseSrc): - - frequency = properties.Array("Frequency (Hz)", dtype=float) - - I = properties.Float("Source loop current", default=1.) src_path = properties.Array( "Source path (xi, yi, zi), i=0,...N", dtype=float ) - def __init__(self, receiver_list=None, frequency=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - if frequency is not None: - self.frequency = frequency class TimeDomainMagneticDipoleSource(BaseSrc): - time = properties.Array("Time channels (s) at current off-time", dtype=float) - - I = properties.Float("Source loop current", default=1.) - orientation = properties.StringChoice( "Dipole Orientation", default="z", choices=["z"] ) @@ -64,18 +72,12 @@ class TimeDomainMagneticDipoleSource(BaseSrc): choices=["stepoff", "general"] ) - def __init__(self, receiver_list=None, time=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(TimeDomainMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) - if time is not None: - self.time = time class TimeDomainHorizontalLoopSource(BaseSrc): - time = properties.Array("Time channels (s) at current off-time", dtype=float) - - I = properties.Float("Source loop current", default=1.) - a = properties.Float("Source loop radius", default=1.) wave_type = properties.StringChoice( @@ -84,16 +86,11 @@ class TimeDomainHorizontalLoopSource(BaseSrc): choices=["stepoff", "general"] ) - def __init__(self, receiver_list=None, time=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(TimeDomainHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) - if time is not None: - self.time = time -class TimeDomainLineSource(BaseSrc): - time = properties.Array("Time channels (s) at current off-time", dtype=float) - - I = properties.Float("Source loop current", default=1.) +class TimeDomainLineSource(BaseSrc): src_path = properties.Array( "Source path (xi, yi, zi), i=0,...N", @@ -106,10 +103,8 @@ class TimeDomainLineSource(BaseSrc): choices=["stepoff", "general"] ) - def __init__(self, receiver_list=None, time=None, **kwargs): + def __init__(self, receiver_list=None, **kwargs): super(TimeDomainLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - if time is not None: - self.time = time diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 20d7414..19f269b 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -533,8 +533,7 @@ def hz_kernel_vertical_magnetic_dipole( u0 = lamda coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer + n_frequency = len(f) n_filter = simulation.n_filter if output_type == 'sensitivity_sigma': @@ -544,11 +543,11 @@ def hz_kernel_vertical_magnetic_dipole( ) if rte_fortran is None: drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + n_layer, f, lamda, sig, chi, depth, simulation.half_switch ) else: rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, drTE, + f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter ) @@ -560,11 +559,11 @@ def hz_kernel_vertical_magnetic_dipole( if rte_fortran is None: rTE = rTEfunfwd( n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch + simulation.half_switch ) else: rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, + f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter ) @@ -602,8 +601,7 @@ def hz_kernel_circular_loop( """ - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer + n_frequency = len(f) n_filter = simulation.n_filter w = 2*np.pi*f @@ -621,11 +619,11 @@ def hz_kernel_circular_loop( if rte_fortran is None: drTE[:, :] = rTEfunjac( n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch + simulation.half_switch ) else: rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, + f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter ) @@ -636,11 +634,11 @@ def hz_kernel_circular_loop( ) if rte_fortran is None: rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + n_layer, f, lamda, sig, chi, depth, simulation.half_switch ) else: rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, + f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter ) @@ -666,8 +664,7 @@ def hz_kernel_horizontal_electric_dipole( horizontal electric diopole (HED) source in (kx,ky) domain """ - n_frequency = simulation.survey.n_frequency - n_layer = simulation.survey.n_layer + n_frequency = len(f) n_filter = simulation.n_filter u0 = lamda @@ -680,11 +677,11 @@ def hz_kernel_horizontal_electric_dipole( ) if rte_fortran is None: drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.survey.half_switch + n_layer, f, lamda, sig, chi, depth, simulation.half_switch ) else: rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, + f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter ) @@ -696,11 +693,11 @@ def hz_kernel_horizontal_electric_dipole( if rte_fortran is None: rTE = rTEfunfwd( n_layer, f, lamda, sig, chi, depth, - simulation.survey.half_switch + simulation.half_switch ) else: rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, + f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter ) From 7b287b45feb1d5ff1943361b1cea5d750553ce1a Mon Sep 17 00:00:00 2001 From: dccowan Date: Sat, 30 May 2020 00:35:08 -0700 Subject: [PATCH 08/54] Get time domain forward for step-off to work. Much testing still needed. --- notebooks/examples/EM1DFM_forward.ipynb | 154 +++--- notebooks/examples/EM1DTM_forward.ipynb | 289 ++++++++++++ notebooks/examples/EM1DTM_fwd.ipynb | 285 ------------ notebooks/examples/EM1D_TD_FWD.ipynb | 101 +++- simpegEM1D/Survey.py | 349 +------------- simpegEM1D/receivers.py | 41 +- simpegEM1D/simulation.py | 592 +++++++++++++----------- simpegEM1D/sources.py | 146 +++++- 8 files changed, 945 insertions(+), 1012 deletions(-) create mode 100644 notebooks/examples/EM1DTM_forward.ipynb delete mode 100644 notebooks/examples/EM1DTM_fwd.ipynb diff --git a/notebooks/examples/EM1DFM_forward.ipynb b/notebooks/examples/EM1DFM_forward.ipynb index 22512c0..f4e20f4 100644 --- a/notebooks/examples/EM1DFM_forward.ipynb +++ b/notebooks/examples/EM1DFM_forward.ipynb @@ -66,10 +66,12 @@ { "cell_type": "code", "execution_count": 3, - "metadata": {}, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ - "rx_location = np.c_[8., 0., 0.]\n", + "rx_location = np.array([8., 0., 0.])\n", "src_location = np.array([0., 0., 0.])\n", "frequencies = np.logspace(-2, 8, 61)\n", "I = 1.\n", @@ -184,38 +186,38 @@ "name": "stdout", "output_type": "stream", "text": [ - "(61,)\n", - "[-5.46799058e-17-1.96234252e-12j -1.16896402e-16-2.88032431e-12j\n", - " -2.50681887e-16-4.22773603e-12j -5.38655317e-16-6.20546187e-12j\n", - " -1.15903476e-15-9.10835352e-12j -2.49280581e-15-1.33691751e-11j\n", - " -5.35440132e-15-1.96230780e-11j -1.14648491e-14-2.88021529e-11j\n", - " -2.43827071e-14-4.22739644e-11j -5.11171297e-14-6.20442205e-11j\n", - " -1.04109185e-13-9.10528105e-11j -2.01013662e-13-1.33607199e-10j\n", - " -3.58829149e-13-1.96026112e-10j -6.06720506e-13-2.87606012e-10j\n", - " -1.06394230e-12-4.21978042e-10j -1.88584081e-12-6.19036850e-10j\n", - " -3.33558439e-12-9.08050705e-10j -5.90958825e-12-1.33179306e-09j\n", - " -1.04968251e-11-1.95296525e-09j -1.86339180e-11-2.86329900e-09j\n", - " -3.30761887e-11-4.19693573e-09j -5.87189264e-11-6.14991769e-09j\n", - " -1.04226195e-10-9.00846260e-09j -1.84935729e-10-1.31899359e-08j\n", - " -3.27993936e-10-1.93020685e-08j -5.81400117e-10-2.82282279e-08j\n", - " -1.02990773e-09-4.12496321e-08j -1.82292821e-09-6.02194990e-08j\n", - " -3.22336302e-09-8.78093657e-08j -5.69275377e-09-1.27854148e-07j\n", - " -1.00390953e-08-1.85829392e-07j -1.76720061e-08-2.69500033e-07j\n", - " -3.10401974e-08-3.89781198e-07j -5.43749881e-08-5.61840573e-07j\n", - " -9.49400531e-08-8.06433738e-07j -1.65102293e-07-1.15137109e-06j\n", - " -2.85699664e-07-1.63281838e-06j -4.91382245e-07-2.29574962e-06j\n", - " -8.38792464e-07-3.19217123e-06j -1.41847289e-06-4.37453520e-06j\n", - " -2.37086483e-06-5.87985144e-06j -3.90488430e-06-7.69730526e-06j\n", - " -6.31284960e-06-9.70911744e-06j -9.96569115e-06-1.15928368e-05j\n", - " -1.52549352e-05-1.26783691e-05j -2.24233036e-05-1.17757633e-05j\n", - " -3.12054975e-05-7.04803009e-06j -4.02239115e-05+3.88605557e-06j\n", - " -4.62349237e-05+2.32906067e-05j -4.37081555e-05+5.17274430e-05j\n", - " -2.58109982e-05+8.56119100e-05j 1.19223605e-05+1.15323668e-04j\n", - " 6.56056428e-05+1.27189018e-04j 1.19607359e-04+1.12212357e-04j\n", - " 1.54009845e-04+7.71012129e-05j 1.62201830e-04+4.27991495e-05j\n", - " 1.57645995e-04+2.42228201e-05j 1.55099666e-04+1.69490802e-05j\n", - " 1.55346211e-04+1.20096985e-05j 1.55438183e-04+8.12727627e-06j\n", - " 1.55423866e-04+5.53589383e-06j]\n" + "(122,)\n", + "[-5.46799058e-17 -1.16896402e-16 -2.50681887e-16 -5.38655317e-16\n", + " -1.15903476e-15 -2.49280581e-15 -5.35440132e-15 -1.14648491e-14\n", + " -2.43827071e-14 -5.11171297e-14 -1.04109185e-13 -2.01013662e-13\n", + " -3.58829149e-13 -6.06720506e-13 -1.06394230e-12 -1.88584081e-12\n", + " -3.33558439e-12 -5.90958825e-12 -1.04968251e-11 -1.86339180e-11\n", + " -3.30761887e-11 -5.87189264e-11 -1.04226195e-10 -1.84935729e-10\n", + " -3.27993936e-10 -5.81400117e-10 -1.02990773e-09 -1.82292821e-09\n", + " -3.22336302e-09 -5.69275377e-09 -1.00390953e-08 -1.76720061e-08\n", + " -3.10401974e-08 -5.43749881e-08 -9.49400531e-08 -1.65102293e-07\n", + " -2.85699664e-07 -4.91382245e-07 -8.38792464e-07 -1.41847289e-06\n", + " -2.37086483e-06 -3.90488430e-06 -6.31284960e-06 -9.96569115e-06\n", + " -1.52549352e-05 -2.24233036e-05 -3.12054975e-05 -4.02239115e-05\n", + " -4.62349237e-05 -4.37081555e-05 -2.58109982e-05 1.19223605e-05\n", + " 6.56056428e-05 1.19607359e-04 1.54009845e-04 1.62201830e-04\n", + " 1.57645995e-04 1.55099666e-04 1.55346211e-04 1.55438183e-04\n", + " 1.55423866e-04 -1.96234252e-12 -2.88032431e-12 -4.22773603e-12\n", + " -6.20546187e-12 -9.10835352e-12 -1.33691751e-11 -1.96230780e-11\n", + " -2.88021529e-11 -4.22739644e-11 -6.20442205e-11 -9.10528105e-11\n", + " -1.33607199e-10 -1.96026112e-10 -2.87606012e-10 -4.21978042e-10\n", + " -6.19036850e-10 -9.08050705e-10 -1.33179306e-09 -1.95296525e-09\n", + " -2.86329900e-09 -4.19693573e-09 -6.14991769e-09 -9.00846260e-09\n", + " -1.31899359e-08 -1.93020685e-08 -2.82282279e-08 -4.12496321e-08\n", + " -6.02194990e-08 -8.78093657e-08 -1.27854148e-07 -1.85829392e-07\n", + " -2.69500033e-07 -3.89781198e-07 -5.61840573e-07 -8.06433738e-07\n", + " -1.15137109e-06 -1.63281838e-06 -2.29574962e-06 -3.19217123e-06\n", + " -4.37453520e-06 -5.87985144e-06 -7.69730526e-06 -9.70911744e-06\n", + " -1.15928368e-05 -1.26783691e-05 -1.17757633e-05 -7.04803009e-06\n", + " 3.88605557e-06 2.32906067e-05 5.17274430e-05 8.56119100e-05\n", + " 1.15323668e-04 1.27189018e-04 1.12212357e-04 7.71012129e-05\n", + " 4.27991495e-05 2.42228201e-05 1.69490802e-05 1.20096985e-05\n", + " 8.12727627e-06 5.53589383e-06]\n" ] } ], @@ -241,38 +243,38 @@ "name": "stdout", "output_type": "stream", "text": [ - "(61,)\n", - "[ 5.53757290e-15-9.82263144e-13j 1.13879984e-14-1.44243389e-12j\n", - " 2.33869700e-14-2.11861458e-12j 4.80265611e-14-3.11270526e-12j\n", - " 9.85321185e-14-4.57529619e-12j 2.01925484e-13-6.72974845e-12j\n", - " 4.13070866e-13-9.90931818e-12j 8.42699459e-13-1.46159963e-11j\n", - " 1.71187054e-12-2.16175922e-11j 3.45402835e-12-3.21164614e-11j\n", - " 6.89324945e-12-4.80592236e-11j 1.35141956e-11-7.27264954e-11j\n", - " 2.57469873e-11-1.11841532e-10j 4.69381200e-11-1.75456456e-10j\n", - " 8.03625965e-11-2.80588017e-10j 1.26323796e-10-4.53489970e-10j\n", - " 1.80484076e-10-7.29084498e-10j 2.34605771e-10-1.15219144e-09j\n", - " 2.81668418e-10-1.78240651e-09j 3.17628539e-10-2.70633190e-09j\n", - " 3.40249353e-10-4.05412480e-09j 3.46382970e-10-6.01972956e-09j\n", - " 3.29112985e-10-8.88867071e-09j 2.74424515e-10-1.30783931e-08j\n", - " 1.56052188e-10-1.91970525e-08j -7.34649201e-11-2.81285629e-08j\n", - " -4.98587742e-10-4.11547143e-08j -1.26861497e-09-6.01292914e-08j\n", - " -2.64647850e-09-8.77243958e-08j -5.09387832e-09-1.27775521e-07j\n", - " -9.41909607e-09-1.85758825e-07j -1.70321780e-08-2.69439907e-07j\n", - " -3.03824285e-08-3.89734624e-07j -5.37019594e-08-5.61811467e-07j\n", - " -9.42554839e-08-8.06426882e-07j -1.64411243e-07-1.15139217e-06j\n", - " -2.85008894e-07-1.63287394e-06j -4.90700650e-07-2.29584692e-06j\n", - " -8.38131544e-07-3.19231789e-06j -1.41784724e-06-4.37473857e-06j\n", - " -2.37029252e-06-5.88011751e-06j -3.90438704e-06-7.69763704e-06j\n", - " -6.31245224e-06-9.70951271e-06j -9.96542029e-06-1.15932852e-05j\n", - " -1.52548159e-05-1.26788492e-05j -2.24233543e-05-1.17762397e-05j\n", - " -3.12057216e-05-7.04845415e-06j -4.02242882e-05+3.88574150e-06j\n", - " -4.62353997e-05+2.32904563e-05j -4.37086455e-05+5.17274855e-05j\n", - " -2.58114013e-05+8.56121270e-05j 1.19221248e-05+1.15323983e-04j\n", - " 6.56055912e-05+1.27189320e-04j 1.19607430e-04+1.12212552e-04j\n", - " 1.54009937e-04+7.71012871e-05j 1.62201883e-04+4.27991566e-05j\n", - " 1.57646011e-04+2.42228164e-05j 1.55099671e-04+1.69490808e-05j\n", - " 1.55346214e-04+1.20096993e-05j 1.55438184e-04+8.12727655e-06j\n", - " 1.55423867e-04+5.53589397e-06j]\n" + "(122,)\n", + "[ 5.53757290e-15 1.13879984e-14 2.33869700e-14 4.80265611e-14\n", + " 9.85321185e-14 2.01925484e-13 4.13070866e-13 8.42699459e-13\n", + " 1.71187054e-12 3.45402835e-12 6.89324945e-12 1.35141956e-11\n", + " 2.57469873e-11 4.69381200e-11 8.03625965e-11 1.26323796e-10\n", + " 1.80484076e-10 2.34605771e-10 2.81668418e-10 3.17628539e-10\n", + " 3.40249353e-10 3.46382970e-10 3.29112985e-10 2.74424515e-10\n", + " 1.56052188e-10 -7.34649201e-11 -4.98587742e-10 -1.26861497e-09\n", + " -2.64647850e-09 -5.09387832e-09 -9.41909607e-09 -1.70321780e-08\n", + " -3.03824285e-08 -5.37019594e-08 -9.42554839e-08 -1.64411243e-07\n", + " -2.85008894e-07 -4.90700650e-07 -8.38131544e-07 -1.41784724e-06\n", + " -2.37029252e-06 -3.90438704e-06 -6.31245224e-06 -9.96542029e-06\n", + " -1.52548159e-05 -2.24233543e-05 -3.12057216e-05 -4.02242882e-05\n", + " -4.62353997e-05 -4.37086455e-05 -2.58114013e-05 1.19221248e-05\n", + " 6.56055912e-05 1.19607430e-04 1.54009937e-04 1.62201883e-04\n", + " 1.57646011e-04 1.55099671e-04 1.55346214e-04 1.55438184e-04\n", + " 1.55423867e-04 -9.82263144e-13 -1.44243389e-12 -2.11861458e-12\n", + " -3.11270526e-12 -4.57529619e-12 -6.72974845e-12 -9.90931818e-12\n", + " -1.46159963e-11 -2.16175922e-11 -3.21164614e-11 -4.80592236e-11\n", + " -7.27264954e-11 -1.11841532e-10 -1.75456456e-10 -2.80588017e-10\n", + " -4.53489970e-10 -7.29084498e-10 -1.15219144e-09 -1.78240651e-09\n", + " -2.70633190e-09 -4.05412480e-09 -6.01972956e-09 -8.88867071e-09\n", + " -1.30783931e-08 -1.91970525e-08 -2.81285629e-08 -4.11547143e-08\n", + " -6.01292914e-08 -8.77243958e-08 -1.27775521e-07 -1.85758825e-07\n", + " -2.69439907e-07 -3.89734624e-07 -5.61811467e-07 -8.06426882e-07\n", + " -1.15139217e-06 -1.63287394e-06 -2.29584692e-06 -3.19231789e-06\n", + " -4.37473857e-06 -5.88011751e-06 -7.69763704e-06 -9.70951271e-06\n", + " -1.15932852e-05 -1.26788492e-05 -1.17762397e-05 -7.04845415e-06\n", + " 3.88574150e-06 2.32904563e-05 5.17274855e-05 8.56121270e-05\n", + " 1.15323983e-04 1.27189320e-04 1.12212552e-04 7.71012871e-05\n", + " 4.27991566e-05 2.42228164e-05 1.69490808e-05 1.20096993e-05\n", + " 8.12727655e-06 5.53589397e-06]\n" ] } ], @@ -302,16 +304,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, @@ -330,25 +332,25 @@ ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", - "ax.loglog(frequencies, np.abs(np.real(Hz)), 'b-')\n", + "ax.loglog(frequencies, np.abs(Hz[0:len(frequencies)]), 'b-')\n", "ax.loglog(frequencies, np.abs(np.real(Hzanal)), 'bx')\n", - "ax.loglog(frequencies, np.abs(np.imag(Hz)), 'r-')\n", + "ax.loglog(frequencies, np.abs(Hz[len(frequencies):]), 'r-')\n", "ax.loglog(frequencies, np.abs(np.imag(Hzanal)), 'rx')\n", "legend(('Real $H_{z}$', 'Real $H_{z \\ true}$', 'Imag $H_{z}$', 'Imag $H_{z \\ true}$'))" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, @@ -367,9 +369,9 @@ ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", - "ax.loglog(frequencies, np.abs(np.real(HzCole)), 'b-')\n", + "ax.loglog(frequencies, np.abs(HzCole[0:len(frequencies)]), 'b-')\n", "ax.loglog(frequencies, np.abs(np.real(Hzanal)), 'bx')\n", - "ax.loglog(frequencies, np.abs(np.imag(HzCole)), 'r-')\n", + "ax.loglog(frequencies, np.abs(HzCole[len(frequencies):]), 'r-')\n", "ax.loglog(frequencies, np.abs(np.imag(Hzanal)), 'rx')\n", "legend(('Real $H_{z}$', 'Real $H_{z \\ IP}$', 'Imag $H_{z}$', 'Imag $H_{z \\ IP}$'))" ] diff --git a/notebooks/examples/EM1DTM_forward.ipynb b/notebooks/examples/EM1DTM_forward.ipynb new file mode 100644 index 0000000..4d722b4 --- /dev/null +++ b/notebooks/examples/EM1DTM_forward.ipynb @@ -0,0 +1,289 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + } + ], + "source": [ + "from SimPEG import *\n", + "from simpegEM1D import (\n", + " Utils1D, get_vertical_discretization_time, \n", + " set_mesh_1d, skytem_HM_2015\n", + ")\n", + "from simpegEM1D.simulation import EM1DTMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyTD\n", + "from simpegEM1D.sources import *\n", + "from simpegEM1D.receivers import *\n", + "from simpegEM1D import analytics\n", + "import numpy as np\n", + "from simpegEM1D import skytem_HM_2015\n", + "from simpegEM1D.supporting_functions.digital_filter import setFrequency, transFilt\n", + "from scipy.constants import mu_0\n", + "%pylab inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Set up for EM1D program\n", + "\n", + "## Step 1: Generate Mesh" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "hz = np.array([10, 10, 10])\n", + "mesh1D = set_mesh_1d(hz)\n", + "depth = -mesh1D.gridN[:-1]\n", + "nlay = len(depth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step2: Set survey parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "rx_location = np.array([10., 0., 0.])\n", + "src_location = np.array([0., 0., 0.])\n", + "times = np.logspace(-5, -2, 31)\n", + "I = 1.\n", + "a = 1.\n", + "\n", + "# Receiver list\n", + "receiver_list = []\n", + "receiver_list.append(\n", + " TimeDomainPointReceiver(\n", + " rx_location, times, orientation=\"z\", component=\"dhdt\"\n", + " )\n", + ")\n", + "\n", + "# Sources\n", + "source_list = [\n", + " TimeDomainMagneticDipoleSource(\n", + " receiver_list=receiver_list, location=src_location, orientation=\"z\", I=I\n", + " )\n", + "]\n", + "\n", + "# Survey\n", + "TDsurvey = EM1DSurveyTD(source_list)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 3: Model and Mapping" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "sigma_half = 0.1\n", + "sigma = np.ones(hz.size) * sigma_half\n", + "\n", + "chi_half = 0.\n", + "Expmap = maps.ExpMap(mesh1D)\n", + "tau = np.ones(nlay, dtype=float)*1e-1\n", + "eta = np.ones(nlay, dtype=float)*0.5\n", + "c = np.ones(nlay, dtype=float)*0.88" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "m_1D = np.log(np.ones(nlay)*sigma_half)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 116)\n", + "(31,)\n", + "[-9.92937941e-07 -6.17689284e-07 -3.75646836e-07 -2.24602803e-07\n", + " -1.32533952e-07 -7.74092430e-08 -4.48521362e-08 -2.58254102e-08\n", + " -1.47968151e-08 -8.44500782e-09 -4.80503982e-09 -2.72731327e-09\n", + " -1.54502184e-09 -8.73921628e-10 -4.93729793e-10 -2.78671206e-10\n", + " -1.57167471e-10 -8.85864409e-11 -4.99075897e-11 -2.81067715e-11\n", + " -1.58245975e-11 -8.90718303e-12 -5.01227757e-12 -2.81979375e-12\n", + " -1.58599811e-12 -8.91901941e-13 -5.01544502e-13 -2.82042815e-13\n", + " -1.58628428e-13 -8.92263344e-14 -5.02034756e-14]\n" + ] + } + ], + "source": [ + "# Conductivity\n", + "simFD = EM1DTMSimulation(\n", + " mesh1D, survey=TDsurvey, depth=depth, sigmaMap=Expmap,\n", + " chi=np.zeros(nlay)\n", + ")\n", + "\n", + "\n", + "bz = simFD.fields(m_1D)\n", + "print(np.shape(bz))\n", + "print(bz)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def analytic_solution(r, t, sigma, dtype='h'):\n", + " \"\"\"\n", + " r: offset bewteen VMD soure and Bz receiver (m)\n", + " t: measured times\n", + " sigma: conductivity of the half-space earth\n", + " \"\"\"\n", + " wt, tbase, omega_int = setFrequency(t)\n", + " hz = analytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", + " if dtype=='dhdt':\n", + " hz *= 1./(1j*omega_int)\n", + " # Treatment for inaccuracy in analytic solutions\n", + " ind = omega_int < 0.2\n", + " hz[ind] = 0.\n", + " hzTD, f0 = transFilt(hz, wt, tbase, omega_int, t)\n", + " return hzTD*mu_0" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[-1.93870604e-16 -1.75822295e-16 -1.58901930e-16 -1.43128415e-16\n", + " -1.28654317e-16 -1.15491801e-16 -1.03457982e-16 -9.25283477e-17\n", + " -8.27703584e-17 -7.39346279e-17 -6.59520200e-17 -5.88650810e-17\n", + " -5.25006332e-17 -4.67724491e-17 -4.16729975e-17 -3.71324378e-17\n", + " -3.30533063e-17 -2.94063298e-17 -2.61825568e-17 -2.32888952e-17\n", + " -2.06929736e-17 -1.84055808e-17 -1.63568547e-17 -1.45194409e-17\n", + " -1.28911117e-17 -1.14420383e-17 -1.01425366e-17 -8.98425049e-18\n", + " -7.95983826e-18 -7.04115396e-18 -6.21760061e-18]\n" + ] + } + ], + "source": [ + "bz_analytic = analytic_solution(rx_location[0]-src_location[0], times, sigma_half, 'dhdt')\n", + "print(np.shape(bz_analytic))\n", + "print(bz_analytic)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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+uuv5+S7ly9froMPPljz5s2L/Lz33nt66qmnZGZauXJlZNuXXnpJZha5JvL+++/XkUceqZKSEkVfkvfUU09pypQpmj9/vmbPnq1PfOITI9aDHQ/OOeYaBTwAsuBHP/pRTr//qquu0tVXXz2ife7cubr33nsj103ec889OuaYYyLvH3XUUXrggQd0xRVXjPjs8ccfHwnEjRs36qyzztKkSZN00kknjbu/jBzzwdHnSVdtCi0ScNWmxCHHCjxAccnATFBPT49OO+00HXPMMTrqqKN07733auHChZGRV21tra655hp9+MMf1sknn6wXXnhBCxcu1KGHHqqHHnpIkrRq1SqdeeaZWrRokWbPnq1vfvObkf3fddddWrBggebNm6crrrhCe/eG7hy4cuVKHX744Vq4cKEuv/xyLVu2bNS+HnLIIerr69O7774rd9fjjz+uU089NfL+EUccodmzZ4+6n3nz5un666/XbbfdltL/VvEQjoWGAh6geGTofrGPP/64pk+frpdfflmbNm3SokXD7i+vnp4eLVy4UBs2bFBdXZ2+/vWva926dXrwwQd1/fX7T+m88MILuvvuu7Vx40bdf//9amlp0ebNm3XvvffqmWee0caNG1VaWqq7775b27Zt0w033KDnn39e69at0xtvvDHsO2+55ZbIlOqJJ5447L1zzjlH999/v5599ll96EMfGrY4eio+9KEPjfjesWJatdCM5S4hAPJThi7lmjt3rq6++mpdc801Ov3003X88ccPe7+ioiISmHPnzlVlZaXKy8s1d+5cvf3225HtPvWpT6m+vl6SdPbZZ+s3v/mNysrKtGHDhsj6q729vWpsbNQLL7ygE044IbKw+Lnnnqu33norsq9406qSdN555+nzn/+83njjDV1wwQV69tlnx/R7p3M5VEaOhSbVAh6Kd4D8laGZoMMPP1wbNmzQ3Llzdd1112nFiuGnXcrLyyO3kiopKYmM1EpKSjQ4OBjZLni7KTOTu+uLX/yiNm7cqI0bN+rNN9/U8uXLxxVM73vf+1ReXq5169aN63zhSy+9lLZ1bQnHQpPKXUIyNGUDIE0ydCnXtm3bVF1drYsvvlhXX321XnzxxTHtZ926ders7FRvb6/Wrl2rj3/84zrppJO0Zs0atbW1SZI6Ozv1+9//XgsWLNCvfvUr7dixQ4ODg/rpT3+a0net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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = subplots(1,1, figsize = (7,5))\n", + "axes.loglog(times, np.abs(bz_analytic), '-')\n", + "axes.loglog(times, np.abs(bz), 'o')\n", + "axes.set_xscale('log')\n", + "axes.set_yscale('log')\n", + "axes.set_xlabel('Time (s)')\n", + "axes.set_ylabel('Bz (T)')\n", + "axes.legend((\"Analytic\", \"simpegEM1D\"))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/notebooks/examples/EM1DTM_fwd.ipynb b/notebooks/examples/EM1DTM_fwd.ipynb deleted file mode 100644 index 5ad776e..0000000 --- a/notebooks/examples/EM1DTM_fwd.ipynb +++ /dev/null @@ -1,285 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - } - ], - "source": [ - "from SimPEG import *\n", - "from simpegEM1D import (\n", - " Utils1D, get_vertical_discretization_time, \n", - " set_mesh_1d, skytem_HM_2015\n", - ")\n", - "from simpegEM1D.simulation import EM1DTMSimulation\n", - "from simpegEM1D.survey import EM1DSurveyTD\n", - "from simpegEM1D import analytics\n", - "import numpy as np\n", - "from simpegEM1D import skytem_HM_2015\n", - "from simpegEM1D.supporting_functions.digital_filter import setFrequency, transFilt\n", - "from scipy.constants import mu_0\n", - "%pylab inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Set up for EM1D program\n", - "\n", - "## Step 1: Generate Mesh" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "hz = np.array([10, 10, 10])\n", - "mesh1D = set_mesh_1d(hz)\n", - "depth = -mesh1D.gridN[:-1]\n", - "nlay = len(depth)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step2: Set survey parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "rx_location = np.c_[10., 0., 0.]\n", - "src_location = np.array([0., 0., 0.])\n", - "times = np.logspace(-5, -2, 31)\n", - "I = 1.\n", - "a = 1.\n", - "field_type = \"b\"\n", - "\n", - "# Receiver list\n", - "receiver_list = []\n", - "receiver_list.append(\n", - " TimeDomainPointReceiver(\n", - " rx_location, times, orientation=\"z\", component=\"dbdt\"\n", - " )\n", - ")\n", - "\n", - "# Sources\n", - "source_list = [\n", - " TimeDomainMagneticDipoleSource(\n", - " receiver_list=receiver_list, location=src_location, orientation=\"z\", I=I\n", - " )\n", - "]\n", - "\n", - "# Survey\n", - "TDsurvey = EM1DSurveyTD(source_list)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Model and Mapping" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sigma_half = 0.1\n", - "sigma = np.ones(hz.size) * sigma_half\n", - "\n", - "chi_half = 0.\n", - "Expmap = maps.ExpMap(mesh1D)\n", - "tau = np.ones(nlay, dtype=float)*1e-1\n", - "eta = np.ones(nlay, dtype=float)*0.5\n", - "c = np.ones(nlay, dtype=float)*0.88" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "m_1D = np.log(np.ones(nlay)*sig_half)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(31,)\n", - "[8.08568701e-12 6.05308651e-12 4.47918289e-12 3.28434137e-12\n", - " 2.39082145e-12 1.73041915e-12 1.24673427e-12 8.95008883e-13\n", - " 6.40665731e-13 4.57562169e-13 3.26195179e-13 2.32213450e-13\n", - " 1.65119120e-13 1.17304714e-13 8.32766395e-14 5.90851502e-14\n", - " 4.19025878e-14 2.97060668e-14 2.10535441e-14 1.49178592e-14\n", - " 1.05684045e-14 7.48600648e-15 5.30202123e-15 3.75485979e-15\n", - " 2.65897727e-15 1.88283018e-15 1.33317778e-15 9.43952283e-16\n", - " 6.68343667e-16 4.73196098e-16 3.35023064e-16]\n" - ] - } - ], - "source": [ - "# Conductivity\n", - "simFD = EM1DTMSimulation(\n", - " mesh1D, survey=TDsurvey, depth=depth, sigmaMap=Expmap,\n", - " chi=np.zeros(nlay)\n", - ")\n", - "\n", - "# Hz = simFD.dpred(m_1D)\n", - "bz = simFD.fields(m_1D)\n", - "print(np.shape(bz))\n", - "print(bz)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "def bz_analytic_solution(r, t, sigma):\n", - " \"\"\"\n", - " r: offset bewteen VMD soure and Bz receiver (m)\n", - " t: measured times\n", - " sigma: conductivity of the half-space earth\n", - " \"\"\"\n", - " wt, tbase, omega_int = setFrequency(t)\n", - " hz = analytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", - " # Treatment for inaccuracy in analytic solutions\n", - " ind = omega_int < 0.2\n", - " hz[ind] = 0.\n", - " hzTD, f0 = transFilt(hz, wt, tbase, omega_int, t)\n", - " return hzTD*mu_0" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(31,)\n", - "[8.09316857e-12 6.06698620e-12 4.49551685e-12 3.29172016e-12\n", - " 2.39503887e-12 1.73740816e-12 1.25093533e-12 8.95539752e-13\n", - " 6.43131939e-13 4.59430578e-13 3.26462306e-13 2.32942155e-13\n", - " 1.65831926e-13 1.17543076e-13 8.34320390e-14 5.93153625e-14\n", - " 4.20071771e-14 2.96975019e-14 2.11024543e-14 1.49397731e-14\n", - " 1.05327498e-14 7.47226130e-15 5.28550866e-15 3.72160909e-15\n", - " 2.62520779e-15 1.85067287e-15 1.29653552e-15 9.04398964e-16\n", - " 6.30339448e-16 4.34161312e-16 2.94066345e-16]\n" - ] - } - ], - "source": [ - "bz_analytic = bz_analytic_solution(offset, time, sigma_half)\n", - "print(np.shape(bz_analytic))\n", - "print(bz_analytic)" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, axes = subplots(1,1, figsize = (7,5))\n", - "axes.loglog(TDsurvey.time, bz_analytic, '-')\n", - "axes.loglog(TDsurvey.time, bz, 'o')\n", - "axes.set_xscale('log')\n", - "axes.set_yscale('log')\n", - "axes.set_xlabel('Time (s)')\n", - "axes.set_ylabel('Bz (T)')\n", - "axes.legend((\"Analytic\", \"simpegEM1D\"))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/notebooks/examples/EM1D_TD_FWD.ipynb b/notebooks/examples/EM1D_TD_FWD.ipynb index 6655726..d2fdcf7 100644 --- a/notebooks/examples/EM1D_TD_FWD.ipynb +++ b/notebooks/examples/EM1D_TD_FWD.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "scrolled": true }, @@ -33,22 +33,22 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [ { - "ename": "AttributeError", - "evalue": "'EM1DTMSimulation' object has no attribute 'n_layer'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 25\u001b[0m \u001b[0mimap\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmaps\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIdentityMap\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[0msim\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mEM1DTMSimulation\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh1D\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msurvey\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTDsurvey\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msigmaMap\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mimap\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 27\u001b[1;33m \u001b[0mbz\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msim\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdpred\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msigma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 28\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbz\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 29\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mbz\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mdpred\u001b[1;34m(self, m, f)\u001b[0m\n\u001b[0;32m 429\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 430\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mf\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 431\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 432\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mutils\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmkvc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprojectFields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 433\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mfields\u001b[1;34m(self, m)\u001b[0m\n\u001b[0;32m 313\u001b[0m \u001b[1;31m# @profile\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 314\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 315\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'response'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 316\u001b[0m \u001b[1;31m# self.survey._pred = utils.mkvc(self.survey.projectFields(f))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 317\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, m, output_type)\u001b[0m\n\u001b[0;32m 211\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlambd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mz\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 213\u001b[1;33m \u001b[0mflag\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mI\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moutput_type\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 214\u001b[0m )\n\u001b[0;32m 215\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\supporting_functions\\kernels.py\u001b[0m in \u001b[0;36mhz_kernel_vertical_magnetic_dipole\u001b[1;34m(simulation, lamda, f, n_layer, sig, chi, depth, h, z, flag, I, output_type)\u001b[0m\n\u001b[0;32m 535\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 536\u001b[0m \u001b[0mn_frequency\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 537\u001b[1;33m \u001b[0mn_layer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_layer\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 538\u001b[0m \u001b[0mn_filter\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mn_filter\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 539\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mAttributeError\u001b[0m: 'EM1DTMSimulation' object has no attribute 'n_layer'" + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.08568701e-12 6.05308651e-12 4.47918289e-12 3.28434137e-12\n", + " 2.39082145e-12 1.73041915e-12 1.24673427e-12 8.95008883e-13\n", + " 6.40665731e-13 4.57562169e-13 3.26195179e-13 2.32213450e-13\n", + " 1.65119120e-13 1.17304714e-13 8.32766395e-14 5.90851502e-14\n", + " 4.19025878e-14 2.97060668e-14 2.10535441e-14 1.49178592e-14\n", + " 1.05684045e-14 7.48600648e-15 5.30202123e-15 3.75485979e-15\n", + " 2.65897727e-15 1.88283018e-15 1.33317778e-15 9.43952283e-16\n", + " 6.68343667e-16 4.73196098e-16 3.35023064e-16]\n" ] } ], @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -107,9 +107,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(31,)\n", + "[8.09316857e-12 6.06698620e-12 4.49551685e-12 3.29172016e-12\n", + " 2.39503887e-12 1.73740816e-12 1.25093533e-12 8.95539752e-13\n", + " 6.43131939e-13 4.59430578e-13 3.26462306e-13 2.32942155e-13\n", + " 1.65831926e-13 1.17543076e-13 8.34320390e-14 5.93153625e-14\n", + " 4.20071771e-14 2.96975019e-14 2.11024543e-14 1.49397731e-14\n", + " 1.05327498e-14 7.47226130e-15 5.28550866e-15 3.72160909e-15\n", + " 2.62520779e-15 1.85067287e-15 1.29653552e-15 9.04398964e-16\n", + " 6.30339448e-16 4.34161312e-16 2.94066345e-16]\n" + ] + } + ], "source": [ "bz_analytic = bz_analytic_solution(offset, time, sigma_half)\n", "print(np.shape(bz_analytic))\n", @@ -118,9 +134,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", "axes.loglog(TDsurvey.time, bz_analytic, '-')\n", @@ -139,6 +178,30 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], + "source": [ + "print(sim.survey.time_input_currents)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index e98a8ca..06879f2 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -26,64 +26,15 @@ class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): """ - depth = properties.Array("Depth of the layers", dtype=float) - # topo = properties.Array("Topography (x, y, z)", dtype=float) - half_switch = properties.Bool("Switch for half-space", default=False) - def __init__(self, source_list=None, **kwargs): BaseSurvey.__init__(self, source_list, **kwargs) - - - # @property - # def n_frequency(self): - # """ - # # of frequency - # """ - - # return int(self.frequency.size) - - # @property - # def src_paths_on_x(self): - # """ - # # of frequency - # """ - # if getattr(self, '_src_paths_on_x', None) is None: - # offset = np.unique(self.offset) - # if offset.size != 1: - # raise Exception( - # "For the sourth paths, only single offset works!" - # ) - # xy_rot, xy_obs_rot, angle = rotate_to_x_axis( - # np.flipud(xy), np.r_[offset, 0.] - # ) - - # return self._src_paths - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Here we do not store predicted data - # because projection (`d = P(f)`) is cheap. - # """ - - # if f is None: - # f = self.prob.fields(m) - # return utils.mkvc(self.projectFields(f)) - class EM1DSurveyFD(BaseEM1DSurvey): """ Freqency-domain EM1D survey """ - # switch_real_imag = properties.StringChoice( - # "Switch for real and imaginary part of the data", - # default="all", - # choices=["all", "real", "imag"] - # ) - def __init__(self, source_list=None, **kwargs): BaseEM1DSurvey.__init__(self, source_list, **kwargs) @@ -114,159 +65,17 @@ def __init__(self, source_list=None, **kwargs): class EM1DSurveyTD(BaseEM1DSurvey): """docstring for EM1DSurveyTD""" - time = properties.Array( - "Time channels (s) at current off-time", dtype=float - ) - - wave_type = properties.StringChoice( - "Source location", - default="stepoff", - choices=["stepoff", "general"] - ) - - moment_type = properties.StringChoice( - "Source moment type", - default="single", - choices=["single", "dual"] - ) - - n_pulse = properties.Integer( - "The number of pulses", - ) - - base_frequency = properties.Float( - "Base frequency (Hz)" - ) - - time_input_currents = properties.Array( - "Time for input currents", dtype=float - ) - - input_currents = properties.Array( - "Input currents", dtype=float - ) - - use_lowpass_filter = properties.Bool( - "Switch for low pass filter", default=False - ) - - high_cut_frequency = properties.Float( - "High cut frequency for low pass filter (Hz)", - default=210*1e3 - ) - - # Predicted data - _pred = None - - # ------------- For dual moment ------------- # - - time_dual_moment = properties.Array( - "Off-time channels (s) for the dual moment", dtype=float - ) - - time_input_currents_dual_moment = properties.Array( - "Time for input currents (dual moment)", dtype=float - ) - - input_currents_dual_moment = properties.Array( - "Input currents (dual moment)", dtype=float - ) - - base_frequency_dual_moment = properties.Float( - "Base frequency for the dual moment (Hz)" - ) + - def __init__(self, **kwargs): - BaseEM1DSurvey.__init__(self, **kwargs) - if self.time is None: - raise Exception("time is required!") + def __init__(self, source_list=None, **kwargs): + BaseEM1DSurvey.__init__(self, source_list, **kwargs) # Use Sin filter for frequency to time transform self.fftfilt = filters.key_81_CosSin_2009() - self.set_frequency() - - if self.src_type == "VMD": - if self.offset is None: - raise Exception("offset is required!") - - if self.offset.size == 1: - self.offset = self.offset * np.ones(self.n_frequency) - - @property - def time_int(self): - """ - Time channels (s) for interpolation" - """ - if getattr(self, '_time_int', None) is None: - - if self.moment_type == "single": - time = self.time - pulse_period = self.pulse_period - period = self.period - # Dual moment - else: - time = np.unique(np.r_[self.time, self.time_dual_moment]) - pulse_period = np.maximum( - self.pulse_period, self.pulse_period_dual_moment - ) - period = np.maximum(self.period, self.period_dual_moment) - tmin = time[time>0.].min() - if self.n_pulse == 1: - tmax = time.max() + pulse_period - elif self.n_pulse == 2: - tmax = time.max() + pulse_period + period/2. - else: - raise NotImplementedError("n_pulse must be either 1 or 2") - n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) - self._time_int = np.logspace( - np.log10(tmin), np.log10(tmax), n_time - ) - # print (tmin, tmax) - - return self._time_int - - @property - def n_time(self): - return int(self.time.size) - - @property - def period(self): - return 1./self.base_frequency - - @property - def pulse_period(self): - Tp = ( - self.time_input_currents.max() - - self.time_input_currents.min() - ) - return Tp - - # ------------- For dual moment ------------- # - @property - def n_time_dual_moment(self): - return int(self.time_dual_moment.size) - @property - def period_dual_moment(self): - return 1./self.base_frequency_dual_moment - @property - def pulse_period_dual_moment(self): - Tp = ( - self.time_input_currents_dual_moment.max() - - self.time_input_currents_dual_moment.min() - ) - return Tp - @property - def nD(self): - """ - # of data - """ - if self.moment_type == "single": - return self.n_time - else: - return self.n_time + self.n_time_dual_moment + @property def lowpass_filter(self): @@ -291,153 +100,3 @@ def lowpass_filter(self): # self._lowpass_filter = lowpass_func(self.frequency) return self._lowpass_filter - - def set_frequency(self, pts_per_dec=-1): - """ - Compute Frequency reqired for frequency to time transform - """ - if self.wave_type == "general": - _, frequency, ft, ftarg = check_time( - self.time_int, -1, 'dlf', - {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0 - ) - elif self.wave_type == "stepoff": - _, frequency, ft, ftarg = check_time( - self.time, -1, 'dlf', - {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0, - ) - else: - raise Exception("wave_type must be either general or stepoff") - - self.frequency = frequency - self.ftarg = ftarg - - # def projectFields(self, u): - # """ - # Transform frequency domain responses to time domain responses - # """ - # # Compute frequency domain reponses right at filter coefficient values - # # Src waveform: Step-off - - # if self.use_lowpass_filter: - # factor = self.lowpass_filter.copy() - # else: - # factor = np.ones_like(self.frequency, dtype=complex) - - # if self.rx_type == 'Bz': - # factor *= 1./(2j*np.pi*self.frequency) - - # if self.wave_type == 'stepoff': - # # Compute EM responses - # if u.size == self.n_frequency: - # resp, _ = fourier_dlf( - # u.flatten()*factor, self.time, - # self.frequency, self.ftarg - # ) - # # Compute EM sensitivities - # else: - # resp = np.zeros( - # (self.n_time, self.n_layer), dtype=np.float64, order='F') - # # ) - # # TODO: remove for loop - # for i in range(self.n_layer): - # resp_i, _ = fourier_dlf( - # u[:, i]*factor, self.time, - # self.frequency, self.ftarg - # ) - # resp[:, i] = resp_i - - # # Evaluate piecewise linear input current waveforms - # # Using Fittermann's approach (19XX) with Gaussian Quadrature - # elif self.wave_type == 'general': - # # Compute EM responses - # if u.size == self.n_frequency: - # resp_int, _ = fourier_dlf( - # u.flatten()*factor, self.time_int, - # self.frequency, self.ftarg - # ) - # # step_func = interp1d( - # # self.time_int, resp_int - # # ) - # step_func = iuSpline( - # np.log10(self.time_int), resp_int - # ) - - # resp = piecewise_pulse_fast( - # step_func, self.time, - # self.time_input_currents, self.input_currents, - # self.period, n_pulse=self.n_pulse - # ) - - # # Compute response for the dual moment - # if self.moment_type == "dual": - # resp_dual_moment = piecewise_pulse_fast( - # step_func, self.time_dual_moment, - # self.time_input_currents_dual_moment, - # self.input_currents_dual_moment, - # self.period_dual_moment, - # n_pulse=self.n_pulse - # ) - # # concatenate dual moment response - # # so, ordering is the first moment data - # # then the second moment data. - # resp = np.r_[resp, resp_dual_moment] - - # # Compute EM sensitivities - # else: - # if self.moment_type == "single": - # resp = np.zeros( - # (self.n_time, self.n_layer), - # dtype=np.float64, order='F' - # ) - # else: - # # For dual moment - # resp = np.zeros( - # (self.n_time+self.n_time_dual_moment, self.n_layer), - # dtype=np.float64, order='F') - - # # TODO: remove for loop (?) - # for i in range(self.n_layer): - # resp_int_i, _ = fourier_dlf( - # u[:, i]*factor, self.time_int, - # self.frequency, self.ftarg - # ) - # # step_func = interp1d( - # # self.time_int, resp_int_i - # # ) - - # step_func = iuSpline( - # np.log10(self.time_int), resp_int_i - # ) - - # resp_i = piecewise_pulse_fast( - # step_func, self.time, - # self.time_input_currents, self.input_currents, - # self.period, n_pulse=self.n_pulse - # ) - - # if self.moment_type == "single": - # resp[:, i] = resp_i - # else: - # resp_dual_moment_i = piecewise_pulse_fast( - # step_func, - # self.time_dual_moment, - # self.time_input_currents_dual_moment, - # self.input_currents_dual_moment, - # self.period_dual_moment, - # n_pulse=self.n_pulse - # ) - # resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - # return resp * (-2.0/np.pi) * mu_0 - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Predicted data (`_pred`) are computed and stored - # when self.prob.fields(m) is called. - # """ - # if f is None: - # f = self.prob.fields(m) - - # return self._pred diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 5dd288e..2ae6701 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -5,7 +5,13 @@ class HarmonicPointReceiver(BaseRx): - frequencies = properties.Array("Frequency (Hz)", dtype=float) + locations = properties.Array( + "Receiver Location", dtype=float, shape=("*",), required=True + ) + + frequencies = properties.Array( + "Frequency (Hz)", dtype=float, shape=("*",), required=True + ) orientation = properties.StringChoice( "Field orientation", default="z", choices=["z"] @@ -40,6 +46,12 @@ def __init__(self, locations=None, frequencies=None, orientation=None, field_typ class TimeDomainPointReceiver(BaseTimeRx): + ftarg = None + + locations = properties.Array( + "Receiver Location", dtype=float, shape=("*",), required=True + ) + orientation = properties.StringChoice( "Field orientation", default="z", choices=["z"] ) @@ -50,15 +62,40 @@ class TimeDomainPointReceiver(BaseTimeRx): choices=["h", "b", "dhdt", "dbdt"] ) + frequencies = properties.Array( + "Frequency (Hz)", dtype=float, shape=("*",), required=True + ) + + time_interval = properties.Array( + "Full time interval", dtype=float, shape=("*",) + ) + + + def __init__(self, locations=None, times=None, orientation=None, component=None, **kwargs): - super(TDEMPointReceiver, self).__init__(locations, times, **kwargs) + super(TimeDomainPointReceiver, self).__init__(locations, times, **kwargs) if orientation is not None: self.orientation = orientation if component is not None: self.component = component + # Required static property + self.field_type = "secondary" + + + + @property + def n_time(self): + return int(self.times.size) + + @property + def n_frequency(self): + """ + # of frequency + """ + return int(self.frequencies.size) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 43ca9f8..f68a4f6 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -2,12 +2,13 @@ from SimPEG.simulation import BaseSimulation import numpy as np from .sources import * -from .survey import BaseEM1DSurvey +from .survey import BaseEM1DSurvey, EM1DSurveyTD from .supporting_functions.kernels import * from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline import properties +from empymod.utils import check_time from empymod import filters from empymod.transform import dlf, fourier_dlf, get_dlf_points from empymod.utils import check_hankel @@ -193,6 +194,13 @@ def compute_integral(self, m, output_type='response'): """ + + # Set evaluation frequencies for time domain + if isinstance(self.survey, EM1DSurveyTD): + # self.set_time_intervals() # SOMETHING IS UP WITH THIS + self.set_frequencies() + self.intervals_are_set = True + # Physical Properties self.model = m @@ -212,18 +220,13 @@ def compute_integral(self, m, output_type='response'): h_vector = np.array([src.location[2] for src in self.survey.source_list]) else: h_vector = np.array([src.location[2]-self.topo[0] for src in self.survey.source_list]) - - - n_filter = self.n_filter - f_full = [] + fields_list = [] for ii, src in enumerate(self.survey.source_list): - # list of x,y,z offsets between sources and receivers - offset_list = src.offset_list I = src.I for jj, rx in enumerate(src.receiver_list): @@ -239,142 +242,141 @@ def compute_integral(self, m, output_type='response'): # Create globally, not for each receiver sig = self.sigma_cole(rx.frequencies) - for kk in range(0, rx.nD): - - if isinstance(src, HarmonicMagneticDipoleSource): - r = np.sqrt(np.sum(offset_list[jj][kk, 0:2]**2)) * np.ones(n_frequency) - else: - # a is the radius of the loop - r = src.a * np.ones(n_frequency) - - # Use function from empymod - # size of lambd is (n_frequency x n_filter) - lambd = np.empty([n_frequency, n_filter], order='F') - lambd[:, :], _ = get_dlf_points( - self.fhtfilt, r, self.hankel_pts_per_dec - ) - - # Compute receiver height - h = h_vector[ii] - z = h + offset_list[jj][kk, 2] - - flag = rx.field_type - - if output_type == 'response': - # for forward simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) - - # kernels for each bessel function - # (j0, j1, j2) - PJ = (hz, None, None) # PJ0 + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + r = src.location[0:2] - rx.locations[0:2] + r = np.sqrt(np.sum(r**2)) * np.ones(n_frequency) + else: + # a is the radius of the loop + r = src.a * np.ones(n_frequency) + + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, r, self.hankel_pts_per_dec + ) - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) + # Compute receiver height + h = h_vector[ii] + z = h + src.location[2] - rx.locations[2] - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - - # TODO: This has not implemented yet! - elif isinstance(src, HarmonicLineSource) | isinstance(src, TimeDomainLineSource): - # Need to compute y - hz = hz_kernel_horizontal_electric_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 + flag = rx.field_type + + if output_type == 'response': + # for forward simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) - else: - raise Exception("Src options are only VMD or CircularLoop!!") + # kernels for each bessel function + # (j0, j1, j2) + PJ = (hz, None, None) # PJ0 - elif output_type == 'sensitivity_sigma': + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) - # for simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 + + # TODO: This has not implemented yet! + elif isinstance(src, HarmonicLineSource) | isinstance(src, TimeDomainLineSource): + # Need to compute y + hz = hz_kernel_horizontal_electric_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 - PJ = (hz, None, None) # PJ0 + else: + raise Exception("Src options are only VMD or CircularLoop!!") - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) + elif output_type == 'sensitivity_sigma': - PJ = (None, hz, None) # PJ1 + # for simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) - else: - raise Exception("Src options are only VMD or CircularLoop!!") + PJ = (hz, None, None) # PJ0 - r = np.tile(r, (n_layer, 1)) + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) - elif output_type == 'sensitivity_height': + PJ = (None, hz, None) # PJ1 - # for simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) + else: + raise Exception("Src options are only VMD or CircularLoop!!") - PJ = (hz, None, None) # PJ0 + r = np.tile(r, (n_layer, 1)) - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) + elif output_type == 'sensitivity_height': - PJ = (None, hz, None) # PJ1 - - else: - raise Exception("Src options are only VMD or CircularLoop!!") + # for simulation + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): + hz = hz_kernel_vertical_magnetic_dipole( + self, lambd, f, n_layer, + sig, chi, depth, h, z, + flag, I, output_type=output_type + ) - # Carry out Hankel DLF - # ab=66 => 33 (vertical magnetic src and rec) - # For response - # HzFHT size = (n_frequency,) - # For sensitivity - # HzFHT size = (n_layer, n_frequency) + PJ = (hz, None, None) # PJ0 - HzFHT = dlf(PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, - ang_fact=None, ab=33) + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + + hz = hz_kernel_circular_loop( + self, lambd, f, n_layer, + sig, chi, depth, h, z, I, r, + flag, output_type=output_type + ) - if output_type == "sensitivity_sigma": - return HzFHT.T + PJ = (None, hz, None) # PJ1 - return HzFHT + else: + raise Exception("Src options are only VMD or CircularLoop!!") + # Carry out Hankel DLF + # ab=66 => 33 (vertical magnetic src and rec) + # For response + # HzFHT size = (n_frequency,) + # For sensitivity + # HzFHT size = (n_layer, n_frequency) + HzFHT = dlf( + PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 + ) + if output_type == "sensitivity_sigma": + fields_list.append(HzFHT.T) + else: + fields_list.append(HzFHT) + return fields_list def fields(self, m): f = self.compute_integral(m, output_type='response') - # self.survey._pred = utils.mkvc(self.survey.projectFields(f)) - return f + print(np.shape(f)) + f = self.projectFields(f) + return np.hstack(f) def dpred(self, m, f=None): """ @@ -483,7 +485,7 @@ def depth_of_investigation_christiansen_2012(self, std, thres_hold=0.8): J_sum = abs(utils.sdiag(1/delta_d/pred) * J).sum(axis=0) S = np.cumsum(J_sum[::-1])[::-1] active = S-thres_hold > 0. - doi = abs(self.survey.depth[active]).max() + doi = abs(self.depth[active]).max() return doi, active def get_threshold(self, uncert): @@ -528,192 +530,252 @@ def projectFields(self, u): components """ - - + COUNT = 0 + for ii, src in enumerate(self.survey.source_list): + for jj, rx in enumerate(src.receiver_list): + u_temp = u[COUNT] - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - - # if self.survey.rx_type == 'Hz': - # factor = 1. - # elif self.survey.rx_type == 'ppm': - # factor = 1./self.hz_primary * 1e6 - - # if self.survey.switch_real_imag == 'all': - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - # if ureal.ndim == 1 or 0: - # resp = np.r_[ureal*factor, uimag*factor] - # elif ureal.ndim == 2: - # if np.isscalar(factor): - # resp = np.vstack( - # (factor*ureal, factor*uimag) - # ) - # else: - # resp = np.vstack( - # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - # ) - # else: - # raise NotImplementedError() - # elif self.survey.switch_real_imag == 'real': - # resp = (u.real).copy() - # elif self.survey.switch_real_imag == 'imag': - # resp = (u.imag).copy() - # else: - # raise NotImplementedError() + if rx.component == 'real': + u_temp = np.real(u_temp) + else: + u_temp = np.imag(u_temp) - # return resp + if rx.field_type != "secondary": + # COMPUTE PRIMARY FIELD FOR TX-RX PAIR + u_primary = 1 + if rx.field_type == "ppm": + u_temp = 1e6 * u_temp/u_primary + else: + u_temp =+ u_primary + u[COUNT] = u_temp + COUNT = COUNT + 1 + return u class EM1DTMSimulation(BaseEM1DSimulation): - + intervals_are_set = False def __init__(self, mesh, **kwargs): BaseEM1DSimulation.__init__(self, mesh, **kwargs) + self.fftfilt = filters.key_81_CosSin_2009() - def projectFields(self, u): + + + + + + + + + def set_time_intervals(self): """ - Transform frequency domain responses to time domain responses + Set time interval for particular receiver """ - # Compute frequency domain reponses right at filter coefficient values - # Src waveform: Step-off - - if self.survey.use_lowpass_filter: - factor = self.survey.lowpass_filter.copy() - else: - factor = np.ones_like(self.survey.frequency, dtype=complex) - if self.survey.rx_type == 'Bz': - factor *= 1./(2j*np.pi*self.survey.frequency) + for src in self.survey.source_list: + for rx in src.receiver_list: - if self.survey.wave_type == 'stepoff': - # Compute EM responses - if u.size == self.survey.n_frequency: - resp, _ = fourier_dlf( - u.flatten()*factor, self.survey.time, - self.survey.frequency, self.survey.ftarg - ) - # Compute EM sensitivities - else: - resp = np.zeros( - (self.survey.n_time, self.n_layer), dtype=np.float64, order='F') - # ) - # TODO: remove for loop - for i in range(self.n_layer): - resp_i, _ = fourier_dlf( - u[:, i]*factor, self.survey.time, - self.survey.frequency, self.survey.ftarg + if src.moment_type == "single": + time = rx.times + pulse_period = src.pulse_period + period = src.period + # Dual moment + else: + time = np.unique(np.r_[rx.times, src.time_dual_moment]) + pulse_period = np.maximum( + src.pulse_period, src.pulse_period_dual_moment ) - resp[:, i] = resp_i - - # Evaluate piecewise linear input current waveforms - # Using Fittermann's approach (19XX) with Gaussian Quadrature - elif self.survey.wave_type == 'general': - # Compute EM responses - if u.size == self.survey.n_frequency: - resp_int, _ = fourier_dlf( - u.flatten()*factor, self.survey.time_int, - self.survey.frequency, self.survey.ftarg - ) - # step_func = interp1d( - # self.time_int, resp_int - # ) - step_func = iuSpline( - np.log10(self.survey.time_int), resp_int + period = np.maximum(src.period, src.period_dual_moment) + tmin = time[time>0.].min() + if src.n_pulse == 1: + tmax = time.max() + pulse_period + elif src.n_pulse == 2: + tmax = time.max() + pulse_period + period/2. + else: + raise NotImplementedError("n_pulse must be either 1 or 2") + n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) + + rx.time_interval = np.logspace( + np.log10(tmin), np.log10(tmax), n_time ) + # print (tmin, tmax) - resp = piecewise_pulse_fast( - step_func, self.survey.time, - self.survey.time_input_currents, - self.survey.input_currents, - self.survey.period, - n_pulse=self.survey.n_pulse - ) - # Compute response for the dual moment - if self.survey.moment_type == "dual": - resp_dual_moment = piecewise_pulse_fast( - step_func, self.survey.time_dual_moment, - self.survey.time_input_currents_dual_moment, - self.survey.input_currents_dual_moment, - self.survey.period_dual_moment, - n_pulse=self.survey.n_pulse - ) - # concatenate dual moment response - # so, ordering is the first moment data - # then the second moment data. - resp = np.r_[resp, resp_dual_moment] + def set_frequencies(self, pts_per_dec=-1): + """ + Compute Frequency reqired for frequency to time transform + """ + + for src in self.survey.source_list: + for rx in src.receiver_list: - # Compute EM sensitivities - else: - if self.survey.moment_type == "single": - resp = np.zeros( - (self.survey.n_time, self.survey.n_layer), - dtype=np.float64, order='F' + if src.wave_type == "general": + _, freq, ft, ftarg = check_time( + rx.time_interval, -1, 'dlf', + {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0 ) - else: - # For dual moment - resp = np.zeros( - (self.survey.n_time+self.survey.n_time_dual_moment, self.survey.n_layer), - dtype=np.float64, order='F') - - # TODO: remove for loop (?) - for i in range(self.survey.n_layer): - resp_int_i, _ = fourier_dlf( - u[:, i]*factor, self.survey.time_int, - self.survey.frequency, self.survey.ftarg + elif src.wave_type == "stepoff": + _, freq, ft, ftarg = check_time( + rx.times, -1, 'dlf', + {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0, ) - # step_func = interp1d( - # self.time_int, resp_int_i - # ) + else: + raise Exception("wave_type must be either general or stepoff") + + rx.frequencies = freq + rx.ftarg = ftarg + + + + + + + + + + + + + + - step_func = iuSpline( - np.log10(self.survey.time_int), resp_int_i - ) - resp_i = piecewise_pulse_fast( - step_func, self.survey.time, - self.survey.time_input_currents, self.survey.input_currents, - self.survey.period, n_pulse=self.survey.n_pulse - ) - if self.survey.moment_type == "single": - resp[:, i] = resp_i + def projectFields(self, u): + """ + Transform frequency domain responses to time domain responses + """ + # Compute frequency domain reponses right at filter coefficient values + # Src waveform: Step-off + + COUNT = 0 + for ii, src in enumerate(self.survey.source_list): + + for jj, rx in enumerate(src.receiver_list): + + u_temp = u[COUNT] + + if src.use_lowpass_filter: + factor = src.lowpass_filter.copy() + else: + factor = np.ones_like(rx.frequencies, dtype=complex) + + if rx.component in ["b", "h"]: + factor *= 1./(2j*np.pi*rx.frequencies) + + if rx.component in ["h", "dhdt"]: + factor *= mu_0 + + if src.wave_type == 'stepoff': + # Compute EM responses + if u_temp.size == rx.n_frequency: + resp, _ = fourier_dlf( + u_temp.flatten()*factor, rx.times, rx.frequencies, rx.ftarg + ) + # Compute EM sensitivities else: - resp_dual_moment_i = piecewise_pulse_fast( - step_func, - self.survey.time_dual_moment, - self.survey.time_input_currents_dual_moment, - self.survey.input_currents_dual_moment, - self.survey.period_dual_moment, - n_pulse=self.survey.n_pulse + resp = np.zeros( + (rx.n_time, self.n_layer), dtype=np.float64, order='F') + # ) + # TODO: remove for loop + for i in range(self.n_layer): + resp_i, _ = fourier_dlf( + u_temp[:, i]*factor, rx.times, rx.frequencies, rx.ftarg + ) + resp[:, i] = resp_i + + # Evaluate piecewise linear input current waveforms + # Using Fittermann's approach (19XX) with Gaussian Quadrature + elif src.wave_type == 'general': + # Compute EM responses + if u_temp.size == rx.n_frequency: + resp_int, _ = fourier_dlf( + u_temp.flatten()*factor, rx.time_interval, rx.frequencies, rx.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int + # ) + step_func = iuSpline( + np.log10(rx.time_interval), resp_int ) - resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - return resp * (-2.0/np.pi) * mu_0 + resp = piecewise_pulse_fast( + step_func, rx.times, + src.time_input_currents, + src.input_currents, + src.period, + n_pulse=src.n_pulse + ) - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Predicted data (`_pred`) are computed and stored - # when self.prob.fields(m) is called. - # """ - # if f is None: - # f = self.fields(m) + # Compute response for the dual moment + if src.moment_type == "dual": + resp_dual_moment = piecewise_pulse_fast( + step_func, src.time_dual_moment, + src.time_input_currents_dual_moment, + src.input_currents_dual_moment, + src.period_dual_moment, + n_pulse=src.n_pulse + ) + # concatenate dual moment response + # so, ordering is the first moment data + # then the second moment data. + resp = np.r_[resp, resp_dual_moment] - # return f + # Compute EM sensitivities + else: + if src.moment_type == "single": + resp = np.zeros( + (rx.n_time, self.survey.n_layer), dtype=np.float64, order='F' + ) + else: + # For dual moment + resp = np.zeros( + (rx.n_time+src.n_time_dual_moment, self.n_layer), + dtype=np.float64, order='F' + ) + # TODO: remove for loop (?) + for i in range(self.n_layer): + resp_int_i, _ = fourier_dlf( + u_temp[:, i]*factor, rx.time_interval, rx.frequencies, rx.ftarg + ) + # step_func = interp1d( + # self.time_int, resp_int_i + # ) + step_func = iuSpline( + np.log10(rx.time_interval), resp_int_i + ) + resp_i = piecewise_pulse_fast( + step_func, rx.times, + src.time_input_currents, src.input_currents, + src.period, n_pulse=src.n_pulse + ) + + if src.moment_type == "single": + resp[:, i] = resp_i + else: + resp_dual_moment_i = piecewise_pulse_fast( + step_func, + src.time_dual_moment, + src.time_input_currents_dual_moment, + src.input_currents_dual_moment, + src.period_dual_moment, + n_pulse=src.n_pulse + ) + resp[:, i] = np.r_[resp_i, resp_dual_moment_i] + + u[COUNT] = resp * (-2.0/np.pi) + COUNT = COUNT + 1 -if __name__ == '__main__': - main() + return u diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index fb8aa90..665948c 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -32,6 +32,10 @@ def offset_list(self): + +############################################################################# +# Harmonic Sources + class HarmonicMagneticDipoleSource(BaseSrc): orientation = properties.StringChoice( @@ -60,48 +64,150 @@ def __init__(self, receiver_list=None, **kwargs): super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) -class TimeDomainMagneticDipoleSource(BaseSrc): - orientation = properties.StringChoice( - "Dipole Orientation", default="z", choices=["z"] - ) - +############################################################################# +# Time Sources + + + +class BaseTimeSrc(BaseSrc): + wave_type = properties.StringChoice( - "Source location", + "Waveform", default="stepoff", choices=["stepoff", "general"] ) + moment_type = properties.StringChoice( + "Source moment type", + default="single", + choices=["single", "dual"] + ) + + n_pulse = properties.Integer( + "The number of pulses", + ) + + base_frequency = properties.Float( + "Base frequency (Hz)" + ) + + time_input_currents = properties.Array( + "Time for input currents", dtype=float + ) + + input_currents = properties.Array( + "Input currents", dtype=float + ) + + use_lowpass_filter = properties.Bool( + "Switch for low pass filter", default=False + ) + + high_cut_frequency = properties.Float( + "High cut frequency for low pass filter (Hz)", + default=210*1e3 + ) + + + # ------------- For dual moment ------------- # + + time_dual_moment = properties.Array( + "Off-time channels (s) for the dual moment", dtype=float + ) + + time_input_currents_dual_moment = properties.Array( + "Time for input currents (dual moment)", dtype=float + ) + + input_currents_dual_moment = properties.Array( + "Input currents (dual moment)", dtype=float + ) + + base_frequency_dual_moment = properties.Float( + "Base frequency for the dual moment (Hz)" + ) + + def __init__(self, receiver_list=None, **kwargs): - super(TimeDomainMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) + super(BaseTimeSrc, self).__init__(receiver_list=receiver_list, **kwargs) + + + + -class TimeDomainHorizontalLoopSource(BaseSrc): - a = properties.Float("Source loop radius", default=1.) - wave_type = properties.StringChoice( - "Source location", - default="stepoff", - choices=["stepoff", "general"] + + @property + def period(self): + return 1./self.base_frequency + + @property + def pulse_period(self): + Tp = ( + self.time_input_currents.max() - + self.time_input_currents.min() + ) + return Tp + + # ------------- For dual moment ------------- # + @property + def n_time_dual_moment(self): + return int(self.time_dual_moment.size) + + @property + def period_dual_moment(self): + return 1./self.base_frequency_dual_moment + + @property + def pulse_period_dual_moment(self): + Tp = ( + self.time_input_currents_dual_moment.max() - + self.time_input_currents_dual_moment.min() + ) + return Tp + + @property + def nD(self): + """ + # of data + """ + if self.moment_type == "single": + return self.n_time + else: + return self.n_time + self.n_time_dual_moment + + + + + + +class TimeDomainMagneticDipoleSource(BaseTimeSrc): + + orientation = properties.StringChoice( + "Dipole Orientation", default="z", choices=["z"] ) + def __init__(self, receiver_list=None, **kwargs): + super(TimeDomainMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) + + +class TimeDomainHorizontalLoopSource(BaseTimeSrc): + + a = properties.Float("Source loop radius", default=1.) + def __init__(self, receiver_list=None, **kwargs): super(TimeDomainHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) -class TimeDomainLineSource(BaseSrc): +class TimeDomainLineSource(BaseTimeSrc): src_path = properties.Array( "Source path (xi, yi, zi), i=0,...N", dtype=float ) - - wave_type = properties.StringChoice( - "Source location", - default="stepoff", - choices=["stepoff", "general"] - ) def __init__(self, receiver_list=None, **kwargs): super(TimeDomainLineSource, self).__init__(receiver_list=receiver_list, **kwargs) From 30ffde636cad0e0ff487cd933d3053b117051286 Mon Sep 17 00:00:00 2001 From: dccowan Date: Sat, 30 May 2020 15:20:10 -0700 Subject: [PATCH 09/54] FDEM inversion for conductivity and height updated --- notebooks/examples/EM1DFM_forward.ipynb | 14 +- .../EM1DFM_inversion_sigma_height.ipynb | 344 ++++++++++++------ notebooks/examples/EM1DTM_forward.ipynb | 33 +- simpegEM1D/Survey.py | 26 +- simpegEM1D/simulation.py | 69 ++-- simpegEM1D/sources.py | 46 +++ 6 files changed, 355 insertions(+), 177 deletions(-) diff --git a/notebooks/examples/EM1DFM_forward.ipynb b/notebooks/examples/EM1DFM_forward.ipynb index f4e20f4..f4051f7 100644 --- a/notebooks/examples/EM1DFM_forward.ipynb +++ b/notebooks/examples/EM1DFM_forward.ipynb @@ -224,7 +224,7 @@ "source": [ "# Conductivity\n", "simFD = EM1DFMSimulation(\n", - " mesh1D, survey=FDsurvey, depth=depth, sigmaMap=Expmap,\n", + " mesh1D, survey=FDsurvey, sigmaMap=Expmap,\n", " chi=np.zeros(nlay)\n", ")\n", "\n", @@ -304,16 +304,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -341,16 +341,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 12, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, diff --git a/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb index 722d860..886b318 100644 --- a/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb +++ b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb @@ -11,74 +11,137 @@ "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['pi']\n", - "`%matplotlib` prevents importing * from pylab and numpy\n", - " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" - ] } ], "source": [ "from SimPEG import *\n", "from discretize import TensorMesh\n", - "from simpegEM1D import *\n", + "from simpegEM1D.simulation import EM1DFMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyFD\n", + "from simpegEM1D.sources import *\n", + "from simpegEM1D.receivers import *\n", + "from simpegEM1D import analytics, Utils1D\n", + "from simpegEM1D.EM1DSimulation import *\n", "from scipy.constants import mu_0\n", "import numpy as np\n", - "%pylab inline\n", + "%pylab inline" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "rx_location = np.array([7.86, 0., 100.+30.])\n", + "src_location = np.array([0., 0., 100.+30.])\n", + "rx_location2 = np.array([7.86, 0., 100.+35.])\n", + "src_location2 = np.array([0., 0., 100.+35.])\n", "\n", + "frequency = np.array([382, 1822, 7970, 35920, 130100], dtype=float)\n", + "I = 1.\n", + "a = 1.\n", + "field_type = \"ppm\"\n", + "\n", + "# Receiver list\n", + "receiver_list = [\n", + " HarmonicPointReceiver(\n", + " rx_location, frequency, orientation=\"z\", field_type=field_type, component=\"real\"\n", + " )\n", + "]\n", + "receiver_list.append(\n", + " HarmonicPointReceiver(\n", + " rx_location, frequency, orientation=\"z\", field_type=field_type, component=\"imag\"\n", + " )\n", + ")\n", + "\n", + "\n", + "receiver_list2 = [\n", + " HarmonicPointReceiver(\n", + " rx_location2, frequency, orientation=\"z\", field_type=field_type, component=\"real\"\n", + " )\n", + "]\n", + "receiver_list2.append(\n", + " HarmonicPointReceiver(\n", + " rx_location2, frequency, orientation=\"z\", field_type=field_type, component=\"imag\"\n", + " )\n", + ")\n", + "\n", + "\n", + "# Sources\n", + "source_list = [\n", + " HarmonicMagneticDipoleSource(\n", + " receiver_list=receiver_list, location=src_location, orientation=\"z\", I=I\n", + " )\n", + "]\n", + "\n", + "source_list.append(\n", + " HarmonicMagneticDipoleSource(\n", + " receiver_list=receiver_list2, location=src_location2, orientation=\"z\", I=I\n", + " )\n", + ")\n", + "\n", + "\n", + "\n", + "# source_list = [\n", + "# HarmonicHorizontalLoopSource(\n", + "# receiver_list=receiver_list, location=src_location, a=a, I=I\n", + "# )\n", + "# ]\n", + "\n", + "# Survey\n", + "FDsurvey = EM1DSurveyFD(source_list)\n", + "nSrc = FDsurvey.nSrc" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ "sig_half = 1e-1\n", "sig_blk = 1e0\n", "\n", - "frequency = np.array([382, 1822, 7970, 35920, 130100], dtype=float)\n", "hz = get_vertical_discretization_frequency(frequency, sigma_background=sig_half)\n", "mesh1D = set_mesh_1d(hz)\n", "depth = -mesh1D.gridN[:-1]\n", "LocSigZ = -mesh1D.gridCC\n", - "\n", - "FDsurvey = EM1DSurveyFD(\n", - " rx_location = np.array([0., 0., 100.+30.]),\n", - " src_location = np.array([0., 0., 100.+30.]),\n", - " field_type = 'secondary',\n", - " rx_type = 'ppm',\n", - " src_type = 'VMD',\n", - " offset = np.ones(frequency.size)*7.86,\n", - " topo = np.r_[0., 0., 100.],\n", - " depth = depth,\n", - " frequency = frequency\n", - ")\n", + "nlay = depth.size\n", + "topo = np.r_[0., 0., 100.]\n", "\n", "chi_half = 0.\n", - "wires = maps.Wires(('sigma', mesh1D.nC),('h', 1))\n", + "wires = maps.Wires(('sigma', mesh1D.nC),('h', nSrc))\n", "expmap = maps.ExpMap(mesh1D)\n", "# expmap_h = Maps.ExpMap(nP=1)\n", "sigmaMap = expmap * wires.sigma\n", "# hMap = expmap_h*wires.h\n", - "sig = np.ones(FDsurvey.n_layer)*sig_half\n", + "sig = np.ones(mesh1D.nC)*sig_half\n", "blk_ind = (-20>LocSigZ) & (-40]" + "[]" ] }, - "execution_count": 2, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, @@ -102,13 +165,15 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, + "execution_count": 5, + "metadata": { + "scrolled": false + }, "outputs": [], "source": [ "sim = EM1DFMSimulation(\n", - " mesh1D, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h,\n", - " chi= np.zeros(FDsurvey.n_layer)\n", + " mesh1D, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, depth=depth,\n", + " chi= np.zeros(nlay)\n", ")\n", " \n", "d_true = sim.dpred(m_true)\n", @@ -122,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -140,16 +205,23 @@ ], "source": [ "fig, axes = plt.subplots(1,1, figsize = (7,5))\n", - "axes.plot(FDsurvey.frequency, d_true[0:FDsurvey.n_frequency], 'k.-')\n", - "axes.plot(FDsurvey.frequency, d_true[FDsurvey.n_frequency:], 'b.-')\n", - "axes.plot(FDsurvey.frequency, d_dh[0:FDsurvey.n_frequency], 'kx')\n", - "axes.plot(FDsurvey.frequency, d_dh[FDsurvey.n_frequency:], 'bx')\n", + "if nSrc == 1:\n", + " axes.plot(frequency, d_true[0:len(frequency)], 'k.-')\n", + " axes.plot(frequency, d_true[len(frequency):], 'b.-')\n", + " axes.plot(frequency, d_dh[0:len(frequency)], 'kx')\n", + " axes.plot(frequency, d_dh[len(frequency):], 'bx')\n", + "else:\n", + " axes.plot(frequency, d_true[0:len(frequency)], 'k.-')\n", + " axes.plot(frequency, d_true[len(frequency):2*len(frequency)], 'b.-')\n", + " axes.plot(frequency, d_dh[0:len(frequency)], 'kx')\n", + " axes.plot(frequency, d_dh[len(frequency):2*len(frequency)], 'bx')\n", + " \n", "axes.set_xscale('log')" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -158,42 +230,9 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - "model has any nan: 0\n", - "=============================== Projected GNCG ===============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 3.56e+00 4.42e+02 0.00e+00 4.42e+02 3.90e+01 0 \n", - " 1 3.56e+00 2.92e+02 3.98e+00 3.06e+02 2.15e+01 1 \n", - " 2 1.78e+00 2.44e+02 1.42e+01 2.69e+02 3.15e+01 0 Skip BFGS \n", - " 3 1.78e+00 1.02e+02 4.81e+01 1.87e+02 2.17e+01 0 \n", - " 4 8.89e-01 6.26e+01 6.18e+01 1.18e+02 1.66e+01 0 \n", - " 5 8.89e-01 1.43e+01 8.60e+01 9.08e+01 8.66e+00 0 \n", - " 6 4.44e-01 1.09e+01 8.70e+01 4.96e+01 8.91e+00 0 \n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 4.4342e+01\n", - "1 : |xc-x_last| = 1.1550e+00 <= tolX*(1+|x0|) = 4.7106e+00\n", - "0 : |proj(x-g)-x| = 8.9111e+00 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 8.9111e+00 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 7\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "execution_count": 8, + "metadata": {}, + "outputs": [], "source": [ "std = 0.07\n", "floor = 0.\n", @@ -204,8 +243,19 @@ "dataObj = data.Data(FDsurvey, dobs=d_obs, noise_floor=uncert)\n", "\n", "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", - "dmisfit.W = utils.sdiag(1/uncert)\n", - "m0 = np.r_[np.log(np.ones_like(sig)*sig_half), 45.]\n", + "dmisfit.W = utils.sdiag(1/uncert)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "m0 = np.r_[np.log(np.ones_like(sig)*sig_half), 45.*np.ones(nSrc)]\n", + "\n", "reg_sigma = regularization.Sparse(\n", " mesh1D, mapping=wires.sigma, cell_weights=mesh1D.vol,\n", " alpha_s = 0.01\n", @@ -218,7 +268,8 @@ " beta_tol=1e-2,\n", " chifact_start = 1.\n", ")\n", - "mesh_h = TensorMesh([1])\n", + "\n", + "mesh_h = TensorMesh([np.ones(nSrc)])\n", "reg_h = regularization.Sparse(\n", " mesh_h, mapping=wires.h, \n", " alpha_s = 1.\n", @@ -237,34 +288,117 @@ "\n", "# prob.counter = opt.counter = utils.Counter()\n", "opt.LSshorten = 0.5\n", - "opt.remember('xc')\n", + "opt.remember('xc')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(20, 19)\n", + "(20, 2)\n", + "[[ -2.25362006 0. ]\n", + " [-11.84061328 0. ]\n", + " [-32.71653202 0. ]\n", + " [-56.01219653 0. ]\n", + " [-69.32358724 0. ]\n", + " [ -6.11090659 0. ]\n", + " [-15.4954772 0. ]\n", + " [-22.20891835 0. ]\n", + " [-19.06424455 0. ]\n", + " [-12.79387869 0. ]\n", + " [ 0. -2.25362006]\n", + " [ 0. -11.84061328]\n", + " [ 0. -32.71653202]\n", + " [ 0. -56.01219653]\n", + " [ 0. -69.32358724]\n", + " [ 0. -6.11090659]\n", + " [ 0. -15.4954772 ]\n", + " [ 0. -22.20891835]\n", + " [ 0. -19.06424455]\n", + " [ 0. -12.79387869]]\n" + ] + } + ], + "source": [ + "print(np.shape(sim.getJ_sigma(m0)))\n", + "print(np.shape(sim.getJ_height(m0)))\n", + "print(sim.getJ_height(m0))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + "model has any nan: 0\n", + "=============================== Projected GNCG ===============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 9.20e+00 7.12e+02 0.00e+00 7.12e+02 6.72e+01 0 \n", + " 1 9.20e+00 5.24e+02 2.34e+00 5.45e+02 2.99e+01 1 \n", + " 2 4.60e+00 4.40e+02 6.53e+00 4.70e+02 2.87e+01 0 Skip BFGS \n", + " 3 4.60e+00 3.31e+02 2.21e+01 4.32e+02 6.09e+01 0 \n", + " 4 2.30e+00 2.80e+02 2.76e+01 3.43e+02 2.02e+01 0 \n", + " 5 2.30e+00 1.44e+02 6.40e+01 2.91e+02 1.28e+01 0 \n", + " 6 1.15e+00 1.09e+02 7.56e+01 1.95e+02 1.71e+01 0 \n", + " 7 1.15e+00 3.80e+01 1.13e+02 1.68e+02 1.70e+01 0 \n", + " 8 5.75e-01 3.19e+01 1.17e+02 9.92e+01 1.17e+01 0 Skip BFGS \n", + " 9 5.75e-01 1.28e+01 1.37e+02 9.15e+01 4.06e+00 0 \n", + " 10 2.87e-01 1.13e+01 1.39e+02 5.12e+01 8.48e+00 0 \n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 7.1286e+01\n", + "1 : |xc-x_last| = 1.0820e+00 <= tolX*(1+|x0|) = 6.5426e+00\n", + "0 : |proj(x-g)-x| = 8.4757e+00 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 8.4757e+00 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 11\n", + "------------------------- DONE! -------------------------\n" + ] + } + ], + "source": [ "mopt = inv.run(m0)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "[45.]\n", - "[31.38778403]\n", - "30.0\n" + "[45. 45.]\n", + "[31.44395427 36.17933422]\n", + "[31.44395427 36.17933422]\n" ] } ], "source": [ "print (wires.h*m0)\n", "print (wires.h*mopt)\n", - "print (FDsurvey.h)" + "print (sim.h)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -278,7 +412,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['beta', 'std', 'axes', 'floor', 'inv']\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['axes', 'beta', 'std', 'floor', 'inv']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] @@ -286,16 +420,16 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 8, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -316,22 +450,22 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - ">" + ">" ] }, - "execution_count": 9, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEzCAYAAAC2Q50YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hUddrG8e8DoqirgoKKFV1ZXwsqkiDWNaJSJJZlDagrRRCJoiJSRYpk6QiIYBBFij26iIBIH5S1kSA2xF1ZVwUEhcWCIi153j/OBEILCSQ5k8n9ua65ZuZ3zsw8Q05y8ytzxtwdERGReFAu7AJERESKikJNRETihkJNRETihkJNRETihkJNRETihkJNRETixkFhF5CfKlWqePXq1cMuQ0REYsjixYvXuXvVPW2L6VCrXr06WVlZYZchIiIxxMy+2ds2DT+KiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEjcUKiJiEixGTx4MJFIZKe2SCTC4MGDi+X1FGoiIlJsEhMTSUlJ2R5skUiElJQUEhMTi+X1Yvo0WSIiUrolJSWRkZFBSkoKqamppKenk5GRQVJSUrG8nnpqIiJSrJKSkkhNTSUtLY3U1NRiCzRQqImISDGLRCKkp6fTs2dP0tPTd5tjK0r7DDUzq2hmi8zsYzNbamaPRNsnmNl/zeyj6OWCaLuZ2UgzW25mn5jZhXmeq4WZfRm9tCi2dyUiIjEhdw4tIyODvn37bh+KLK5gK0hPbTNwlbufD1wANDCzutFtnd39gujlo2hbQ6BG9NIWSAcws6OB3sBFQB2gt5lVLrq3IiIisSYzM3OnObTcObbMzMxieb19LhRxdwd+jd6tEL14Pg+5AZgUfdz7ZlbJzKoBVwJz3H09gJnNARoAL+5/+SIiEsu6dOmyW1tSUlK4C0XMrLyZfQT8QBBMH0Q39YsOMQ43s0OibScCK/I8fGW0bW/tIiIiRaJAoebu2e5+AXASUMfMzgW6A/8HJAJHA12ju9ueniKf9p2YWVszyzKzrLVr1xakPBEREaCQqx/d/SdgAdDA3Vd7YDMwnmCeDIIe2Ml5HnYS8F0+7bu+xlh3T3D3hKpVqxamPBERKeMKsvqxqplVit4+FLga+CI6T4aZGXAj8Fn0IVOB5tFVkHWBn919NTALuNbMKkcXiFwbbRMRESkSBTmjSDVgopmVJwjBDHefbmbzzawqwbDiR0C76P4zgEbAcmAj0ArA3debWRqQu+Slb+6iERERkaJgwSLF2JSQkOBZWVlhlyEiIjHEzBa7e8KetumMIiIiEjcUaiIiEjcUaiIiEjcUaiIiUuwmT55M/fr12bJlS7G+jkJNRESKzfr167ntttto0qQJ69atY926dcX6ego1EREpFjNmzODcc88lIyODRx55hPfff58TTjihWF9ToSYiIkXql19+oXXr1lx33XUcc8wxLFq0iF69elGhQoVif22FmoiIFJl58+ZRs2ZNJkyYQLdu3cjKyqJWrVol9voKNREROWC//fYb7du35+qrr6ZixYq88847DBgwgEMOOWTfDy5CCjURETkg77zzDueffz6jR4+mQ4cOLFmyhLp16+77gcVAoSYiIvtl06ZNdO7cmcsvv5ycnBwWLFjA8OHDOeyww0KrqSAnNBYREdlJZmYmLVq0YNmyZdx1110MGTKEI444Iuyy1FMTEZGC27JlCz179uTiiy9mw4YNzJo1izFjxsREoIF6aiIiUkCffPIJzZs35+OPP6ZFixaMGDGCSpUqhV3WTtRTExGRfG3bto3+/fuTkJDAmjVreP3115kwYULMBRqopyYiIvn44osvaNGiBYsWLaJp06aMGjWKKlWqhF3WXqmnJiIiu8nOzmbYsGHUqlWL//znP7z88su89NJLMR1ooJ6aiIjs4j//+Q8tW7bkn//8J9dffz1PPvkkxx9/fNhlFYh6aiIiAoC7k56eznnnncenn37KhAkTmDJlSqkJNFBPTUREgG+//ZbWrVszd+5crr32WsaNG8dJJ50UdlmFpp6aiEgZ5u6MHz+emjVr8t577zFmzBhmzpxZKgMN1FMTESmzVq9eTdu2bZk+fTpXXHEF48eP5/TTTw+7rAOinpqISBnj7rz00kucc845zJ07l+HDhxOJREp9oIFCTUSkTFm7di0pKSnccsstnHnmmXz00Ud06NCBcuXiIw7i412IiMg+TZkyhXPPPZepU6cyYMAAFi5cyJlnnhl2WUVKc2oiInHuxx9/5L777uO5556jVq1azJ07l5o1a4ZdVrFQT01EJI7NnDmTc889lxdffJHevXvzwQcfxG2ggUJNRCQubdiwgbZt29KwYUMqV67M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a5OYCCkpO4YYIpEd9wtjzZpgnuzZZ4MPSR90ULCaasSI4PyLFSsWT/0iUnTy/v7nhlne+0VNoRbD3J0lS5ZsH1ZcvHgxANWrV6dNmzYkJyfz5z//OeaGFZOSggM2JQVSU4P/mRX0AN64MThN1aRJwWmrcnKCkHz88WCerDSeUVykLMvM3Pn3P/fvQ2Zm8YSaForEmN9//5358+dvX624atUqzIy6detuX614zjnnlIrVir167RhDz+8sWTk5weqoSZOCEwn/+iuccsqOz5P93/+VWMkiUgpooUiMW7NmzfZhxblz57Jx40b+8Ic/cO21124fVjy2lH11bUHG0Jcu3TFPtnIlHHnkjs+TXX655slEpPAUaiFwdz7++OPtw4qZ0U8pnnLKKbRq1Yrk5GSuvPJKDimlH67Kbwz97LPhxReDMPvww+AbeBs0gKFD4frr4dBDw65eREozhVoJ2bRpE5FIZPuw4ooVKzAz6tSpw9///neSk5OpWbNmqRhW3Jddx9Dr1g0+bJmaCsuXB8vya9cOFnzccguUsk6oiMSwA5pTM7OvgQ1ANrDN3RPM7GjgZaA68DWQ4u4/WvDX+jGgEbARaOnuH+b3/KV9Tu3777/njTfeYNq0acyZM4fffvuNww47bPuw4nXXXcdxxx0XdplF6rff4Jtv4Ouvg+vMTHj1VdiwAU4+OZgju/12OOussCsVkdKquOfUktx9XZ773YB57j7QzLpF73cFGgI1opeLgPToddxwdz799NPtw4qLFi3C3TnppJNo3rw5ycnJJCUlUbEUr0X/5ZcdoZUbXHmv163bef8jjoC//jUIsj//WfNkIlK8imP48QbgyujticACglC7AZgU/dqA982skplVc/fVxVBDidm8eTMLFizYHmTffvstAImJiTzyyCMkJydz/vnnl4phRXf46af8Q+vHH3d+TMWKwRk9Tj01GFLMvV29enA57jgFmYiUnAMNNQdmm5kDT7r7WOC43KBy99VmljtjciKwIs9jV0bbSl2o/fDDD8yYMYNp06Yxe/Zsfv31Vw499FCuueYaevbsyXXXXUe1atXCLnM37sFXQ+waVHlv//LLzo85/PAdQXXxxbuHVtWqOuu9iMSOAw21S939u2hwzTGzL/LZd09/+nab0DOztkBbCFYD7q+i/E4vd+ezzz7bvuz+/fffx9058cQTue22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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEzCAYAAAC2Q50YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3de5xV8/7H8de3m0KEQgpxTvxcQppJyWVG6KJxPUYcKiINodI9NdOMbtMVZSpKxSHDSUrpvqNDNJMouRxxolKKRGSamvn8/lh7puk2zdTMrD173s/HYz9m7+9ae+/PrjX7Pd/v+q61nJkhIiISDsr5XYCIiEhRUaiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYqOB3AfmpXr261alTx+8yREQkhKxYseJnM6txsGUhHWp16tQhPT3d7zJERCSEOOe+P9QyDT+KiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEixSU5OJhAI7NMWCARITk4ulvdTqImISLGJjIwkNjY2N9gCgQCxsbFERkYWy/uF9GmyRESkdIuOjiY1NZXY2Fji4uJISUkhNTWV6OjoYnk/9dRERKRYRUdHExcXR1JSEnFxccUWaKBQExGRYhYIBEhJSaFfv36kpKQcsI+tKB021JxzlZ1zy51znznn1jjnBgTbJzvn/uec+zR4uyzY7pxzzzrn1jrnVjnnLs/zWm2dc98Eb22L7VOJiEhIyNmHlpqaSmJiYu5QZHEFW0F6aruA68zsUuAyoLlzrlFwWXczuyx4+zTY1gKoG7x1AFIAnHMnA/HAFUBDIN45d1LRfRQREQk1aWlp++xDy9nHlpaWVizvd9iJImZmwB/BhxWDN8vnKbcAU4PP+8g5V805VxOIAhaY2TYA59wCoDnw2pGXLyIioaxHjx4HtEVHR/s7UcQ5V9459ymwBS+YPg4uGhgcYhzlnDsm2FYLWJ/n6RuCbYdqFxERKRIFCjUzyzKzy4DaQEPn3MVAb+D/gEjgZKBncHV3sJfIp30fzrkOzrl051z61q1bC1KeiIgIUMjZj2a2HVgCNDezTebZBbyEt58MvB7YmXmeVhv4MZ/2/d9jgplFmFlEjRo1ClOeiIiUcQWZ/VjDOVcteL8KcD3wVXA/Gc45B9wKfB58ykygTXAWZCPgNzPbBMwDbnTOnRScIHJjsE1ERKRIFOSMIjWBKc658nghmGpm7zjnFjvnauANK34KdAyuPwdoCawFdgL3A5jZNudcEpAz5SUxZ9KIiIhIUXDeJMXQFBERYenp6X6XISIiIcQ5t8LMIg62TGcUERGRsKFQExGRsKFQExGRYrds2TIGDx7MsmXLivV9dOkZEREpVsuWLSMqKorMzEyqVKnCokWLaNy4cbG8l3pqIiJSbLZt20ZcXByZmZkAZGZmsmTJkmJ7P4WaiIgUizlz5nDxxRfz+eefU6FCBcqXL0+lSpWIiooqtvfU8KOIiBSp33//nS5dujBp0iQuvvhiZs+eTUZGBkuWLCEqKqrYhh5BoSYiIkVo0aJFPPDAA2zYsIFevXqRkJDAMcd457svzjDLoeFHERE5an/++SedOnXi+uuvp3LlynzwwQcMHjw4N9BKikJNRESOygcffMCll17K2LFj6dy5MytXrqRRo0aHf2IxUKiJiMgRycjIoHv37lx99dVkZ2ezZMkSRo0axbHHHutbTdqnJiIihZaWlkbbtm358ssvefjhhxk2bBhVq1b1uyz11EREpOAyMzPp168fjRs3ZseOHcybN49x48aFRKCBemoiIlJAq1atok2bNnz22We0bduW0aNHU61aNb/L2od6aiIikq89e/YwaNAgIiIi2Lx5M2+//TaTJ08OuUAD9dRERCQfX331FW3btmX58uXcddddjBkzhurVq/td1iGppyYiIgfIyspi5MiR1K9fn2+//ZbXX3+dadOmhXSggXpqIiKyn2+//ZZ27drxn//8h5tvvpnx48dz+umn+11WgainJiIiAJgZKSkpXHLJJaxevZrJkyczY8aMUhNooJ6aiIgAP/zwA+3bt2fhwoXceOONTJw4kdq1a/tdVqGppyYiUoaZGS+99BL16tVj2bJljBs3jrlz55bKQAP11EREyqxNmzbRoUMH3nnnHa655hpeeuklzj33XL/LOirqqYmIlDFmxrRp07joootYuHAho0aNIhAIlPpAA4WaiEiZsnXrVmJjY7n77rs5//zz+fTTT+ncuTPlyoVHHITHpxARkcOaMWMGF198MTNnzmTw4MEsXbqU888/3++yipT2qYmIhLlff/2Vxx9/nFdeeYX69euzcOFC6tWr53dZxUI9NRGRMDZ37lwuvvhiXnvtNeLj4/n444/DNtBAoSYiEpZ27NhBhw4daNGiBSeddBIff/wxCQkJVKxY0e/SipVCTUQkzAQCAS655BImTpxIjx49SE9Pp0GDBn6XVSIOG2rOucrOueXOuc+cc2uccwOC7ec45z52zn3jnHvdOVcp2H5M8PHa4PI6eV6rd7D9a+dcs+L6UCIiZdHOnTt5/PHHue6666hQoQJLly5l6NChVK5c2e/SSkxBemq7gOvM7FLgMqC5c64RMBQYZWZ1gV+B9sH12wO/mtnfgVHB9XDOXQi0Bi4CmgPPO+fKF+WHEREpqz788EMuu+wynnvuOR5//HE+++wzrrzySr/LKnGHDTXz/BF8WDF4M+A64M1g+xTg1uD9W4KPCS5v6pxzwfZpZrbLzP4HrAUaFsmnEBEpozIyMujZsydXX301mZmZLF68mGeeeYZjjz3W79J8UaB9as658s65T4EtwALgW2C7me0JrrIBqBW8XwtYDxBc/htwSt72gzxHREQKacWKFTRo0IDk5GTat2/P6tWriY6O9rssXxUo1Mwsy8wuA2rj9a4uONhqwZ/uEMsO1b4P51wH51y6cy5969atBSlPRKRMyczMJD4+niuuuILt27czZ84cJkyYQNWqVf0uzXeFmv1oZtuBJUAjoJpzLufg7drAj8H7G4AzAYLLTwS25W0/yHPyvscEM4sws4gaNWoUpjwRkbC3evVqGjVqRGJiIvfccw+ff/45LVq08LuskFGQ2Y81nHPVgverANcDXwIB4B/B1doCbwfvzww+Jrh8sZlZsL11cHbkOUBdYHlRfRARkXC2Z88ehgwZQkREBBs3buStt95i6tSpnHTSSX6XFlIKcpqsmsCU4EzFckCqmb3jnPsCmOacexpYCUwMrj8ReNk5txavh9YawMzWOOdSgS+APcCjZpZVtB9HRCT8fP3117Rt25aPP/6YO+64g5SUFDSSdXDO60SFpoiICEtPT/e7DBERX2RnZ/Pss8/Su3dvqlSpwtixY2ndujXehPKyyzm3wswiDrZMJzQWEQlB//vf/7j//vt57733aNWqFRMmTKBmzZp+lxXydJosEZEQYmaMHz+eevXqsXLlSiZNmsTMmTMVaAWknpqISIhYv349Dz74IPPnz+f6669n4sSJnHXWWX6XVaqopyYi4jMzY8qUKdSrV4///Oc/PP/888yfP1+BdgQUaiIiPtq8eTO33nor7dq145JLLmHVqlXExcWV+ckgR0qhJiLik9TUVC6++GLmzZvHiBEjCAQC/O1vf/O7rFJNoSYiUsJ+/vln7rrrLu666y7OPfdcVq5cSdeuXSlfXhcuOVoKNRGREjRz5kwuvvhi3nrrLQYOHMiHH37IBRcc7HS6ciQ0+1FEpARs376dzp07M2XKFC699FLmzZvHpZde6ndZYUc9NRGRYjZ//nzq1avHK6+8wlNPPcXy5csVaMVEoSYiUkx27NhBx44dadasGVWrVmXZsmUkJSVRqVIlv0sLWwo1EZFi8N5773HppZcyYcIEunXrxieffEJkZKTfZYU9hZqISBH666+/6NKlC9HR0ZQrV47333+fYcOGUblyZb9LKxM0UUREpIh89NFHtG3blv/+97906tSJIUOGcNxxx/ldVpminpqIyFHatWsXvXv3pkmTJmRkZLBw4UKee+45BZoP1FMTETkKK1eupE2bNnz++ee0b9+ekSNHcsIJJ/hdVpmlnpqIyBHYvXs3iYmJNGzYkF9++YV33nmHF198UYHmM/XUREQKYdmyZbz++uvMnTuXr7/+mnvuuYfnnnuOk08+2e/SBIWaiEiBLVu2jGuvvZbdu3cDMHDgQPr06eNzVZKXhh9FRAqof//+uYFWvnx5XR4mBKmnJiJSAElJSSxcuDD3TPqVKlUiKirK36LkAAo1EZHDSExMJD4+njZt2vDQQw+xdOlSoqKiaNy4sd+lyX4UaiIi+RgwYAAJCQm0bduWiRMnUr58ea666iq/y5JD0D41EZFDSEhIICEhgXbt2uUGmoQ2hZqIyEEkJCQwYMAA2rVrx4svvqhAKyUUaiIi+8kJtPvvv1+BVspon5qISJCZkZCQQGJiYm6glSunv/1LE/1viYjgBVp8fDyJiYk88MADCrRSSv9jIlLm5QRaUlISDzzwAC+88IICrZQ67P+ac+5M51zAOfelc26Nc+6JYHuCc26jc+7T4K1lnuf0ds6tdc597Zxrlqe9ebBtrXOuV/F8JBGRgjMz+vfvT1JSEu3bt1eglXIF2ae2B3jSzD5xzlUFVjjnFgSXjTKz4XlXds5dCLQGLgLOABY6584LLh4L3ABsANKcczPN7Iui+CAiIoVlZvTr14+BAwfy4IMPMn78eAVaKXfY/z0z22RmnwTv7wC+BGrl85RbgGlmtsvM/gesBRoGb2vN7DszywSmBdcVESlxZsZTTz3FwIEDeeihhw4baMnJyQQCgX3aAoEAycnJxV2qFEKh/iRxztUB6gMfB5s6OedWOecmOedOCrbVAtbnedqGYNuh2kVESlROoA0aNIiHHnqIcePGHbaHFhkZSWxsbG6wBQIBYmNjiYyMLImSpYAKHGrOueOBfwOdzex3IAX4G3AZsAkYkbPqQZ5u+bTv/z4dnHPpzrn0rVu3FrQ8EZECMTP69u3LoEGD6NChQ4ECDSA6OprU1FRiY2Pp378/sbGxpKamEh0dXQJVS0EVKNSccxXxAu1fZjYdwMx+MrMsM8sGXsAbXgSvB3ZmnqfXBn7Mp30fZjbBzCLMLKJGjRqF/TwiIodkZvTp04fBgwfz8MMPk5KSUqh9aNHR0cTFxZGUlERcXJwCLQQVZPajAyYCX5rZyDztNfOsdhvwefD+TKC1c+4Y59w5QF1gOZAG1HXOneOcq4Q3mWRm0XwMEZH8mRm9e/dmyJAhdOzYkeeff77Qk0ICgQApKSn069ePlJSUA/axif8KMvuxCXAfsNo592mwrQ9wt3PuMrwhxHXAwwBmtsY5lwp8gTdz8lEzywJwznUC5gHlgUlmtqYIP4uIyEHlBNrQoUPp2LEjY8eOPaJAyzvkGB0drSHIEOTMDtitFTIiIiIsPT3d7zJEpBQzM3r16kVycjJxcXGMGTPmiKbtJycnExkZuU+ABQIB0tLS6NGjR1GWLIfhnFthZhEHXaZQE5FwZWb07NmTYcOGERcXx9ixY/H2qEhpll+o6ShDEQlLZkaPHj0YNmwYjzzyiAKtjFCoiUjYyQm04cOH88gjjzBmzBgFWhmhUBORsGJmdO/eneHDh/Poo48q0MoYhZqIhA0zo1u3bowYMYJOnTrx3HPPKdDKGIWaiIQFM+PJJ59k5MiRPPbYYzz77LMKtDJIoSYipV5OoI0aNYrHHnuMZ555RoFWRinURKRUMzO6du3KqFGjePzxxxVoZZxCTURKLTOjS5cujB49mieeeILRo0cr0Mo4hZqIlEo5gfbMM8/QuXNnRo0apUCTAp37UUQkpJgZnTt35tlnn6Vz586MHDlSgSaAemoiUsrkDbQuXboo0GQfCjURKTXMjCeeeIJnn32Wrl27MmLECAWa7EPDjyJSKpgZjz/+OGPGjKFr164MHz5cgSYHUE9NREKemfHYY48xZswYnnzySQWaHJJCTURCWk6gjR07lm7dujFs2DAFmhySQk1EQpaZ0alTJ8aOHUv37t1JTk5WoEm+FGoiEpKys7N59NFHef755+nevTtDhw5VoMlhKdREJORkZ2fTqVMnUlJS6NGjhwJNCkyhJiIhJaeHlpKSQs+ePRkyZIgCTQpMoSYiISM7O5tHHnmEcePG0atXLwYPHqxAk0LRcWoiEhKys7OJi4tjwoQJ9OrVi0GDBinQpNDUUxMR3+UNtN69eyvQ5Igp1ETEV9nZ2XTs2JEJEybQp08fBg4cqECTI6ZQExHfZGdn8/DDD/PCCy/Qt29fnn76aQWaHBWFmoj4IifQXnzxRfr27UtSUpICTY6aQk1ESlx2djYdOnTgxRdf5KmnnlKgSZFRqIlIicrOzuahhx5i4sSJ9OvXj8TERAWaFBmFmoiUmJxAmzRpEv3792fAgAEKNClShw0159yZzrmAc+5L59wa59wTwfaTnXMLnHPfBH+eFGx3zrlnnXNrnXOrnHOX53mttsH1v3HOtS2+jyUioSY7O5sHH3wwN9ASEhIUaFLkCtJT2wM8aWYXAI2AR51zFwK9gEVmVhdYFHwM0AKoG7x1AFLAC0EgHrgCaAjE5wShiIS3rKws2rdvz0svvUR8fLx6aFJsDhtqZrbJzD4J3t8BfAnUAm4BpgRXmwLcGrx/CzDVPB8B1ZxzNYFmwAIz22ZmvwILgOZF+mlEJORkZWXx4IMPMnnyZOLj40lISPC7JAljhTpNlnOuDlAf+Bg4zcw2gRd8zrlTg6vVAtbnedqGYNuh2kUkTOX00KZMmUJCQgLx8fF+lyRhrsATRZxzxwP/Bjqb2e/5rXqQNsunff/36eCcS3fOpW/durWg5YlIiMnKyuKBBx5QoEmJKlCoOecq4gXav8xserD5p+CwIsGfW4LtG4Az8zy9NvBjPu37MLMJZhZhZhE1atQozGcRkRCRlZXF/fffz9SpUxkwYIACTUpMQWY/OmAi8KWZjcyzaCaQM4OxLfB2nvY2wVmQjYDfgsOU84AbnXMnBSeI3BhsE5EwkhNoL7/8MomJifTv39/vkqQMKcg+tSbAfcBq59ynwbY+wBAg1TnXHvgBuDO4bA7QElgL7ATuBzCzbc65JCAtuF6imW0rkk8hIiEhb6AlJSXx1FNP+V2SlDHO7IDdWiEjIiLC0tPT/S5DRAogKyuLdu3a8corryjQpFg551aYWcTBlukioSJy1LKysmjbti3/+te/ePrpp+nbt6/fJUkZpVATkaOSlZVFmzZtePXVVxk4cCB9+vTxuyQpw3TuRxE5Ynv27MkNtEGDBinQxHfqqYnIEckJtNdee41BgwbRu3dvv0sSUaiJSOHt2bOH++67j2nTpjF48GB69ep1+CeJlACFmogUSt5AGzJkCD179vS7JJFcCjURKbC8gTZ06FB69Ojhd0ki+1CoiUiB7Nmzh3vvvZfXX39dgSYhS6EmIoe1Z88e/vnPf5KamkpycjLdu3f3uySRg1KoiUi+9uzZwz333MMbb7zBsGHD6Natm98liRySjlMTkUPavXt3bqANHz5cgSYhTz01ETmonEB78803GT58OE8++aTfJYkclkJNRA6we/du7r77bv79738zYsQIunbt6ndJIgWiUBORfeQNtJEjR9KlSxe/SxIpMO1TE5FcCjQp7dRTExHAC7TWrVszffp0Ro0aRefOnf0uSaTQ1FMTETIzM7nrrrsUaFLqqacmUsZlZmbSunVr3nrrLUaPHs0TTzzhd0kiR0yhJlKG5fTQZsyYwTPPPMPjjz/ud0kiR0WhJlJGZWZmEhsby9tvv61Ak7ChUBMpg/IG2rPPPstjjz3md0kiRUKhJlLGZGZmcueddzJz5kyee+45OnXq5HdJIkVGoSZShuQNtDFjxvDoo4/6XZJIkdKUfpEyYteuXfzjH/9QoElYU09NpAzICbR33nmHsWPH8sgjj/hdkkixUKiJhLm8gfb8888TFxfnd0kixUahJhLGdu3axR133MHs2bMVaFImKNREwlTeQEtJSaFjx45+lyRS7A47UcQ5N8k5t8U593metgTn3Ebn3KfBW8s8y3o759Y65752zjXL09482LbWOder6D+KiOTIyMjg9ttvZ/bs2YwbN06BJmVGQWY/TgaaH6R9lJldFrzNAXDOXQi0Bi4KPud551x551x5YCzQArgQuDu4rogUsYyMDO644w7mzJnD+PHjefjhh/0uSaTEHHb40czed87VKeDr3QJMM7NdwP+cc2uBhsFla83sOwDn3LTgul8UumIROaScHtq7777L+PHj6dChg98liZSoozlOrZNzblVwePKkYFstYH2edTYE2w7VLiJFJCMj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372T0r78snfiWjO46iqvR3bnnd6sM5HSLDvbG3nIOS7u44+97bx6da/31rKld3xc9ep+V3pwGn6UIvPHH38wf/58Zs2axezZs9m6dSvly5fnmmuuoVWrVsTExFC3bl0CgQC333479evXZ+XKlSEfaHv2ePsiXn4ZZszwrlH297/v3U927rl+VyhSfH75xevF5RwX9/PPXi+uYcO9vbgGDUKnF6dQk6Pyww8/5PbGAoEAmZmZVKtWjZYtWxITE0Pz5s2pdpBpfv379ycpKYl+/fqRmJjoQ+X5M/NmjuXsJ/vpJ2/W2F13eWHWqJH2k0nZk50NK1bsPS5u+XLvd6VGjX17caec4l+NCjUplOzsbNLS0nKDbNWqVQCcd955xMTEEBMTQ5MmTahQ4dC7ZAOBALGxscTFxZGSkkJqamrI9NQ2bty7n2zNGu/4sVatvP1kLVtqP5lIXj//DPPmeQE3b573uFw5rxeXc3aTyy8v2V5cfqHm+0mL87vphMYl548//rC33nrLHnjgATvttNMMsPLly9s111xjw4YNs6+++qrAr7V48WKrXr26LQ6eWXf/x37YscNsyhSzpk29a5OBWePGZikpZr/84ltZIqXKnj3eVSXi480aNtz7u3TqqWZt2pi99lrJ/D6hExrLwaxfv5533nmHWbNmsXjxYnbt2sWJJ55IixYtcocVTz755EK/bnJyMpGRkfv0zAKBAGlpafQowTPtZmV55897+WV46y3YudPbN5azn+zvfy+xUkTC0tat+/bifvnF67FdccXeXlz9+kXfi9PwowDesOKKFStyhxU//fRTAP7+97/nDiteddVVVCzl53P67LO9+8k2bfLO6pGzn+zKK7WfTKQ4ZGV5V4jIOWQgLc1rP/547/fuqqu8Exe0aOGdsOBoriahUCvDdu7cycKFC5k1axbvvPMOmzdvply5cjRp0iQ3yM4//3xcKf+m//FHL8SmToXVq739ZC1bekHWqpV3HkYRKTlbtni9t5de2ntoDHi/m8cdB9On73vZpMLQwddlzMaNG3OHFRctWkRGRgYnnHACzZs3JyYmhhYtWnCKn1OXisiff3rDilOnwqJF3qytK66AsWO9nlkYfESRUuvUU70/Ku+7D9q3h0mTvPbdu73rBxbXvDGFWhjIzs7mk08+yR1WXLlyJeCdmurhhx8mJiaGq6++mkph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\n", "text/plain": [ "
" ] @@ -344,10 +478,16 @@ ], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", - "axes.plot(FDsurvey.frequency, d_true[0:FDsurvey.n_frequency], 'k-')\n", - "axes.plot(FDsurvey.frequency, d_true[FDsurvey.n_frequency:], 'b-')\n", - "axes.plot(FDsurvey.frequency, d_obs[0:FDsurvey.n_frequency], 'kx')\n", - "axes.plot(FDsurvey.frequency, d_obs[FDsurvey.n_frequency:], 'bx')\n", + "if nSrc == 1:\n", + " axes.plot(frequency, d_true[0:len(frequency)], 'k.-')\n", + " axes.plot(frequency, d_true[len(frequency):], 'b.-')\n", + " axes.plot(frequency, d_obs[0:len(frequency)], 'kx')\n", + " axes.plot(frequency, d_obs[len(frequency):], 'bx')\n", + "else:\n", + " axes.plot(frequency, d_true[0:len(frequency)], 'k.-')\n", + " axes.plot(frequency, d_true[len(frequency):2*len(frequency)], 'b.-')\n", + " axes.plot(frequency, d_obs[0:len(frequency)], 'kx')\n", + " axes.plot(frequency, d_obs[len(frequency):2*len(frequency)], 'bx')\n", "axes.set_xscale('log')\n", "axes.set_xlabel" ] diff --git a/notebooks/examples/EM1DTM_forward.ipynb b/notebooks/examples/EM1DTM_forward.ipynb index 4d722b4..26a159c 100644 --- a/notebooks/examples/EM1DTM_forward.ipynb +++ b/notebooks/examples/EM1DTM_forward.ipynb @@ -135,7 +135,6 @@ "name": "stdout", "output_type": "stream", "text": [ - "(1, 116)\n", "(31,)\n", "[-9.92937941e-07 -6.17689284e-07 -3.75646836e-07 -2.24602803e-07\n", " -1.32533952e-07 -7.74092430e-08 -4.48521362e-08 -2.58254102e-08\n", @@ -151,7 +150,7 @@ "source": [ "# Conductivity\n", "simFD = EM1DTMSimulation(\n", - " mesh1D, survey=TDsurvey, depth=depth, sigmaMap=Expmap,\n", + " mesh1D, survey=TDsurvey, sigmaMap=Expmap,\n", " chi=np.zeros(nlay)\n", ")\n", "\n", @@ -163,7 +162,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -176,7 +175,7 @@ " wt, tbase, omega_int = setFrequency(t)\n", " hz = analytics.Hzanal(sigma, omega_int/2/np.pi, r, 'secondary')\n", " if dtype=='dhdt':\n", - " hz *= 1./(1j*omega_int)\n", + " hz *= 1j*omega_int\n", " # Treatment for inaccuracy in analytic solutions\n", " ind = omega_int < 0.2\n", " hz[ind] = 0.\n", @@ -186,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -194,14 +193,14 @@ "output_type": "stream", "text": [ "(31,)\n", - "[-1.93870604e-16 -1.75822295e-16 -1.58901930e-16 -1.43128415e-16\n", - " -1.28654317e-16 -1.15491801e-16 -1.03457982e-16 -9.25283477e-17\n", - " -8.27703584e-17 -7.39346279e-17 -6.59520200e-17 -5.88650810e-17\n", - " -5.25006332e-17 -4.67724491e-17 -4.16729975e-17 -3.71324378e-17\n", - " -3.30533063e-17 -2.94063298e-17 -2.61825568e-17 -2.32888952e-17\n", - " -2.06929736e-17 -1.84055808e-17 -1.63568547e-17 -1.45194409e-17\n", - " -1.28911117e-17 -1.14420383e-17 -1.01425366e-17 -8.98425049e-18\n", - " -7.95983826e-18 -7.04115396e-18 -6.21760061e-18]\n" + "[-9.95161669e-07 -6.20841539e-07 -3.78810288e-07 -2.25799726e-07\n", + " -1.33069842e-07 -7.81387385e-08 -4.52134487e-08 -2.58631252e-08\n", + " -1.49306593e-08 -8.52817273e-09 -4.81590694e-09 -2.74810393e-09\n", + " -1.56156404e-09 -8.78911182e-10 -4.96400334e-10 -2.81652107e-10\n", + " -1.58467449e-10 -8.88078264e-11 -5.04022696e-11 -2.83868835e-11\n", + " -1.58432708e-11 -8.98129862e-12 -5.06659192e-12 -2.83415592e-12\n", + " -1.59650652e-12 -9.02328531e-13 -5.05958122e-13 -2.83365433e-13\n", + " -1.60468028e-13 -9.01946715e-14 -5.02429319e-14]\n" ] } ], @@ -213,22 +212,22 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 13, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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+uuv5+S7ly9froMPPljz5s2L/Lz33nt66qmnZGZauXJlZNuXXnpJZha5JvL+++/XkUceqZKSEkVfkvfUU09pypQpmj9/vmbPnq1PfOITI9aDHQ/OOeYaBTwAsuBHP/pRTr//qquu0tVXXz2ife7cubr33nsj103ec889OuaYYyLvH3XUUXrggQd0xRVXjPjs8ccfHwnEjRs36qyzztKkSZN00kknjbu/jBzzwdHnSVdtCi0ScNWmxCHHCjxAccnATFBPT49OO+00HXPMMTrqqKN07733auHChZGRV21tra655hp9+MMf1sknn6wXXnhBCxcu1KGHHqqHHnpIkrRq1SqdeeaZWrRokWbPnq1vfvObkf3fddddWrBggebNm6crrrhCe/eG7hy4cuVKHX744Vq4cKEuv/xyLVu2bNS+HnLIIerr69O7774rd9fjjz+uU089NfL+EUccodmzZ4+6n3nz5un666/XbbfdltL/VvEQjoWGAh6geGTofrGPP/64pk+frpdfflmbNm3SokXD7i+vnp4eLVy4UBs2bFBdXZ2+/vWva926dXrwwQd1/fX7T+m88MILuvvuu7Vx40bdf//9amlp0ebNm3XvvffqmWee0caNG1VaWqq7775b27Zt0w033KDnn39e69at0xtvvDHsO2+55ZbIlOqJJ5447L1zzjlH999/v5599ll96EMfGrY4eio+9KEPjfjesWJatdCM5S4hAPJThi7lmjt3rq6++mpdc801Ov3003X88ccPe7+ioiISmHPnzlVlZaXKy8s1d+5cvf3225HtPvWpT6m+vl6SdPbZZ+s3v/mNysrKtGHDhsj6q729vWpsbNQLL7ygE044IbKw+Lnnnqu33norsq9406qSdN555+nzn/+83njjDV1wwQV69tlnx/R7p3M5VEaOhSbVAh6Kd4D8laGZoMMPP1wbNmzQ3Llzdd1112nFiuGnXcrLyyO3kiopKYmM1EpKSjQ4OBjZLni7KTOTu+uLX/yiNm7cqI0bN+rNN9/U8uXLxxVM73vf+1ReXq5169aN63zhSy+9lLZ1bQnHQpPKXUIyNGUDIE0ydCnXtm3bVF1drYsvvlhXX321XnzxxTHtZ926ders7FRvb6/Wrl2rj3/84zrppJO0Zs0atbW1SZI6Ozv1+9//XgsWLNCvfvUr7dixQ4ODg/rpT3+a0net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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index 06879f2..c021fd0 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -38,18 +38,20 @@ class EM1DSurveyFD(BaseEM1DSurvey): def __init__(self, source_list=None, **kwargs): BaseEM1DSurvey.__init__(self, source_list, **kwargs) - # @property - # def nD(self): - # """ - # # of data - # """ - - # if self.switch_real_imag == "all": - # return int(self.frequency.size * 2) - # elif ( - # self.switch_real_imag == "imag" or self.switch_real_imag == "real" - # ): - # return int(self.n_frequency) + @property + def nD(self): + """ + # of data + + """ + + nD = 0 + + for src in self.source_list: + for rx in src.receiver_list: + nD += len(rx.frequencies) + + return int(nD) # @property # def hz_primary(self): diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index f68a4f6..9c3fc38 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -6,6 +6,7 @@ from .supporting_functions.kernels import * from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline +from scipy.linalg import block_diag import properties from empymod.utils import check_time @@ -96,26 +97,21 @@ def __init__(self, mesh, **kwargs): if self.verbose: print(">> Use "+self.hankel_filter+" filter for Hankel Transform") + self.depth = -mesh.gridN[0:-1] + # if self.hankel_pts_per_dec != 0: # raise NotImplementedError() - @property - def h(self): - """ - Source height - """ - - if self._h is not None: - return self._h + # @property + # def h(self): + # """ + # Source height + # """ - else: - if self.survey.source_list is not None: - # Could include topography here too - self._h = np.array([src.location[2] for src in self.source_list]) - return self._h + # if getattr(self, '_h', None) is None: + # self._h = np.array([src.location[2] for src in self.survey.source_list]) - else: - return + # return self._h @property @@ -211,7 +207,6 @@ def compute_integral(self, m, output_type='response'): n_layer = self.n_layer depth = self.depth - # Source heights if self.hMap is not None: h_vector = self.h @@ -220,7 +215,7 @@ def compute_integral(self, m, output_type='response'): h_vector = np.array([src.location[2] for src in self.survey.source_list]) else: h_vector = np.array([src.location[2]-self.topo[0] for src in self.survey.source_list]) - + n_filter = self.n_filter fields_list = [] @@ -374,7 +369,6 @@ def compute_integral(self, m, output_type='response'): def fields(self, m): f = self.compute_integral(m, output_type='response') - print(np.shape(f)) f = self.projectFields(f) return np.hstack(f) @@ -411,11 +405,21 @@ def getJ_height(self, m, f=None): print(">> Compute J height ") dudz = self.compute_integral(m, output_type="sensitivity_height") + dudz = self.projectFields(dudz) - self._Jmatrix_height = ( - self.projectFields(dudz) - ).reshape([-1, 1]) - + if self.survey.nSrc == 1: + self._Jmatrix_height = np.hstack(dudz).reshape([-1, 1]) + else: + COUNT = 0 + dudz_by_source = [] + for ii, src in enumerate(self.survey.source_list): + temp = np.array([]) + for jj, rx in enumerate(src.receiver_list): + temp = np.r_[temp, dudz[COUNT]] + COUNT += 1 + dudz_by_source.append(temp.reshape([-1, 1])) + + self._Jmatrix_height= block_diag(*dudz_by_source) return self._Jmatrix_height # @profile @@ -432,8 +436,10 @@ def getJ_sigma(self, m, f=None): print(">> Compute J sigma") dudsig = self.compute_integral(m, output_type="sensitivity_sigma") + # print("SIGMA SENSITIVITIES LIST") + # print(np.shape(dudsig)) - self._Jmatrix_sigma = self.projectFields(dudsig) + self._Jmatrix_sigma = np.vstack(self.projectFields(dudsig)) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma @@ -509,20 +515,6 @@ class EM1DFMSimulation(BaseEM1DSimulation): def __init__(self, mesh, **kwargs): BaseEM1DSimulation.__init__(self, mesh, **kwargs) - - @property - def hz_primary(self): - # Assumes HCP only at the moment - if self.survey.src_type == 'VMD': - return -1./(4*np.pi*self.survey.offset**3) - elif self.survey.src_type == 'CircularLoop': - return self.I/(2*self.survey.a) * np.ones_like(self.survey.frequency) - else: - raise NotImplementedError() - - - - def projectFields(self, u): """ @@ -543,8 +535,7 @@ def projectFields(self, u): if rx.field_type != "secondary": - # COMPUTE PRIMARY FIELD FOR TX-RX PAIR - u_primary = 1 + u_primary = src.PrimaryField(rx.locations, rx.orientation) if rx.field_type == "ppm": u_temp = 1e6 * u_temp/u_primary diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index 665948c..7a1d1b4 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -45,6 +45,31 @@ class HarmonicMagneticDipoleSource(BaseSrc): def __init__(self, receiver_list=None, **kwargs): super(HarmonicMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) + + def PrimaryField(self, xyz, orientation): + + I = self.I + r0 = self.location + + if self.orientation == "x": + m = np.r_[1., 0., 0.] + elif self.orientation == "y": + m = np.r_[0., 1., 0.] + elif self.orientation == "z": + m = np.r_[0., 0., 1.] + + r = np.sqrt((xyz[0]-r0[0])**2 + (xyz[1]-r0[1])**2 + (xyz[2]-r0[2])**2) + mdotr = m[0]*(xyz[0]-r0[0]) + m[1]*(xyz[1]-r0[1]) + m[2]*(xyz[2]-r0[2]) + + if orientation == "x": + return (1/(4*np.pi))*(3*(xyz[0]-r0[0])*mdotr/r**5 - m[0]/r**3) + elif orientation == "y": + return (1/(4*np.pi))*(3*(xyz[1]-r0[1])*mdotr/r**5 - m[1]/r**3) + elif orientation == "z": + return (1/(4*np.pi))*(3*(xyz[2]-r0[2])*mdotr/r**5 - m[2]/r**3) + + + class HarmonicHorizontalLoopSource(BaseSrc): a = properties.Float("Source loop radius", default=1.) @@ -53,6 +78,27 @@ def __init__(self, receiver_list=None, **kwargs): super(HarmonicHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) + def PrimaryField(self, xyz, orientation): + + r0 = self.location + a = self.radius + I = self.Imax + + x1 = np.c_[xyz[0]-r0[0], xyz[1]-r0[1], xyz[2]-r0[2]] + x2 = np.c_[xyz[0]-r0[0], xyz[1]-r0[1], xyz[2]-r0[2]] + x3 = np.c_[xyz[0]-r0[0], xyz[1]-r0[1], xyz[2]-r0[2]] + + s = np.sqrt(x1**2 + x2**2) + 1e-10 # Radial distance + k = 4*a*s/(x3**2 + (a+s)**2) + + if orientation == "x": + return (x1/s)*(x3*I/(2*np.pi*s*np.sqrt(x3**2 + (a + s)**2)))*(((a**2 + x3**2 + s**2)/(x3**2 + (s-a)**2))*spec.ellipe(k) - spec.ellipk(k)) + elif orientation == "y": + return (x2/s)*(x3*I/(2*np.pi*s*np.sqrt(x3**2 + (a + s)**2)))*(((a**2 + x3**2 + s**2)/(x3**2 + (s-a)**2))*spec.ellipe(k) - spec.ellipk(k)) + elif orientation == "z": + return ( I/(2*np.pi* np.sqrt(x3**2 + (a + s)**2)))*(((a**2 - x3**2 - s**2)/(x3**2 + (s-a)**2))*spec.ellipe(k) + spec.ellipk(k)) + + class HarmonicLineSource(BaseSrc): src_path = properties.Array( From 89783878d17b95f1e2f93a710b737386d090d2b3 Mon Sep 17 00:00:00 2001 From: dccowan Date: Sat, 30 May 2020 15:54:02 -0700 Subject: [PATCH 10/54] base TD inversion possible --- .../examples/EM1DTM_inversion_layers.ipynb | 424 ++++++++++++++++++ simpegEM1D/Survey.py | 13 + 2 files changed, 437 insertions(+) create mode 100644 notebooks/examples/EM1DTM_inversion_layers.ipynb diff --git a/notebooks/examples/EM1DTM_inversion_layers.ipynb b/notebooks/examples/EM1DTM_inversion_layers.ipynb new file mode 100644 index 0000000..650c8b0 --- /dev/null +++ b/notebooks/examples/EM1DTM_inversion_layers.ipynb @@ -0,0 +1,424 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + } + ], + "source": [ + "from SimPEG import *\n", + "from simpegEM1D.simulation import EM1DTMSimulation\n", + "from simpegEM1D.survey import EM1DSurveyTD\n", + "from simpegEM1D.sources import *\n", + "from simpegEM1D.receivers import *\n", + "from simpegEM1D import analytics, Utils1D\n", + "from simpegEM1D.EM1DSimulation import *\n", + "\n", + "from simpegEM1D import skytem_HM_2015\n", + "import numpy as np\n", + "%pylab inline\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "times = np.logspace(-5, -2, 31)\n", + "rx_location = np.array([0., 0., 100.+30.])\n", + "src_location = np.array([0., 0., 100.+30.])\n", + "\n", + "I = 1.\n", + "a = 13.\n", + "\n", + "wave_type = \"stepoff\"\n", + "\n", + "# Receiver list\n", + "receiver_list = [\n", + " TimeDomainPointReceiver(\n", + " rx_location, times, orientation=\"z\", component=\"dbdt\"\n", + " )\n", + "]\n", + "\n", + "source_list = [\n", + " TimeDomainHorizontalLoopSource(\n", + " receiver_list=receiver_list, location=src_location, a=a, I=I,\n", + " base_frequency = 25., use_lowpass_filter=False, high_cut_frequency=210*1e3\n", + " )\n", + "]\n", + "\n", + "\n", + "TDsurvey = EM1DSurveyTD(source_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "sig_half = 1e-1\n", + "sig_blk = sig_half * 20.\n", + "chi_half = 0.\n", + "\n", + "hz = get_vertical_discretization_time(times, facter_tmax=0.5, factor_tmin=10., n_layer=19)\n", + "mesh1D = set_mesh_1d(hz)\n", + "depth = -mesh1D.gridN[:-1]\n", + "LocSigZ = -mesh1D.gridCC\n", + "nlay = depth.size\n", + "topo = np.r_[0., 0., 100.]\n", + "\n", + "sig = np.ones(nlay)*sig_half\n", + "blk_ind = (-30>LocSigZ) & (-70]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = subplots(1,1, figsize=(5, 8))\n", + "Utils1D.plotLayer(sig, mesh1D, showlayers=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-4.33201110e-02 -3.74342148e-02 -3.21944429e-02 -2.74832496e-02\n", + " -2.31673558e-02 -1.91405535e-02 -1.53723456e-02 -1.19200707e-02\n", + " -8.89247606e-03 -6.39192125e-03 -4.46682573e-03 -3.09079433e-03\n", + " -2.17200300e-03 -1.58589851e-03 -1.21341381e-03 -9.65658351e-04\n", + " -7.88243222e-04 -6.52425842e-04 -5.44257515e-04 -4.57288388e-04\n", + " -3.88241761e-04 -3.34143659e-04 -2.91049718e-04 -2.54543505e-04\n", + " -2.21031500e-04 -1.88585636e-04 -1.56868139e-04 -1.26515469e-04\n", + " -9.85265155e-05 -7.38469377e-05 -5.31411525e-05]\n", + "Wall time: 51.1 ms\n" + ] + } + ], + "source": [ + "%%time\n", + "sim = EM1DTMSimulation(\n", + " mesh1D, survey=TDsurvey, sigmaMap=expmap, verbose=False\n", + ")\n", + "sim.chi = np.zeros(nlay)\n", + "d_true = sim.dpred(m_true)\n", + "print(d_true)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = subplots(1,1, figsize = (7,5))\n", + "axes.plot(times, -d_true, '.-')\n", + "axes.set_xscale('log');\n", + "axes.set_yscale('log');" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "np.random.seed(1)\n", + "std = 0.05\n", + "noise = std*abs(d_true)*np.random.randn(len(d_true))\n", + "d_obs = d_true + noise\n", + "floor = 0.\n", + "std = 0.07\n", + "uncert = abs(d_obs)*std+floor\n", + "dataObj = data.Data(TDsurvey, dobs=d_obs, noise_floor=uncert)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = subplots(1,1, figsize = (7,5))\n", + "axes.plot(times, -d_true, 'b.-')\n", + "axes.plot(times, -d_obs, 'r.-')\n", + "axes.set_xscale('log');\n", + "axes.set_yscale('log');" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "dmisfit = data_misfit.L2DataMisfit(dataObj, sim)\n", + "dmisfit.W = utils.sdiag(1/uncert)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "m0 = np.log(np.ones_like(sig)*sig_half)\n", + "d_0 = sim.dpred(m0)\n", + "# delta = prob.get_threshold(uncert)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "reg = regularization.Sparse(\n", + " mesh1D,\n", + " mapping=maps.IdentityMap(mesh1D),\n", + " alpha_s=1.,\n", + " alpha_x=1.\n", + ")\n", + "p = 0\n", + "qx, qz = 2., 2.\n", + "reg.norms = np.c_[p, qx, qz, 0.]\n", + "IRLS = directives.Update_IRLS(\n", + " max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2,\n", + " chifact_start = 1.\n", + ")\n", + "opt = optimization.ProjectedGNCG(maxIter = 25)\n", + "invProb = inverse_problem.BaseInvProblem(dmisfit, reg, opt)\n", + "beta = directives.BetaSchedule(coolingFactor=2., coolingRate=1)\n", + "betaest = directives.BetaEstimate_ByEig(beta0_ratio=1e0)\n", + "target = directives.TargetMisfit()\n", + "# update_sense = Directives.UpdateSensitivityWeights(threshold=delta)\n", + "# inv = Inversion.BaseInversion(invProb, directiveList=[IRLS, betaest])\n", + "inv = inversion.BaseInversion(invProb, directiveList=[beta, betaest, target])\n", + "# prob.counter = opt.counter = Utils.Counter()\n", + "opt.LSshorten = 0.5\n", + "opt.remember('xc')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + "model has any nan: 0\n", + "=============================== Projected GNCG ===============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 4.37e-01 1.92e+03 0.00e+00 1.92e+03 8.80e+02 0 \n", + " 1 2.18e-01 2.63e+02 2.04e+02 3.07e+02 2.10e+02 0 \n", + " 2 1.09e-01 1.33e+02 2.90e+02 1.65e+02 1.62e+02 0 \n", + " 3 5.46e-02 1.03e+02 1.31e+02 1.10e+02 1.59e+02 0 \n", + " 4 2.73e-02 3.35e+01 2.74e+02 4.10e+01 1.11e+02 0 \n", + " 5 1.36e-02 1.82e+01 2.11e+02 2.11e+01 5.09e+01 0 \n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 1.9163e+02\n", + "1 : |xc-x_last| = 6.4219e-01 <= tolX*(1+|x0|) = 1.1037e+00\n", + "0 : |proj(x-g)-x| = 5.0905e+01 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 5.0905e+01 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 25 <= iter = 6\n", + "------------------------- DONE! -------------------------\n", + "Wall time: 3.17 s\n" + ] + } + ], + "source": [ + "%%time\n", + "mopt = inv.run(m0)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# opt.counter.summary()\n", + "# xc = opt.recall('xc')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = subplots(1,1, figsize=(5, 8))\n", + "Utils1D.plotLayer(sig, mesh1D)\n", + "Utils1D.plotLayer(expmap*mopt, mesh1D, showlayers=False, **{'color':'r'})\n", + "# Utils1D.plotLayer(expmap*invProb.l2model, mesh1D, showlayers=False, **{'color':'b', 'lw':1.})" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "fig, axes = plt.subplots(1,1, figsize = (7,5))\n", + "axes.plot(times, -invProb.dpred, 'b-')\n", + "axes.plot(times, -d_obs, 'bx')\n", + "axes.set_xscale('log');\n", + "axes.set_yscale('log');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index c021fd0..9ec5f0a 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -76,7 +76,20 @@ def __init__(self, source_list=None, **kwargs): self.fftfilt = filters.key_81_CosSin_2009() + @property + def nD(self): + """ + # of data + + """ + nD = 0 + + for src in self.source_list: + for rx in src.receiver_list: + nD += len(rx.times) + + return int(nD) @property From 8bf12fd94868ff267460483d40c2b301ae809d5e Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 2 Jun 2020 14:32:12 -0700 Subject: [PATCH 11/54] Get forward simulation with general waveforms to work --- notebooks/examples/EM1DFM_forward.ipynb | 37 +- ...M1D_simulation_skytem_lowpass_filter.ipynb | 2 +- simpegEM1D/EM1DSimulation_original.py | 208 ++++ simpegEM1D/simulation.py | 134 ++- simpegEM1D/simulation_stitched1d_original.py | 980 ++++++++++++++++++ simpegEM1D/supporting_functions/kernels.py | 51 +- tutorials/plot_1_fdem_fwd.py | 187 ++++ tutorials/plot_1_tdem_fwd.py | 199 ++++ tutorials/plot_1_tdem_fwd_waveforms.py | 243 +++++ 9 files changed, 1943 insertions(+), 98 deletions(-) create mode 100644 simpegEM1D/EM1DSimulation_original.py create mode 100644 simpegEM1D/simulation_stitched1d_original.py create mode 100644 tutorials/plot_1_fdem_fwd.py create mode 100644 tutorials/plot_1_tdem_fwd.py create mode 100644 tutorials/plot_1_tdem_fwd_waveforms.py diff --git a/notebooks/examples/EM1DFM_forward.ipynb b/notebooks/examples/EM1DFM_forward.ipynb index f4051f7..c23606d 100644 --- a/notebooks/examples/EM1DFM_forward.ipynb +++ b/notebooks/examples/EM1DFM_forward.ipynb @@ -44,7 +44,25 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0.00000000e+00 -1.00000000e-01 -4.16227766e-01 -1.41622777e+00\n", + " -4.57850543e+00 -1.45785054e+01 -2.45785054e+01 -3.74940021e+01\n", + " -5.41750074e+01 -7.57193543e+01 -1.03544948e+02 -1.39483085e+02\n", + " -1.85898973e+02 -2.45847398e+02 -3.23273767e+02]\n", + "[ 0.1 0.31622777 1. 3.16227766 10. 10.\n", + " 12.91549665 16.68100537 21.5443469 27.82559402 35.93813664 46.41588834\n", + " 59.94842503 77.42636827]\n", + "[-0.00000000e+00 -1.00000000e-01 -4.16227766e-01 -1.41622777e+00\n", + " -4.57850543e+00 -1.45785054e+01 -2.45785054e+01 -3.74940021e+01\n", + " -5.41750074e+01 -7.57193543e+01 -1.03544948e+02 -1.39483085e+02\n", + " -1.85898973e+02 -2.45847398e+02 -3.23273767e+02]\n" + ] + } + ], "source": [ "nearthick = np.logspace(-1, 1, 5)\n", "deepthick = np.logspace(1, 2, 10)\n", @@ -53,7 +71,10 @@ "depth = -mesh1D.gridN[:-1]\n", "LocSigZ = -mesh1D.gridCC\n", "nlay = depth.size\n", - "topo = np.r_[0., 0., 0.]" + "topo = np.r_[0., 0., 0.]\n", + "print(depth)\n", + "print(-np.diff(depth))\n", + "print(-mesh1D.gridN[0:-1])" ] }, { @@ -186,6 +207,8 @@ "name": "stdout", "output_type": "stream", "text": [ + "SAD I DIDN'T FIND IT\n", + "SAD I DIDN'T FIND IT\n", "(122,)\n", "[-5.46799058e-17 -1.16896402e-16 -2.50681887e-16 -5.38655317e-16\n", " -1.15903476e-15 -2.49280581e-15 -5.35440132e-15 -1.14648491e-14\n", @@ -224,7 +247,7 @@ "source": [ "# Conductivity\n", "simFD = EM1DFMSimulation(\n", - " mesh1D, survey=FDsurvey, sigmaMap=Expmap,\n", + " survey=FDsurvey, depth=depth , sigmaMap=Expmap,\n", " chi=np.zeros(nlay)\n", ")\n", "\n", @@ -243,6 +266,8 @@ "name": "stdout", "output_type": "stream", "text": [ + "SAD I DIDN'T FIND IT\n", + "SAD I DIDN'T FIND IT\n", "(122,)\n", "[ 5.53757290e-15 1.13879984e-14 2.33869700e-14 4.80265611e-14\n", " 9.85321185e-14 2.01925484e-13 4.13070866e-13 8.42699459e-13\n", @@ -281,7 +306,7 @@ "source": [ "# Frequency-dependent conductivity\n", "simCole = EM1DFMSimulation(\n", - " mesh1D, survey=Colesurvey, depth=depth, sigmaMap=Expmap,\n", + " survey=Colesurvey, depth=depth, sigmaMap=Expmap,\n", " eta=eta, tau=tau, c=c,\n", " chi=np.zeros(nlay)\n", ")\n", @@ -310,7 +335,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -347,7 +372,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, diff --git a/notebooks/examples/EM1D_simulation_skytem_lowpass_filter.ipynb b/notebooks/examples/EM1D_simulation_skytem_lowpass_filter.ipynb index 7c566cb..c173811 100644 --- a/notebooks/examples/EM1D_simulation_skytem_lowpass_filter.ipynb +++ b/notebooks/examples/EM1D_simulation_skytem_lowpass_filter.ipynb @@ -169,7 +169,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.7.4" } }, "nbformat": 4, diff --git a/simpegEM1D/EM1DSimulation_original.py b/simpegEM1D/EM1DSimulation_original.py new file mode 100644 index 0000000..3093872 --- /dev/null +++ b/simpegEM1D/EM1DSimulation_original.py @@ -0,0 +1,208 @@ +import numpy as np +from discretize import TensorMesh +from SimPEG import maps, utils +from .analytics import skin_depth, diffusion_distance +from .simulation import EM1DFMSimulation, EM1DTMSimulation +from .survey import EM1DSurveyFD, EM1DSurveyTD + + +def get_vertical_discretization_frequency( + frequency, sigma_background=0.01, + factor_fmax=4, factor_fmin=1., n_layer=19, + hz_min=None, z_max=None +): + if hz_min is None: + hz_min = skin_depth(frequency.max(), sigma_background) / factor_fmax + if z_max is None: + z_max = skin_depth(frequency.min(), sigma_background) * factor_fmin + i = 4 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + + while z_sum < z_max: + i += 1 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + return hz + + +def get_vertical_discretization_time( + time, sigma_background=0.01, + factor_tmin=4, facter_tmax=1., n_layer=19, + hz_min=None, z_max=None +): + if hz_min is None: + hz_min = diffusion_distance(time.min(), sigma_background) / factor_tmin + if z_max is None: + z_max = diffusion_distance(time.max(), sigma_background) * facter_tmax + i = 4 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + while z_sum < z_max: + i += 1 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + return hz + + +def set_mesh_1d(hz): + return TensorMesh([hz], x0=[0]) + + +def run_simulation_FD(args): + """ + args + + rx_location: Recevier location (x, y, z) + src_location: Source location (x, y, z) + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + offset: Source-Receiver offset + frequency: Frequency (Hz) + field_type: + rx_type: + src_type: + sigma: + jac_switch : + """ + + rx_location, src_location, topo, hz, offset, frequency, field_type, rx_type, src_type, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + mesh_1d = set_mesh_1d(hz) + depth = -mesh_1d.gridN[:-1] + FDsurvey = EM1DSurveyFD( + rx_location=rx_location, + src_location=src_location, + topo=topo, + frequency=frequency, + offset=offset, + field_type=field_type, + rx_type=rx_type, + src_type=src_type, + depth=depth, + half_switch=half_switch + ) + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + expmap = maps.ExpMap(mesh_1d) + sim = EM1DFMSimulation( + mesh_1d, survey=FDsurvey, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', + eta=eta, tau=tau, c=c + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + # return utils.mkvc(drespdsig) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) + expmap = maps.ExpMap(mesh_1d) + sigmaMap = expmap * wires.sigma + sim = EM1DFMSimulation( + mesh_1d, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', + eta=eta, tau=tau, c=c + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + # return utils.mkvc(drespdsig) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + + +def run_simulation_TD(args): + """ + args + + rx_location: Recevier location (x, y, z) + src_location: Source location (x, y, z) + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + time: Time (s) + field_type: 'secondary' + rx_type: + src_type: + wave_type: + offset: Source-Receiver offset (for VMD) + a: Source-loop radius (for Circular Loop) + time_input_currents: + input_currents: + n_pulse: + base_frequency: + sigma: + jac_switch: + """ + + rx_location, src_location, topo, hz, time, field_type, rx_type, src_type, wave_type, offset, a, time_input_currents, input_currents, n_pulse, base_frequency, use_lowpass_filter, high_cut_frequency, moment_type, time_dual_moment, time_input_currents_dual_moment, input_currents_dual_moment, base_frequency_dual_moment, sigma, eta, tau, c, h, jac_switch, invert_height, half_switch = args + + mesh_1d = set_mesh_1d(hz) + depth = -mesh_1d.gridN[:-1] + TDsurvey = EM1DSurveyTD( + rx_location=rx_location, + src_location=src_location, + topo=topo, + depth=depth, + time=time, + field_type=field_type, + rx_type=rx_type, + src_type=src_type, + wave_type=wave_type, + offset=offset, + a=a, + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse=n_pulse, + base_frequency=base_frequency, + high_cut_frequency=high_cut_frequency, + moment_type=moment_type, + time_dual_moment=time_dual_moment, + time_input_currents_dual_moment=time_input_currents_dual_moment, + input_currents_dual_moment=input_currents_dual_moment, + base_frequency_dual_moment=base_frequency_dual_moment, + half_switch=half_switch, + ) + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + expmap = maps.ExpMap(mesh_1d) + sim = EM1DTMSimulation( + mesh_1d, survey=TDsurvey, sigmaMap=expmap, hankel_filter='key_101_2009', + eta=eta, tau=tau, c=c + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) + expmap = maps.ExpMap(mesh_1d) + sigmaMap = expmap * wires.sigma + sim = EM1DTMSimulation( + mesh_1d, survey=TDsurvey, sigmaMap=sigmaMap, hMap=wires.h, + hankel_filter='key_101_2009', + eta=eta, tau=tau, c=c + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 9c3fc38..2a3ab20 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -14,6 +14,11 @@ from empymod.transform import dlf, fourier_dlf, get_dlf_points from empymod.utils import check_hankel +from .Waveforms import ( + piecewise_pulse_fast, + butterworth_type_filter, butter_lowpass_filter +) + @@ -75,10 +80,14 @@ class BaseEM1DSimulation(BaseSimulation): half_switch = properties.Bool("Switch for half-space", default=False) - depth = properties.Array("Depth of the layers", dtype=float) + # depth = properties.Array("Depth of the layers", dtype=float, required=True) + # Add layer thickness as invertible property + thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( + "thicknesses of the layers" + ) - def __init__(self, mesh, **kwargs): - BaseSimulation.__init__(self, mesh, **kwargs) + def __init__(self, **kwargs): + BaseSimulation.__init__(self, **kwargs) # Check input arguments. If self.hankel_filter is not a valid filter, # it will set it to the default (key_201_2009). @@ -97,10 +106,6 @@ def __init__(self, mesh, **kwargs): if self.verbose: print(">> Use "+self.hankel_filter+" filter for Hankel Transform") - self.depth = -mesh.gridN[0:-1] - - # if self.hankel_pts_per_dec != 0: - # raise NotImplementedError() # @property # def h(self): @@ -120,7 +125,7 @@ def n_layer(self): number of layers """ if self.half_switch is False: - return self.depth.size + return int(self.thicknesses.size + 1) elif self.half_switch is True: return int(1) @@ -185,6 +190,11 @@ def n_filter(self): """ Length of filter """ return self.fhtfilt.base.size + def depth(self): + if self.thicknesses is not None: + return np.r_[0., -np.cumsum(self.thicknesses)] + + def compute_integral(self, m, output_type='response'): """ @@ -194,8 +204,8 @@ def compute_integral(self, m, output_type='response'): # Set evaluation frequencies for time domain if isinstance(self.survey, EM1DSurveyTD): # self.set_time_intervals() # SOMETHING IS UP WITH THIS - self.set_frequencies() - self.intervals_are_set = True + if self.frequencies_are_set is False: + self.set_frequencies() # Physical Properties self.model = m @@ -205,7 +215,6 @@ def compute_integral(self, m, output_type='response'): chi = np.ones_like(self.sigma) * self.chi n_layer = self.n_layer - depth = self.depth # Source heights if self.hMap is not None: @@ -262,7 +271,7 @@ def compute_integral(self, m, output_type='response'): if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): hz = hz_kernel_vertical_magnetic_dipole( self, lambd, f, n_layer, - sig, chi, depth, h, z, + sig, chi, h, z, flag, I, output_type=output_type ) @@ -273,7 +282,7 @@ def compute_integral(self, m, output_type='response'): elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): hz = hz_kernel_circular_loop( self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, + sig, chi, h, z, I, r, flag, output_type=output_type ) @@ -286,7 +295,7 @@ def compute_integral(self, m, output_type='response'): # Need to compute y hz = hz_kernel_horizontal_electric_dipole( self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, + sig, chi, h, z, I, r, flag, output_type=output_type ) # kernels for each bessel function @@ -302,7 +311,7 @@ def compute_integral(self, m, output_type='response'): if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): hz = hz_kernel_vertical_magnetic_dipole( self, lambd, f, n_layer, - sig, chi, depth, h, z, + sig, chi, h, z, flag, I, output_type=output_type ) @@ -312,7 +321,7 @@ def compute_integral(self, m, output_type='response'): hz = hz_kernel_circular_loop( self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, + sig, chi, h, z, I, r, flag, output_type=output_type ) @@ -329,7 +338,7 @@ def compute_integral(self, m, output_type='response'): if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): hz = hz_kernel_vertical_magnetic_dipole( self, lambd, f, n_layer, - sig, chi, depth, h, z, + sig, chi, h, z, flag, I, output_type=output_type ) @@ -339,7 +348,7 @@ def compute_integral(self, m, output_type='response'): hz = hz_kernel_circular_loop( self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, + sig, chi, h, z, I, r, flag, output_type=output_type ) @@ -512,8 +521,8 @@ def get_JtJdiag(self, uncert): class EM1DFMSimulation(BaseEM1DSimulation): - def __init__(self, mesh, **kwargs): - BaseEM1DSimulation.__init__(self, mesh, **kwargs) + def __init__(self, **kwargs): + BaseEM1DSimulation.__init__(self, **kwargs) def projectFields(self, u): @@ -551,53 +560,50 @@ def projectFields(self, u): class EM1DTMSimulation(BaseEM1DSimulation): - intervals_are_set = False + time_intervals_are_set = False + frequencies_are_set = False - def __init__(self, mesh, **kwargs): - BaseEM1DSimulation.__init__(self, mesh, **kwargs) + def __init__(self, **kwargs): + BaseEM1DSimulation.__init__(self, **kwargs) self.fftfilt = filters.key_81_CosSin_2009() - - - - - - - def set_time_intervals(self): """ Set time interval for particular receiver """ for src in self.survey.source_list: - for rx in src.receiver_list: - - if src.moment_type == "single": - time = rx.times - pulse_period = src.pulse_period - period = src.period - # Dual moment - else: - time = np.unique(np.r_[rx.times, src.time_dual_moment]) - pulse_period = np.maximum( - src.pulse_period, src.pulse_period_dual_moment + if src.wave_type == "general": + for rx in src.receiver_list: + + if src.moment_type == "single": + time = rx.times + pulse_period = src.pulse_period + period = src.period + # Dual moment + else: + time = np.unique(np.r_[rx.times, src.time_dual_moment]) + pulse_period = np.maximum( + src.pulse_period, src.pulse_period_dual_moment + ) + period = np.maximum(src.period, src.period_dual_moment) + tmin = time[time>0.].min() + if src.n_pulse == 1: + tmax = time.max() + pulse_period + elif src.n_pulse == 2: + tmax = time.max() + pulse_period + period/2. + else: + raise NotImplementedError("n_pulse must be either 1 or 2") + n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) + + rx.time_interval = np.logspace( + np.log10(tmin), np.log10(tmax), n_time ) - period = np.maximum(src.period, src.period_dual_moment) - tmin = time[time>0.].min() - if src.n_pulse == 1: - tmax = time.max() + pulse_period - elif src.n_pulse == 2: - tmax = time.max() + pulse_period + period/2. - else: - raise NotImplementedError("n_pulse must be either 1 or 2") - n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) - - rx.time_interval = np.logspace( - np.log10(tmin), np.log10(tmax), n_time - ) + + self.time_intervals_are_set = True # print (tmin, tmax) @@ -605,10 +611,13 @@ def set_frequencies(self, pts_per_dec=-1): """ Compute Frequency reqired for frequency to time transform """ + + if self.time_intervals_are_set == False: + self.set_time_intervals() for src in self.survey.source_list: for rx in src.receiver_list: - + if src.wave_type == "general": _, freq, ft, ftarg = check_time( rx.time_interval, -1, 'dlf', @@ -625,20 +634,7 @@ def set_frequencies(self, pts_per_dec=-1): rx.frequencies = freq rx.ftarg = ftarg - - - - - - - - - - - - - - + self.frequencies_are_set = True def projectFields(self, u): diff --git a/simpegEM1D/simulation_stitched1d_original.py b/simpegEM1D/simulation_stitched1d_original.py new file mode 100644 index 0000000..c72f0f0 --- /dev/null +++ b/simpegEM1D/simulation_stitched1d_original.py @@ -0,0 +1,980 @@ +try: + from multiprocessing import Pool +except ImportError: + print("multiprocessing is not available") + PARALLEL = False +else: + PARALLEL = True + import multiprocessing + +import numpy as np +import scipy.sparse as sp +from SimPEG import props, utils, maps, survey +from SimPEG.simulation import BaseSimulation +from SimPEG.survey import BaseSurvey +from .survey import EM1DSurveyFD, EM1DSurveyTD +from .EM1DSimulation import run_simulation_FD, run_simulation_TD +import properties +import warnings + + +def dot(args): + return np.dot(args[0], args[1]) + + +class GlobalEM1DSimulation(BaseSimulation): + """ + The GlobalProblem allows you to run a whole bunch of SubProblems, + potentially in parallel, potentially of different meshes. + This is handy for working with lots of sources, + """ + sigma, sigmaMap, sigmaDeriv = props.Invertible( + "Electrical conductivity (S/m)" + ) + + h, hMap, hDeriv = props.Invertible( + "Receiver Height (m), h > 0", + ) + + chi = props.PhysicalProperty( + "Magnetic susceptibility (H/m)", + ) + + eta = props.PhysicalProperty( + "Electrical chargeability (V/V), 0 <= eta < 1" + ) + + tau = props.PhysicalProperty( + "Time constant (s)" + ) + + c = props.PhysicalProperty( + "Frequency Dependency, 0 < c < 1" + ) + + _Jmatrix_sigma = None + _Jmatrix_height = None + run_simulation = None + n_cpu = None + hz = None + parallel = False + parallel_jvec_jtvec = False + verbose = False + fix_Jmatrix = False + invert_height = None + + def __init__(self, mesh, **kwargs): + utils.setKwargs(self, **kwargs) + self.mesh = mesh + if PARALLEL: + if self.parallel: + print(">> Use multiprocessing for parallelization") + if self.n_cpu is None: + self.n_cpu = multiprocessing.cpu_count() + print((">> n_cpu: %i") % (self.n_cpu)) + else: + print(">> Serial version is used") + else: + print(">> Serial version is used") + if self.hz is None: + raise Exception("Input vertical thickness hz !") + if self.hMap is None: + self.invert_height = False + else: + self.invert_height = True + + # ------------- For survey ------------- # + @property + def n_layer(self): + return self.hz.size + + @property + def n_sounding(self): + return self.survey.n_sounding + + @property + def rx_locations(self): + return self.survey.rx_locations + + @property + def src_locations(self): + return self.survey.src_locations + + @property + def data_index(self): + return self.survey.data_index + + @property + def topo(self): + return self.survey.topo + + @property + def offset(self): + return self.survey.offset + + @property + def a(self): + return self.survey.a + + @property + def I(self): + return self.survey.I + + @property + def field_type(self): + return self.survey.field_type + + @property + def rx_type(self): + return self.survey.rx_type + + @property + def src_type(self): + return self.survey.src_type + + @property + def half_switch(self): + return self.survey.half_switch + + # ------------- For physical properties ------------- # + @property + def Sigma(self): + if getattr(self, '_Sigma', None) is None: + # Ordering: first z then x + self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) + return self._Sigma + + @property + def Chi(self): + if getattr(self, '_Chi', None) is None: + # Ordering: first z then x + if self.chi is None: + self._Chi = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) + return self._Chi + + @property + def Eta(self): + if getattr(self, '_Eta', None) is None: + # Ordering: first z then x + if self.eta is None: + self._Eta = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Eta = self.eta.reshape((self.n_sounding, self.n_layer)) + return self._Eta + + @property + def Tau(self): + if getattr(self, '_Tau', None) is None: + # Ordering: first z then x + if self.tau is None: + self._Tau = 1e-3*np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Tau = self.tau.reshape((self.n_sounding, self.n_layer)) + return self._Tau + + @property + def C(self): + if getattr(self, '_C', None) is None: + # Ordering: first z then x + if self.c is None: + self._C = np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._C = self.c.reshape((self.n_sounding, self.n_layer)) + return self._C + + @property + def JtJ_sigma(self): + return self._JtJ_sigma + + def JtJ_height(self): + return self._JtJ_height + + @property + def H(self): + if self.hMap is None: + return np.ones(self.n_sounding) + else: + return self.h + + @property + def Sigma(self): + if getattr(self, '_Sigma', None) is None: + # Ordering: first z then x + self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) + return self._Sigma + + # ------------- Etcetra .... ------------- # + @property + def IJLayers(self): + if getattr(self, '_IJLayers', None) is None: + # Ordering: first z then x + self._IJLayers = self.set_ij_n_layer() + return self._IJLayers + + @property + def IJHeight(self): + if getattr(self, '_IJHeight', None) is None: + # Ordering: first z then x + self._IJHeight = self.set_ij_n_layer(n_layer=1) + return self._IJHeight + + # ------------- For physics ------------- # + def fields(self, m): + if self.verbose: + print("Compute fields") + + return self.forward(m) + + def dpred(self, m, f=None): + """ + Return predicted data. + Predicted data, (`_pred`) are computed when + self.fields is called. + """ + if f is None: + f = self.fields(m) + + return f + + def forward(self, m): + self.model = m + + if self.verbose: + print(">> Compute response") + + if self.survey.__class__ == GlobalEM1DSurveyFD: + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + # This assumes the same # of layer for each of soundings + result = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch='forward') for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + else: + result = [ + run_simulation(self.input_args(i, jac_switch='forward')) for i in range(self.n_sounding) + ] + return np.hstack(result) + + def set_ij_n_layer(self, n_layer=None): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + if n_layer is None: + m = self.n_layer + else: + m = n_layer + + for i in range(self.survey.n_sounding): + n = self.survey.nD_vec[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + def set_ij_height(self): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + m = self.n_layer + for i in range(n_sounding): + n = self.survey.nD_vec[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + + def getJ_sigma(self, m): + """ + Compute d F / d sigma + """ + if self._Jmatrix_sigma is not None: + return self._Jmatrix_sigma + if self.verbose: + print(">> Compute J sigma") + self.model = m + + if self.survey.__class__ == GlobalEM1DSurveyFD: + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + self._Jmatrix_sigma = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch='sensitivity_sigma') for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + if self.parallel_jvec_jtvec is False: + # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() + self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) + # self._JtJ_sigma_diag = + self._Jmatrix_sigma = sp.coo_matrix( + (self._Jmatrix_sigma, self.IJLayers), dtype=float + ).tocsr() + else: + # _Jmatrix_sigma is block diagnoal matrix (sparse) + # self._Jmatrix_sigma = sp.block_diag( + # [ + # run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + # ] + # ).tocsr() + self._Jmatrix_sigma = [ + run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + ] + self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) + self._Jmatrix_sigma = sp.coo_matrix( + (self._Jmatrix_sigma, self.IJLayers), dtype=float + ).tocsr() + + return self._Jmatrix_sigma + + def getJ_height(self, m): + """ + Compute d F / d height + """ + if self.hMap is None: + return utils.Zero() + + if self._Jmatrix_height is not None: + return self._Jmatrix_height + if self.verbose: + print(">> Compute J height") + + self.model = m + + if self.survey.__class__ == GlobalEM1DSurveyFD: + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + self._Jmatrix_height = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch="sensitivity_height") for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + if self.parallel_jvec_jtvec is False: + # self._Jmatrix_height = sp.block_diag(self._Jmatrix_height).tocsr() + self._Jmatrix_height = np.hstack(self._Jmatrix_height) + self._Jmatrix_height = sp.coo_matrix( + (self._Jmatrix_height, self.IJHeight), dtype=float + ).tocsr() + else: + # self._Jmatrix_height = sp.block_diag( + # [ + # run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + # ] + # ).tocsr() + self._Jmatrix_height = [ + run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + ] + self._Jmatrix_height = np.hstack(self._Jmatrix_height) + self._Jmatrix_height = sp.coo_matrix( + (self._Jmatrix_height, self.IJHeight), dtype=float + ).tocsr() + + return self._Jmatrix_height + + def Jvec(self, m, v, f=None): + J_sigma = self.getJ_sigma(m) + J_height = self.getJ_height(m) + # This is deprecated at the moment + # if self.parallel and self.parallel_jvec_jtvec: + # # Extra division of sigma is because: + # # J_sigma = dF/dlog(sigma) + # # And here sigmaMap also includes ExpMap + # v_sigma = utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) + # V_sigma = v_sigma.reshape((self.n_sounding, self.n_layer)) + + # pool = Pool(self.n_cpu) + # Jv = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i], V_sigma[i, :]) for i in range(self.n_sounding)] + # ) + # ) + # if self.hMap is not None: + # v_height = self.hMap.deriv(m, v) + # V_height = v_height.reshape((self.n_sounding, self.n_layer)) + # Jv += np.hstack( + # pool.map( + # dot, + # [(J_height[i], V_height[i, :]) for i in range(self.n_sounding)] + # ) + # ) + # pool.close() + # pool.join() + # else: + Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) + if self.hMap is not None: + Jv += J_height*(self.hDeriv * v) + return Jv + + def Jtvec(self, m, v, f=None): + J_sigma = self.getJ_sigma(m) + J_height = self.getJ_height(m) + # This is deprecated at the moment + # if self.parallel and self.parallel_jvec_jtvec: + # pool = Pool(self.n_cpu) + # Jtv = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] + # ) + # ) + # if self.hMap is not None: + # Jtv_height = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] + # ) + # ) + # # This assumes certain order for model, m = (sigma, height) + # Jtv = np.hstack((Jtv, Jtv_height)) + # pool.close() + # pool.join() + # return Jtv + # else: + # Extra division of sigma is because: + # J_sigma = dF/dlog(sigma) + # And here sigmaMap also includes ExpMap + Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) + if self.hMap is not None: + Jtv += self.hDeriv.T*(J_height.T*v) + return Jtv + + def getJtJdiag(self, m, W=None, threshold=1e-8): + """ + Compute diagonal component of JtJ or + trace of sensitivity matrix (J) + """ + J_sigma = self.getJ_sigma(m) + J_matrix = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) + + if self.hMap is not None: + J_height = self.getJ_height(m) + J_matrix += J_height*self.hDeriv + + if W is None: + W = utils.speye(J_matrix.shape[0]) + + J_matrix = W*J_matrix + JtJ_diag = (J_matrix.T*J_matrix).diagonal() + JtJ_diag /= JtJ_diag.max() + JtJ_diag += threshold + return JtJ_diag + + @property + def deleteTheseOnModelUpdate(self): + toDelete = [] + if self.sigmaMap is not None: + toDelete += ['_Sigma'] + if self.fix_Jmatrix is False: + if self._Jmatrix_sigma is not None: + toDelete += ['_Jmatrix_sigma'] + if self._Jmatrix_height is not None: + toDelete += ['_Jmatrix_height'] + return toDelete + + +class GlobalEM1DSimulationFD(GlobalEM1DSimulation): + + def run_simulation(self, args): + if self.verbose: + print(">> Frequency-domain") + return run_simulation_FD(args) + + @property + def frequency(self): + return self.survey.frequency + + @property + def switch_real_imag(self): + return self.survey.switch_real_imag + + def input_args(self, i_sounding, jac_switch='forward'): + output = ( + self.rx_locations[i_sounding, :], + self.src_locations[i_sounding, :], + self.topo[i_sounding, :], + self.hz, + self.offset, + self.frequency, + self.field_type, + self.rx_type, + self.src_type, + self.Sigma[i_sounding, :], + self.Eta[i_sounding, :], + self.Tau[i_sounding, :], + self.C[i_sounding, :], + self.Chi[i_sounding, :], + self.H[i_sounding], + jac_switch, + self.invert_height, + self.half_switch + ) + return output + + +class GlobalEM1DSimulationTD(GlobalEM1DSimulation): + + @property + def wave_type(self): + return self.survey.wave_type + + @property + def input_currents(self): + return self.survey.input_currents + + @property + def time_input_currents(self): + return self.survey.time_input_currents + + @property + def n_pulse(self): + return self.survey.n_pulse + + @property + def base_frequency(self): + return self.survey.base_frequency + + @property + def time(self): + return self.survey.time + + @property + def use_lowpass_filter(self): + return self.survey.use_lowpass_filter + + @property + def high_cut_frequency(self): + return self.survey.high_cut_frequency + + @property + def moment_type(self): + return self.survey.moment_type + + @property + def time_dual_moment(self): + return self.survey.time_dual_moment + + @property + def time_input_currents_dual_moment(self): + return self.survey.time_input_currents_dual_moment + + @property + def input_currents_dual_moment(self): + return self.survey.input_currents_dual_moment + + @property + def base_frequency_dual_moment(self): + return self.survey.base_frequency_dual_moment + + def input_args(self, i_sounding, jac_switch='forward'): + output = ( + self.rx_locations[i_sounding, :], + self.src_locations[i_sounding, :], + self.topo[i_sounding, :], + self.hz, + self.time[i_sounding], + self.field_type[i_sounding], + self.rx_type[i_sounding], + self.src_type[i_sounding], + self.wave_type[i_sounding], + self.offset[i_sounding], + self.a[i_sounding], + self.time_input_currents[i_sounding], + self.input_currents[i_sounding], + self.n_pulse[i_sounding], + self.base_frequency[i_sounding], + self.use_lowpass_filter[i_sounding], + self.high_cut_frequency[i_sounding], + self.moment_type[i_sounding], + self.time_dual_moment[i_sounding], + self.time_input_currents_dual_moment[i_sounding], + self.input_currents_dual_moment[i_sounding], + self.base_frequency_dual_moment[i_sounding], + self.Sigma[i_sounding, :], + self.Eta[i_sounding, :], + self.Tau[i_sounding, :], + self.C[i_sounding, :], + self.H[i_sounding], + jac_switch, + self.invert_height, + self.half_switch + ) + return output + + def run_simulation(self, args): + if self.verbose: + print(">> Time-domain") + return run_simulation_TD(args) + + # def forward(self, m, f=None): + # self.model = m + + # if self.parallel: + # pool = Pool(self.n_cpu) + # # This assumes the same # of layer for each of soundings + # result = pool.map( + # run_simulation_TD, + # [ + # self.input_args(i, jac_switch=False) for i in range(self.n_sounding) + # ] + # ) + # pool.close() + # pool.join() + # else: + # result = [ + # run_simulation_TD(self.input_args(i, jac_switch=False)) for i in range(self.n_sounding) + # ] + # return np.hstack(result) + + # def getJ(self, m): + # """ + # Compute d F / d sigma + # """ + # if self._Jmatrix is not None: + # return self._Jmatrix + # if self.verbose: + # print(">> Compute J") + # self.model = m + # if self.parallel: + # pool = Pool(self.n_cpu) + # self._Jmatrix = pool.map( + # run_simulation_TD, + # [ + # self.input_args(i, jac_switch=True) for i in range(self.n_sounding) + # ] + # ) + # pool.close() + # pool.join() + # if self.parallel_jvec_jtvec is False: + # self._Jmatrix = sp.block_diag(self._Jmatrix).tocsr() + # else: + # # _Jmatrix is block diagnoal matrix (sparse) + # self._Jmatrix = sp.block_diag( + # [ + # run_simulation_TD(self.input_args(i, jac_switch=True)) for i in range(self.n_sounding) + # ] + # ).tocsr() + # return self._Jmatrix + + +class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): + + # This assumes a multiple sounding locations + rx_locations = properties.Array( + "Receiver locations ", dtype=float, shape=('*', 3) + ) + src_locations = properties.Array( + "Source locations ", dtype=float, shape=('*', 3) + ) + topo = properties.Array( + "Topography", dtype=float, shape=('*', 3) + ) + + half_switch = properties.Bool("Switch for half-space", default=False) + + # @utils.requires('prob') + # def dpred(self, m, f=None): + # """ + # Return predicted data. + # Predicted data, (`_pred`) are computed when + # self.prob.fields is called. + # """ + # if f is None: + # f = self.prob.fields(m) + + # return self._pred + + @property + def n_sounding(self): + """ + # of Receiver locations + """ + return self.rx_locations.shape[0] + + @property + def n_layer(self): + """ + # of Receiver locations + """ + return self.sim.n_layer + + def read_xyz_data(self, fname): + """ + Read csv file format + This is a place holder at this point + """ + pass + + @property + def nD(self): + # Need to generalize this for the dual moment data + if getattr(self, '_nD', None) is None: + self._nD = self.nD_vec.sum() + return self._nD + + + + +class GlobalEM1DSurveyFD(GlobalEM1DSurvey, EM1DSurveyFD): + + @property + def nD_vec(self): + if getattr(self, '_nD_vec', None) is None: + self._nD_vec = [] + if self.switch_real_imag == "all": + nD_for_sounding = int(self.n_frequency * 2) + elif ( + self.switch_real_imag == "imag" or self.switch_real_imag == "real" + ): + nD_for_sounding = int(self.n_frequency) + + for ii in range(self.n_sounding): + self._nD_vec.append(nD_for_sounding) + self._nD_vec = np.array(self._nD_vec) + return self._nD_vec + + # @property + # def nD(self): + # if self.switch_real_imag == "all": + # return int(self.n_frequency * 2) * self.n_sounding + # elif ( + # self.switch_real_imag == "imag" or self.switch_real_imag == "real" + # ): + # return int(self.n_frequency) * self.n_sounding + + def read_xyz_data(self, fname): + """ + Read csv file format + This is a place holder at this point + """ + pass + + +class GlobalEM1DSurveyTD(GlobalEM1DSurvey): + + # --------------- Essential inputs ---------------- # + src_type = None + + rx_type = None + + field_type = None + + time = [] + + wave_type = None + + moment_type = None + + time_input_currents = [] + + input_currents = [] + + # --------------- Selective inputs ---------------- # + n_pulse = properties.Array( + "The number of pulses", + default=None + ) + + base_frequency = properties.Array( + "Base frequency (Hz)", + dtype=float, default=None + ) + + offset = properties.Array( + "Src-Rx offsets", dtype=float, default=None, + shape=('*', '*') + ) + + I = properties.Array( + "Src loop current", dtype=float, default=None + ) + + a = properties.Array( + "Src loop radius", dtype=float, default=None + ) + + use_lowpass_filter = properties.Array( + "Switch for low pass filter", + dtype=bool, default=None + ) + + high_cut_frequency = properties.Array( + "High cut frequency for low pass filter (Hz)", + dtype=float, default=None + ) + + # ------------- For dual moment ------------- # + + time_dual_moment = [] + + time_input_currents_dual_moment = [] + + input_currents_dual_moment = [] + + base_frequency_dual_moment = properties.Array( + "Base frequency for the dual moment (Hz)", + dtype=float, default=None + ) + + def __init__(self, **kwargs): + GlobalEM1DSurvey.__init__(self, **kwargs) + self.set_parameters() + + def set_parameters(self): + # TODO: need to put some validation process + # e.g. for VMD `offset` must be required + # e.g. for CircularLoop `a` must be required + + print(">> Set parameters") + if self.n_pulse is None: + self.n_pulse = np.ones(self.n_sounding, dtype=int) * 1 + + if self.base_frequency is None: + self.base_frequency = np.ones( + (self.n_sounding), dtype=float + ) * 30 + + if self.offset is None: + self.offset = np.empty((self.n_sounding, 1), dtype=float) + + if self.I is None: + self.I = np.empty(self.n_sounding, dtype=float) + + if self.a is None: + self.a = np.empty(self.n_sounding, dtype=float) + + if self.use_lowpass_filter is None: + self.use_lowpass_filter = np.zeros(self.n_sounding, dtype=bool) + + if self.high_cut_frequency is None: + self.high_cut_frequency = np.empty(self.n_sounding, dtype=float) + + if self.moment_type is None: + self.moment_type = np.array(["single"], dtype=str).repeat( + self.n_sounding, axis=0 + ) + + # List + if not self.time_input_currents: + self.time_input_currents = [ + np.empty(1, dtype=float) for i in range(self.n_sounding) + ] + # List + if not self.input_currents: + self.input_currents = [ + np.empty(1, dtype=float) for i in range(self.n_sounding) + ] + + # List + if not self.time_dual_moment: + self.time_dual_moment = [ + np.empty(1, dtype=float) for i in range(self.n_sounding) + ] + # List + if not self.time_input_currents_dual_moment: + self.time_input_currents_dual_moment = [ + np.empty(1, dtype=float) for i in range(self.n_sounding) + ] + # List + if not self.input_currents_dual_moment: + self.input_currents_dual_moment = [ + np.empty(1, dtype=float) for i in range(self.n_sounding) + ] + + if self.base_frequency_dual_moment is None: + self.base_frequency_dual_moment = np.empty( + (self.n_sounding), dtype=float + ) + + @property + def nD_vec(self): + if getattr(self, '_nD_vec', None) is None: + self._nD_vec = [] + + for ii, moment_type in enumerate(self.moment_type): + if moment_type == 'single': + self._nD_vec.append(self.time[ii].size) + elif moment_type == 'dual': + self._nD_vec.append( + self.time[ii].size+self.time_dual_moment[ii].size + ) + else: + raise Exception("moment_type must be either signle or dual") + self._nD_vec = np.array(self._nD_vec) + return self._nD_vec + + @property + def data_index(self): + # Need to generalize this for the dual moment data + if getattr(self, '_data_index', None) is None: + self._data_index = [ + np.arange(self.nD_vec[i_sounding])+np.sum(self.nD_vec[:i_sounding]) for i_sounding in range(self.n_sounding) + ] + return self._data_index + + @property + def nD(self): + # Need to generalize this for the dual moment data + if getattr(self, '_nD', None) is None: + self._nD = self.nD_vec.sum() + return self._nD diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 19f269b..bca0f50 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -2,7 +2,7 @@ from scipy.constants import mu_0 try: - from simpegEM1D.m_rTE_Fortran import rte_fortran + from simpegEM1D.Fortran.m_rTE_Fortran import rte_fortran except ImportError as e: rte_fortran = None @@ -11,7 +11,7 @@ -def rTEfunfwd(n_layer, f, lamda, sig, chi, depth, HalfSwitch): +def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): """ Compute reflection coefficients for Transverse Electric (TE) mode. Only one for loop for multiple layers. @@ -52,7 +52,6 @@ def rTEfunfwd(n_layer, f, lamda, sig, chi, depth, HalfSwitch): M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - thick = -np.diff(depth) w = 2*np.pi*f rTE = np.zeros((n_frequency, n_filter), dtype=complex) @@ -139,7 +138,7 @@ def matmul(a00, a10, a01, a11, b00, b10, b01, b11): # TODO: make this to take a vector rather than a single frequency -def rTEfunjac(n_layer, f, lamda, sig, chi, depth, HalfSwitch): +def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): """ Compute sensitivity of reflection coefficients for Transverse Electric (TE) mode with regard to conductivity @@ -200,7 +199,6 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, depth, HalfSwitch): dj1temp01 = np.zeros((n_frequency, n_filter), dtype=complex) dj1temp11 = np.zeros((n_frequency, n_filter), dtype=complex) - thick = -np.diff(depth) w = 2*np.pi*f rTE = np.zeros((n_frequency, n_filter), dtype=complex) @@ -521,7 +519,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, depth, HalfSwitch): def hz_kernel_vertical_magnetic_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, + simulation, lamda, f, n_layer, sig, chi, h, z, flag, I, output_type='response' ): @@ -542,10 +540,12 @@ def hz_kernel_vertical_magnetic_dipole( dtype=np.complex128, order='F' ) if rte_fortran is None: + thick = simulation.thicknesses drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.half_switch ) else: + depth = simulation.depth rte_fortran.rte_sensitivity( f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter @@ -557,11 +557,12 @@ def hz_kernel_vertical_magnetic_dipole( [n_frequency, n_filter], dtype=np.complex128, order='F' ) if rte_fortran is None: - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - simulation.half_switch - ) + thick = simulation.thicknesses + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, thick, simulation.half_switch + ) else: + depth = simulation.depth rte_fortran.rte_forward( f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter @@ -584,8 +585,8 @@ def hz_kernel_vertical_magnetic_dipole( # TODO: make this to take a vector rather than a single frequency def hz_kernel_circular_loop( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, I, a, - flag, output_type='response' + simulation, lamda, f, n_layer, sig, chi, h, z, I, a, + flag, output_type='response' ): """ @@ -617,11 +618,12 @@ def hz_kernel_circular_loop( dtype=np.complex128, order='F' ) if rte_fortran is None: - drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, - simulation.half_switch - ) + thick = simulation.thicknesses + drTE[:, :] = rTEfunjac( + n_layer, f, lamda, sig, chi, thick, simulation.half_switch + ) else: + depth = simulation.depth rte_fortran.rte_sensitivity( f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter @@ -633,10 +635,12 @@ def hz_kernel_circular_loop( [n_frequency, n_filter], dtype=np.complex128, order='F' ) if rte_fortran is None: + thick = simulation.thicknesses rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.half_switch ) else: + depth = simulation.depth rte_fortran.rte_forward( f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter @@ -655,7 +659,7 @@ def hz_kernel_circular_loop( return kernel def hz_kernel_horizontal_electric_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, + simulation, lamda, f, n_layer, sig, chi, h, z, flag, output_type='response' ): @@ -676,10 +680,12 @@ def hz_kernel_horizontal_electric_dipole( order='F' ) if rte_fortran is None: + thick = simulation.thicknesses drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, depth, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.half_switch ) else: + depth = simulation.depth rte_fortran.rte_sensitivity( f, lamda, sig, chi, depth, simulation.half_switch, drTE, n_layer, n_frequency, n_filter @@ -691,11 +697,12 @@ def hz_kernel_horizontal_electric_dipole( [n_frequency, n_filter], dtype=np.complex128, order='F' ) if rte_fortran is None: + thick = simulation.thicknesses rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, depth, - simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.half_switch ) else: + depth = simulation.depth rte_fortran.rte_forward( f, lamda, sig, chi, depth, simulation.half_switch, rTE, n_layer, n_frequency, n_filter diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py new file mode 100644 index 0000000..ee38105 --- /dev/null +++ b/tutorials/plot_1_fdem_fwd.py @@ -0,0 +1,187 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.analytics import ColeCole + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. + +receiver_location = np.array([8., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +frequencies = np.logspace(-1, 8, 51) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) +) +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type="secondary", component="imag" + ) +) + +# Sources +source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation=source_orientation, + I=source_current + ) +] + +# source_list = [ +# HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=src_location, a=a, I=I +# ) +# ] + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([20., 20.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.001 +c = 0.5 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +# Compute and plot complex conductivity at all frequencies +sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(0., 1.1*sigma) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Conductivity") +ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) + +####################################################################### +# Define the Forward Simulation and Predict MT Data +# ------------------------------------------------- +# +# Here we predict MT data. If the keyword argument *rhoMap* is +# defined, the simulation will expect a resistivity model. If the keyword +# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred = simulation.dpred(sigma_model) + +# Simulate response for complex conductivity +simulation_colecole = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + eta=eta, tau=tau, c=c, chi=chi_model +) + +dpred_colecole = simulation_colecole.dpred(sigma_model) + + +####################################################################### +# Analytic Solution +# ------------------------------------------------- +# +# + + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dpred[0:len(frequencies)]), 'b-', lw=2) +ax.loglog(frequencies, np.abs(dpred[len(frequencies):]), 'b--', lw=2) +ax.loglog(frequencies, np.abs(dpred_colecole[0:len(frequencies)]), 'r-', lw=2) +ax.loglog(frequencies, np.abs(dpred_colecole[len(frequencies):]), 'r--', lw=2) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Magnetic Field (A/m)") +ax.set_title("Response for a chargeable and non-chargeable half-space") +ax.legend(( + 'Real ($\sigma_{DC}$)', 'Imaginary ($\sigma_{DC}$)', + 'Real (Cole-Cole)', 'Imaginary (Cole-Cole)' +)) + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_tdem_fwd.py b/tutorials/plot_1_tdem_fwd.py new file mode 100644 index 0000000..5deab67 --- /dev/null +++ b/tutorials/plot_1_tdem_fwd.py @@ -0,0 +1,199 @@ +""" +Forward Simulation of 1D Time-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.analytics import ColeCole + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = 10. + +receiver_location = np.array([0., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +times = np.logspace(-6, -1, 51) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="b" + ) +) +receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="dbdt" + ) +) + +# Sources +source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, a=source_radius + ) +] + + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([40., 40.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.01 +c = 0.5 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +# Compute and plot complex conductivity at all frequencies +frequencies = np.logspace(-3, 6, 91) +sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(0., 1.1*sigma) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Conductivity") +ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) + +####################################################################### +# Define the Forward Simulation and Predict MT Data +# ------------------------------------------------- +# +# Here we predict MT data. If the keyword argument *rhoMap* is +# defined, the simulation will expect a resistivity model. If the keyword +# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred = simulation.dpred(sigma_model) + +# Simulate response for complex conductivity +simulation_colecole = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + eta=eta, tau=tau, c=c, chi=chi_model +) + +dpred_colecole = simulation_colecole.dpred(sigma_model) + + +####################################################################### +# Analytic Solution +# ------------------------------------------------- +# +# +b = dpred[0:len(times)] +b_colecole = dpred_colecole[0:len(times)] +dbdt = dpred[len(times):] +dbdt_colecole = dpred_colecole[len(times):] + +k1 = b_colecole > 0. +k2 = dbdt_colecole > 0. + +fig = plt.figure(figsize = (6, 5)) +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(dpred[0:len(times)]), 'b', lw=3) +ax.loglog(times[k1], np.abs(b_colecole[k1]), 'r', lw=3) +ax.loglog(times[~k1], np.abs(b_colecole[~k1]), 'r--', lw=3) +ax.legend(["Non-chargeable", "Cole-Cole"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("B (T)") +ax.set_title("Response for a chargeable and non-chargeable half-space") + + +fig = plt.figure(figsize = (6, 5)) +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(dpred[len(times):]), 'b--', lw=3) +ax.loglog(times[~k2], np.abs(dbdt_colecole[~k2]), 'r--', lw=3) +ax.loglog(times[k2], np.abs(dbdt_colecole[k2]), 'r', lw=3) +ax.legend(["Non-chargeable", "Cole-Cole"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("dB/dt (T/s)") +ax.set_title("Response for a chargeable and non-chargeable half-space") + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_tdem_fwd_waveforms.py b/tutorials/plot_1_tdem_fwd_waveforms.py new file mode 100644 index 0000000..23097d3 --- /dev/null +++ b/tutorials/plot_1_tdem_fwd_waveforms.py @@ -0,0 +1,243 @@ +""" +Forward Simulation of with Different Waveforms +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.Waveform import RectFun +from simpegEM1D.analytics import ColeCole + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = 10. + +receiver_location = np.array([0., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +times = np.r_[3.179659e-06, 7.651805e-06, 1.312977e-05, 2.006194e-05, 2.900623e-05, 4.040942e-05, 5.483263e-05, 7.272122e-05, 9.508194e-05, 1.229211e-04, 1.581381e-04, 2.033051e-04, 2.599911e-04, 3.314300e-04, 4.218804e-04, 5.351367e-04, 6.781304e-04, 8.584694e-04] +#times = np.logspace(-6, -1, 51) + +# Receiver list +receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="dbdt" + ) +] + +# Sources +source_list = [] + +# Step off +source_list.append( + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, a=source_radius + ) +) + + + +# Triangle Waveform +time_input_currents = np.r_[-np.logspace(-3, -5, 21), 0.] +input_currents = RectFun(time_input_currents, -0.0008, 0.) +source_list.append( + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, + a=source_radius, + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) +) + + + +# Custom waveform +time_input_currents = np.r_[-1.0000E-03, -8.0000E-04,-7.6473E-04,-6.2818E-04,-4.3497E-04,-9.2197E-05,-2.0929E-06,6.6270E-08,6.9564E-07,2.1480E-06,3.7941E-06,5.6822E-06,7.1829E-06,8.5385E-06,1.0136E-05,1.1976E-05,1.3138E-05] +input_currents = np.r_[0.0000E+00, 0.0000E+00, 6.3431E-02, 2.4971E-01, 4.7453E-01, 8.9044E-01, 1.0000E+00,1.0000E+00,9.7325E-01,7.9865E-01,5.3172E-01,2.7653E-01,1.5062E-01,7.5073E-02,3.1423E-02,7.9197E-03,0.0000E+00] +source_list.append( + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, + a=source_radius, + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) +) + + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + +############################################### +# Plot the Waveforms +# ------------------ +# +# + +fig = plt.figure(figsize=(6, 4)) +ax = fig.add_axes([0.1, 0.1, 0.85, 0.8]) +ax.plot(time_input_currents, input_currents, 'k') + + + + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +hz = em1d.EM1DSimulation.get_vertical_discretization_time(times, facter_tmax=0.5, factor_tmin=10.) +thicknesses = np.array([40., 40.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.01 +c = 0.5 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +# Compute and plot complex conductivity at all frequencies +frequencies = np.logspace(-3, 6, 91) +sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(0., 1.1*sigma) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Conductivity") +ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) + +####################################################################### +# Define the Forward Simulation and Predict MT Data +# ------------------------------------------------- +# +# Here we predict MT data. If the keyword argument *rhoMap* is +# defined, the simulation will expect a resistivity model. If the keyword +# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred = simulation.dpred(sigma_model) + +# Simulate response for complex conductivity +simulation_colecole = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + eta=eta, tau=tau, c=c, chi=chi_model +) + +dpred_colecole = simulation_colecole.dpred(sigma_model) + + +####################################################################### +# Analytic Solution +# ------------------------------------------------- +# +# + + +fig = plt.figure(figsize = (6, 5)) +d = np.reshape(dpred, (len(source_list), len(times))).T +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(d)) +ax.legend(["Step-off", "Custom"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("dB/dt (T/s)") +ax.set_title("Response for a chargeable and non-chargeable half-space") + + +fig = plt.figure(figsize = (6, 5)) +d = np.reshape(dpred_colecole, (len(source_list), len(times))).T +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(d)) +ax.legend(["Step-off", "Custom"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("dB/dt (T/s)") +ax.set_title("Response for a chargeable and non-chargeable half-space") + + + + + + + + + + + + + + + + + + + + + + + + + + From 20bf1c9a22221849aef3cd1bff0bc65b12e22bd7 Mon Sep 17 00:00:00 2001 From: dccowan Date: Thu, 4 Jun 2020 13:19:52 -0700 Subject: [PATCH 12/54] forward and inversion complete for VMD source. --- .../EM1DFM_inversion_sigma_height.ipynb | 201 +----- simpegEM1D/KnownWaveforms.py | 551 +++++++++++++++++ simpegEM1D/Survey.py | 4 +- simpegEM1D/{Waveform.py => Waveform_old.py} | 0 simpegEM1D/Waveforms.py | 582 +++--------------- simpegEM1D/__init__.py | 4 +- simpegEM1D/simulation.py | 7 +- simpegEM1D/sources.py | 158 ++++- simpegEM1D/supporting_functions/kernels.py | 23 +- simpegEM1D/survey_original.py | 4 +- tutorials/assets/em1dfm_data.obs | 5 + tutorials/assets/em1dtm_data.obs | 31 + tutorials/plot_1_fdem_fwd.py | 119 ++-- tutorials/plot_1_fdem_fwd_chargeable.py | 182 ++++++ tutorials/plot_1_fdem_fwd_sources.py | 178 ++++++ tutorials/plot_1_fdem_inv.py | 391 ++++++++++++ tutorials/plot_1_tdem_fwd.py | 135 ++-- tutorials/plot_1_tdem_fwd_chargeable.py | 184 ++++++ tutorials/plot_1_tdem_fwd_waveforms.py | 86 +-- tutorials/plot_1_tdem_inv.py | 380 ++++++++++++ 20 files changed, 2291 insertions(+), 934 deletions(-) create mode 100644 simpegEM1D/KnownWaveforms.py rename simpegEM1D/{Waveform.py => Waveform_old.py} (100%) create mode 100644 tutorials/assets/em1dfm_data.obs create mode 100644 tutorials/assets/em1dtm_data.obs create mode 100644 tutorials/plot_1_fdem_fwd_chargeable.py create mode 100644 tutorials/plot_1_fdem_fwd_sources.py create mode 100644 tutorials/plot_1_fdem_inv.py create mode 100644 tutorials/plot_1_tdem_fwd_chargeable.py create mode 100644 tutorials/plot_1_tdem_inv.py diff --git a/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb index 886b318..def9243 100644 --- a/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb +++ b/notebooks/examples/EM1DFM_inversion_sigma_height.ipynb @@ -138,7 +138,7 @@ { "data": { "text/plain": [ - "[]" + "[]" ] }, "execution_count": 4, @@ -169,10 +169,26 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "ename": "ValueError", + "evalue": "operands could not be broadcast together with shapes (19,5) (20,5) ", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 4\u001b[0m )\n\u001b[0;32m 5\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 6\u001b[1;33m \u001b[0md_true\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msim\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdpred\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm_true\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7\u001b[0m \u001b[1;31m# d_p = FDsurvey.dpred(m_dx_p)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 8\u001b[0m \u001b[1;31m# d_n = FDsurvey.dpred(m_dx_n)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation.py\u001b[0m in \u001b[0;36mdpred\u001b[1;34m(self, m, f)\u001b[0m\n\u001b[0;32m 396\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mm\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 397\u001b[0m \u001b[0mm\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 398\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 399\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 400\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation.py\u001b[0m in \u001b[0;36mfields\u001b[1;34m(self, m)\u001b[0m\n\u001b[0;32m 378\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 379\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 380\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcompute_integral\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'response'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 381\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprojectFields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 382\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation.py\u001b[0m in \u001b[0;36mcompute_integral\u001b[1;34m(self, m, output_type)\u001b[0m\n\u001b[0;32m 245\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 246\u001b[0m \u001b[1;31m# Create globally, not for each receiver\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 247\u001b[1;33m \u001b[0msig\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msigma_cole\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrx\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfrequencies\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 248\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 249\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mHarmonicMagneticDipoleSource\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m|\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msrc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTimeDomainMagneticDipoleSource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation.py\u001b[0m in \u001b[0;36msigma_cole\u001b[1;34m(self, frequencies)\u001b[0m\n\u001b[0;32m 174\u001b[0m sigma_complex[:, :] = (\n\u001b[0;32m 175\u001b[0m \u001b[0msigma\u001b[0m \u001b[1;33m-\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 176\u001b[1;33m \u001b[0msigma\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0meta\u001b[0m\u001b[1;33m/\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m-\u001b[0m\u001b[0meta\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m*\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1j\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mw\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mtau\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m**\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 177\u001b[0m )\n\u001b[0;32m 178\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: operands could not be broadcast together with shapes (19,5) (20,5) " + ] + } + ], "source": [ "sim = EM1DFMSimulation(\n", - " mesh1D, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, depth=depth,\n", + " survey=FDsurvey, thicknesses=hz, sigmaMap=sigmaMap, hMap=wires.h,\n", " chi= np.zeros(nlay)\n", ")\n", " \n", @@ -187,22 +203,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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ZO0LL1h7993Wlinj/HtdfbW1Awda+/HH1paSTbZY5BRquZ6n5iadpyarV69m8ODBbNy4kfbt2/Paa69x4403ul1WkTp1ChYtgunT4fPPnW7F4GB49FF44AG49FK3K5TcHDgAixc7/45LlsDx486/W2godOkC998PtWq5XWXJldN5ago18Un79+/nueeeY8aMGdSpU4d//etfhIWF+fw1zi7GN984x8lmzYJff4VrroH+/Z2bn+e4Xzt1yhmdumiRc9u1y2m//XYn4Dp3hltuyTx2J7lTqEmJkZaWxrRp0xgxYgTHjx/nr3/9K1FRUVSqVMnt0orEkSPOoI/p0yE5GcqVg65dnb2ytm2dEXbiP6yFjRszAy5joM9112UONLn3Xihlg3jzTaEmJUJSUhKDBw8mOTmZkJAQpkyZwk033eR2WYUuPR1WrHD2yt5/H06ehMaNYcAAiIiAmjXdrlCKy9698MknTsAtXQonTjinB7Rv7wRcx45Qo4bbVfoehZr4tEOHDjFixAimTZtGrVq1mDx5Mj169PC7rsbdu2HmTPj3v2HbNqhcGXr1cvbKAgPV/VTanTgBy5Zl7sXt3euce3jXXZl7cQ0bajsBhZr4qPT0dGbMmMFzzz3H4cOH+fOf/8zYsWOpXLmy26UVmlOnYOFCZ69syRKn+ykkxAmy7t016EOyl54OX3/thNvChbB+vdN+442ZAXfPPU53dWmkUBOfs2HDBgYPHsyaNWu4++67eeONN2jSpInbZRWajRudIJs92xn0Ubt25qCPG25wuzopaXbvho8/dgJu+XI4fRqqVoUOHZzBJu3bO49LC4Wa+IyjR48yevRoXnvtNapXr050dDR9+/alTJmSf2m/I0fgvfecMMsY9NGtm7NXdt99GvQhheP4cef426JFTtAdOABly0LLls4eXJcu/v+Hk0JNXGetZc6cOQwbNox9+/YxaNAgJk6cSLVqJfsKROnpznDtt9+GDz5wBn3cckvmoA8d5JeilJbmjKBcuNAJuU2bnPabbsoMuDvv9L8/qBRq4orExEQSEhK47rrrePPNN0lISCAwMJA33niDoKAgt8u7KLt3w4wZzqCP7duhSpXMQR+33aaD+eKObdsyuylXrHDmAq1RwxlF2aWLc5rI5Ze7XeXFU6hJsUtMTKR169acOnUKay2XX345//jHP3jssccIKKF/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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1,1, figsize = (7,5))\n", "if nSrc == 1:\n", @@ -221,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -230,7 +233,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -248,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "scrolled": false }, @@ -293,38 +296,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(20, 19)\n", - "(20, 2)\n", - "[[ -2.25362006 0. ]\n", - " [-11.84061328 0. ]\n", - " [-32.71653202 0. ]\n", - " [-56.01219653 0. ]\n", - " [-69.32358724 0. ]\n", - " [ -6.11090659 0. ]\n", - " [-15.4954772 0. ]\n", - " [-22.20891835 0. ]\n", - " [-19.06424455 0. ]\n", - " [-12.79387869 0. ]\n", - " [ 0. -2.25362006]\n", - " [ 0. -11.84061328]\n", - " [ 0. -32.71653202]\n", - " [ 0. -56.01219653]\n", - " [ 0. -69.32358724]\n", - " [ 0. -6.11090659]\n", - " [ 0. -15.4954772 ]\n", - " [ 0. -22.20891835]\n", - " [ 0. -19.06424455]\n", - " [ 0. -12.79387869]]\n" - ] - } - ], + "outputs": [], "source": [ "print(np.shape(sim.getJ_sigma(m0)))\n", "print(np.shape(sim.getJ_height(m0)))\n", @@ -333,63 +307,18 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - "model has any nan: 0\n", - "=============================== Projected GNCG ===============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 9.20e+00 7.12e+02 0.00e+00 7.12e+02 6.72e+01 0 \n", - " 1 9.20e+00 5.24e+02 2.34e+00 5.45e+02 2.99e+01 1 \n", - " 2 4.60e+00 4.40e+02 6.53e+00 4.70e+02 2.87e+01 0 Skip BFGS \n", - " 3 4.60e+00 3.31e+02 2.21e+01 4.32e+02 6.09e+01 0 \n", - " 4 2.30e+00 2.80e+02 2.76e+01 3.43e+02 2.02e+01 0 \n", - " 5 2.30e+00 1.44e+02 6.40e+01 2.91e+02 1.28e+01 0 \n", - " 6 1.15e+00 1.09e+02 7.56e+01 1.95e+02 1.71e+01 0 \n", - " 7 1.15e+00 3.80e+01 1.13e+02 1.68e+02 1.70e+01 0 \n", - " 8 5.75e-01 3.19e+01 1.17e+02 9.92e+01 1.17e+01 0 Skip BFGS \n", - " 9 5.75e-01 1.28e+01 1.37e+02 9.15e+01 4.06e+00 0 \n", - " 10 2.87e-01 1.13e+01 1.39e+02 5.12e+01 8.48e+00 0 \n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 7.1286e+01\n", - "1 : |xc-x_last| = 1.0820e+00 <= tolX*(1+|x0|) = 6.5426e+00\n", - "0 : |proj(x-g)-x| = 8.4757e+00 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 8.4757e+00 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 11\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "mopt = inv.run(m0)" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[45. 45.]\n", - "[31.44395427 36.17933422]\n", - "[31.44395427 36.17933422]\n" - ] - } - ], + "outputs": [], "source": [ "print (wires.h*m0)\n", "print (wires.h*mopt)\n", @@ -398,48 +327,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:160: UserWarning: pylab import has clobbered these variables: ['axes', 'beta', 'std', 'floor', 'inv']\n", - "`%matplotlib` prevents importing * from pylab and numpy\n", - " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" - ] - }, - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "%pylab inline\n", "fig, ax = subplots(1,1, figsize=(5, 8))\n", @@ -450,32 +340,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - ">" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbUAAAEzCAYAAAC2Q50YAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3de5xV8/7H8de3m0KEQgpxTvxcQppJyWVG6KJxPUYcKiINodI9NdOMbtMVZSpKxSHDSUrpvqNDNJMouRxxolKKRGSamvn8/lh7puk2zdTMrD173s/HYz9m7+9ae+/PrjX7Pd/v+q61nJkhIiISDsr5XYCIiEhRUaiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYqOB3AfmpXr261alTx+8yREQkhKxYseJnM6txsGUhHWp16tQhPT3d7zJERCSEOOe+P9QyDT+KiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEjYUKiJiEixSU5OJhAI7NMWCARITk4ulvdTqImISLGJjIwkNjY2N9gCgQCxsbFERkYWy/uF9GmyRESkdIuOjiY1NZXY2Fji4uJISUkhNTWV6OjoYnk/9dRERKRYRUdHExcXR1JSEnFxccUWaKBQExGRYhYIBEhJSaFfv36kpKQcsI+tKB021JxzlZ1zy51znznn1jjnBgTbJzvn/uec+zR4uyzY7pxzzzrn1jrnVjnnLs/zWm2dc98Eb22L7VOJiEhIyNmHlpqaSmJiYu5QZHEFW0F6aruA68zsUuAyoLlzrlFwWXczuyx4+zTY1gKoG7x1AFIAnHMnA/HAFUBDIN45d1LRfRQREQk1aWlp++xDy9nHlpaWVizvd9iJImZmwB/BhxWDN8vnKbcAU4PP+8g5V805VxOIAhaY2TYA59wCoDnw2pGXLyIioaxHjx4HtEVHR/s7UcQ5V9459ymwBS+YPg4uGhgcYhzlnDsm2FYLWJ/n6RuCbYdqFxERKRIFCjUzyzKzy4DaQEPn3MVAb+D/gEjgZKBncHV3sJfIp30fzrkOzrl051z61q1bC1KeiIgIUMjZj2a2HVgCNDezTebZBbyEt58MvB7YmXmeVhv4MZ/2/d9jgplFmFlEjRo1ClOeiIiUcQWZ/VjDOVcteL8KcD3wVXA/Gc45B9wKfB58ykygTXAWZCPgNzPbBMwDbnTOnRScIHJjsE1ERKRIFOSMIjWBKc658nghmGpm7zjnFjvnauANK34KdAyuPwdoCawFdgL3A5jZNudcEpAz5SUxZ9KIiIhIUXDeJMXQFBERYenp6X6XISIiIcQ5t8LMIg62TGcUERGRsKFQExGRsKFQExGRYrds2TIGDx7MsmXLivV9dOkZEREpVsuWLSMqKorMzEyqVKnCokWLaNy4cbG8l3pqIiJSbLZt20ZcXByZmZkAZGZmsmTJkmJ7P4WaiIgUizlz5nDxxRfz+eefU6FCBcqXL0+lSpWIiooqtvfU8KOIiBSp33//nS5dujBp0iQuvvhiZs+eTUZGBkuWLCEqKqrYhh5BoSYiIkVo0aJFPPDAA2zYsIFevXqRkJDAMcd457svzjDLoeFHERE5an/++SedOnXi+uuvp3LlynzwwQcMHjw4N9BKikJNRESOygcffMCll17K2LFj6dy5MytXrqRRo0aHf2IxUKiJiMgRycjIoHv37lx99dVkZ2ezZMkSRo0axbHHHutbTdqnJiIihZaWlkbbtm358ssvefjhhxk2bBhVq1b1uyz11EREpOAyMzPp168fjRs3ZseOHcybN49x48aFRKCBemoiIlJAq1atok2bNnz22We0bduW0aNHU61aNb/L2od6aiIikq89e/YwaNAgIiIi2Lx5M2+//TaTJ08OuUAD9dRERCQfX331FW3btmX58uXcddddjBkzhurVq/td1iGppyYiIgfIyspi5MiR1K9fn2+//ZbXX3+dadOmhXSggXpqIiKyn2+//ZZ27drxn//8h5tvvpnx48dz+umn+11WgainJiIiAJgZKSkpXHLJJaxevZrJkyczY8aMUhNooJ6aiIgAP/zwA+3bt2fhwoXceOONTJw4kdq1a/tdVqGppyYiUoaZGS+99BL16tVj2bJljBs3jrlz55bKQAP11EREyqxNmzbRoUMH3nnnHa655hpeeuklzj33XL/LOirqqYmIlDFmxrRp07joootYuHAho0aNIhAIlPpAA4WaiEiZsnXrVmJjY7n77rs5//zz+fTTT+ncuTPlyoVHHITHpxARkcOaMWMGF198MTNnzmTw4MEsXbqU888/3++yipT2qYmIhLlff/2Vxx9/nFdeeYX69euzcOFC6tWr53dZxUI9NRGRMDZ3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+V2SlDHO7IDdWiEjIiLC0tPT/S5DRAogKyuLdu3a8corryjQpFg551aYWcTBlukioSJy1LKysmjbti3/+te/ePrpp+nbt6/fJUkZpVATkaOSlZVFmzZtePXVVxk4cCB9+vTxuyQpw3TuRxE5Ynv27MkNtEGDBinQxHfqqYnIEckJtNdee41BgwbRu3dvv0sSUaiJSOHt2bOH++67j2nTpjF48GB69ep1+CeJlACFmogUSt5AGzJkCD179vS7JJFcCjURKbC8gTZ06FB69Ojhd0ki+1CoiUiB7Nmzh3vvvZfXX39dgSYhS6EmIoe1Z88e/vnPf5KamkpycjLdu3f3uySRg1KoiUi+9uzZwz333MMbb7zBsGHD6Natm98liRySjlMTkUPavXt3bqANHz5cgSYhTz01ETmonEB78803GT58OE8++aTfJYkclkJNRA6we/du7r77bv79738zYsQIunbt6ndJIgWiUBORfeQNtJEjR9KlSxe/SxIpMO1TE5FcCjQp7dRTExHAC7TWrVszffp0Ro0aRefOnf0uSaTQ1FMTETIzM7nrrrsUaFLqqacmUsZlZmbSunVr3nrrLUaPHs0TTzzhd0kiR0yhJlKG5fTQZsyYwTPPPMPjjz/ud0kiR0WhJlJGZWZmEhsby9tvv61Ak7ChUBMpg/IG2rPPPstjjz3md0kiRUKhJlLGZGZmcueddzJz5kyee+45OnXq5HdJIkVGoSZShuQNtDFjxvDoo4/6XZJIkdKUfpEyYteuXfzjH/9QoElYU09NpAzICbR33nmHsWPH8sgjj/hdkkixUKiJhLm8gfb8888TFxfnd0kixUahJhLGdu3axR133MHs2bMVaFImKNREwlTeQEtJSaFjx45+lyRS7A47UcQ5N8k5t8U593metgTn3Ebn3KfBW8s8y3o759Y65752zjXL09482LbWOder6D+KiOTIyMjg9ttvZ/bs2YwbN06BJmVGQWY/TgaaH6R9lJldFrzNAXDOXQi0Bi4KPud551x551x5YCzQArgQuDu4rogUsYyMDO644w7mzJnD+PHjefjhh/0uSaTEHHb40czed87VKeDr3QJMM7NdwP+cc2uBhsFla83sOwDn3LTgul8UumIROaScHtq7777L+PHj6dChg98liZSoozlOrZNzblVwePKkYFstYH2edTYE2w7VLiJFJCMjg9tuu02BJmXakYZaCvA34DJgEzAi2O4Osq7l034A51wH51y6cy5969atR1ieSNmSE2hz585lwoQJCjQps44o1MzsJzPLMrNs4AX2DjFuAM7Ms2pt4Md82g/22hPMLMLMImrUqHEk5YmUKUuWLOGSSy5h7ty5vPDCCzz00EN+lyTimyMKNedczTwPbwNyZkbOBFo7545xzp0D1AWWA2lAXefcOc65SniTSWYeedkiAjBixAiuu+46vvnmGypWrMhFF13kd0kivjrsRBHn3GtAFFDdObcBiAeinHOX4Q0hrgMeBjCzNc65VLwJIHuAR80sK/g6nYB5QHlgkpmtKfJPI1JGfPnll3Tt2pW5c+fmtmVnZ7NkyRIaN27sY2Ui/nJmB921FRIiIiIsPT3d7zJEQsavv/5KQkICY8eOpWLFirRo0YK5c+eSmZlJpUqVSE5OZufOnfTo0cPvUkWKjXNuhZlFHGyZzigiUgrs2bOH8ePH079/f7Zv385DDz1Es2bN6NChA8nJyezYsYOqVasyYMAAUlNT/S5XxDcKNZEQt2DBArp06cKaNWuIjo5m9OjRXHLJJQBUq1aN2NhY4uLiGDlyJKmpqURHR/tcsYh/dD01kRD1zTffcPPNN3PjjTfy119/MX36dBYtWpQbaADR0dHExcWRlJREXFycAk3KPIWaSIj57bff6NatGxdddBGBQIAhQ4awZs0abrvtNpzb95DPQCBASkoK/fr1IyUlhUAg4FPVIqFBw48iISIrK4tJkybRt29ffv75Z+6//34GDhzI6aefftD1A4EAsbGxuUOO0dHR+zwWKYvUUxMJAUuWLKFBgwZ06NCB888/n7S0NCZOnHjIQANIS0vbJ8Cio6NJTU0lLS2tpMoWCTma0i/io++++47u3bszffp0zjrrLIYNG8add955wDCjiOyV35R+9dREfLBjxw769OnDBRdcwNy5c0lKSuKrr74iNjZWgSZyFLRPTaQEZWdnM3XqVHr37s3mzZu57777GDx4MLVq6aIVIkVBoSZSQj744AM6d+5Meno6jRo1YsaMGVxxxRV+lyUSVjT8KFLMfvjhB+6++26uuuoqNm3axCuvvMIHH3ygQBMpBuqpiRSTP//8k6FDhzJs2DAA+vfvT48ePTjuuON8rkwkfCnURIqYmfHqq6/Ss2dPNm7cyF133cXQoUM5++yz/S5NJOxp+FGkCC1fvpwrr7ySe++9l9NPP52lS5cybdo0BZpICVGoiRSBjRs30qZNG6644grWrVvHSy+9xPLly7nqqqv8Lk2kTNHwo8hR+OuvvxgxYgSDBw8mKyuL3r1707t3b6pWrep3aSJlkkJN5AiYGW+88QY9evTg+++/54477mDYsGGcc845fpcmUqZp+FGkkD755BOuvfZa7rrrLqpVq0YgEODNN99UoImEAIWaSAFt3ryZ9u3bExERwVdffcX48eNZsWIFUVFRfpcmIkEafhQ5jF27djF69GgGDhxIRkYGTz75JE899RQnnnii36WJyH4UaiKHYGbMmDGDbt268d133xETE8OIESOoW7eu36WJyCFo+FHkIFatWkXTpk25/fbbqVKlCvPnz2fmzJkKNJEQp1ATyWPr1q107NiR+vXr89lnnzFmzBg+/fRTbrjhBr9LE5EC0PCjCJCZmcmYMWNITEzkjz/+oFOnTsTHx3PyySf7XZqIFIJCTco0M2P27Nk8+eST/Pe//6V58+aMHDmSCy64wO/SROQIaPhRyqwvvviC5s2bExMTg3OO2bNn8+677yrQREoxhZqUOdu2beOxxx7jkksuYfny5YwaNYrVq1fTsmVLv0sTkaOk4UcpM3bv3s24ceOIj4/nt99+4+GHHyYxMZHq1av7XZqIFBGFmpQJ8+bNo0uXLnz55Zc0bdqUUaNGUa9ePb/LEpEidtjhR+fcJOfcFufc53naTnbOLXDOfRP8eVKw3TnnnnXOrXXOrXLOXZ7nOW2D63/jnGtbPB9HZF///e9/adWqFc2bNyczM5MZM2awYMECBZpImCrIPrXJQPP92noBi8ysLrAo+BigBVA3eOsApIAXgkA8cAXQEIjPCUKR4rB9+3a6du3KRRddxPvvv09ycjJr1qzhlltuwTnnd3kiUkwOG2pm9j6wbb/mW4ApwftTgFvztE81z0dANedcTaAZsMDMtpnZr8ACDgxKkaOWlZXFuHHjqFu3LqNHj6Zdu3Z88803dO/enWOOOcbv8qQUS06GQGDftkDAa5fQcaSzH08zs00AwZ+nBttrAevzrLch2HaodpEis3jxYurXr09cXBwXXnghK1as4IUXXuC0007zuzQJA5GREBu7N9gCAe9xZKS/dcm+inpK/8HGdSyf9gNfwLkOzrl051z61q1bi7Q4CU/ffvstt912G02bNmXHjh288cYbLFmyhPr16/tdWolYtgwGD/Z+SvGJjobUVLj9drjuOu9naqrXLqHjSGc//uScq2lmm4LDi1uC7RuAM/OsVxv4MdgetV/7koO9sJlNACYAREREHDT4RAB+//13Bg4cyOjRo6lYsSIDBw6ka9euVK5c2e/SSsyyZdC0KezaBRUrwtChcOGFYLb3BmXrcXG+x4YN8NtvXi+tfHkoQ5taqXGkoTYTaAsMCf58O097J+fcNLxJIb8Fg28eMCjP5JAbgd5HXraUZVlZWUyePJm+ffvy008/0bZtWwYNGsQZZ0xVRDMAABTkSURBVJzhd2klZtcumDMHnnoK/vprb1vnzv7WFS5y5hI5t/cGkJW1N+SysuCmm6BDB2jRAq680vvDQvx12FBzzr2G18uq7pzbgDeLcQiQ6pxrD/wA3BlcfQ7QElgL7ATuBzCzbc65JCAtuF6ime0/+UTksJYuXcoTTzzBypUrufLKK5k1axaRZWSnhhl89BFMnQqvvw6//grHHw8VKkB2tveFGhcHGRlw770HfiGH0+PifI9DCQS8IcedO71AA9ixA4YN83rIJ5wAN9zgBVyLFlCG/sYKKYcNNTO7+xCLmh5kXQMePcTrTAImFao6kaB169bRo0cP3njjDWrXrs2rr75K69aty8T0/O++g5dfhldegbVroUoVuO02uOQSGD7c25+2YwdUrQoDBnj7eZo08bvq8JOWBtOne0OOS5ZAVJT3B8TSpVCvHrz7rnf797+99S+9dG/ANW6sXlyJMbOQvTVo0MCkbNuxY4c99dRTdswxx1iVKlUsISHB/vzzT7/LKnbbtpmNG2fWpIm3V8c5s+uuM3vpJbPfftu73uLFZtWrm/Xr5/1cvNi3ksXMsrPNVq0yGzrULCrKrEIF7//vxBPN/vEPs4kTzTZu9LvK0g9It0Pkhu/Bld9NoVZ2ZWVl2dSpU+2MM84wwO655x774Ycf/C6rWO3aZTZjhtkdd5hVquT9dl54odngwWb5ffR+/bx1+/UruVqlYH77zezf/zZ78EGzM87YO/XkssvMevc2W7rUbPduv6ssfRRqUqosW7bMGjZsaIBFRkbahx9+6HdJxSY72+yjj8weecTslFO838hTTzV74gmzFSu85flRT630yM42++wzsyFDzK65xqx8ee//u1o1szvv9Hrhmzb5XWXpoFCTUmH9+vV2zz33GGA1a9a0KVOmWFZWlt9lFYvvvjNLTDQ77zzvt7ByZbPWrc1mzzbLzCzYa+QEWk6Q7f9YQtv27WZvvmnWvr1ZzZp7e3H165v16WP2n/+oF3co+YWa85aHpoiICEtPT/e7DClmO3fuZNiwYQwdOpTs7Gy6detGr169OP744/0urUht3w5vvOFN+li61GuLioL77oM77oATTyzc6yUne2ezyHvwbyDgTWjo0aPIypYSYAarVnkTTebMgQ8/9GZYVqsGN94ILVtC8+agk+N4nHMrzCzioMsUauIXM+P111+nR48erF+/njvvvJOhQ4dyzjnn+F1akdm9G+bO9YJs5kzvWLL/+z8vyP75Tzj7bL8rlFC0fTssXOgF3Ny5sGmT13755V7AtWgBV1zhHQBeFinUJOSkp6fTuXNnPvjgA+rXr8/o0aO55ppr/C6rSJhBeroXZK+9Bj//DNWrw913Q5s20KBB/sdDieRlBp995gXcu+96Z5HJyoKTToJmzbyAa94cTj318K8VLhRqEjI2bdpEnz59mDx5MqeeeiqDBg2iXbt2lA+DPzm//947luzll+Hrr+GYY+Dmm70ga9ZMxylJ0fj1V1iwwAu4uXNh82avPSJi73FxDRuGdy9OoSa+y8jIYOTIkQwaNIjdu3fTuXNn+vbtywknnOB3aUflt9/gzTe9IHvvPa/tmmu84cV//MPbJyJSXLKz4dNP9x74vWyZ13byyXt7cc2ahV8vTqEmvli2bBmB4HU6XnjhBdatW8ett97K8OHD+dvf/uZzdUdu926YP98Lsrff9s4qcd55XpDdey/UqeN3hVJWbdu2txf37ruwZYs31J23FxcZWfp7cQo1KXELFy7kpptuIjMzE4Bzzz2XCRMm0LTpAWdXKxXM4JNPvCB79VXYuhVOOQVat/bCrGFD7SeT0JKdDStX7g24jz7y2k45Zd9eXI0afldaePmF2pGepV/kAOvWrWPWrFk899xzrF27lpw/mMqVK0dUVBQrVqwodaG2fj3861/eSYS//BIqVYKYGG8/WfPm3mORUFSunDcpqUED72oO27Z5Iww5Iffqq94fYpGRXsC1bOn16MoV9VU2S5h6anLEsrKyWL58ObNmzWLWrFl8/vnnAJx55pls2bKF7OxssrOzKV++PMceeyzTp08nuhRcUfH3372T0r78snfiWjO46iqvR3bnnd6sM5HSLDvbG3nIOS7u44+97bx6da/31rKld3xc9ep+V3pwGn6UIvPHH38wf/58Zs2axezZs9m6dSvly5fnmmuuoVWrVsTExFC3bl0CgQC333479evXZ+XKlSEfaHv2ePsiXn4ZZszwrlH297/v3U927rl+VyhSfH75xevF5RwX9/PPXi+uYcO9vbgGDUKnF6dQk6Pyww8/5PbGAoEAmZmZVKtWjZYtWxITE0Pz5s2pdpBpfv379ycpKYl+/fqRmJjoQ+X5M/NmjuXsJ/vpJ2/W2F13eWHWqJH2k0nZk50NK1bsPS5u+XLvd6VGjX17caec4l+NCjUplOzsbNLS0nKDbNWqVQCcd955xMTEEBMTQ5MmTahQ4dC7ZAOBALGxscTFxZGSkkJqamrI9NQ2bty7n2zNGu/4sVatvP1kLVtqP5lIXj//DPPmeQE3b573uFw5rxeXc3aTyy8v2V5cfqHm+0mL87vphMYl548//rC33nrLHnjgATvttNMMsPLly9s111xjw4YNs6+++qrAr7V48WKrXr26LQ6eWXf/x37YscNsyhSzpk29a5OBWePGZikpZr/84ltZIqXKnj3eVSXi480aNtz7u3TqqWZt2pi99lrJ/D6hExrLwaxfv5533nmHWbNmsXjxYnbt2sWJJ55IixYtcocVTz755EK/bnJyMpGRkfv0zAKBAGlpafQowTPtZmV55897+WV46y3YudPbN5azn+zvfy+xUkTC0tat+/bifvnF67FdccXeXlz9+kXfi9PwowDesOKKFStyhxU//fRTAP7+97/nDiteddVVVCzl53P67LO9+8k2bfLO6pGzn+zKK7WfTKQ4ZGV5V4jIOWQgLc1rP/547/fuqqu8Exe0aOGdsOBoriahUCvDdu7cycKFC5k1axbvvPMOmzdvply5cjRp0iQ3yM4//3xcKf+m//FHL8SmToXVq739ZC1bekHWqpV3HkYRKTlbtni9t5de2ntoDHi/m8cdB9On73vZpMLQwddlzMaNG3OHFRctWkRGRgYnnHACzZs3JyYmhhYtWnCKn1OXisiff3rDilOnwqJF3qytK66AsWO9nlkYfESRUuvUU70/Ku+7D9q3h0mTvPbdu73rBxbXvDGFWhjIzs7mk08+yR1WXLlyJeCdmurhhx8mJiaGq6++mkph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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = subplots(1,1, figsize = (7,5))\n", "if nSrc == 1:\n", diff --git a/simpegEM1D/KnownWaveforms.py b/simpegEM1D/KnownWaveforms.py new file mode 100644 index 0000000..4ebf353 --- /dev/null +++ b/simpegEM1D/KnownWaveforms.py @@ -0,0 +1,551 @@ +""" + +:mod:`Waveforms` -- Known current Waveforms for airborne EM systems +================================================================== + +XXX + + +""" + +import numpy as np +from scipy.integrate import fixed_quad +from scipy.integrate.quadrature import _cached_roots_legendre + +# from scipy.signal import butter, freqz + + +class CurrentWaveforms: + """Simple Class for CurrentWaveforms.""" + def __init__(self, name): + """Add the filter name.""" + self.name = name + + +def skytem_HM_2015(): + """ + SkyTEM High moment (HM) current waveform + """ + + waveform = CurrentWaveforms('skytem high moment 2015') + + waveform.base_frequency = "30 Hz" + waveform.currrent_amplitude = "122.5 A" + waveform.current_times = np.array([ + -2.06670E-02, + -2.05770E-02, + -2.04670E-02, + -1.66670E-02, + -1.64726E-02, + -1.64720E-02, + -1.64706E-02, + -4.00000E-03, + -3.91000E-03, + -3.80000E-03, + 0.00000E+00, + 1.94367E-04, + 1.95038E-04, + 1.96368E-04 + ]) + + waveform.currents = np.array([ + 0.00000E+00, + -5.30000E-01, + -9.73000E-01, + -1.00000E+00, + -2.81610E-03, + -1.44356E-03, + 0.00000E+00, + 0.00000E+00, + 5.30000E-01, + 9.73000E-01, + 1.00000E+00, + 2.81610E-03, + 1.44356E-03, + 0.00000E+00 + ]) + + # For Trapezoidal Waveform + t0, t1, t2, t3 = -4.00000E-03, -3.80000E-03, 0., 1.96368E-04 + waveform.times_trapezoids = np.array([t0, t1, t2, t3]) + + waveform.time_shift = 220 * 1e-6 + waveform.time_gate_center = np.array([ + 12.715, + 16.215, + 20.715, + 26.215, + 33.215, + 42.215, + 53.715, + 68.215, + 86.215, + 108.715, + 136.715, + 172.215, + 217.715, + 274.715, + 346.715, + 437.715, + 551.715, + 695.715, + 877.215, + 1105.715, + 1394.215, + 1758.215, + 2216.715, + 2794.715, + 3523.715, + 4442.715, + 5601.215, + 7061.215, + 8902.215, + 11064.715 + ]) * 1e-6 + + return waveform + + +def skytem_LM_2015(): + """ + SkyTEM Low moment (LM) current waveform + """ + + waveform = CurrentWaveforms('skytem low moment 2015') + + waveform.base_frequency = "210 Hz" + waveform.currrent_amplitude = "8.3 A" + waveform.current_times = np.array([ + -3.1810e-003, + -3.1100e-003, + -2.7860e-003, + -2.5334e-003, + -2.3820e-003, + -2.3810e-003, + -2.3798e-003, + -2.3779e-003, + -2.3762e-003, + -2.3749e-003, + -2.3733e-003, + -2.3719e-003, + -2.3716e-003, + -8.0000e-004, + -7.2902e-004, + -4.0497e-004, + -1.5238e-004, + -1.0000e-006, + 0, + 1.1535e-006, + 3.0943e-006, + 4.7797e-006, + 6.1076e-006, + 7.7420e-006, + 9.0699e-006, + 9.4274e-006, + ]) + + waveform.currents = np.array([ + 0, + -1.0078e-001, + -4.5234e-001, + -7.6328e-001, + -1.0000e+000, + -1.0000e+000, + -8.6353e-001, + -3.4002e-001, + -1.1033e-001, + -4.4709e-002, + -1.3388e-002, + -4.4389e-003, + 0, + 0, + 1.0078e-001, + 4.5234e-001, + 7.6328e-001, + 1.0000e+000, + 1.0000e+000, + 8.6353e-001, + 3.4002e-001, + 1.1033e-001, + 4.4709e-002, + 1.3388e-002, + 4.4389e-003, + 0 + ]) + + # For Trapezoidal Waveform + t0, t1, t2, t3 = -8.0000e-04, -1e-6, 0., 9.4274e-006 + waveform.times_trapezoids = np.array([t0, t1, t2, t3]) + + waveform.time_shift = 220 * 1e-6 + waveform.time_gate_center = np.array([ + 10.215, + 12.715, + 16.215, + 20.715, + 26.215, + 33.215, + 42.215, + 53.715, + 68.215, + 86.215, + 108.715, + 136.715, + 172.215, + 217.715, + 274.715, + 346.715, + 437.715, + 551.715, + 695.715, + 877.215, + 1105.715, + 1394.215 + ]) * 1e-6 + + return waveform + + +def piecewise_ramp( + step_func, t_channels, t_currents, currents, + n=20, eps=1e-10 +): + """ + Computes response from piecewise linear current waveform + with a single pulse. This basically evaluates the convolution + between dI/dt and step-off response. + + step_func: function handle to evaluate step-off response + t_channels: time channels when the current is on or off + currents: input source currents + n: Gaussian quadrature order + """ + dt = np.diff(t_currents) + dI = np.diff(currents) + dIdt = dI/dt + nt = t_currents.size + response = np.zeros(t_channels.size, dtype=float) + pulse_time = t_currents.max() + + for i in range(1, nt): + t_lag = pulse_time - t_currents[i] + time = t_lag + t_channels + t0 = dt[i-1] + const = -dIdt[i-1] + if abs(const) > eps: + for j, t in enumerate(time): + # on-time + # TODO: this is only working when we have a single ramp... + if t < 0.: + print (t+t0) + response[j] += ( + fixed_quad(step_func, 0, t+t0, n=n)[0] * const + ) + # off-time + else: + response[j] += ( + fixed_quad(step_func, t, t+t0, n=n)[0] * const + ) + return response + + +def piecewise_ramp_fast( + step_func, t_off, t_currents, currents, x, w, + eps=1e-10 +): + """ + Computes response from piecewise linear current waveform + with a single pulse. This basically evaluates the convolution + between dI/dt and step-off response. + + step_func: function handle to evaluate step-off response + t_off: time channels when the current is off + t_shift: t_off + T/2 + currents: input source currents + n: Gaussian quadrature order + """ + n = x.size + dt = np.diff(t_currents) + dI = np.diff(currents) + dIdt = dI/dt + nt = t_currents.size + pulse_time = t_currents.max() + + # Create a bunch of memory in C and use broadcasting + t_lag = pulse_time - t_currents + t_lag_expand = (np.repeat(t_lag[1:, np.newaxis], t_off.size, 1)).T + t_lag_3D = np.repeat(t_lag_expand[:, :, np.newaxis], n, 2) + t3D = t_lag_3D + t_off[:, np.newaxis, np.newaxis] + # Gauss-Legendre part. + # Expand time shifts and origin to 3D with G-L points + inds = t3D[:,:,0] < 0. + # Compute dt for both on-time and off-time + # off-time f(t, t+t0) + # on-time f(0, t+t0) + dt_on_off = np.tile(dt, (t_off.size, 1)) + dt_on_off[inds] = (dt + t3D[:,:,0])[inds] + t3D[inds,:] = 0. + + y = dt_on_off[:,:,np.newaxis] * (0.5 * (x + 1.0)) + t3D + + # Evaluate and weight G-L values with current waveform + f = w * step_func(np.log10(y)) + s = f.sum(axis = 2) * 0.5 * dt_on_off + + response = np.sum(s * -dIdt, axis=1) + + return response + + +def piecewise_ramp_fast_diff( + step_func, t_off, t_shift, t_currents, currents, x, w, + eps=1e-10 +): + """ + Computes response from piecewise linear current waveform + with a single pulse. This basically evaluates the convolution + between dI/dt and step-off response. + + step_func: function handle to evaluate step-off response + t_off: time channels when the current is off + t_shift: t_off + T/2 + currents: input source currents + n: Gaussian quadrature order + """ + n = x.size + dt = np.diff(t_currents) + dI = np.diff(currents) + dIdt = dI/dt + nt = t_currents.size + pulse_time = t_currents.max() + + # Create a bunch of memory in C and use broadcasting + t_lag = pulse_time - t_currents + t_lag_expand = (np.repeat(t_lag[1:, np.newaxis], t_off.size, 1)).T + t_lag_3D = np.repeat(t_lag_expand[:, :, np.newaxis], n, 2) + t3D = t_lag_3D + t_off[:,np.newaxis, np.newaxis] + + # Gauss-Legendre part. + # Expand time shifts and origin to 3D with G-L points + inds = t3D[:,:,0] < 0. + # Compute dt for both on-time and off-time + # off-time f(t, t+t0) + # on-time f(0, t+t0) + dt_on_off = np.tile(dt, (t_off.size, 1)) + dt_on_off[inds] = (dt + t3D[:,:,0])[inds] + t3D[inds,:] = 0. + + y = dt_on_off[:,:,np.newaxis] * (0.5 * (x + 1.0)) + t3D + # Evaluate and weight G-L values with current waveform + f = w * step_func(np.log10(y)) + s = f.sum(axis = 2) * 0.5*dt_on_off + + response = np.sum(s * -dIdt, axis=1) + + t3D = t_lag_3D + t_shift[:,np.newaxis, np.newaxis] + inds = t3D[:,:,0] < 0. + # Compute dt for both on-time and off-time + # off-time f(t, t+t0) + # on-time f(0, t+t0) + dt_on_off = np.tile(dt, (t_off.size, 1)) + dt_on_off[inds] = (dt + t3D[:,:,0])[inds] + t3D[inds,:] = 0. + + # Gauss-Legendre part. + # Expand time shifts and origin to 3D with G-L points + y = dt_on_off[:,:,np.newaxis] * (0.5 * (x + 1.0)) + t3D + # Evaluate and weight G-L values with current waveform + f = w * step_func(np.log10(y)) + s = f.sum(axis = 2) * 0.5*dt_on_off + + response -= 0.5* np.sum(s * -dIdt, axis=1) + + return response + + + +def piecewise_pulse( + step_func, t_off, t_currents, currents, T, n=20, n_pulse=2 +): + """ + Computes response from double pulses (negative then positive) + T: Period (e.g. 25 Hz base frequency, 0.04 s period) + """ + if n_pulse == 1: + response = piecewise_ramp( + step_func, t_off, t_currents, currents, n=n + ) + elif n_pulse == 2: + response = ( + piecewise_ramp( + step_func, t_off, t_currents, currents, n=n + ) - + piecewise_ramp( + step_func, t_off+T/2., t_currents, currents, n=n + ) * 0.5 + ) + else: + raise NotImplementedError("n_pulse must be either 1 or 2") + return response + + +def piecewise_pulse_fast( + step_func, t_off, t_currents, currents, T, n=20, n_pulse=2 +): + """ + Computes response from double pulses (negative then positive) + T: Period (e.g. 25 Hz base frequency, 0.04 s period) + """ + + # Use early out scheme for speed. Can turn assertions off with "python -O" + assert (n_pulse == 1 or n_pulse == 2), NotImplementedError("n_pulse must be either 1 or 2") + + # Get gauss-legendre points and weights early since n never changes inside here + x, w = _cached_roots_legendre(n) + + if n_pulse == 1: + response = piecewise_ramp_fast( + step_func, t_off, t_currents, currents, x, w + ) + elif n_pulse == 2: + response = piecewise_ramp_fast_diff( + step_func, t_off, t_off+0.5*T, t_currents, currents, x, w + ) + return response + + +def butter_lowpass_filter(highcut_frequency, fs=1e6, period=0.04, order=1): + """ + Butterworth low pass filter + + Parameters + ---------- + + highcut_frequency: float + high-cut frequency for the low pass filter + fs: float + sampling rate, 1./ dt, (default = 1MHz) + period: + period of the signal (e.g. 25Hz base frequency, 0.04s) + order: int + The order of the butterworth filter + + Returns + ------- + + frequency, h: ndarray, ndarray + Filter values (`h`) at frequencies (`frequency`) are provided. + """ + + # Nyquist frequency + nyq = 0.5 * fs + n_samples = period * fs + high = highcut_frequency / nyq + b, a = butter(order, high, btype='low') + w, h = freqz(b, a, worN=int(n_samples)) + frequency = (fs * 0.5 / np.pi) * w + + return frequency, h + + +def butterworth_type_filter(frequency, highcut_frequency, order=2): + """ + Butterworth low pass filter + + Parameters + ---------- + + highcut_frequency: float + high-cut frequency for the low pass filter + fs: float + sampling rate, 1./ dt, (default = 1MHz) + period: + period of the signal (e.g. 25Hz base frequency, 0.04s) + order: int + The order of the butterworth filter + + Returns + ------- + + frequency, h: ndarray, ndarray + Filter values (`h`) at frequencies (`frequency`) are provided. + """ + + # Nyquist frequency + h = 1./(1+1j*(frequency/highcut_frequency))**order + highcut_frequency = 300*1e3 + h *= 1./(1+1j*(frequency/highcut_frequency))**1 + return h + + +def rotate_origin_only(xy, radians): + """Only rotate a point around the origin (0, 0).""" + xx = xy[:, 0] * np.cos(radians) + xy[:, 1] * np.sin(radians) + yy = -xy[:, 0] * np.sin(radians) + xy[:, 1] * np.cos(radians) + return np.c_[xx, yy] + + +def rotate_to_x_axis(xy, observation_point): + """ + Moves each of two sequential points to origin (0,0) + then rotate to x-axis + """ + n_pts = xy.shape[0] + dxy = np.empty((n_pts-1, 2), dtype=float, order='F') + dxy_obs = np.empty((n_pts-1, 2), dtype=float, order='F') + angle = np.empty(n_pts-1, dtype=float) + dxy = np.diff(xy, axis=0) + print (dxy) + dxy_obs = observation_point.repeat(n_pts-1).reshape((2, n_pts-1)).T + angle = np.arctan2(dxy[:, 1], dxy[:, 0]) + # this is for self-check + xy_rot = rotate_origin_only(dxy, angle) + xy_obs_rot = rotate_origin_only(dxy_obs, angle) + + # For computation of Hx, Hy angle is required + # Hx: hx cos theta + hy sin theta + # Hy: hx sin theta - hy cos theta + # Hz: hz + return xy_rot, xy_obs_rot, angle + + +def get_geotem_wave(pulse_period, n_segment=3): + t = 0. + T = pulse_period + time_input_currents = np.r_[0., T/2., np.linspace(3*T/4., T, n_segment)] + input_currents = np.sin(np.pi/T*time_input_currents) + return time_input_currents, input_currents + + +def get_nanotem_wave(ramp_off_time): + time_input_currents = np.r_[0, ramp_off_time] + input_currents = np.r_[1, 0.] + return time_input_currents, input_currents + + +def get_flight_direction_from_fiducial(fiducial, lines, easting, northing): + lines_unique = np.unique(lines) + n_line = lines_unique.size + flight_direction = np.empty(fiducial.size, dtype=float) + i_start = 0 + for i_line, line_unique in enumerate(lines_unique): + ind_line = lines == line_unique + x0, x1 = easting[ind_line][0], easting[ind_line][-1] + y0, y1 = northing[ind_line][0], northing[ind_line][-1] + dx = x1-x0 + dy = y1-y0 + n = ind_line.sum() + flight_direction[i_start:i_start+n] = np.arctan2(dy, dx) + i_start += n + return flight_direction + + +def get_rx_locations_from_flight_direction( + flight_direction, src_locations, offset=120, dz=-45 +): + dx = offset*np.cos(np.deg2rad(flight_direction)) + dy = offset*np.sin(np.deg2rad(flight_direction)) + rx_locations = np.c_[ + src_locations[:, 0]-dx, src_locations[:, 1]-dy, src_locations[:, 2]+dz + ] + return rx_locations diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index 9ec5f0a..a45ff40 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -7,14 +7,14 @@ from .supporting_functions.digital_filter import ( transFilt, transFiltImpulse, transFiltInterp, transFiltImpulseInterp ) -from .Waveform import CausalConv +from .waveforms import CausalConv from scipy.interpolate import interp1d from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline import properties from empymod import filters from empymod.utils import check_time from empymod.transform import fourier_dlf -from .Waveforms import ( +from .KnownWaveforms import ( piecewise_pulse_fast, butterworth_type_filter, butter_lowpass_filter ) diff --git a/simpegEM1D/Waveform.py b/simpegEM1D/Waveform_old.py similarity index 100% rename from simpegEM1D/Waveform.py rename to simpegEM1D/Waveform_old.py diff --git a/simpegEM1D/Waveforms.py b/simpegEM1D/Waveforms.py index 4ebf353..3f04775 100644 --- a/simpegEM1D/Waveforms.py +++ b/simpegEM1D/Waveforms.py @@ -1,551 +1,113 @@ -""" - -:mod:`Waveforms` -- Known current Waveforms for airborne EM systems -================================================================== - -XXX - - -""" - import numpy as np -from scipy.integrate import fixed_quad -from scipy.integrate.quadrature import _cached_roots_legendre - -# from scipy.signal import butter, freqz - - -class CurrentWaveforms: - """Simple Class for CurrentWaveforms.""" - def __init__(self, name): - """Add the filter name.""" - self.name = name - +from scipy.interpolate import interp1d +from scipy.constants import mu_0 -def skytem_HM_2015(): +def TriangleFun(time, ta, tb): """ - SkyTEM High moment (HM) current waveform + Triangular Waveform + * time: 1D array for time + * ta: time at peak + * tb: time at step-off """ + out = np.zeros(time.size) + out[time<=ta] = 1/ta*time[time<=ta] + out[(time>ta)&(timeta)&(timeta)&(time eps: - for j, t in enumerate(time): - # on-time - # TODO: this is only working when we have a single ramp... - if t < 0.: - print (t+t0) - response[j] += ( - fixed_quad(step_func, 0, t+t0, n=n)[0] * const - ) - # off-time - else: - response[j] += ( - fixed_quad(step_func, t, t+t0, n=n)[0] * const - ) - return response + out = np.zeros(time.size) + out[time<=ta] = np.sin(1./ta*np.pi*time[time<=ta]) + return out -def piecewise_ramp_fast( - step_func, t_off, t_currents, currents, x, w, - eps=1e-10 -): +def SineFunDeriv(time, ta): """ - Computes response from piecewise linear current waveform - with a single pulse. This basically evaluates the convolution - between dI/dt and step-off response. - - step_func: function handle to evaluate step-off response - t_off: time channels when the current is off - t_shift: t_off + T/2 - currents: input source currents - n: Gaussian quadrature order + Derivative of Sine Waveform """ - n = x.size - dt = np.diff(t_currents) - dI = np.diff(currents) - dIdt = dI/dt - nt = t_currents.size - pulse_time = t_currents.max() - - # Create a bunch of memory in C and use broadcasting - t_lag = pulse_time - t_currents - t_lag_expand = (np.repeat(t_lag[1:, np.newaxis], t_off.size, 1)).T - t_lag_3D = np.repeat(t_lag_expand[:, :, np.newaxis], n, 2) - t3D = t_lag_3D + t_off[:, np.newaxis, np.newaxis] - # Gauss-Legendre part. - # Expand time shifts and origin to 3D with G-L points - inds = t3D[:,:,0] < 0. - # Compute dt for both on-time and off-time - # off-time f(t, t+t0) - # on-time f(0, t+t0) - dt_on_off = np.tile(dt, (t_off.size, 1)) - dt_on_off[inds] = (dt + t3D[:,:,0])[inds] - t3D[inds,:] = 0. - - y = dt_on_off[:,:,np.newaxis] * (0.5 * (x + 1.0)) + t3D - - # Evaluate and weight G-L values with current waveform - f = w * step_func(np.log10(y)) - s = f.sum(axis = 2) * 0.5 * dt_on_off + out = np.zeros(time.size) + out[time<=ta] = 1./ta*np.pi*np.cos(1./ta*np.pi*time[time<=ta]) + return out - response = np.sum(s * -dIdt, axis=1) - return response - - -def piecewise_ramp_fast_diff( - step_func, t_off, t_shift, t_currents, currents, x, w, - eps=1e-10 -): +def VTEMFun(time, ta, tb, a): """ - Computes response from piecewise linear current waveform - with a single pulse. This basically evaluates the convolution - between dI/dt and step-off response. - - step_func: function handle to evaluate step-off response - t_off: time channels when the current is off - t_shift: t_off + T/2 - currents: input source currents - n: Gaussian quadrature order + VTEM Waveform + * time: 1D array for time + * ta: time at peak of exponential part + * tb: time at step-off """ - n = x.size - dt = np.diff(t_currents) - dI = np.diff(currents) - dIdt = dI/dt - nt = t_currents.size - pulse_time = t_currents.max() - - # Create a bunch of memory in C and use broadcasting - t_lag = pulse_time - t_currents - t_lag_expand = (np.repeat(t_lag[1:, np.newaxis], t_off.size, 1)).T - t_lag_3D = np.repeat(t_lag_expand[:, :, np.newaxis], n, 2) - t3D = t_lag_3D + t_off[:,np.newaxis, np.newaxis] + out = np.zeros(time.size) + out[time<=ta] = (1-np.exp(-a*time[time<=ta]/ta))/(1-np.exp(-a)) + out[(time>ta)&(timeta)&(timeta)&(time/(|v1||v2|) + cos_alpha = ((xyz[:, 0]-x1a)*(x1b - x1a) + (xyz[:, 1]-x2a)*(x2b - x2a) + (xyz[:, 2]-x3a)*(x3b - x3a))/(vap*vab) + cos_beta = ((xyz[:, 0]-x1b)*(x1a - x1b) + (xyz[:, 1]-x2b)*(x2a - x2b) + (xyz[:, 2]-x3b)*(x3a - x3b))/(vbp*vab) + + # Determining Radial Vector From Wire + dot_temp = ( + (x1a - xyz[:, 0])*(x1b - x1a) + + (x2a - xyz[:, 1])*(x2b - x2a) + + (x3a - xyz[:, 2])*(x3b - x3a) + ) + + rx1 = (x1a - xyz[:, 0]) - dot_temp*(x1b - x1a)/vab**2 + rx2 = (x2a - xyz[:, 1]) - dot_temp*(x2b - x2a)/vab**2 + rx3 = (x3a - xyz[:, 2]) - dot_temp*(x3b - x3a)/vab**2 + + r = np.sqrt(rx1**2 + rx2**2 + rx3**2) + + phi = (cos_alpha + cos_beta)/r + + # I/4*pi in each direction + ix1 = I*(x1b - x1a)/(4*np.pi*vab) + ix2 = I*(x2b - x2a)/(4*np.pi*vab) + ix3 = I*(x3b - x3a)/(4*np.pi*vab) + + # Add contribution from wire pp into array + hx0 = hx0 + phi*(-ix2*rx3 + ix3*rx2)/r + hy0 = hy0 + phi*( ix1*rx3 - ix3*rx1)/r + hz0 = hz0 + phi*(-ix1*rx2 + ix2*rx1)/r + + return np.c_[hx0, hy0, hz0] + + def __init__(self, receiver_list=None, **kwargs): super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - ############################################################################# # Time Sources - +############################################################################# class BaseTimeSrc(BaseSrc): @@ -226,10 +327,6 @@ def nD(self): return self.n_time + self.n_time_dual_moment - - - - class TimeDomainMagneticDipoleSource(BaseTimeSrc): orientation = properties.StringChoice( @@ -258,5 +355,4 @@ class TimeDomainLineSource(BaseTimeSrc): def __init__(self, receiver_list=None, **kwargs): super(TimeDomainLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index bca0f50..a915f17 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -524,10 +524,17 @@ def hz_kernel_vertical_magnetic_dipole( ): """ - Kernel for vertical magnetic component (Hz) due to - vertical magnetic diopole (VMD) source in (kx,ky) domain + Kernel for vertical magnetic component (Hz) due to + vertical magnetic diopole (VMD) source in (kx,ky) domain + + .. math:: + + H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} + \\r_{TE} e^{u_0|z-h|} + \\frac{\\lambda^3}{u_0} J_0(\\lambda r) d \\lambda """ + u0 = lamda coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 @@ -596,9 +603,9 @@ def hz_kernel_circular_loop( .. math:: - H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + - \\r_{TE}e^{u_0|z-h|}] - \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda + H_z = \\frac{Ia}{2} \\int_0^{\\infty} + \\r_{TE}e^{u_0|z-h|}] \\frac{\\lambda^2}{u_0} + J_1(\\lambda a) J_0(\\lambda r) d \\lambda """ @@ -607,10 +614,10 @@ def hz_kernel_circular_loop( w = 2*np.pi*f u0 = lamda - radius = np.empty([n_frequency, n_filter], order='F') - radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) + a = np.empty([n_frequency, n_filter], order='F') + a[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - coefficient_wavenumber = I*radius*0.5*lamda**2/u0 + coefficient_wavenumber = I*a*0.5*lamda**2/u0 if output_type == 'sensitivity_sigma': drTE = np.empty( diff --git a/simpegEM1D/survey_original.py b/simpegEM1D/survey_original.py index afa3bc0..94c1de9 100644 --- a/simpegEM1D/survey_original.py +++ b/simpegEM1D/survey_original.py @@ -7,14 +7,14 @@ from .supporting_functions.digital_filter import ( transFilt, transFiltImpulse, transFiltInterp, transFiltImpulseInterp ) -from .Waveform import CausalConv +from .waveforms import CausalConv from scipy.interpolate import interp1d from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline import properties from empymod import filters from empymod.utils import check_time from empymod.transform import fourier_dlf -from .Waveforms import ( +from .KnownWaveforms import ( piecewise_pulse_fast, butterworth_type_filter, butter_lowpass_filter ) diff --git a/tutorials/assets/em1dfm_data.obs b/tutorials/assets/em1dfm_data.obs new file mode 100644 index 0000000..58365f7 --- /dev/null +++ b/tutorials/assets/em1dfm_data.obs @@ -0,0 +1,5 @@ +3.8200e+02 9.0138e+02 7.2702e+02 +1.8220e+03 1.6540e+03 1.1406e+03 +7.9700e+03 3.0179e+03 1.9620e+03 +3.5920e+04 5.6392e+03 2.0043e+03 +1.3010e+05 6.8207e+03 1.3545e+03 diff --git a/tutorials/assets/em1dtm_data.obs b/tutorials/assets/em1dtm_data.obs new file mode 100644 index 0000000..e3167cd --- /dev/null +++ b/tutorials/assets/em1dtm_data.obs @@ -0,0 +1,31 @@ +1.0000e-05 6.0424e-07 +1.2589e-05 5.4259e-07 +1.5849e-05 4.6850e-07 +1.9953e-05 3.9459e-07 +2.5119e-05 3.3877e-07 +3.1623e-05 2.8420e-07 +3.9811e-05 2.3366e-07 +5.0119e-05 1.9199e-07 +6.3096e-05 1.5131e-07 +7.9433e-05 1.2753e-07 +1.0000e-04 1.0592e-07 +1.2589e-04 8.8744e-08 +1.5849e-04 7.6705e-08 +1.9953e-04 6.4267e-08 +2.5119e-04 5.8578e-08 +3.1623e-04 5.1666e-08 +3.9811e-04 4.4620e-08 +5.0119e-04 3.9279e-08 +6.3096e-04 3.4974e-08 +7.9433e-04 2.9832e-08 +1.0000e-03 2.5995e-08 +1.2589e-03 2.1381e-08 +1.5849e-03 1.7777e-08 +1.9953e-03 1.4320e-08 +2.5119e-03 1.0753e-08 +3.1623e-03 8.0587e-09 +3.9811e-03 6.1455e-09 +5.0119e-03 4.3226e-09 +6.3096e-03 3.0812e-09 +7.9433e-03 2.0688e-09 +1.0000e-02 1.4080e-09 diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index ee38105..d47c14e 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -14,12 +14,16 @@ # import numpy as np +import os from matplotlib import pyplot as plt +from discretize import TensorMesh from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.analytics import ColeCole +from simpegEM1D.Utils1D import plotLayer +plt.rcParams.update({'font.size': 16}) +save_file = True ##################################################################### # Create Survey @@ -27,15 +31,15 @@ # # -source_location = np.array([0., 0., 0.]) -source_orientation = "z" # "x", "y" or "z" +source_location = np.array([0., 0., 30.]) source_current = 1. +source_radius = 1. -receiver_location = np.array([8., 0., 0.]) +receiver_location = np.array([10., 0., 30.]) receiver_orientation = "z" # "x", "y" or "z" -field_type = "secondary" # "secondary", "total" or "ppm" +field_type = "ppm" # "secondary", "total" or "ppm" -frequencies = np.logspace(-1, 8, 51) +frequencies = np.array([382, 1822, 7970, 35920, 130100], dtype=float) # Receiver list receiver_list = [] @@ -48,24 +52,25 @@ receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation=receiver_orientation, - field_type="secondary", component="imag" + field_type=field_type, component="imag" ) ) # Sources +#source_list = [ +# em1d.sources.HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +#] + source_list = [ em1d.sources.HarmonicMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation=source_orientation, + receiver_list=receiver_list, location=source_location, orientation="z", I=source_current ) ] -# source_list = [ -# HarmonicHorizontalLoopSource( -# receiver_list=receiver_list, location=src_location, a=a, I=I -# ) -# ] - # Survey survey = em1d.survey.EM1DSurveyFD(source_list) @@ -80,88 +85,64 @@ # infinity. # +# Physical properties +background_conductivity = 1e-1 +layer_conductivity = 1e0 + # Layer thicknesses -thicknesses = np.array([20., 20.]) +thicknesses = np.array([20., 40.]) n_layer = len(thicknesses) + 1 -# half-space physical properties -sigma = 1e-2 -eta = 0.5 -tau = 0.001 -c = 0.5 -chi = 0. - # physical property models -sigma_model = sigma * np.ones(n_layer) -eta_model = eta * np.ones(n_layer) -tau_model = tau * np.ones(n_layer) -c_model = c * np.ones(n_layer) -chi_model = chi * np.ones(n_layer) +model = background_conductivity*np.ones(n_layer) +model[1] = layer_conductivity # Define a mapping for conductivities model_mapping = maps.IdentityMap(nP=n_layer) -# Compute and plot complex conductivity at all frequencies -sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) -ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) -ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) -ax.set_xlim(np.min(frequencies), np.max(frequencies)) -ax.set_ylim(0., 1.1*sigma) -ax.set_xlabel("Frequency (Hz)") -ax.set_ylabel("Conductivity") -ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) +# Plot conductivity model +plotting_mesh = TensorMesh([np.r_[thicknesses, 40.]]) +plotLayer(model, plotting_mesh, showlayers=False) ####################################################################### -# Define the Forward Simulation and Predict MT Data -# ------------------------------------------------- -# -# Here we predict MT data. If the keyword argument *rhoMap* is -# defined, the simulation will expect a resistivity model. If the keyword -# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- # + # Simulate response for static conductivity simulation = em1d.simulation.EM1DFMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, - chi=chi_model ) -dpred = simulation.dpred(sigma_model) - -# Simulate response for complex conductivity -simulation_colecole = em1d.simulation.EM1DFMSimulation( - survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, - eta=eta, tau=tau, c=c, chi=chi_model -) - -dpred_colecole = simulation_colecole.dpred(sigma_model) +dpred = simulation.dpred(model) ####################################################################### -# Analytic Solution +# Plotting Results # ------------------------------------------------- # # fig, ax = plt.subplots(1,1, figsize = (7, 7)) -ax.loglog(frequencies, np.abs(dpred[0:len(frequencies)]), 'b-', lw=2) -ax.loglog(frequencies, np.abs(dpred[len(frequencies):]), 'b--', lw=2) -ax.loglog(frequencies, np.abs(dpred_colecole[0:len(frequencies)]), 'r-', lw=2) -ax.loglog(frequencies, np.abs(dpred_colecole[len(frequencies):]), 'r--', lw=2) +ax.loglog(frequencies, np.abs(dpred[0:len(frequencies)]), 'k-o', lw=3, ms=10) +ax.loglog(frequencies, np.abs(dpred[len(frequencies):]), 'k:o', lw=3, ms=10) ax.set_xlabel("Frequency (Hz)") -ax.set_ylabel("Magnetic Field (A/m)") -ax.set_title("Response for a chargeable and non-chargeable half-space") -ax.legend(( - 'Real ($\sigma_{DC}$)', 'Imaginary ($\sigma_{DC}$)', - 'Real (Cole-Cole)', 'Imaginary (Cole-Cole)' -)) - - +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["Real", "Imaginary"]) + +if save_file == True: + + noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_data.obs' + np.savetxt( + fname, + np.c_[frequencies, dpred[0:len(frequencies)], dpred[len(frequencies):]], + fmt='%.4e' + ) diff --git a/tutorials/plot_1_fdem_fwd_chargeable.py b/tutorials/plot_1_fdem_fwd_chargeable.py new file mode 100644 index 0000000..f1e38a8 --- /dev/null +++ b/tutorials/plot_1_fdem_fwd_chargeable.py @@ -0,0 +1,182 @@ +""" +Forward Simulation over a Chargeable Earth +========================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.analytics import ColeCole + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. + +receiver_location = np.array([8., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +frequencies = np.logspace(-1, 8, 51) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) +) + +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type="secondary", component="imag" + ) +) + +# Sources +source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation=source_orientation, + I=source_current + ) +] + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([20., 20.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.001 +c = 0.5 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +# Compute and plot complex conductivity at all frequencies +sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(0., 1.1*sigma) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Conductivity") +ax.legend( + ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], + loc="center right" +) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred = simulation.dpred(sigma_model) + +# Simulate response for complex conductivity +simulation_colecole = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + eta=eta, tau=tau, c=c, chi=chi_model +) + +dpred_colecole = simulation_colecole.dpred(sigma_model) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dpred[0:len(frequencies)]), 'b-', lw=2) +ax.loglog(frequencies, np.abs(dpred[len(frequencies):]), 'b--', lw=2) +ax.loglog(frequencies, np.abs(dpred_colecole[0:len(frequencies)]), 'r-', lw=2) +ax.loglog(frequencies, np.abs(dpred_colecole[len(frequencies):]), 'r--', lw=2) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|H| (A/m)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(( + 'Real (non-chargeable)', 'Imaginary (non-chargeable)', + 'Real (chargeable)', 'Imaginary (chargeable)' +)) + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py new file mode 100644 index 0000000..973a8fd --- /dev/null +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -0,0 +1,178 @@ +""" +Forward Simulation over a Chargeable Earth +========================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = np.sqrt(1/np.pi) + +phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] +node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] + +receiver_location = np.array([20., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +frequencies = np.logspace(-1, 8, 51) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) +) + +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) +) + +# Sources +source_list = [] + +source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, + orientation=source_orientation, I=source_current + ) +) + +source_list.append( + em1d.sources.HarmonicHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + a=source_radius, I=source_current + ) +) + +#source_list.append( +# em1d.sources.HarmonicLineSource( +# receiver_list=receiver_list, location=node_locations, +# I=source_current +# ) +#) + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([20., 20.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.001 +c = 0.5 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred = simulation.dpred(sigma_model) + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + +dpred = np.reshape(dpred, (4, len(frequencies))).T + + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dpred[:,0]), 'b-', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,1]), 'b--', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,2]), 'r-', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,3]), 'r--', lw=2) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|H| (A/m)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(( + 'Real (dipole)', 'Imaginary (dipole)', + 'Real (loop)', 'Imaginary (loop)', + 'Real (line)', 'Imaginary (line)' +)) + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_fdem_inv.py b/tutorials/plot_1_fdem_inv.py new file mode 100644 index 0000000..bf80143 --- /dev/null +++ b/tutorials/plot_1_fdem_inv.py @@ -0,0 +1,391 @@ +""" +Inversion of 1D Frequency-Domain Data +============================================== + + +""" + + +######################################################################### +# Import modules +# -------------- +# + +import os, shutil +import numpy as np +import matplotlib as mpl +import matplotlib.pyplot as plt + +from discretize import TensorMesh + +import simpegEM1D as em1d +from simpegEM1D.EM1DSimulation import get_vertical_discretization_frequency +from simpegEM1D.Utils1D import plotLayer +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + +# sphinx_gallery_thumbnail_number = 3 + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_data.obs' + + + +############################################# +# Load Data and Plot +# ------------------ +# +# Here we load and plot synthetic gravity anomaly data. Topography is generally +# defined as an (N, 3) array. Gravity data is generally defined with 4 columns: +# x, y, z and data. +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + +# Define receiver locations and observed data +frequencies = dobs[:, 0] +dobs = mkvc(dobs[:, 1:]) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dobs[0:len(frequencies)]), 'k-o', lw=3) +ax.loglog(frequencies, np.abs(dobs[len(frequencies):]), 'k:o', lw=3) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["Real", "Imaginary"]) + + + +############################################# +# Defining the Survey +# ------------------- + +source_location = np.array([0., 0., 30.]) +source_current = 1. +source_radius = 1. + +receiver_location = np.array([10., 0., 30.]) +receiver_orientation = "z" +field_type = "ppm" + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) +) +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) +) + +# Sources +#source_list = [ +# em1d.sources.HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +#] + +source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) +] + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.05*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + +############################################################### +# Defining a 1D Layered Earth (1D Tensor Mesh) +# -------------------------------------------- +# +# Here, we define the layer thicknesses for our 1D simulation. To do this, we use +# the TensorMesh class. +# + +# Based on estimate of background conductivity, make layers + +#inv_thicknesses = get_vertical_discretization_frequency( +# frequencies, sigma_background=0.1, +# factor_fmax=20, factor_fmin=1., n_layer=50, +#) + +inv_thicknesses = np.logspace(0,1.5,25) + +# Define a mesh for plotting and regularization. +mesh = TensorMesh([(np.r_[inv_thicknesses, inv_thicknesses[-1]])], '0') + +print(mesh) + + +######################################################## +# Define a Starting and Reference Model +# ------------------------------------- +# +# Here, we create starting and/or reference models for the inversion as +# well as the mapping from the model space to the active cells. Starting and +# reference models can be a constant background value or contain a-priori +# structures. Here, the starting model is log(0.001) S/m. +# +# Define log-conductivity values for each layer since our model is the +# log-conductivity. Don't make the values 0! +# Otherwise the gradient for the 1st iteration is zero and the inversion will +# not converge. + +# Define model. A resistivity (Ohm meters) or conductivity (S/m) for each layer. +starting_model = np.log(0.1*np.ones(mesh.nC)) + +# Define mapping from model to active cells. +model_mapping = maps.ExpMap() + + + + + + +####################################################################### +# Define the Physics +# ------------------ +# + +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=inv_thicknesses, sigmaMap=model_mapping +) + + +####################################################################### +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + + + +# Define the regularization (model objective function) +reg_map = maps.IdentityMap(nP=mesh.nC) +reg = regularization.Sparse( + mesh, mapping=reg_map, +# alpha_s=1, +) + +reg.mref = starting_model + +# Define sparse and blocky norms p, q +p = 0 +q = 0 +reg.norms = np.c_[p, q] + +#reg.eps_p = 1e-3 +#reg.eps_q = 1e-3 + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.ProjectedGNCG(maxIter=100, maxIterLS=20, maxIterCG=20, tolCG=1e-3) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1e1) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + +# The directives are defined as a list. +#directives_list = [ +# IRLS, +# starting_beta, +# save_iteration, +#] + + + + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=30, minGNiter=1, + coolEpsFact=1.5, update_beta=True +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + save_iteration, + update_IRLS, + update_jacobi, +] + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + +##################################################################### +# Plotting Results +# --------------------- + + +# Load the true model and layer thicknesses +true_model = np.array([0.1, 1., 0.1]) +hz = np.r_[20., 40., 160.] +true_layers = TensorMesh([hz]) + +# Extract Least-Squares model +l2_model = inv_prob.l2model + +# Plot true model and recovered model +fig = plt.figure(figsize=(8, 9)) +x_min = np.min(np.r_[model_mapping * recovered_model, model_mapping * l2_model, true_model]) +x_max = np.max(np.r_[model_mapping * recovered_model, model_mapping * l2_model, true_model]) + +ax1 = fig.add_axes([0.2, 0.15, 0.7, 0.7]) +plotLayer(true_model, true_layers, ax=ax1, showlayers=False, color="k") +plotLayer(model_mapping * l2_model, mesh, ax=ax1, showlayers=False, color="b") +plotLayer(model_mapping * recovered_model, mesh, ax=ax1, showlayers=False, color="r") +ax1.set_xlim(0.01, 10) +ax1.legend(["True Model", "L2-Model", "Sparse Model"]) + +# Plot the true and apparent resistivities on a sounding curve +dpred_l2 = simulation.dpred(l2_model) +dpred_final = simulation.dpred(recovered_model) + +fig = plt.figure(figsize=(11, 6)) +ax1 = fig.add_axes([0.2, 0.1, 0.6, 0.8]) +ax1.loglog(frequencies, np.abs(dobs[0:len(frequencies)]), "k-o") +ax1.loglog(frequencies, np.abs(dobs[len(frequencies):]), "k:o") +ax1.loglog(frequencies, np.abs(dpred_l2[0:len(frequencies)]), "b-o") +ax1.loglog(frequencies, np.abs(dpred_l2[len(frequencies):]), "b:o") +ax1.loglog(frequencies, np.abs(dpred_final[0:len(frequencies)]), "r-o") +ax1.loglog(frequencies, np.abs(dpred_final[len(frequencies):]), "r:o") +ax1.set_xlabel("Frequencies (Hz)") +ax1.set_ylabel("|Hs/Hp| (ppm)") +ax1.legend([ + "Observed (real)", "Observed (imag)", + "L2-Model (real)", "L2-Model (imag)", + "Sparse (real)", "Sparse (imag)"], + loc="upper left" +) +plt.show() + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_tdem_fwd.py b/tutorials/plot_1_tdem_fwd.py index 5deab67..1830b84 100644 --- a/tutorials/plot_1_tdem_fwd.py +++ b/tutorials/plot_1_tdem_fwd.py @@ -14,12 +14,16 @@ # import numpy as np +import os from matplotlib import pyplot as plt +from discretize import TensorMesh from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.analytics import ColeCole +from simpegEM1D.Utils1D import plotLayer +save_file = True +plt.rcParams.update({'font.size': 16}) ##################################################################### # Create Survey @@ -27,16 +31,16 @@ # # -source_location = np.array([0., 0., 0.]) +source_location = np.array([0., 0., 20.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. -source_radius = 10. +source_radius = 6. -receiver_location = np.array([0., 0., 0.]) +receiver_location = np.array([10., 0., 20.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" -times = np.logspace(-6, -1, 51) +times = np.logspace(-5, -2, 31) # Receiver list receiver_list = [] @@ -46,22 +50,22 @@ component="b" ) ) -receiver_list.append( - em1d.receivers.TimeDomainPointReceiver( - receiver_location, times, orientation=receiver_orientation, - component="dbdt" - ) -) # Sources +#source_list = [ +# em1d.sources.TimeDomainHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, +# I=source_current, a=source_radius +# ) +#] + source_list = [ - em1d.sources.TimeDomainHorizontalLoopSource( - receiver_list=receiver_list, location=source_location, - I=source_current, a=source_radius + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current ) ] - # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -76,105 +80,60 @@ # infinity. # +# Physical properties +background_conductivity = 1e-1 +layer_conductivity = 1e0 + # Layer thicknesses thicknesses = np.array([40., 40.]) n_layer = len(thicknesses) + 1 -# half-space physical properties -sigma = 1e-2 -eta = 0.5 -tau = 0.01 -c = 0.5 -chi = 0. - # physical property models -sigma_model = sigma * np.ones(n_layer) -eta_model = eta * np.ones(n_layer) -tau_model = tau * np.ones(n_layer) -c_model = c * np.ones(n_layer) -chi_model = chi * np.ones(n_layer) +model = background_conductivity*np.ones(n_layer) +model[1] = layer_conductivity # Define a mapping for conductivities model_mapping = maps.IdentityMap(nP=n_layer) -# Compute and plot complex conductivity at all frequencies -frequencies = np.logspace(-3, 6, 91) -sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) -ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) -ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) -ax.set_xlim(np.min(frequencies), np.max(frequencies)) -ax.set_ylim(0., 1.1*sigma) -ax.set_xlabel("Frequency (Hz)") -ax.set_ylabel("Conductivity") -ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) +# Plot conductivity model +plotting_mesh = TensorMesh([np.r_[thicknesses, 40.]]) +plotLayer(model, plotting_mesh, showlayers=False) ####################################################################### -# Define the Forward Simulation and Predict MT Data -# ------------------------------------------------- -# -# Here we predict MT data. If the keyword argument *rhoMap* is -# defined, the simulation will expect a resistivity model. If the keyword -# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# Define the Forward Simulation and Predict Data +# ---------------------------------------------- # + # Simulate response for static conductivity simulation = em1d.simulation.EM1DTMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, - chi=chi_model ) -dpred = simulation.dpred(sigma_model) +dpred = simulation.dpred(model) -# Simulate response for complex conductivity -simulation_colecole = em1d.simulation.EM1DTMSimulation( - survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, - eta=eta, tau=tau, c=c, chi=chi_model -) - -dpred_colecole = simulation_colecole.dpred(sigma_model) - - -####################################################################### -# Analytic Solution -# ------------------------------------------------- -# -# -b = dpred[0:len(times)] -b_colecole = dpred_colecole[0:len(times)] -dbdt = dpred[len(times):] -dbdt_colecole = dpred_colecole[len(times):] - -k1 = b_colecole > 0. -k2 = dbdt_colecole > 0. - -fig = plt.figure(figsize = (6, 5)) +# Simulate response +fig = plt.figure(figsize = (8, 7)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(dpred[0:len(times)]), 'b', lw=3) -ax.loglog(times[k1], np.abs(b_colecole[k1]), 'r', lw=3) -ax.loglog(times[~k1], np.abs(b_colecole[~k1]), 'r--', lw=3) -ax.legend(["Non-chargeable", "Cole-Cole"]) +ax.loglog(times, dpred, 'k-o') ax.set_xlabel("Times (s)") -ax.set_ylabel("B (T)") -ax.set_title("Response for a chargeable and non-chargeable half-space") - +ax.set_ylabel("|B| (T)") +ax.set_title("Magnetic Flux") -fig = plt.figure(figsize = (6, 5)) -ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(dpred[len(times):]), 'b--', lw=3) -ax.loglog(times[~k2], np.abs(dbdt_colecole[~k2]), 'r--', lw=3) -ax.loglog(times[k2], np.abs(dbdt_colecole[k2]), 'r', lw=3) -ax.legend(["Non-chargeable", "Cole-Cole"]) -ax.set_xlabel("Times (s)") -ax.set_ylabel("dB/dt (T/s)") -ax.set_title("Response for a chargeable and non-chargeable half-space") +################################################## +if save_file == True: + noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dtm_data.obs' + np.savetxt( + fname, + np.c_[times, dpred], + fmt='%.4e' + ) diff --git a/tutorials/plot_1_tdem_fwd_chargeable.py b/tutorials/plot_1_tdem_fwd_chargeable.py new file mode 100644 index 0000000..337d441 --- /dev/null +++ b/tutorials/plot_1_tdem_fwd_chargeable.py @@ -0,0 +1,184 @@ +""" +Forward Simulation over a Chargeable Earth +========================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.analytics import ColeCole + + +##################################################################### +# Create Survey +# ------------- +# +# + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = 10. + +receiver_location = np.array([0., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +times = np.logspace(-6, -1, 51) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="b" + ) +) +receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="dbdt" + ) +) + +# Sources +source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, a=source_radius + ) +] + + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([40., 40.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +eta = 0.5 +tau = 0.01 +c = 0.75 +chi = 0. + +# physical property models +sigma_model = sigma * np.ones(n_layer) +eta_model = eta * np.ones(n_layer) +tau_model = tau * np.ones(n_layer) +c_model = c * np.ones(n_layer) +chi_model = chi * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + +# Compute and plot complex conductivity at all frequencies +frequencies = np.logspace(-3, 6, 91) +sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) + +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(0., 1.1*sigma) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Conductivity") +ax.legend( + ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], + loc="center right" +) + +####################################################################### +# Define the Forward Simulation and Predict Data +# ---------------------------------------------- +# + + +# Simulate response for static conductivity +simulation_1 = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + chi=chi_model +) + +dpred_1 = simulation_1.dpred(sigma_model) + +# Simulate response for complex conductivity +simulation_2 = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, + eta=eta, tau=tau, c=c, chi=chi_model +) + +dpred_2 = simulation_2.dpred(sigma_model) + + +fig = plt.figure(figsize = (6, 5)) +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(dpred_1[0:len(times)]), 'b', lw=3) +ax.loglog(times, np.abs(dpred_2[0:len(times)]), 'r', lw=3) +ax.legend(["Non-Chargeable", "Chargeable"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("|B| (T)") +ax.set_title("Magnetic Flux") + +fig = plt.figure(figsize = (6, 5)) +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(times, np.abs(dpred_1[len(times):]), 'b', lw=3) +ax.loglog(times, np.abs(dpred_2[len(times):]), 'r', lw=3) +ax.legend(["Non-chargeable", "Chargeable"]) +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dB/dt| (T/s)") +ax.set_title("Time-Derivative of Magnetic Flux") + +################################################## + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_1_tdem_fwd_waveforms.py b/tutorials/plot_1_tdem_fwd_waveforms.py index 23097d3..83e1e98 100644 --- a/tutorials/plot_1_tdem_fwd_waveforms.py +++ b/tutorials/plot_1_tdem_fwd_waveforms.py @@ -1,6 +1,6 @@ """ -Forward Simulation of with Different Waveforms -============================================== +Forward Simulation with Different Waveforms +=========================================== @@ -18,7 +18,7 @@ from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.Waveform import RectFun +from simpegEM1D.waveforms import TriangleFun, VTEMFun from simpegEM1D.analytics import ColeCole @@ -37,8 +37,7 @@ receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" -times = np.r_[3.179659e-06, 7.651805e-06, 1.312977e-05, 2.006194e-05, 2.900623e-05, 4.040942e-05, 5.483263e-05, 7.272122e-05, 9.508194e-05, 1.229211e-04, 1.581381e-04, 2.033051e-04, 2.599911e-04, 3.314300e-04, 4.218804e-04, 5.351367e-04, 6.781304e-04, 8.584694e-04] -#times = np.logspace(-6, -1, 51) +times = np.logspace(-5, -2, 41) # Receiver list receiver_list = [ @@ -55,15 +54,13 @@ source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=source_location, - I=source_current, a=source_radius + I=source_current, a=source_radius, wave_type="stepoff" ) ) - - # Triangle Waveform -time_input_currents = np.r_[-np.logspace(-3, -5, 21), 0.] -input_currents = RectFun(time_input_currents, -0.0008, 0.) +time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] +input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=source_location, @@ -79,19 +76,17 @@ ) ) - - -# Custom waveform -time_input_currents = np.r_[-1.0000E-03, -8.0000E-04,-7.6473E-04,-6.2818E-04,-4.3497E-04,-9.2197E-05,-2.0929E-06,6.6270E-08,6.9564E-07,2.1480E-06,3.7941E-06,5.6822E-06,7.1829E-06,8.5385E-06,1.0136E-05,1.1976E-05,1.3138E-05] -input_currents = np.r_[0.0000E+00, 0.0000E+00, 6.3431E-02, 2.4971E-01, 4.7453E-01, 8.9044E-01, 1.0000E+00,1.0000E+00,9.7325E-01,7.9865E-01,5.3172E-01,2.7653E-01,1.5062E-01,7.5073E-02,3.1423E-02,7.9197E-03,0.0000E+00] +# VTEM waveform +time_input_currents_2 = np.r_[-np.logspace(-2, -5, 31), 0.] +input_currents_2 = VTEMFun(time_input_currents+0.01, 8e-3, 0.01, 1) source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=source_location, I=source_current, a=source_radius, wave_type="general", - time_input_currents=time_input_currents, - input_currents=input_currents, + time_input_currents=time_input_currents_2, + input_currents=input_currents_2, n_pulse = 1, base_frequency = 25., use_lowpass_filter=False, @@ -111,7 +106,12 @@ fig = plt.figure(figsize=(6, 4)) ax = fig.add_axes([0.1, 0.1, 0.85, 0.8]) -ax.plot(time_input_currents, input_currents, 'k') +ax.plot(np.r_[-1e-2, 0., 1e-10, 1e-3], np.r_[1., 1., 0., 0.], 'k', lw=2) +ax.plot(time_input_currents, input_currents, 'b', lw=2) +ax.plot(time_input_currents_2, input_currents_2, 'r', lw=2) +ax.set_xlabel("Time (s)") +ax.set_ylabel("Normalized Current (A)") +ax.legend(["Step-off", "Triangular", "VTEM"]) @@ -128,7 +128,6 @@ # # Layer thicknesses -hz = em1d.EM1DSimulation.get_vertical_discretization_time(times, facter_tmax=0.5, factor_tmin=10.) thicknesses = np.array([40., 40.]) n_layer = len(thicknesses) + 1 @@ -155,24 +154,24 @@ fig = plt.figure() ax = fig.add_subplot(111) -ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=3) -ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=3) -ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=3) +ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=2) +ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=2) +ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=2) ax.set_xlim(np.min(frequencies), np.max(frequencies)) ax.set_ylim(0., 1.1*sigma) ax.set_xlabel("Frequency (Hz)") ax.set_ylabel("Conductivity") -ax.legend(["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"]) +ax.legend( + ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], + loc="center right" +) ####################################################################### -# Define the Forward Simulation and Predict MT Data -# ------------------------------------------------- -# -# Here we predict MT data. If the keyword argument *rhoMap* is -# defined, the simulation will expect a resistivity model. If the keyword -# argument *sigmaMap* is defined, the simulation will expect a conductivity model. +# Define the Forward Simulation and Predict Data +# ---------------------------------------------- # + # Simulate response for static conductivity simulation = em1d.simulation.EM1DTMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, @@ -181,17 +180,8 @@ dpred = simulation.dpred(sigma_model) -# Simulate response for complex conductivity -simulation_colecole = em1d.simulation.EM1DTMSimulation( - survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, - eta=eta, tau=tau, c=c, chi=chi_model -) - -dpred_colecole = simulation_colecole.dpred(sigma_model) - - ####################################################################### -# Analytic Solution +# Plotting Results # ------------------------------------------------- # # @@ -200,21 +190,13 @@ fig = plt.figure(figsize = (6, 5)) d = np.reshape(dpred, (len(source_list), len(times))).T ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(d)) -ax.legend(["Step-off", "Custom"]) -ax.set_xlabel("Times (s)") -ax.set_ylabel("dB/dt (T/s)") -ax.set_title("Response for a chargeable and non-chargeable half-space") - +colorlist = ['k', 'b', 'r'] +for ii, k in enumerate(colorlist): + ax.loglog(times, np.abs(d[:, ii]), k, lw=2) -fig = plt.figure(figsize = (6, 5)) -d = np.reshape(dpred_colecole, (len(source_list), len(times))).T -ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(d)) -ax.legend(["Step-off", "Custom"]) +ax.legend(["Step-off", "Triangular", "VTEM"]) ax.set_xlabel("Times (s)") -ax.set_ylabel("dB/dt (T/s)") -ax.set_title("Response for a chargeable and non-chargeable half-space") +ax.set_ylabel("|dB/dt| (T/s)") diff --git a/tutorials/plot_1_tdem_inv.py b/tutorials/plot_1_tdem_inv.py new file mode 100644 index 0000000..e6b2626 --- /dev/null +++ b/tutorials/plot_1_tdem_inv.py @@ -0,0 +1,380 @@ +""" +Inversion of 1D Frequency-Domain Data +============================================== + + +""" + + +######################################################################### +# Import modules +# -------------- +# + +import os, shutil +import numpy as np +import matplotlib as mpl +import matplotlib.pyplot as plt + +from discretize import TensorMesh + +import simpegEM1D as em1d +from simpegEM1D.EM1DSimulation import get_vertical_discretization_time +from simpegEM1D.Utils1D import plotLayer +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + +# sphinx_gallery_thumbnail_number = 3 + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dtm_data.obs' + + + +############################################# +# Load Data and Plot +# ------------------ +# +# Here we load and plot synthetic gravity anomaly data. Topography is generally +# defined as an (N, 3) array. Gravity data is generally defined with 4 columns: +# x, y, z and data. +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + +# Define receiver locations and observed data +times = dobs[:, 0] +dobs = mkvc(dobs[:, -1]) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(times, np.abs(dobs), 'k-o', lw=3) +ax.set_xlabel("Times (s)") +ax.set_ylabel("|B| (T)") +ax.set_title("Magnetic Flux as a Function of Time") + + + +############################################# +# Defining the Survey +# ------------------- + +source_location = np.array([0., 0., 20.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = 6. + +receiver_location = np.array([10., 0., 20.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +times = np.logspace(-5, -2, 31) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="b" + ) +) + +# Sources +#source_list = [ +# em1d.sources.TimeDomainHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, +# I=source_current, a=source_radius +# ) +#] + +source_list = [ + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) +] + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.05*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + +############################################################### +# Defining a 1D Layered Earth (1D Tensor Mesh) +# -------------------------------------------- +# +# Here, we define the layer thicknesses for our 1D simulation. To do this, we use +# the TensorMesh class. +# + +# Based on estimate of background conductivity, make layers + +#inv_thicknesses = get_vertical_discretization_frequency( +# times, sigma_background=0.1, +# factor_fmax=20, factor_fmin=1., n_layer=50, +#) + +inv_thicknesses = np.logspace(0,1.5,25) + +# Define a mesh for plotting and regularization. +mesh = TensorMesh([(np.r_[inv_thicknesses, inv_thicknesses[-1]])], '0') + +print(mesh) + + +######################################################## +# Define a Starting and Reference Model +# ------------------------------------- +# +# Here, we create starting and/or reference models for the inversion as +# well as the mapping from the model space to the active cells. Starting and +# reference models can be a constant background value or contain a-priori +# structures. Here, the starting model is log(0.001) S/m. +# +# Define log-conductivity values for each layer since our model is the +# log-conductivity. Don't make the values 0! +# Otherwise the gradient for the 1st iteration is zero and the inversion will +# not converge. + +# Define model. A resistivity (Ohm meters) or conductivity (S/m) for each layer. +starting_model = np.log(0.1*np.ones(mesh.nC)) + +# Define mapping from model to active cells. +model_mapping = maps.ExpMap() + + + + + + +####################################################################### +# Define the Physics +# ------------------ +# + +simulation = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=inv_thicknesses, sigmaMap=model_mapping +) + + +####################################################################### +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + + + +# Define the regularization (model objective function) +reg_map = maps.IdentityMap(nP=mesh.nC) +reg = regularization.Sparse( + mesh, mapping=reg_map, +# alpha_s=1, +) + +reg.mref = starting_model + +# Define sparse and blocky norms p, q +p = 0 +q = 0 +reg.norms = np.c_[p, q] + +#reg.eps_p = 1e-3 +#reg.eps_q = 1e-3 + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.ProjectedGNCG(maxIter=100, maxIterLS=20, maxIterCG=20, tolCG=1e-3) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1e1) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + +# The directives are defined as a list. +#directives_list = [ +# IRLS, +# starting_beta, +# save_iteration, +#] + + + + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=30, minGNiter=1, + coolEpsFact=1.5, update_beta=True +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + save_iteration, + update_IRLS, + update_jacobi, +] + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + +##################################################################### +# Plotting Results +# --------------------- + + +# Load the true model and layer thicknesses +true_model = np.array([0.1, 1., 0.1]) +hz = np.r_[40., 40., 160.] +true_layers = TensorMesh([hz]) + +# Extract Least-Squares model +l2_model = inv_prob.l2model + +# Plot true model and recovered model +fig = plt.figure(figsize=(8, 9)) +x_min = np.min(np.r_[model_mapping * recovered_model, model_mapping * l2_model, true_model]) +x_max = np.max(np.r_[model_mapping * recovered_model, model_mapping * l2_model, true_model]) + +ax1 = fig.add_axes([0.2, 0.15, 0.7, 0.7]) +plotLayer(true_model, true_layers, ax=ax1, showlayers=False, color="k") +plotLayer(model_mapping * l2_model, mesh, ax=ax1, showlayers=False, color="b") +plotLayer(model_mapping * recovered_model, mesh, ax=ax1, showlayers=False, color="r") +ax1.set_xlim(0.01, 10) +ax1.legend(["True Model", "L2-Model", "Sparse Model"]) + +# Plot the true and apparent resistivities on a sounding curve +dpred_l2 = simulation.dpred(l2_model) +dpred_final = simulation.dpred(recovered_model) + +fig = plt.figure(figsize=(11, 6)) +ax1 = fig.add_axes([0.2, 0.1, 0.6, 0.8]) +ax1.loglog(times, np.abs(dobs), "k-o") +ax1.loglog(times, np.abs(dpred_l2), "b-o") +ax1.loglog(times, np.abs(dpred_final), "r-o") +ax1.set_xlabel("times (Hz)") +ax1.set_ylabel("|Hs/Hp| (ppm)") +ax1.legend([ + "Observed", "L2-Model", "Sparse"], loc="upper right" +) +plt.show() + + + + + + + + + + + + + + + + + + + + + + + + From 1395c54004c52f90847bea6235df35c14b85f0b7 Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 5 Jun 2020 00:18:21 -0700 Subject: [PATCH 13/54] Update stitched 1D forward problem. --- notebooks/examples/EM1D_fwd.ipynb | 116 +- .../examples/Test_global_em1d_inversion.ipynb | 643 +++------- simpegEM1D/EM1DSimulation.py | 136 +-- simpegEM1D/EM1DSimulation_original.py | 4 +- simpegEM1D/simulation.py | 8 +- simpegEM1D/simulation_original.py | 2 +- simpegEM1D/simulation_stitched1d.py | 260 ++-- simpegEM1D/simulation_stitched1d_original.py | 4 +- simpegEM1D/supporting_functions/kernels.py | 6 +- .../supporting_functions/kernels_original.py | 848 +++++++++++++ tutorials/assets/em1dfm_data.obs | 10 +- tutorials/assets/em1dfm_stitched_data.obs | 300 +++++ tutorials/assets/em1dtm_stitched_data.obs | 1050 +++++++++++++++++ tutorials/plot_1_fdem_fwd.py | 2 +- tutorials/plot_1_fdem_fwd_sources.py | 8 +- tutorials/plot_1_fdem_inv.py | 2 +- tutorials/plot_2_fdem_fwd_stitched.py | 249 ++++ tutorials/plot_2_tdem_fwd_stitched.py | 229 ++++ 18 files changed, 3084 insertions(+), 793 deletions(-) create mode 100644 simpegEM1D/supporting_functions/kernels_original.py create mode 100644 tutorials/assets/em1dfm_stitched_data.obs create mode 100644 tutorials/assets/em1dtm_stitched_data.obs create mode 100644 tutorials/plot_2_fdem_fwd_stitched.py create mode 100644 tutorials/plot_2_tdem_fwd_stitched.py diff --git a/notebooks/examples/EM1D_fwd.ipynb b/notebooks/examples/EM1D_fwd.ipynb index e52c0d2..b1c2a70 100644 --- a/notebooks/examples/EM1D_fwd.ipynb +++ b/notebooks/examples/EM1D_fwd.ipynb @@ -192,22 +192,7 @@ "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'EM1DFMSimulation' object has no attribute 'half_switch'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[1;31m# Hz = simFD.dpred(m_1D)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0mHz\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msimFD\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm_1D\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[1;31m# print(np.shape(Hz))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[1;31m# print(Hz)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mfields\u001b[1;34m(self, m)\u001b[0m\n\u001b[0;32m 313\u001b[0m \u001b[1;31m# @profile\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 314\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfields\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 315\u001b[1;33m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mforward\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'response'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 316\u001b[0m \u001b[1;31m# self.survey._pred = utils.mkvc(self.survey.projectFields(f))\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 317\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\simulation_original.py\u001b[0m in \u001b[0;36mforward\u001b[1;34m(self, m, output_type)\u001b[0m\n\u001b[0;32m 211\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlambd\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mh\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mz\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 213\u001b[1;33m \u001b[0mflag\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mI\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moutput_type\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moutput_type\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 214\u001b[0m )\n\u001b[0;32m 215\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mD:\\Documents\\Repositories\\simpegEM1D\\simpegEM1D\\supporting_functions\\kernels.py\u001b[0m in \u001b[0;36mhz_kernel_vertical_magnetic_dipole\u001b[1;34m(simulation, lamda, f, n_layer, sig, chi, depth, h, z, flag, I, output_type)\u001b[0m\n\u001b[0;32m 560\u001b[0m rTE = rTEfunfwd(\n\u001b[0;32m 561\u001b[0m \u001b[0mn_layer\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlamda\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mchi\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdepth\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 562\u001b[1;33m \u001b[0msimulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhalf_switch\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 563\u001b[0m )\n\u001b[0;32m 564\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mAttributeError\u001b[0m: 'EM1DFMSimulation' object has no attribute 'half_switch'" - ] - } - ], + "outputs": [], "source": [ "# Conductivity\n", "simFD = EM1DFMSimulation(\n", @@ -223,9 +208,48 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(61,)\n", + "[ 5.53757290e-15-9.82263144e-13j 1.13879984e-14-1.44243389e-12j\n", + " 2.33869700e-14-2.11861458e-12j 4.80265611e-14-3.11270526e-12j\n", + " 9.85321185e-14-4.57529619e-12j 2.01925484e-13-6.72974845e-12j\n", + " 4.13070866e-13-9.90931818e-12j 8.42699459e-13-1.46159963e-11j\n", + " 1.71187054e-12-2.16175922e-11j 3.45402835e-12-3.21164614e-11j\n", + " 6.89324945e-12-4.80592236e-11j 1.35141956e-11-7.27264954e-11j\n", + " 2.57469873e-11-1.11841532e-10j 4.69381200e-11-1.75456456e-10j\n", + " 8.03625965e-11-2.80588017e-10j 1.26323796e-10-4.53489970e-10j\n", + " 1.80484076e-10-7.29084498e-10j 2.34605771e-10-1.15219144e-09j\n", + " 2.81668418e-10-1.78240651e-09j 3.17628539e-10-2.70633190e-09j\n", + " 3.40249353e-10-4.05412480e-09j 3.46382970e-10-6.01972956e-09j\n", + " 3.29112985e-10-8.88867071e-09j 2.74424515e-10-1.30783931e-08j\n", + " 1.56052188e-10-1.91970525e-08j -7.34649201e-11-2.81285629e-08j\n", + " -4.98587742e-10-4.11547143e-08j -1.26861497e-09-6.01292914e-08j\n", + " -2.64647850e-09-8.77243958e-08j -5.09387832e-09-1.27775521e-07j\n", + " -9.41909607e-09-1.85758825e-07j -1.70321780e-08-2.69439907e-07j\n", + " -3.03824285e-08-3.89734624e-07j -5.37019594e-08-5.61811467e-07j\n", + " -9.42554839e-08-8.06426882e-07j -1.64411243e-07-1.15139217e-06j\n", + " -2.85008894e-07-1.63287394e-06j -4.90700650e-07-2.29584692e-06j\n", + " -8.38131544e-07-3.19231789e-06j -1.41784724e-06-4.37473857e-06j\n", + " -2.37029252e-06-5.88011751e-06j -3.90438704e-06-7.69763704e-06j\n", + " -6.31245224e-06-9.70951271e-06j -9.96542029e-06-1.15932852e-05j\n", + " -1.52548159e-05-1.26788492e-05j -2.24233543e-05-1.17762397e-05j\n", + " -3.12057216e-05-7.04845415e-06j -4.02242882e-05+3.88574150e-06j\n", + " -4.62353997e-05+2.32904563e-05j -4.37086455e-05+5.17274855e-05j\n", + " -2.58114013e-05+8.56121270e-05j 1.19221248e-05+1.15323983e-04j\n", + " 6.56055912e-05+1.27189320e-04j 1.19607430e-04+1.12212552e-04j\n", + " 1.54009937e-04+7.71012871e-05j 1.62201883e-04+4.27991566e-05j\n", + " 1.57646011e-04+2.42228164e-05j 1.55099671e-04+1.69490808e-05j\n", + " 1.55346214e-04+1.20096993e-05j 1.55438184e-04+8.12727655e-06j\n", + " 1.55423867e-04+5.53589397e-06j]\n" + ] + } + ], "source": [ "# Frequency-dependent conductivity\n", "simCole = EM1DFMSimulation(\n", @@ -243,7 +267,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -252,9 +276,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", "ax.loglog(FDsurvey.frequency, np.abs(np.real(Hz)), 'b-')\n", @@ -266,9 +313,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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zJgxtGjRgtKlS/Prr7/Ss2fPHC0rjI2NpUaNGnTo0CHda1u2bAGynwC4fv16mjZtmup5u3btWLJkCQC33XYb48aNY8aMGdlub07ZACAf2bZNO//jx3WbghT/rYWkULkLMaYgyWjjrLz+/7+GDRtSu3ZtANq0acOll17K0KFDueGGGyhZsiTlypUjIiKCe++99+ygIK2IiAjmzp3LgAEDGDVq1NnjR48ezXG7YmNjucrH3VNsbCxFixalfv36Z48NGDCAuLg4AA4dOsT+/fs5fPgwhVLsC+NtAHDJJZecfV69enV27tyZ4zbnhA0A8gnP1gSJibrW/9JLg92ijIXSXYgxBcmwYemPhcLgu2jRokycOJFu3boxdepUhg4dSsmSJWnZsiWbNm2iSZMmRPjYrez48eNEpinHntM76b1797Jnz54MVwA0aNAg1efNnj0b0CTGbt26M+gp9QAAGi1JREFUMW3atFSdP2iH371791TPhw8fDsCuXbt48803mTx5co7anFM2AMgHYmM12z8yUjvWFAPToMoo0x9C5y7EGBMaunbtSvPmzZk0aRL33XcfxYsX59lnn+Waa66hffv23H777Zx33nns37+fDRs2kJCQwDPPPEOHDh2YNWsWl1xyCbVr12bRokV8+eWXOWqDZ/7f2wAgMTGR7777jn79+qV7bcuWLfTu3Ztp06Zx9dVXp3rt1KlTfP/992cjAJ7nY8eOZfz48ZQuXZonn3ySbt265ajNOWUDgDC3di20awelS2vYPymaFhLSLudLe9efVijchRhjguvJJ5+kffv2vPLKK9x///00adKEtWvX8thjj/Gf//yHw4cPU7lyZZo0acLdd98NwJQpUxARRo4cCUCnTp2YM2cOl19+ebY/31Pkx1uS37Zt2zh+/Hi619avX8+AAQN4++23vb4vLi6OihUrct555519XqZMGTZv3pzt9vmVt6UBofAARgBbgUSgu5fXVwKbgFjgM6BRZtfMb8sAP/9cpHRpkRo1RH76Kdit8c6zvG/06NTL/owxWROoZYDGP1atWiUNGzaUrVu3+jzn5Zdfls6dO6d63qFDB7+1IT8uA1wJvAO87uP1niJyGMA51wOYCeSDygxZs2oVdO4M558PK1dC1arBbpF3lulvjMnPevXqRbFixeiTtGNZoUKFWLNmTaocgfXr19OkSZNUz5uH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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "fig, ax = plt.subplots(1,1, figsize = (8, 5))\n", "ax.loglog(FDsurvey.frequency, np.abs(np.real(HzCole)), 'b-')\n", diff --git a/notebooks/examples/Test_global_em1d_inversion.ipynb b/notebooks/examples/Test_global_em1d_inversion.ipynb index 2b13c86..b1b2816 100644 --- a/notebooks/examples/Test_global_em1d_inversion.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion.ipynb @@ -18,9 +18,10 @@ "import numpy as np\n", "from discretize import TensorMesh\n", "from matplotlib.colors import LogNorm\n", - "from simpegEM1D import (\n", - " GlobalEM1DSimulationFD, GlobalEM1DSurveyFD, get_vertical_discretization_frequency\n", + "from simpegEM1D.simulation_stitched1d_original import (\n", + " GlobalEM1DSimulationFD, GlobalEM1DSurveyFD\n", ")\n", + "from simpegEM1D.EM1DSimulation_original import get_vertical_discretization_frequency\n", "from pymatsolver import PardisoSolver\n", "%pylab inline" ] @@ -119,16 +120,74 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 50. 0. 0.]\n", + " [ 150. 0. 0.]\n", + " [ 250. 0. 0.]\n", + " [ 350. 0. 0.]\n", + " [ 450. 0. 0.]\n", + " [ 550. 0. 0.]\n", + " [ 650. 0. 0.]\n", + " [ 750. 0. 0.]\n", + " [ 850. 0. 0.]\n", + " [ 950. 0. 0.]\n", + " [1050. 0. 0.]\n", + " [1150. 0. 0.]\n", + " [1250. 0. 0.]\n", + " [1350. 0. 0.]\n", + " [1450. 0. 0.]\n", + " [1550. 0. 0.]\n", + " [1650. 0. 0.]\n", + " [1750. 0. 0.]\n", + " [1850. 0. 0.]\n", + " [1950. 0. 0.]\n", + " [2050. 0. 0.]\n", + " [2150. 0. 0.]\n", + " [2250. 0. 0.]\n", + " [2350. 0. 0.]\n", + " [2450. 0. 0.]\n", + " [2550. 0. 0.]\n", + " [2650. 0. 0.]\n", + " [2750. 0. 0.]\n", + " [2850. 0. 0.]\n", + " [2950. 0. 0.]\n", + " [3050. 0. 0.]\n", + " [3150. 0. 0.]\n", + " [3250. 0. 0.]\n", + " [3350. 0. 0.]\n", + " [3450. 0. 0.]\n", + " [3550. 0. 0.]\n", + " [3650. 0. 0.]\n", + " [3750. 0. 0.]\n", + " [3850. 0. 0.]\n", + " [3950. 0. 0.]\n", + " [4050. 0. 0.]\n", + " [4150. 0. 0.]\n", + " [4250. 0. 0.]\n", + " [4350. 0. 0.]\n", + " [4450. 0. 0.]\n", + " [4550. 0. 0.]\n", + " [4650. 0. 0.]\n", + " [4750. 0. 0.]\n", + " [4850. 0. 0.]\n", + " [4950. 0. 0.]]\n" + ] + } + ], "source": [ "x = mesh.vectorCCx\n", "y = np.zeros_like(x)\n", "z = np.ones_like(x) * 30.\n", "rx_locations = np.c_[x, y, z]\n", "src_locations = np.c_[x, y, z]\n", - "topo = np.c_[x, y, z-30.].astype(float)" + "topo = np.c_[x, y, z-30.].astype(float)\n", + "print(topo)" ] }, { @@ -164,7 +223,9 @@ ")\n", "\n", "m = np.log(sigma_em1d)\n", - "# m = sigma_em1d.copy()\n" + "# m = sigma_em1d.copy()\n", + "\n", + "sim.sigma = m" ] }, { @@ -176,11 +237,57 @@ "name": "stdout", "output_type": "stream", "text": [ - "Compute fields\n", - ">> Compute response\n" + "Number of arguments\n", + "18\n", + "Print arguments\n", + "[50. 0. 30.]\n", + "[50. 0. 30.]\n", + "[50. 0. 0.]\n", + "[ 2.09938445 2.30487219 2.53047306 2.77815575 3.05008161 3.34862358\n", + " 3.67638684 4.03623155 4.43129787 4.86503328 5.3412227 5.86402155\n", + " 6.43799194 7.06814254 7.75997229 8.51951832 9.35340872 10.2689203\n", + " 11.27404215 12.37754533 13.58905938 14.91915642 16.37944335 17.98266316\n", + " 19.74280611 21.67523184 23.79680338 26.12603434 28.68325041 31.49076677]\n", + "[7.86 7.86 7.86 7.86 7.86 7.86]\n", + "[2.500e+01 1.000e+02 3.820e+02 1.822e+03 7.970e+03 3.592e+04]\n", + "secondary\n", + "ppm\n", + "VMD\n", + "[-3.40119738 -3.40119738 -3.40119738 -3.40119738 -3.40119738 -3.40119738\n", + " -3.40119738 -3.40119738 -2.99573227 -2.99573227 -2.99573227 -2.99573227\n", + " -2.99573227 -2.99573227 -2.99573227 -2.99573227 -3.91202301 -3.91202301\n", + " -3.91202301 -3.91202301 -3.91202301 -3.91202301 -3.91202301 -3.91202301\n", + " -3.91202301 -2.99573227 -2.99573227 -2.99573227 -2.99573227 -2.99573227]\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.]\n", + "[0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001\n", + " 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001\n", + " 0.001 0.001 0.001 0.001 0.001 0.001]\n", + "[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n", + " 1. 1. 1. 1. 1. 1.]\n", + "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.]\n", + "1.0\n", + "forward\n", + "False\n", + "False\n" ] } ], + "source": [ + "ARGS = sim.input_args(0)\n", + "print(\"Number of arguments\")\n", + "print(len(ARGS))\n", + "print(\"Print arguments\")\n", + "for ii in range(0, len(ARGS)):\n", + " print(ARGS[ii])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# %%time\n", "# dobs = sim.makeSyntheticData(m, std=0.03, force=True)\n", @@ -190,37 +297,21 @@ "np.random.seed(1)\n", "uncert = std*abs(d_true)+floor\n", "noise = std*np.abs(d_true)*np.random.randn(len(d_true))\n", - "d_obs = d_true + noise" + "d_obs = d_true + noise\n" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Hz/Hp (ppm)')" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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pk1YrVZyc3P56le/ykMPPURPT4+3kuaxxsZGAAoKCnjmmWd44oknzhP6pqYm3njjDd544w1qa2vH/S8kJMRbsYuJiaG9vZ2mpiaampro7u4e99wuXryYO++8k7Vr17Jw4UL0ej12u52NGzfy29/+lj179uDv78+jjz5Kbm4u5eXllJeXU1VVNS5PRkVFERcXN840TePDDz+kvLwcgJycHNavX8/69etZvnw5fn6X1r7SNO2oEGKB72+lpaWNhYWF3Rc65lpws4lzaWlpVGFhYdpE/7spxVkIQVtbGyUlJZSUlHhbbK2trd59kpOTva20wsJC8vLyaG9v9wr38ePHJxRuTdMIDw8nIiKCkJCQcQLrseDgYJKTk0lJSfFaXFzcJbfaLBYLe/fu9baOS0tLAUhISGDt2rXccccdrFmzxls4OZ1O9u3bx+bNm9m8eTP19fXec+n1eubPn8/KlStZuXIly5Yto7e3l88//5wDBw5w4MABKioqvC0d3/uOiYnxVjA83ZTDw8MMDw97W0cJCQlkZmaSmZlJRkaGN8zPz592d+bw8DAOh4Pw8PCLiichxDjxcrlc2O126urqqKio8Fp5eblXQD3odDpvhUmn02Gz2byC5rvPkiVLWLduHevWrSM/P/+81pcn7x06dIijR48SGhpKbm4us2bNIiMjA4PBcFH3NBVut5u6ujpvXj969CglJSX09fVNuL9eryckJITo6GiioqLGhcHBwbhcLhwOB06nE4fDgcPhwOVyeXshPBVIj3AnJCSQlpZGWloaSUlJ02q5CyEoKytj48aNbNq0yStM4eHhPPbYYzz11FMsXLhw0hZxX18fb7/9Nq+//jqHDh3Cz8+Pe++9l6effprBwUH++Mc/smvXLgBuu+02nnrqKRYtWkRjYyM1NTXeSl1NTQ1nzpwhMTGR1NRUr6WkpBAREcH+/fv56KOPOHLkCEIIwsPDWblyJQcOHODMmTNkZGTwwgsv8Mwzz5zX42a326murqa8vJyamhpOnz5NZ2fnOLPb7axcuZL169ezbt06cnJyppv0kzLTxXnr1q3B//qv/5oQERHhqK6uDigoKLC89957Def23G3dujX4f/7P/5kQHh7urK+vNy1evHjozTffbNbr9ZjN5nlf+9rXznz88cehJpPJvXXr1trk5GTnX/7yl9Cf/OQn8Q6HQxceHu58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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "DOBS = d_obs.reshape(( sim.n_sounding, 2, survey.n_frequency))\n", "i_freq=0\n", @@ -237,7 +328,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -249,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -337,7 +428,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "scrolled": false }, @@ -348,7 +439,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -357,467 +448,42 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ">> Use multiprocessing for parallelization\n", - ">> n_cpu: 2\n", - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - ">> Compute J sigma\n", - "Compute fields\n", - ">> Compute response\n", - "model has any nan: 0\n", - "============================ Inexact Gauss Newton ============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 3.43e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 1 1.71e+02 3.02e+03 1.02e+01 4.77e+03 1.01e+03 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 2 8.57e+01 9.78e+02 1.59e+01 2.34e+03 3.72e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 3 4.29e+01 5.26e+02 1.94e+01 1.36e+03 2.06e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 4 2.14e+01 3.48e+02 2.22e+01 8.23e+02 1.17e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", - "1 : |xc-x_last| = 1.1827e+00 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 1.1748e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 1.1748e+02 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 5\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "mopt_l0_ps0, mopt_l2_ps0, pred = run_inversion(option='l2', ps=0, px=2, pz=2, alpha_s=1., alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ">> Use multiprocessing for parallelization\n", - ">> n_cpu: 2\n", - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - ">> Compute J sigma\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:931: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", - " \"Without a Linear preconditioner, convergence may be slow. \"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Compute fields\n", - ">> Compute response\n", - "model has any nan: 0\n", - "============================ Inexact Gauss Newton ============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.48452322852378993 eps_q: 0.48452322852378993\n", - ">> Fix Jmatrix\n", - ">> Compute J sigma\n", - " 4 2.49e+02 2.96e+02 4.09e-01 3.98e+02 2.08e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 5 3.88e+02 2.69e+02 5.87e-01 4.97e+02 7.65e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 6 3.88e+02 3.11e+02 4.01e-01 4.67e+02 9.75e+00 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 7 3.88e+02 3.05e+02 4.61e-01 4.84e+02 1.33e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 8 3.88e+02 3.17e+02 4.43e-01 4.89e+02 6.18e+00 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 9 3.88e+02 3.22e+02 4.53e-01 4.98e+02 7.70e+00 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 10 3.88e+02 3.29e+02 4.55e-01 5.06e+02 7.53e+00 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 11 3.19e+02 3.36e+02 4.60e-01 4.82e+02 2.26e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 12 3.19e+02 3.28e+02 5.33e-01 4.98e+02 1.46e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 13 2.60e+02 3.40e+02 5.18e-01 4.75e+02 2.29e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 14 2.15e+02 3.32e+02 6.14e-01 4.64e+02 2.02e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 15 1.79e+02 3.30e+02 6.90e-01 4.54e+02 2.01e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 16 1.79e+02 3.28e+02 7.96e-01 4.70e+02 2.15e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 17 1.46e+02 3.39e+02 8.09e-01 4.57e+02 2.43e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 18 1.20e+02 3.37e+02 9.58e-01 4.52e+02 2.99e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 19 9.80e+01 3.38e+02 1.09e+00 4.44e+02 3.63e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 20 8.02e+01 3.38e+02 1.23e+00 4.37e+02 5.04e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 21 6.58e+01 3.37e+02 1.45e+00 4.32e+02 6.74e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 22 5.39e+01 3.38e+02 1.37e+00 4.11e+02 7.78e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 23 4.45e+01 3.33e+02 1.25e+00 3.89e+02 9.40e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 24 4.45e+01 3.29e+02 1.08e+00 3.76e+02 1.02e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 25 4.45e+01 3.25e+02 9.16e-01 3.66e+02 1.17e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 26 4.45e+01 3.23e+02 7.93e-01 3.59e+02 1.09e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 27 4.45e+01 3.21e+02 7.58e-01 3.55e+02 1.09e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 28 4.45e+01 3.18e+02 7.47e-01 3.51e+02 1.23e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 29 4.45e+01 2.99e+02 8.97e-01 3.39e+02 1.03e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 30 4.45e+01 2.91e+02 9.14e-01 3.32e+02 1.26e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 31 4.45e+01 2.87e+02 8.76e-01 3.26e+02 1.19e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 32 4.45e+01 2.81e+02 8.71e-01 3.20e+02 1.63e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 33 4.45e+01 2.75e+02 8.75e-01 3.14e+02 1.76e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "Reach maximum number of IRLS cycles: 30\n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", - "1 : |xc-x_last| = 3.0590e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 1.7618e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 1.7618e+02 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 34\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "mopt_l0_qx2, mopt_l2_qx2, pred = run_inversion(option='l0', ps=2, px=2, pz=0, alpha_s=1e-2, alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": { "scrolled": false }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ">> Use multiprocessing for parallelization\n", - ">> n_cpu: 2\n", - "SimPEG.InvProblem will set Regularization.mref to m0.\n", - "\n", - " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", - " ***Done using same Solver and solverOpts as the problem***\n", - ">> Compute J sigma\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:931: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", - " \"Without a Linear preconditioner, convergence may be slow. \"\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Compute fields\n", - ">> Compute response\n", - "model has any nan: 0\n", - "============================ Inexact Gauss Newton ============================\n", - " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", - "-----------------------------------------------------------------------------\n", - "x0 has any nan: 0\n", - " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Compute J sigma\n", - " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", - "eps_p: 0.4831159414302415 eps_q: 0.4831159414302415\n", - ">> Fix Jmatrix\n", - ">> Compute J sigma\n", - " 4 2.49e+02 2.96e+02 4.90e-01 4.18e+02 1.22e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 5 3.91e+02 2.64e+02 7.86e-01 5.71e+02 3.46e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 6 3.91e+02 3.30e+02 3.66e-01 4.73e+02 9.98e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 7 3.91e+02 3.02e+02 5.24e-01 5.07e+02 1.09e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 8 3.23e+02 3.32e+02 4.09e-01 4.64e+02 7.57e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 9 3.23e+02 3.12e+02 5.56e-01 4.92e+02 6.54e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 10 2.65e+02 3.36e+02 4.61e-01 4.58e+02 6.63e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 11 2.65e+02 3.20e+02 6.13e-01 4.83e+02 5.38e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 12 2.16e+02 3.41e+02 5.25e-01 4.54e+02 6.39e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 13 2.16e+02 3.27e+02 6.92e-01 4.76e+02 5.09e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 14 1.75e+02 3.45e+02 6.07e-01 4.51e+02 6.31e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 15 1.43e+02 3.38e+02 6.91e-01 4.37e+02 1.72e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 16 1.18e+02 3.35e+02 7.53e-01 4.24e+02 3.66e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 17 9.79e+01 3.30e+02 9.71e-01 4.25e+02 3.73e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 18 9.79e+01 3.29e+02 1.10e+00 4.37e+02 3.95e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 19 9.79e+01 3.26e+02 1.29e+00 4.52e+02 6.31e+01 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 20 9.79e+01 3.22e+02 1.35e+00 4.54e+02 1.05e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 21 9.79e+01 3.17e+02 1.41e+00 4.55e+02 1.58e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 22 9.79e+01 3.14e+02 1.36e+00 4.46e+02 2.30e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 23 9.79e+01 3.12e+02 1.23e+00 4.32e+02 2.72e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 24 9.79e+01 3.13e+02 1.07e+00 4.18e+02 3.23e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 25 9.79e+01 3.15e+02 1.02e+00 4.15e+02 4.11e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 26 9.79e+01 3.22e+02 8.80e-01 4.08e+02 3.66e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 27 9.79e+01 3.26e+02 7.70e-01 4.02e+02 3.17e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 28 9.79e+01 3.29e+02 7.07e-01 3.98e+02 3.16e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 29 8.11e+01 3.31e+02 6.18e-01 3.81e+02 1.74e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 30 8.11e+01 3.29e+02 5.83e-01 3.76e+02 1.63e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 31 8.11e+01 3.28e+02 5.56e-01 3.73e+02 2.14e+02 0 Skip BFGS \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 32 8.11e+01 3.28e+02 5.23e-01 3.70e+02 2.53e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - " 33 8.11e+01 3.27e+02 4.99e-01 3.67e+02 3.08e+02 0 \n", - "Compute fields\n", - ">> Compute response\n", - ">> Fix Jmatrix\n", - "Reach maximum number of IRLS cycles: 30\n", - "------------------------- STOP! -------------------------\n", - "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", - "1 : |xc-x_last| = 1.8464e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", - "0 : |proj(x-g)-x| = 3.0787e+02 <= tolG = 1.0000e-01\n", - "0 : |proj(x-g)-x| = 3.0787e+02 <= 1e3*eps = 1.0000e-02\n", - "0 : maxIter = 40 <= iter = 34\n", - "------------------------- DONE! -------------------------\n" - ] - } - ], + "outputs": [], "source": [ "mopt_l0, mopt_l2, pred = run_inversion(option='l0', ps=2, px=0, pz=0, alpha_s=1e-2, alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "DOBS = d_obs.reshape((sim.n_sounding, 2, survey.n_frequency))\n", "DPRED = pred.reshape((sim.n_sounding, 2, survey.n_frequency))\n", @@ -831,7 +497,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -846,22 +512,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "sigmas = [\n", " sigma, \n", @@ -888,21 +541,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'sigma_est_l2_ps0' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0msigma_est_l2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0msigma_est_l2_qx2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0msigma_est_l2_ps0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m ]\n\u001b[0;32m 7\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mNameError\u001b[0m: name 'sigma_est_l2_ps0' is not defined" - ] - } - ], + "outputs": [], "source": [ "sigmas = [\n", " sigma, \n", diff --git a/simpegEM1D/EM1DSimulation.py b/simpegEM1D/EM1DSimulation.py index 3093872..ebee781 100644 --- a/simpegEM1D/EM1DSimulation.py +++ b/simpegEM1D/EM1DSimulation.py @@ -53,41 +53,34 @@ def run_simulation_FD(args): """ args - rx_location: Recevier location (x, y, z) - src_location: Source location (x, y, z) + src: source object topo: Topographic location (x, y, z) hz: Thickeness of the vertical layers - offset: Source-Receiver offset - frequency: Frequency (Hz) - field_type: - rx_type: - src_type: - sigma: - jac_switch : + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : """ - rx_location, src_location, topo, hz, offset, frequency, field_type, rx_type, src_type, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - mesh_1d = set_mesh_1d(hz) - depth = -mesh_1d.gridN[:-1] - FDsurvey = EM1DSurveyFD( - rx_location=rx_location, - src_location=src_location, - topo=topo, - frequency=frequency, - offset=offset, - field_type=field_type, - rx_type=rx_type, - src_type=src_type, - depth=depth, - half_switch=half_switch - ) + src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + local_survey = EM1DSurveyFD([src]) + expmap = maps.ExpMap(nP=len(hz)) + thicknesses = hz[0:-1] + if not invert_height: # Use Exponential Map # This is hard-wired at the moment - expmap = maps.ExpMap(mesh_1d) + sim = EM1DFMSimulation( - mesh_1d, survey=FDsurvey, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' ) if jac_switch == 'sensitivity_sigma': @@ -98,12 +91,16 @@ def run_simulation_FD(args): resp = sim.dpred(np.log(sigma)) return resp else: - wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = maps.ExpMap(mesh_1d) + + mesh1D = set_mesh_1d(hz) + wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) sigmaMap = expmap * wires.sigma + sim = EM1DFMSimulation( - mesh_1d, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, Map=wires.h, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] @@ -123,60 +120,33 @@ def run_simulation_TD(args): """ args - rx_location: Recevier location (x, y, z) - src_location: Source location (x, y, z) + src: source object topo: Topographic location (x, y, z) hz: Thickeness of the vertical layers - time: Time (s) - field_type: 'secondary' - rx_type: - src_type: - wave_type: - offset: Source-Receiver offset (for VMD) - a: Source-loop radius (for Circular Loop) - time_input_currents: - input_currents: - n_pulse: - base_frequency: - sigma: - jac_switch: + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : """ - rx_location, src_location, topo, hz, time, field_type, rx_type, src_type, wave_type, offset, a, time_input_currents, input_currents, n_pulse, base_frequency, use_lowpass_filter, high_cut_frequency, moment_type, time_dual_moment, time_input_currents_dual_moment, input_currents_dual_moment, base_frequency_dual_moment, sigma, eta, tau, c, h, jac_switch, invert_height, half_switch = args - - mesh_1d = set_mesh_1d(hz) - depth = -mesh_1d.gridN[:-1] - TDsurvey = EM1DSurveyTD( - rx_location=rx_location, - src_location=src_location, - topo=topo, - depth=depth, - time=time, - field_type=field_type, - rx_type=rx_type, - src_type=src_type, - wave_type=wave_type, - offset=offset, - a=a, - time_input_currents=time_input_currents, - input_currents=input_currents, - n_pulse=n_pulse, - base_frequency=base_frequency, - high_cut_frequency=high_cut_frequency, - moment_type=moment_type, - time_dual_moment=time_dual_moment, - time_input_currents_dual_moment=time_input_currents_dual_moment, - input_currents_dual_moment=input_currents_dual_moment, - base_frequency_dual_moment=base_frequency_dual_moment, - half_switch=half_switch, - ) + src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + local_survey = EM1DSurveyTD([src]) + expmap = maps.ExpMap(nP=len(hz)) + thicknesses = hz[0:-1] + if not invert_height: # Use Exponential Map # This is hard-wired at the moment - expmap = maps.ExpMap(mesh_1d) sim = EM1DTMSimulation( - mesh_1d, survey=TDsurvey, sigmaMap=expmap, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' ) if jac_switch == 'sensitivity_sigma': @@ -186,13 +156,15 @@ def run_simulation_TD(args): resp = sim.dpred(np.log(sigma)) return resp else: - wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = maps.ExpMap(mesh_1d) + + mesh1D = set_mesh_1d(hz) + wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) sigmaMap = expmap * wires.sigma sim = EM1DTMSimulation( - mesh_1d, survey=TDsurvey, sigmaMap=sigmaMap, hMap=wires.h, - hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, Map=wires.h, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] diff --git a/simpegEM1D/EM1DSimulation_original.py b/simpegEM1D/EM1DSimulation_original.py index 3093872..113655c 100644 --- a/simpegEM1D/EM1DSimulation_original.py +++ b/simpegEM1D/EM1DSimulation_original.py @@ -2,8 +2,8 @@ from discretize import TensorMesh from SimPEG import maps, utils from .analytics import skin_depth, diffusion_distance -from .simulation import EM1DFMSimulation, EM1DTMSimulation -from .survey import EM1DSurveyFD, EM1DSurveyTD +from .simulation_original import EM1DFMSimulation, EM1DTMSimulation +from .survey_original import EM1DSurveyFD, EM1DSurveyTD def get_vertical_discretization_frequency( diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index bc76ac7..555f1a8 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -42,6 +42,10 @@ class BaseEM1DSimulation(BaseSimulation): "Electrical conductivity at infinite frequency(S/m)" ) + h, hMap, hDeriv = props.Invertible( + "Receiver Height (m), h > 0", + ) + rho, rhoMap, rhoDeriv = props.Invertible( "Electrical resistivity (Ohm m)" ) @@ -68,10 +72,6 @@ class BaseEM1DSimulation(BaseSimulation): default=0.5 ) - h, hMap, hDeriv = props.Invertible( - "Receiver Height (m), h > 0", - ) - survey = properties.Instance( "a survey object", BaseEM1DSurvey, required=True ) diff --git a/simpegEM1D/simulation_original.py b/simpegEM1D/simulation_original.py index dcaaf4a..579da96 100644 --- a/simpegEM1D/simulation_original.py +++ b/simpegEM1D/simulation_original.py @@ -2,7 +2,7 @@ from SimPEG.simulation import BaseSimulation import numpy as np from .survey_original import BaseEM1DSurvey -from .supporting_functions.kernels import * +from .supporting_functions.kernels_original import * from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline import properties diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index c72f0f0..05520ec 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -12,7 +12,7 @@ from SimPEG import props, utils, maps, survey from SimPEG.simulation import BaseSimulation from SimPEG.survey import BaseSurvey -from .survey import EM1DSurveyFD, EM1DSurveyTD +from .survey import * from .EM1DSimulation import run_simulation_FD, run_simulation_TD import properties import warnings @@ -28,6 +28,18 @@ class GlobalEM1DSimulation(BaseSimulation): potentially in parallel, potentially of different meshes. This is handy for working with lots of sources, """ + + _Jmatrix_sigma = None + _Jmatrix_height = None + run_simulation = None + n_cpu = None + hz = None + parallel = False + parallel_jvec_jtvec = False + verbose = False + fix_Jmatrix = False + invert_height = None + sigma, sigmaMap, sigmaDeriv = props.Invertible( "Electrical conductivity (S/m)" ) @@ -52,16 +64,13 @@ class GlobalEM1DSimulation(BaseSimulation): "Frequency Dependency, 0 < c < 1" ) - _Jmatrix_sigma = None - _Jmatrix_height = None - run_simulation = None - n_cpu = None - hz = None - parallel = False - parallel_jvec_jtvec = False - verbose = False - fix_Jmatrix = False - invert_height = None + topo = properties.Array("Topography (x, y, z)", dtype=float, shape=('*', 3)) + + survey = properties.Instance( + "a survey object", BaseEM1DSurvey, required=True + ) + + half_switch = properties.Bool("Switch for half-space", default=False) def __init__(self, mesh, **kwargs): utils.setKwargs(self, **kwargs) @@ -90,51 +99,13 @@ def n_layer(self): @property def n_sounding(self): - return self.survey.n_sounding + return len(self.survey.source_list) - @property - def rx_locations(self): - return self.survey.rx_locations - - @property - def src_locations(self): - return self.survey.src_locations @property def data_index(self): return self.survey.data_index - @property - def topo(self): - return self.survey.topo - - @property - def offset(self): - return self.survey.offset - - @property - def a(self): - return self.survey.a - - @property - def I(self): - return self.survey.I - - @property - def field_type(self): - return self.survey.field_type - - @property - def rx_type(self): - return self.survey.rx_type - - @property - def src_type(self): - return self.survey.src_type - - @property - def half_switch(self): - return self.survey.half_switch # ------------- For physical properties ------------- # @property @@ -229,6 +200,24 @@ def IJHeight(self): return self._IJHeight # ------------- For physics ------------- # + + def input_args(self, i_sounding, jac_switch='forward'): + output = ( + self.survey.source_list[i_sounding], + self.topo[i_sounding, :], + self.hz, + self.Sigma[i_sounding, :], + self.Eta[i_sounding, :], + self.Tau[i_sounding, :], + self.C[i_sounding, :], + self.Chi[i_sounding, :], + self.H[i_sounding], + jac_switch, + self.invert_height, + self.half_switch + ) + return output + def fields(self, m): if self.verbose: print("Compute fields") @@ -252,14 +241,15 @@ def forward(self, m): if self.verbose: print(">> Compute response") - if self.survey.__class__ == GlobalEM1DSurveyFD: + if self.survey.__class__ == EM1DSurveyFD: + print("Correct Run Simulation") run_simulation = run_simulation_FD else: run_simulation = run_simulation_TD if self.parallel: pool = Pool(self.n_cpu) - # This assumes the same # of layer for each of soundings + # This assumes the same # of layers for each of sounding result = pool.map( run_simulation, [ @@ -315,7 +305,7 @@ def set_ij_height(self): shift_for_J = 0 shift_for_I = 0 m = self.n_layer - for i in range(n_sounding): + for i in range(self.n_sounding): n = self.survey.nD_vec[i] J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J I_temp = ( @@ -341,7 +331,7 @@ def getJ_sigma(self, m): print(">> Compute J sigma") self.model = m - if self.survey.__class__ == GlobalEM1DSurveyFD: + if self.survey.__class__ == EM1DSurveyFD: run_simulation = run_simulation_FD else: run_simulation = run_simulation_TD @@ -394,7 +384,7 @@ def getJ_height(self, m): self.model = m - if self.survey.__class__ == GlobalEM1DSurveyFD: + if self.survey.__class__ == EM1DSurveyFD: run_simulation = run_simulation_FD else: run_simulation = run_simulation_TD @@ -540,126 +530,68 @@ def run_simulation(self, args): print(">> Frequency-domain") return run_simulation_FD(args) - @property - def frequency(self): - return self.survey.frequency - - @property - def switch_real_imag(self): - return self.survey.switch_real_imag + # @property + # def frequency(self): + # return self.survey.frequency - def input_args(self, i_sounding, jac_switch='forward'): - output = ( - self.rx_locations[i_sounding, :], - self.src_locations[i_sounding, :], - self.topo[i_sounding, :], - self.hz, - self.offset, - self.frequency, - self.field_type, - self.rx_type, - self.src_type, - self.Sigma[i_sounding, :], - self.Eta[i_sounding, :], - self.Tau[i_sounding, :], - self.C[i_sounding, :], - self.Chi[i_sounding, :], - self.H[i_sounding], - jac_switch, - self.invert_height, - self.half_switch - ) - return output + # @property + # def switch_real_imag(self): + # return self.survey.switch_real_imag class GlobalEM1DSimulationTD(GlobalEM1DSimulation): - @property - def wave_type(self): - return self.survey.wave_type - - @property - def input_currents(self): - return self.survey.input_currents + # @property + # def wave_type(self): + # return self.survey.wave_type - @property - def time_input_currents(self): - return self.survey.time_input_currents + # @property + # def input_currents(self): + # return self.survey.input_currents - @property - def n_pulse(self): - return self.survey.n_pulse + # @property + # def time_input_currents(self): + # return self.survey.time_input_currents - @property - def base_frequency(self): - return self.survey.base_frequency + # @property + # def n_pulse(self): + # return self.survey.n_pulse - @property - def time(self): - return self.survey.time + # @property + # def base_frequency(self): + # return self.survey.base_frequency - @property - def use_lowpass_filter(self): - return self.survey.use_lowpass_filter + # @property + # def time(self): + # return self.survey.time - @property - def high_cut_frequency(self): - return self.survey.high_cut_frequency + # @property + # def use_lowpass_filter(self): + # return self.survey.use_lowpass_filter - @property - def moment_type(self): - return self.survey.moment_type + # @property + # def high_cut_frequency(self): + # return self.survey.high_cut_frequency - @property - def time_dual_moment(self): - return self.survey.time_dual_moment + # @property + # def moment_type(self): + # return self.survey.moment_type - @property - def time_input_currents_dual_moment(self): - return self.survey.time_input_currents_dual_moment + # @property + # def time_dual_moment(self): + # return self.survey.time_dual_moment - @property - def input_currents_dual_moment(self): - return self.survey.input_currents_dual_moment + # @property + # def time_input_currents_dual_moment(self): + # return self.survey.time_input_currents_dual_moment - @property - def base_frequency_dual_moment(self): - return self.survey.base_frequency_dual_moment + # @property + # def input_currents_dual_moment(self): + # return self.survey.input_currents_dual_moment - def input_args(self, i_sounding, jac_switch='forward'): - output = ( - self.rx_locations[i_sounding, :], - self.src_locations[i_sounding, :], - self.topo[i_sounding, :], - self.hz, - self.time[i_sounding], - self.field_type[i_sounding], - self.rx_type[i_sounding], - self.src_type[i_sounding], - self.wave_type[i_sounding], - self.offset[i_sounding], - self.a[i_sounding], - self.time_input_currents[i_sounding], - self.input_currents[i_sounding], - self.n_pulse[i_sounding], - self.base_frequency[i_sounding], - self.use_lowpass_filter[i_sounding], - self.high_cut_frequency[i_sounding], - self.moment_type[i_sounding], - self.time_dual_moment[i_sounding], - self.time_input_currents_dual_moment[i_sounding], - self.input_currents_dual_moment[i_sounding], - self.base_frequency_dual_moment[i_sounding], - self.Sigma[i_sounding, :], - self.Eta[i_sounding, :], - self.Tau[i_sounding, :], - self.C[i_sounding, :], - self.H[i_sounding], - jac_switch, - self.invert_height, - self.half_switch - ) - return output + # @property + # def base_frequency_dual_moment(self): + # return self.survey.base_frequency_dual_moment def run_simulation(self, args): if self.verbose: @@ -720,12 +652,12 @@ def run_simulation(self, args): class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): # This assumes a multiple sounding locations - rx_locations = properties.Array( - "Receiver locations ", dtype=float, shape=('*', 3) - ) - src_locations = properties.Array( - "Source locations ", dtype=float, shape=('*', 3) - ) + # rx_locations = properties.Array( + # "Receiver locations ", dtype=float, shape=('*', 3) + # ) + # src_locations = properties.Array( + # "Source locations ", dtype=float, shape=('*', 3) + # ) topo = properties.Array( "Topography", dtype=float, shape=('*', 3) ) diff --git a/simpegEM1D/simulation_stitched1d_original.py b/simpegEM1D/simulation_stitched1d_original.py index c72f0f0..71f4e16 100644 --- a/simpegEM1D/simulation_stitched1d_original.py +++ b/simpegEM1D/simulation_stitched1d_original.py @@ -12,8 +12,8 @@ from SimPEG import props, utils, maps, survey from SimPEG.simulation import BaseSimulation from SimPEG.survey import BaseSurvey -from .survey import EM1DSurveyFD, EM1DSurveyTD -from .EM1DSimulation import run_simulation_FD, run_simulation_TD +from .survey_original import EM1DSurveyFD, EM1DSurveyTD +from .EM1DSimulation_original import run_simulation_FD, run_simulation_TD import properties import warnings diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index a915f17..e799161 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -614,10 +614,10 @@ def hz_kernel_circular_loop( w = 2*np.pi*f u0 = lamda - a = np.empty([n_frequency, n_filter], order='F') - a[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) + radius = np.empty([n_frequency, n_filter], order='F') + radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - coefficient_wavenumber = I*a*0.5*lamda**2/u0 + coefficient_wavenumber = I*radius*0.5*lamda**2/u0 if output_type == 'sensitivity_sigma': drTE = np.empty( diff --git a/simpegEM1D/supporting_functions/kernels_original.py b/simpegEM1D/supporting_functions/kernels_original.py new file mode 100644 index 0000000..a6b42d6 --- /dev/null +++ b/simpegEM1D/supporting_functions/kernels_original.py @@ -0,0 +1,848 @@ +import numpy as np +from scipy.constants import mu_0 + +try: + from simpegEM1D.Fortran.m_rTE_Fortran import rte_fortran +except ImportError as e: + rte_fortran = None + + + + + + +def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): + """ + Compute reflection coefficients for Transverse Electric (TE) mode. + Only one for loop for multiple layers. + + Parameters + ---------- + n_layer : int + The number layers + f : complex, ndarray + Frequency (Hz); size = (n_frequency x n_filter) + lamda : complex, ndarray + Frequency (Hz); size = (n_frequency x n_filter) + sig: compelx, ndarray + Conductivity (S/m); size = (n_layer x n_frequency x n_filter) + chi: compelx, ndarray + Susceptibility (SI); size = (n_layer,) + depth: float, ndarray + Top boundary of the layers; size = (n_ayer,) + HalfSwitch: bool + Switch for halfspace + + Returns + ------- + rTE: compex, ndarray + Reflection coefficients; + size = (n_frequency x n_lamba) + """ + + n_frequency, n_filter = lamda.shape + + Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + w = 2*np.pi*f + + rTE = np.zeros((n_frequency, n_filter), dtype=complex) + utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) + utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) + const = np.zeros((n_frequency, n_filter), dtype=complex) + + utemp0 = lamda + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) + const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + + Mtemp00 = 0.5*(1+const) + Mtemp10 = 0.5*(1-const) + Mtemp01 = 0.5*(1-const) + Mtemp11 = 0.5*(1+const) + + # may be store these and reuse for sensitivity? + M00 = [] + M10 = [] + M01 = [] + M11 = [] + + M0sum00 = Mtemp00 + M0sum10 = Mtemp10 + M0sum01 = Mtemp01 + M0sum11 = Mtemp11 + + if HalfSwitch: + + M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + M1sum00 = M0sum00 + M1sum10 = M0sum10 + M1sum01 = M0sum01 + M1sum11 = M0sum11 + + else: + + for j in range(n_layer-1): + utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) + const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) + + h0 = thick[j] + + Mtemp00 = 0.5*(1.+const)*np.exp(-2.*utemp0*h0) + Mtemp10 = 0.5*(1.-const) + Mtemp01 = 0.5*(1.-const)*np.exp(-2.*utemp0*h0) + Mtemp11 = 0.5*(1.+const) + + M1sum00 = M0sum00*Mtemp00 + M0sum01*Mtemp10 + M1sum10 = M0sum10*Mtemp00 + M0sum11*Mtemp10 + M1sum01 = M0sum00*Mtemp01 + M0sum01*Mtemp11 + M1sum11 = M0sum10*Mtemp01 + M0sum11*Mtemp11 + + M0sum00 = M1sum00 + M0sum10 = M1sum10 + M0sum01 = M1sum01 + M0sum11 = M1sum11 + + rTE = M1sum01/M1sum11 + + return rTE + + +def matmul(a00, a10, a01, a11, b00, b10, b01, b11): + """ + Compute 2x2 matrix mutiplication in vector way + C = A*B + C = [a00 a01] * [b00 b01] = [c00 c01] + [a10 a11] [b10 b11] [c10 c11] + """ + + c00 = a00*b00 + a01*b10 + c10 = a10*b00 + a11*b10 + c01 = a00*b01 + a01*b11 + c11 = a10*b01 + a11*b11 + + return c00, c10, c01, c11 + + + +# TODO: make this to take a vector rather than a single frequency +def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): + """ + Compute sensitivity of reflection coefficients for + Transverse Electric (TE) mode with regard to conductivity + + Parameters + ---------- + n_layer : int + The number layers + f : complex, ndarray + Frequency (Hz); size = (n_frequency x n_finlter) + lamda : complex, ndarray + Frequency (Hz); size = (n_frequency x n_finlter) + sig: compelx, ndarray + Conductivity (S/m); size = (n_layer x 1) + chi: compelx, ndarray + Susceptibility (SI); size = (n_layer x 1) + depth: float, ndarray + Top boundary of the layers + HalfSwitch: bool + Switch for halfspace + + Returns + ------- + rTE: compex, ndarray + Derivative of reflection coefficients; + size = (n_frequency x n_layer x n_finlter) + """ + # Initializing arrays + n_frequency, n_filter = lamda.shape + + Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) + Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + M0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + M0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + M0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + M0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dMtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) + dMtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) + dMtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) + dMtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dj0temp00 = np.zeros((n_frequency, n_filter), dtype=complex) + dj0temp10 = np.zeros((n_frequency, n_filter), dtype=complex) + dj0temp01 = np.zeros((n_frequency, n_filter), dtype=complex) + dj0temp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dj1temp00 = np.zeros((n_frequency, n_filter), dtype=complex) + dj1temp10 = np.zeros((n_frequency, n_filter), dtype=complex) + dj1temp01 = np.zeros((n_frequency, n_filter), dtype=complex) + dj1temp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + w = 2*np.pi*f + + rTE = np.zeros((n_frequency, n_filter), dtype=complex) + drTE = np.zeros((n_layer, n_frequency, n_filter), dtype=complex) + utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) + utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) + const = np.zeros((n_frequency, n_filter), dtype=complex) + + utemp0 = lamda + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) + const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + + # Compute M1 + Mtemp00 = 0.5*(1+const) + Mtemp10 = 0.5*(1-const) + Mtemp01 = 0.5*(1-const) + Mtemp11 = 0.5*(1+const) + + utemp0 = lamda + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) + const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + + # Compute dM1du1 + dj0Mtemp00 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) + dj0Mtemp10 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) + dj0Mtemp01 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) + dj0Mtemp11 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) + + # TODO: for computing Jacobian + M00 = [] + M10 = [] + M01 = [] + M11 = [] + + dJ00 = [] + dJ10 = [] + dJ01 = [] + dJ11 = [] + + M00.append(Mtemp00) + M01.append(Mtemp01) + M10.append(Mtemp10) + M11.append(Mtemp11) + + M0sum00 = Mtemp00.copy() + M0sum10 = Mtemp10.copy() + M0sum01 = Mtemp01.copy() + M0sum11 = Mtemp11.copy() + + if HalfSwitch or n_layer == 1: + + M1sum00 = M0sum00.copy() + M1sum10 = M0sum10.copy() + M1sum01 = M0sum01.copy() + M1sum11 = M0sum11.copy() + + else: + + for j in range(n_layer-1): + + dJ_10Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ_10Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ_10Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ_10Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dJ01Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ01Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ01Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ01Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + + utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) + const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) + + h0 = thick[j] + + Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) + Mtemp10 = 0.5*(1.- const) + Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) + Mtemp11 = 0.5*(1.+ const) + + M1sum00, M1sum10, M1sum01, M1sum11 = matmul( + M0sum00, M0sum10, M0sum01, M0sum11, + Mtemp00, Mtemp10, Mtemp01, Mtemp11 + ) + + M0sum00 = M1sum00 + M0sum10 = M1sum10 + M0sum01 = M1sum01 + M0sum11 = M1sum11 + + # TODO: for Computing Jacobian + + dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 + + if j == 0: + + const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) + const1b = const1a*utemp0 + + dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) + dj1Mtemp10 = 0.5*const1a + dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) + dj1Mtemp11 = -0.5*const1a + + # Compute dM1dm1*M2 + dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( + dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, + Mtemp00, Mtemp10, Mtemp01, Mtemp11 + ) + + # Compute M1*dM2dm1 + dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( + M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, + dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 + ) + + dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) + dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) + dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) + dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) + + else: + + h_1 = thick[j-1] + utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j-1])*sig[j-1]) + const0 = mu_0*(1+chi[j-1])/(mu_0*(1+chi[j])*utemp_1) + + dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) + dj0Mtemp10 = -0.5*(const0) + dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) + dj0Mtemp11 = 0.5*(const0) + + const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) + const1b = const1a*utemp0 + + dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) + dj1Mtemp10 = 0.5*const1a + dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) + dj1Mtemp11 = -0.5*const1a + + # Compute dMjdmj*Mj+1 + dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( + dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, + Mtemp00, Mtemp10, Mtemp01, Mtemp11 + ) + + # Compute Mj*dMj+1dmj + dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( + M00[j], M10[j], M01[j], M11[j], + dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 + ) + + dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) + dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) + dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) + dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) + + M00.append(Mtemp00) + M01.append(Mtemp01) + M10.append(Mtemp10) + M11.append(Mtemp11) + + # rTE = M1sum01/M1sum11 + + if HalfSwitch or n_layer == 1: + + utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) + dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 + + dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dJ1sum00 = dudsig*dj0Mtemp00 + dJ1sum10 = dudsig*dj0Mtemp10 + dJ1sum01 = dudsig*dj0Mtemp01 + dJ1sum11 = dudsig*dj0Mtemp11 + + drTE = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 + + else: + + # j = n_layer + utemp0 = ( + np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-1])*sig[n_layer-1, :, :]) + ) + dudsig = 0.5*1j*w*mu_0*(1+chi[n_layer-1])/utemp0 + + h_1 = thick[n_layer-2] + + utemp_1 = ( + np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-2])*sig[n_layer-2, :, :]) + ) + const0 = mu_0*(1+chi[n_layer-2])/(mu_0*(1+chi[n_layer-1])*utemp_1) + + dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) + dj0Mtemp10 = -0.5*(const0) + dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) + dj0Mtemp11 = 0.5*(const0) + + dJ_10Mtemp00 = dj0Mtemp00 + dJ_10Mtemp10 = dj0Mtemp10 + dJ_10Mtemp01 = dj0Mtemp01 + dJ_10Mtemp11 = dj0Mtemp11 + + dJ00.append(dudsig*dJ_10Mtemp00) + dJ10.append(dudsig*dJ_10Mtemp10) + dJ01.append(dudsig*dJ_10Mtemp01) + dJ11.append(dudsig*dJ_10Mtemp11) + + for i in range(n_layer): + + dJ0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) + dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + + if i == 0: + + for j in range(n_layer-2): + + if j == 0: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ00[i], dJ10[i], dJ01[i], dJ11[i], + M00[j+2], M10[j+2], M01[j+2], M11[j+2] + ) + + else: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + M00[j+2], M10[j+2], M01[j+2], M11[j+2] + ) + + dJ0sum00 = dJ1sum00 + dJ0sum10 = dJ1sum10 + dJ0sum01 = dJ1sum01 + dJ0sum11 = dJ1sum11 + + elif (i > 0) & (i < n_layer-1): + + dJ0sum00 = M00[0] + dJ0sum10 = M10[0] + dJ0sum01 = M01[0] + dJ0sum11 = M11[0] + + for j in range (n_layer-2): + + if j==i-1: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + dJ00[i], dJ10[i], dJ01[i], dJ11[i] + ) + + elif j < i-1: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + M00[j+1], M10[j+1], M01[j+1], M11[j+1] + ) + + elif j > i-1: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + M00[j+2], M10[j+2], M01[j+2], M11[j+2] + ) + + dJ0sum00 = dJ1sum00 + dJ0sum10 = dJ1sum10 + dJ0sum01 = dJ1sum01 + dJ0sum11 = dJ1sum11 + + elif i == n_layer-1: + + dJ0sum00 = M00[0] + dJ0sum10 = M10[0] + dJ0sum01 = M01[0] + dJ0sum11 = M11[0] + + for j in range(n_layer-1): + + if j < n_layer-2: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + M00[j+1], M10[j+1], M01[j+1], M11[j+1] + ) + + elif j == n_layer-2: + + dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( + dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, + dJ00[i], dJ10[i], dJ01[i], dJ11[i] + ) + + dJ0sum00 = dJ1sum00 + dJ0sum10 = dJ1sum10 + dJ0sum01 = dJ1sum01 + dJ0sum11 = dJ1sum11 + + drTE[i, :] = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 + + return drTE + # Still worthwhile to output both? + # return rTE, drTE + + + + +def hz_kernel_vertical_magnetic_dipole( + simulation, lamda, f, n_layer, sig, chi, depth, h, z, + flag, I, output_type='response' +): + + """ + Kernel for vertical magnetic component (Hz) due to + vertical magnetic diopole (VMD) source in (kx,ky) domain + + .. math:: + + H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} + \\r_{TE} e^{u_0|z-h|} + \\frac{\\lambda^3}{u_0} J_0(\\lambda r) d \\lambda + + """ + + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 + + n_frequency = len(f) + n_filter = simulation.n_filter + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, drTE, + n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel * I + + # Note + # Here only computes secondary field. + # I am not sure why it does not work if we add primary term. + # This term can be analytically evaluated, where h = 0. + # kernel = ( + # 1./(4*np.pi) * + # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 + # ) + +# TODO: make this to take a vector rather than a single frequency +def hz_kernel_circular_loop( + simulation, lambd, f, n_layer, sig, chi, depth, h, z, I, r, + flag, output_type='response' +): + + """ + + Kernel for vertical magnetic component (Hz) at the center + due to circular loop source in (kx,ky) domain + + .. math:: + + H_z = \\frac{Ia}{2} \\int_0^{\\infty} + \\r_{TE}e^{u_0|z-h|}] \\frac{\\lambda^2}{u_0} + J_1(\\lambda a) J_0(\\lambda r) d \\lambda + + """ + + n_frequency = len(f) + n_filter = simulation.n_filter + + w = 2*np.pi*f + u0 = lamda + radius = np.empty([n_frequency, n_filter], order='F') + radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) + + coefficient_wavenumber = I*radius*0.5*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.empty( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + drTE[:, :] = rTEfunjac( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + rTE[:, :] = rTEfunfwd( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + if flag == 'secondary': + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + kernel = rTE * ( + np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) + ) * coefficient_wavenumber + + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + +def hz_kernel_horizontal_electric_dipole( + simulation, lamda, f, n_layer, sig, chi, depth, h, z, + flag, output_type='response' +): + + """ + Kernel for vertical magnetic field (Hz) due to + horizontal electric diopole (HED) source in (kx,ky) domain + + """ + n_frequency = len(f) + n_filter = simulation.n_filter + + u0 = lamda + coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 + + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], dtype=np.complex128, + order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + drTE, n_layer, n_frequency, n_filter + ) + + kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = -np.diff(depth) + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.survey.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + if output_type == 'sensitivity_height': + kernel *= -2*u0 + + return kernel + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# import numpy as np +# from scipy.constants import mu_0 +# from .DigFilter import EvalDigitalFilt +# from RTEfun import rTEfun + +# def HzKernel_layer(lamda, f, nlay, sig, chi, depth, h, z, flag): + +# """ + +# Kernel for vertical magnetic component (Hz) due to vertical magnetic +# diopole (VMD) source in (kx,ky) domain + +# """ +# u0 = lamda +# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) + +# if flag=='secondary': +# # Note +# # Here only computes secondary field. +# # I am not sure why it does not work if we add primary term. +# # This term can be analytically evaluated, where h = 0. + +# kernel = 1/(4*np.pi)*(rTE*np.exp(-u0*(z+h)))*lamda**3/u0 + +# else: +# kernel = 1/(4*np.pi)*(np.exp(u0*(z-h))+ rTE*np.exp(-u0*(z+h)))*lamda**3/u0 + +# return kernel + +# def HzkernelCirc_layer(lamda, f, nlay, sig, chi, depth, h, z, I, a, flag): + +# """ + +# Kernel for vertical magnetic component (Hz) at the center +# due to circular loop source in (kx,ky) domain + +# .. math:: + +# H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + r_{TE}e^{u_0|z-h|}] \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda + +# """ + +# w = 2*np.pi*f +# rTE = np.zeros(lamda.size, dtype=complex) +# u0 = lamda +# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) + +# if flag == 'secondary': +# kernel = I*a*0.5*(rTE*np.exp(-u0*(z+h)))*lamda**2/u0 +# else: +# kernel = I*a*0.5*(np.exp(u0*(z-h))+rTE*np.exp(-u0*(z+h)))*lamda**2/u0 + +# return kernel + +#TODO: Get rid of below two functions and put in in main class +# def HzFreq_layer(nlay, sig, chi, depth, f, z, h, r, flag, YBASE, WT0): +# """ + +# """ +# nfreq = np.size(f) +# HzFHT = np.zeros(nfreq, dtype = complex) +# for ifreq in range(nfreq): + +# kernel = lambda x: HzKernel_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, flag) +# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT0, kernel, r) + +# return HzFHT + +# def HzCircFreq_layer(nlay, sig, chi, depth, f, z, h, I, a, flag, YBASE, WT1): + +# """ + +# """ +# nfreq = np.size(f) +# HzFHT = np.zeros(nfreq, dtype = complex) +# for ifreq in range(nfreq): + +# kernel = lambda x: HzkernelCirc_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, I, a, flag) +# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT1, kernel, a) + +# return HzFHT diff --git a/tutorials/assets/em1dfm_data.obs b/tutorials/assets/em1dfm_data.obs index 58365f7..571f710 100644 --- a/tutorials/assets/em1dfm_data.obs +++ b/tutorials/assets/em1dfm_data.obs @@ -1,5 +1,5 @@ -3.8200e+02 9.0138e+02 7.2702e+02 -1.8220e+03 1.6540e+03 1.1406e+03 -7.9700e+03 3.0179e+03 1.9620e+03 -3.5920e+04 5.6392e+03 2.0043e+03 -1.3010e+05 6.8207e+03 1.3545e+03 +3.8200e+02 9.2837e+02 7.3866e+02 +1.8220e+03 1.7197e+03 1.1037e+03 +7.9700e+03 2.9952e+03 1.9864e+03 +3.5920e+04 5.6046e+03 1.9473e+03 +1.3010e+05 7.1229e+03 1.3633e+03 diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs new file mode 100644 index 0000000..679e6c8 --- /dev/null +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -0,0 +1,300 @@ +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.0494e+01 5.7794e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 2.7170e+02 1.1120e+03 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 3.1198e+03 5.6904e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.5654e+01 2.1264e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 5.8691e+02 1.4494e+03 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 2.1886e+03 2.0528e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 9.8763e+00 5.2865e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3598e+02 9.6605e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8561e+03 5.6903e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.7681e+01 1.9529e+02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 5.2199e+02 1.3114e+03 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.3822e+03 2.0548e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 9.2273e+00 4.7527e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.0443e+02 8.3978e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7237e+03 5.7601e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.4377e+01 1.7577e+02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.8457e+02 1.3124e+03 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.4466e+03 2.1178e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.7910e+00 4.6396e+01 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.9094e+02 8.0559e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8009e+03 5.7217e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.0091e+01 1.6752e+02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5634e+02 1.3246e+03 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.4901e+03 2.1111e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.3394e+00 4.4200e+01 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.7991e+02 7.6443e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8239e+03 5.7826e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.9580e+01 1.6020e+02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4074e+02 1.2682e+03 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5458e+03 2.1269e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.1411e+00 4.1420e+01 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.6605e+02 7.4699e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7124e+03 5.7265e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.5468e+01 1.5121e+02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3051e+02 1.3323e+03 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5921e+03 2.0440e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 7.8288e+00 3.8074e+01 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.5361e+02 7.0910e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7372e+03 5.6569e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.3554e+01 1.4601e+02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1489e+02 1.2857e+03 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5510e+03 2.0613e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 7.2480e+00 3.5459e+01 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.3931e+02 6.9094e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7583e+03 5.6889e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.1863e+01 1.4270e+02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0747e+02 1.3113e+03 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5073e+03 2.1114e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 6.8149e+00 3.3430e+01 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.2970e+02 6.6801e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8204e+03 5.7134e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.1441e+01 1.3886e+02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 3.9695e+02 1.2979e+03 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.6056e+03 2.0646e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 6.6751e+00 3.0745e+01 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.1954e+02 6.4593e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8462e+03 5.5984e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.0484e+01 1.3063e+02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1136e+02 1.3549e+03 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5374e+03 2.0489e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.5904e+00 3.0704e+01 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.2088e+02 6.4400e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7399e+03 5.5565e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.9848e+01 1.2936e+02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9801e+02 1.3544e+03 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5037e+03 2.1178e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1295e+00 2.7991e+01 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1134e+02 6.4649e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7802e+03 5.6242e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.8733e+01 1.2893e+02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9318e+02 1.3265e+03 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5281e+03 2.1071e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.8414e+00 2.6423e+01 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0371e+02 6.3750e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7941e+03 5.7720e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.7448e+01 1.2308e+02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9325e+02 1.3615e+03 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5630e+03 2.0528e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.7100e+00 2.6491e+01 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0405e+02 6.5443e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7486e+03 5.6672e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6686e+01 1.2471e+02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0077e+02 1.3763e+03 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5575e+03 2.0948e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.5499e+00 2.4318e+01 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.9577e+01 6.5638e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8689e+03 5.7907e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6940e+01 1.2103e+02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8609e+02 1.3605e+03 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6088e+03 2.0831e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.5041e+00 2.3997e+01 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8849e+01 6.5705e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8108e+03 5.7082e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6987e+01 1.2107e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9916e+02 1.3522e+03 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5494e+03 2.0961e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.1381e+00 2.3019e+01 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.7451e+01 6.5097e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7764e+03 5.5647e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4708e+01 1.1897e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0004e+02 1.3269e+03 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5994e+03 2.0697e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.2052e+00 2.2327e+01 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.3615e+01 6.3706e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8527e+03 5.5706e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4580e+01 1.2382e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8933e+02 1.3819e+03 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5382e+03 2.1166e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.7041e+00 2.1045e+01 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.2293e+01 6.3590e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8585e+03 5.7684e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4919e+01 1.2041e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9614e+02 1.3496e+03 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6039e+03 2.0666e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.8076e+00 2.0542e+01 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.0089e+01 6.4807e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8073e+03 5.5316e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4129e+01 1.2030e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8824e+02 1.3744e+03 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5506e+03 2.0743e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4319e+00 1.9658e+01 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.0075e+01 6.6671e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8126e+03 5.7821e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4413e+01 1.1736e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8777e+02 1.3588e+03 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5571e+03 2.0652e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.5164e+00 1.9098e+01 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.9894e+01 6.6655e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8453e+03 5.5401e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4559e+01 1.1794e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8777e+02 1.3692e+03 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5305e+03 2.1135e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.1879e+00 1.8270e+01 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.7545e+01 6.5404e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7835e+03 5.7626e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3296e+01 1.2014e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9934e+02 1.3345e+03 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5252e+03 2.0922e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.0457e+00 1.7785e+01 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.8374e+01 6.6638e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7771e+03 5.7807e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2540e+01 1.1918e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9214e+02 1.3718e+03 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5139e+03 2.0499e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.2082e+00 1.7797e+01 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.7158e+01 6.6568e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7544e+03 5.7508e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3481e+01 1.1789e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9424e+02 1.3896e+03 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5849e+03 2.1255e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.7530e+00 1.6980e+01 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5300e+01 6.5205e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8308e+03 5.6930e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2938e+01 1.1816e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0392e+02 1.3757e+03 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5951e+03 2.0347e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8825e+00 1.6939e+01 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.6752e+01 6.3967e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8271e+03 5.7140e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3415e+01 1.1974e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8856e+02 1.3794e+03 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5423e+03 2.0879e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8283e+00 1.6679e+01 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4710e+01 6.4425e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8281e+03 5.6365e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2393e+01 1.2003e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0523e+02 1.3449e+03 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6116e+03 2.0640e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4967e+00 1.5601e+01 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4127e+01 6.3894e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8424e+03 5.6894e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1713e+01 1.1938e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9360e+02 1.3846e+03 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5600e+03 2.0272e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5249e+00 1.5378e+01 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3626e+01 6.6477e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7666e+03 5.5688e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2659e+01 1.1812e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9128e+02 1.3855e+03 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5884e+03 2.0355e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.6328e+00 1.5448e+01 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2306e+01 6.6812e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8555e+03 5.7808e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2725e+01 1.1544e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0622e+02 1.3761e+03 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5407e+03 2.0437e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2432e+00 1.4696e+01 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3564e+01 6.5670e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7364e+03 5.7268e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1726e+01 1.1654e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0610e+02 1.3357e+03 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5924e+03 2.1230e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3516e+00 1.4588e+01 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2298e+01 6.4422e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7484e+03 5.6772e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2139e+01 1.1567e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9086e+02 1.3680e+03 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5755e+03 2.1001e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3431e+00 1.4834e+01 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5160e+01 6.4386e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8711e+03 5.6499e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1378e+01 1.1805e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9518e+02 1.3939e+03 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5960e+03 2.0922e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3067e+00 1.4460e+01 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1707e+01 6.4549e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8664e+03 5.6532e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1416e+01 1.1881e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0749e+02 1.3416e+03 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5614e+03 2.0442e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0199e+00 1.4255e+01 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2435e+01 6.5679e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7955e+03 5.6672e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1923e+01 1.1474e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9736e+02 1.3924e+03 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5361e+03 2.1104e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0485e+00 1.3685e+01 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1513e+01 6.5823e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8255e+03 5.7887e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1035e+01 1.1424e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9191e+02 1.3842e+03 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5530e+03 2.0386e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0892e+00 1.3982e+01 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2078e+01 6.6103e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8654e+03 5.6319e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2033e+01 1.1864e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0867e+02 1.3923e+03 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5031e+03 2.0385e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9929e+00 1.3689e+01 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4708e+01 6.4155e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7687e+03 5.6029e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1622e+01 1.1817e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0647e+02 1.3765e+03 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5842e+03 2.1154e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7553e+00 1.3358e+01 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1750e+01 6.3988e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8491e+03 5.7802e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1933e+01 1.1665e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0461e+02 1.3804e+03 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5347e+03 2.0598e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8373e+00 1.3253e+01 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4175e+01 6.6008e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7775e+03 5.7231e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1444e+01 1.1639e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9848e+02 1.3529e+03 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5327e+03 2.1268e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7339e+00 1.3678e+01 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4472e+01 6.5940e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7411e+03 5.6314e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1531e+01 1.1716e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 1.3599e+03 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5113e+03 2.1143e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7315e+00 1.3700e+01 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4426e+01 6.6188e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7380e+03 5.7594e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1426e+01 1.1424e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0252e+02 1.3347e+03 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5693e+03 2.0859e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5293e+00 1.3155e+01 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5027e+01 6.5457e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7467e+03 5.5634e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1759e+01 1.1435e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0773e+02 1.3531e+03 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5809e+03 2.0278e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5393e+00 1.3213e+01 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2814e+01 6.6317e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7529e+03 5.6649e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0918e+01 1.1934e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0788e+02 1.3315e+03 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6053e+03 2.0626e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5649e+00 1.2698e+01 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3760e+01 6.6528e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7772e+03 5.6553e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0819e+01 1.1679e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0759e+02 1.3316e+03 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5447e+03 2.0990e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5992e+00 1.2879e+01 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2760e+01 6.5990e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8688e+03 5.7506e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1960e+01 1.1432e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0760e+02 1.3648e+03 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5116e+03 2.0563e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5653e+00 1.2735e+01 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2374e+01 6.4993e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7696e+03 5.7730e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0786e+01 1.1651e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9951e+02 1.3936e+03 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5660e+03 2.0576e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5650e+00 1.2272e+01 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4007e+01 6.4334e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7554e+03 5.5922e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1189e+01 1.1693e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0095e+02 1.3736e+03 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5567e+03 2.0611e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5266e+00 1.2246e+01 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2054e+01 6.3834e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8266e+03 5.6106e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1543e+01 1.1647e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0871e+02 1.3624e+03 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5975e+03 2.0598e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs new file mode 100644 index 0000000..eb958ea --- /dev/null +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -0,0 +1,1050 @@ +5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-05 -6.3438e-01 +5.0000e+01 1.0000e+00 1.0000e+00 1.4125e-05 -3.0464e-01 +5.0000e+01 1.0000e+00 1.0000e+00 1.9953e-05 -1.3321e-01 +5.0000e+01 1.0000e+00 1.0000e+00 2.8184e-05 -5.8533e-02 +5.0000e+01 1.0000e+00 1.0000e+00 3.9811e-05 -2.5275e-02 +5.0000e+01 1.0000e+00 1.0000e+00 5.6234e-05 -1.1434e-02 +5.0000e+01 1.0000e+00 1.0000e+00 7.9433e-05 -5.0625e-03 +5.0000e+01 1.0000e+00 1.0000e+00 1.1220e-04 -2.1341e-03 +5.0000e+01 1.0000e+00 1.0000e+00 1.5849e-04 -9.6063e-04 +5.0000e+01 1.0000e+00 1.0000e+00 2.2387e-04 -4.1512e-04 +5.0000e+01 1.0000e+00 1.0000e+00 3.1623e-04 -1.8247e-04 +5.0000e+01 1.0000e+00 1.0000e+00 4.4668e-04 -8.1089e-05 +5.0000e+01 1.0000e+00 1.0000e+00 6.3096e-04 -3.3618e-05 +5.0000e+01 1.0000e+00 1.0000e+00 8.9125e-04 -1.4574e-05 +5.0000e+01 1.0000e+00 1.0000e+00 1.2589e-03 -6.2021e-06 +5.0000e+01 1.0000e+00 1.0000e+00 1.7783e-03 -2.7669e-06 +5.0000e+01 1.0000e+00 1.0000e+00 2.5119e-03 -1.1808e-06 +5.0000e+01 1.0000e+00 1.0000e+00 3.5481e-03 -4.9525e-07 +5.0000e+01 1.0000e+00 1.0000e+00 5.0119e-03 -2.1027e-07 +5.0000e+01 1.0000e+00 1.0000e+00 7.0795e-03 -9.0299e-08 +5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-02 -3.6843e-08 +1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5096e-01 +1.5204e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0839e-01 +1.5204e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.2935e-01 +1.5204e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.1889e-02 +1.5204e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0747e-02 +1.5204e+02 1.0000e+00 1.0000e+00 5.6234e-05 -8.4772e-03 +1.5204e+02 1.0000e+00 1.0000e+00 7.9433e-05 -3.5391e-03 +1.5204e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.5505e-03 +1.5204e+02 1.0000e+00 1.0000e+00 1.5849e-04 -7.1284e-04 +1.5204e+02 1.0000e+00 1.0000e+00 2.2387e-04 -3.1729e-04 +1.5204e+02 1.0000e+00 1.0000e+00 3.1623e-04 -1.4209e-04 +1.5204e+02 1.0000e+00 1.0000e+00 4.4668e-04 -6.5506e-05 +1.5204e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8201e-05 +1.5204e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.2796e-05 +1.5204e+02 1.0000e+00 1.0000e+00 1.2589e-03 -5.6105e-06 +1.5204e+02 1.0000e+00 1.0000e+00 1.7783e-03 -2.4139e-06 +1.5204e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.0313e-06 +1.5204e+02 1.0000e+00 1.0000e+00 3.5481e-03 -4.6432e-07 +1.5204e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.9352e-07 +1.5204e+02 1.0000e+00 1.0000e+00 7.0795e-03 -8.5922e-08 +1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.5388e-08 +2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.8085e-01 +2.5408e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1632e-01 +2.5408e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3278e-01 +2.5408e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3346e-02 +2.5408e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9326e-02 +2.5408e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.3610e-03 +2.5408e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.9850e-03 +2.5408e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.2468e-03 +2.5408e+02 1.0000e+00 1.0000e+00 1.5849e-04 -5.2551e-04 +2.5408e+02 1.0000e+00 1.0000e+00 2.2387e-04 -2.4028e-04 +2.5408e+02 1.0000e+00 1.0000e+00 3.1623e-04 -1.1352e-04 +2.5408e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.0988e-05 +2.5408e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.3655e-05 +2.5408e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.0454e-05 +2.5408e+02 1.0000e+00 1.0000e+00 1.2589e-03 -4.8044e-06 +2.5408e+02 1.0000e+00 1.0000e+00 1.7783e-03 -2.1705e-06 +2.5408e+02 1.0000e+00 1.0000e+00 2.5119e-03 -9.2214e-07 +2.5408e+02 1.0000e+00 1.0000e+00 3.5481e-03 -4.0698e-07 +2.5408e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.7869e-07 +2.5408e+02 1.0000e+00 1.0000e+00 7.0795e-03 -7.7726e-08 +2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.4839e-08 +3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5611e-01 +3.5612e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1992e-01 +3.5612e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3110e-01 +3.5612e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.2665e-02 +3.5612e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9798e-02 +3.5612e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.0662e-03 +3.5612e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6938e-03 +3.5612e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.0164e-03 +3.5612e+02 1.0000e+00 1.0000e+00 1.5849e-04 -4.1679e-04 +3.5612e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.8970e-04 +3.5612e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.6009e-05 +3.5612e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.0714e-05 +3.5612e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.9137e-05 +3.5612e+02 1.0000e+00 1.0000e+00 8.9125e-04 -8.8380e-06 +3.5612e+02 1.0000e+00 1.0000e+00 1.2589e-03 -4.0961e-06 +3.5612e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.8610e-06 +3.5612e+02 1.0000e+00 1.0000e+00 2.5119e-03 -8.2748e-07 +3.5612e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.7504e-07 +3.5612e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.6738e-07 +3.5612e+02 1.0000e+00 1.0000e+00 7.0795e-03 -7.4911e-08 +3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.1261e-08 +4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5361e-01 +4.5816e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1557e-01 +4.5816e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3201e-01 +4.5816e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.4185e-02 +4.5816e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9881e-02 +4.5816e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.0491e-03 +4.5816e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5691e-03 +4.5816e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.5032e-04 +4.5816e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.8369e-04 +4.5816e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.6996e-04 +4.5816e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.6689e-05 +4.5816e+02 1.0000e+00 1.0000e+00 4.4668e-04 -3.6732e-05 +4.5816e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.7558e-05 +4.5816e+02 1.0000e+00 1.0000e+00 8.9125e-04 -7.8682e-06 +4.5816e+02 1.0000e+00 1.0000e+00 1.2589e-03 -3.8229e-06 +4.5816e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.7512e-06 +4.5816e+02 1.0000e+00 1.0000e+00 2.5119e-03 -8.0018e-07 +4.5816e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.4641e-07 +4.5816e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.5902e-07 +4.5816e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.9628e-08 +4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.1723e-08 +5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5832e-01 +5.6020e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1362e-01 +5.6020e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3508e-01 +5.6020e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3392e-02 +5.6020e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9764e-02 +5.6020e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.3401e-03 +5.6020e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5806e-03 +5.6020e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.1101e-04 +5.6020e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.5061e-04 +5.6020e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.4254e-04 +5.6020e+02 1.0000e+00 1.0000e+00 3.1623e-04 -6.1162e-05 +5.6020e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.8906e-05 +5.6020e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.3568e-05 +5.6020e+02 1.0000e+00 1.0000e+00 8.9125e-04 -6.5345e-06 +5.6020e+02 1.0000e+00 1.0000e+00 1.2589e-03 -3.1737e-06 +5.6020e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.4794e-06 +5.6020e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.7405e-07 +5.6020e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.1113e-07 +5.6020e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.4756e-07 +5.6020e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.6151e-08 +5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.9477e-08 +6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5759e-01 +6.6224e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1749e-01 +6.6224e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3646e-01 +6.6224e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.4322e-02 +6.6224e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0151e-02 +6.6224e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4566e-03 +6.6224e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5694e-03 +6.6224e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.2787e-04 +6.6224e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.2882e-04 +6.6224e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.3321e-04 +6.6224e+02 1.0000e+00 1.0000e+00 3.1623e-04 -5.5251e-05 +6.6224e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.6496e-05 +6.6224e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.2242e-05 +6.6224e+02 1.0000e+00 1.0000e+00 8.9125e-04 -5.9389e-06 +6.6224e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.8332e-06 +6.6224e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.3508e-06 +6.6224e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.3974e-07 +6.6224e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.0614e-07 +6.6224e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.3457e-07 +6.6224e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.3088e-08 +6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.7431e-08 +7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.8707e-01 +7.6429e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0572e-01 +7.6429e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3269e-01 +7.6429e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3500e-02 +7.6429e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0281e-02 +7.6429e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4037e-03 +7.6429e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5907e-03 +7.6429e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.1116e-04 +7.6429e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.1561e-04 +7.6429e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2101e-04 +7.6429e+02 1.0000e+00 1.0000e+00 3.1623e-04 -5.3158e-05 +7.6429e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.4262e-05 +7.6429e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.1552e-05 +7.6429e+02 1.0000e+00 1.0000e+00 8.9125e-04 -5.4694e-06 +7.6429e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.5863e-06 +7.6429e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.2866e-06 +7.6429e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.0200e-07 +7.6429e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.8530e-07 +7.6429e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.3210e-07 +7.6429e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.9426e-08 +7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.7068e-08 +8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.7629e-01 +8.6633e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0915e-01 +8.6633e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3191e-01 +8.6633e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3251e-02 +8.6633e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0369e-02 +8.6633e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4073e-03 +8.6633e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6701e-03 +8.6633e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.3178e-04 +8.6633e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.2196e-04 +8.6633e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1749e-04 +8.6633e+02 1.0000e+00 1.0000e+00 3.1623e-04 -4.9150e-05 +8.6633e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.1016e-05 +8.6633e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.0118e-05 +8.6633e+02 1.0000e+00 1.0000e+00 8.9125e-04 -4.9216e-06 +8.6633e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.3685e-06 +8.6633e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.1666e-06 +8.6633e+02 1.0000e+00 1.0000e+00 2.5119e-03 -5.7217e-07 +8.6633e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.6638e-07 +8.6633e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.2551e-07 +8.6633e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.7469e-08 +8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.5396e-08 +9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5806e-01 +9.6837e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1949e-01 +9.6837e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3350e-01 +9.6837e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.2736e-02 +9.6837e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0051e-02 +9.6837e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4033e-03 +9.6837e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6894e-03 +9.6837e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.2401e-04 +9.6837e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.1956e-04 +9.6837e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1254e-04 +9.6837e+02 1.0000e+00 1.0000e+00 3.1623e-04 -4.2773e-05 +9.6837e+02 1.0000e+00 1.0000e+00 4.4668e-04 -1.8167e-05 +9.6837e+02 1.0000e+00 1.0000e+00 6.3096e-04 -8.5284e-06 +9.6837e+02 1.0000e+00 1.0000e+00 8.9125e-04 -4.0306e-06 +9.6837e+02 1.0000e+00 1.0000e+00 1.2589e-03 -1.9594e-06 +9.6837e+02 1.0000e+00 1.0000e+00 1.7783e-03 -9.8762e-07 +9.6837e+02 1.0000e+00 1.0000e+00 2.5119e-03 -4.9138e-07 +9.6837e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.3273e-07 +9.6837e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.0803e-07 +9.6837e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.0265e-08 +9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.3421e-08 +1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7618e-01 +1.0704e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0844e-01 +1.0704e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3714e-01 +1.0704e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4876e-02 +1.0704e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0043e-02 +1.0704e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2821e-03 +1.0704e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.5944e-03 +1.0704e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.1621e-04 +1.0704e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2760e-04 +1.0704e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1429e-04 +1.0704e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2323e-05 +1.0704e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.7035e-05 +1.0704e+03 1.0000e+00 1.0000e+00 6.3096e-04 -7.7353e-06 +1.0704e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.7732e-06 +1.0704e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.8404e-06 +1.0704e+03 1.0000e+00 1.0000e+00 1.7783e-03 -9.0759e-07 +1.0704e+03 1.0000e+00 1.0000e+00 2.5119e-03 -4.3331e-07 +1.0704e+03 1.0000e+00 1.0000e+00 3.5481e-03 -2.1164e-07 +1.0704e+03 1.0000e+00 1.0000e+00 5.0119e-03 -1.0025e-07 +1.0704e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.7851e-08 +1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.2382e-08 +1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5833e-01 +1.1724e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1200e-01 +1.1724e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3492e-01 +1.1724e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4828e-02 +1.1724e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0827e-02 +1.1724e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4907e-03 +1.1724e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6091e-03 +1.1724e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5885e-04 +1.1724e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3155e-04 +1.1724e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1237e-04 +1.1724e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2653e-05 +1.1724e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6375e-05 +1.1724e+03 1.0000e+00 1.0000e+00 6.3096e-04 -7.1321e-06 +1.1724e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.4052e-06 +1.1724e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.6975e-06 +1.1724e+03 1.0000e+00 1.0000e+00 1.7783e-03 -8.3089e-07 +1.1724e+03 1.0000e+00 1.0000e+00 2.5119e-03 -4.1084e-07 +1.1724e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.9554e-07 +1.1724e+03 1.0000e+00 1.0000e+00 5.0119e-03 -9.5656e-08 +1.1724e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.6529e-08 +1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.1777e-08 +1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6982e-01 +1.2745e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1990e-01 +1.2745e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3193e-01 +1.2745e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3698e-02 +1.2745e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0820e-02 +1.2745e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4908e-03 +1.2745e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7086e-03 +1.2745e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2763e-04 +1.2745e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3663e-04 +1.2745e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1733e-04 +1.2745e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1074e-05 +1.2745e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6040e-05 +1.2745e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.6075e-06 +1.2745e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.0987e-06 +1.2745e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.5302e-06 +1.2745e+03 1.0000e+00 1.0000e+00 1.7783e-03 -7.6733e-07 +1.2745e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.7921e-07 +1.2745e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.8261e-07 +1.2745e+03 1.0000e+00 1.0000e+00 5.0119e-03 -9.0203e-08 +1.2745e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.2028e-08 +1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.0206e-08 +1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7483e-01 +1.3765e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1284e-01 +1.3765e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3386e-01 +1.3765e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3998e-02 +1.3765e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0688e-02 +1.3765e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3319e-03 +1.3765e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.5994e-03 +1.3765e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2835e-04 +1.3765e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2874e-04 +1.3765e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1504e-04 +1.3765e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1117e-05 +1.3765e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5758e-05 +1.3765e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.8642e-06 +1.3765e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.0695e-06 +1.3765e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.5209e-06 +1.3765e+03 1.0000e+00 1.0000e+00 1.7783e-03 -7.5092e-07 +1.3765e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.8454e-07 +1.3765e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.8867e-07 +1.3765e+03 1.0000e+00 1.0000e+00 5.0119e-03 -8.9019e-08 +1.3765e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.3626e-08 +1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.0625e-08 +1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6151e-01 +1.4786e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1220e-01 +1.4786e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3508e-01 +1.4786e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2755e-02 +1.4786e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0430e-02 +1.4786e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3576e-03 +1.4786e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6483e-03 +1.4786e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.4818e-04 +1.4786e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2308e-04 +1.4786e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1629e-04 +1.4786e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.0596e-05 +1.4786e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5559e-05 +1.4786e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.5374e-06 +1.4786e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.8849e-06 +1.4786e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.3577e-06 +1.4786e+03 1.0000e+00 1.0000e+00 1.7783e-03 -6.9116e-07 +1.4786e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.4027e-07 +1.4786e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.7249e-07 +1.4786e+03 1.0000e+00 1.0000e+00 5.0119e-03 -8.2221e-08 +1.4786e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.9715e-08 +1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.9196e-08 +1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7640e-01 +1.5806e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0585e-01 +1.5806e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3579e-01 +1.5806e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4685e-02 +1.5806e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0485e-02 +1.5806e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4503e-03 +1.5806e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6761e-03 +1.5806e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.4186e-04 +1.5806e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3362e-04 +1.5806e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1767e-04 +1.5806e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2759e-05 +1.5806e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5331e-05 +1.5806e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1181e-06 +1.5806e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.7491e-06 +1.5806e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.2931e-06 +1.5806e+03 1.0000e+00 1.0000e+00 1.7783e-03 -6.1827e-07 +1.5806e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.2395e-07 +1.5806e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.5806e-07 +1.5806e+03 1.0000e+00 1.0000e+00 5.0119e-03 -7.7843e-08 +1.5806e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.7711e-08 +1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.7992e-08 +1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6366e-01 +1.6827e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1908e-01 +1.6827e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3229e-01 +1.6827e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3155e-02 +1.6827e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0292e-02 +1.6827e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4549e-03 +1.6827e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7097e-03 +1.6827e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2879e-04 +1.6827e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3038e-04 +1.6827e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1880e-04 +1.6827e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2850e-05 +1.6827e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5532e-05 +1.6827e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8933e-06 +1.6827e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.5344e-06 +1.6827e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.1932e-06 +1.6827e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.8952e-07 +1.6827e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.8771e-07 +1.6827e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.5009e-07 +1.6827e+03 1.0000e+00 1.0000e+00 5.0119e-03 -7.4123e-08 +1.6827e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.5950e-08 +1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.7334e-08 +1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6647e-01 +1.7847e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1748e-01 +1.7847e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3583e-01 +1.7847e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4891e-02 +1.7847e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0863e-02 +1.7847e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3425e-03 +1.7847e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6386e-03 +1.7847e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5861e-04 +1.7847e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4109e-04 +1.7847e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1980e-04 +1.7847e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2847e-05 +1.7847e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5348e-05 +1.7847e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7239e-06 +1.7847e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3884e-06 +1.7847e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.1050e-06 +1.7847e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.3364e-07 +1.7847e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7031e-07 +1.7847e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3757e-07 +1.7847e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.7072e-08 +1.7847e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.3361e-08 +1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.6452e-08 +1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6579e-01 +1.8867e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1763e-01 +1.8867e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3257e-01 +1.8867e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4047e-02 +1.8867e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0740e-02 +1.8867e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2965e-03 +1.8867e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6999e-03 +1.8867e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2143e-04 +1.8867e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3497e-04 +1.8867e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1917e-04 +1.8867e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1498e-05 +1.8867e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5743e-05 +1.8867e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7329e-06 +1.8867e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4045e-06 +1.8867e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.0737e-06 +1.8867e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2170e-07 +1.8867e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7334e-07 +1.8867e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3288e-07 +1.8867e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.8369e-08 +1.8867e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.2720e-08 +1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.6176e-08 +1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8472e-01 +1.9888e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0689e-01 +1.9888e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3267e-01 +1.9888e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4835e-02 +1.9888e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0745e-02 +1.9888e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2970e-03 +1.9888e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6139e-03 +1.9888e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6933e-04 +1.9888e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4459e-04 +1.9888e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2087e-04 +1.9888e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2564e-05 +1.9888e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5148e-05 +1.9888e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7104e-06 +1.9888e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3433e-06 +1.9888e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.0096e-06 +1.9888e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9253e-07 +1.9888e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4881e-07 +1.9888e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2561e-07 +1.9888e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3649e-08 +1.9888e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.1552e-08 +1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.5635e-08 +2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6712e-01 +2.0908e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0873e-01 +2.0908e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3229e-01 +2.0908e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2731e-02 +2.0908e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9914e-02 +2.0908e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3125e-03 +2.0908e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6286e-03 +2.0908e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6908e-04 +2.0908e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3206e-04 +2.0908e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1827e-04 +2.0908e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2210e-05 +2.0908e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5808e-05 +2.0908e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7392e-06 +2.0908e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2759e-06 +2.0908e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.8253e-07 +2.0908e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5910e-07 +2.0908e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3004e-07 +2.0908e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1172e-07 +2.0908e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.6794e-08 +2.0908e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8846e-08 +2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.4099e-08 +2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8230e-01 +2.1929e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1590e-01 +2.1929e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3328e-01 +2.1929e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2651e-02 +2.1929e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0826e-02 +2.1929e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4700e-03 +2.1929e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7337e-03 +2.1929e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6409e-04 +2.1929e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4064e-04 +2.1929e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2026e-04 +2.1929e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3216e-05 +2.1929e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6000e-05 +2.1929e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.6351e-06 +2.1929e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2402e-06 +2.1929e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4994e-07 +2.1929e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.4776e-07 +2.1929e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2233e-07 +2.1929e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1571e-07 +2.1929e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.8258e-08 +2.1929e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8888e-08 +2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.4525e-08 +2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8123e-01 +2.2949e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0781e-01 +2.2949e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3413e-01 +2.2949e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2941e-02 +2.2949e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0199e-02 +2.2949e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3547e-03 +2.2949e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6954e-03 +2.2949e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2178e-04 +2.2949e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3106e-04 +2.2949e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2127e-04 +2.2949e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4530e-05 +2.2949e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6099e-05 +2.2949e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.6566e-06 +2.2949e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1754e-06 +2.2949e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0956e-07 +2.2949e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.1698e-07 +2.2949e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.0346e-07 +2.2949e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0654e-07 +2.2949e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4412e-08 +2.2949e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6801e-08 +2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.3776e-08 +2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8119e-01 +2.3969e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1300e-01 +2.3969e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3427e-01 +2.3969e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4478e-02 +2.3969e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0753e-02 +2.3969e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3062e-03 +2.3969e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6091e-03 +2.3969e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3677e-04 +2.3969e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4196e-04 +2.3969e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2170e-04 +2.3969e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4836e-05 +2.3969e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6297e-05 +2.3969e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7247e-06 +2.3969e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1685e-06 +2.3969e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7200e-07 +2.3969e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.9430e-07 +2.3969e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.9613e-07 +2.3969e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6079e-08 +2.3969e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0235e-08 +2.3969e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5574e-08 +2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2589e-08 +2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7496e-01 +2.4990e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.2172e-01 +2.4990e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3289e-01 +2.4990e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4070e-02 +2.4990e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0271e-02 +2.4990e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4137e-03 +2.4990e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6051e-03 +2.4990e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3534e-04 +2.4990e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3719e-04 +2.4990e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1976e-04 +2.4990e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3257e-05 +2.4990e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6098e-05 +2.4990e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8806e-06 +2.4990e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2599e-06 +2.4990e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1200e-07 +2.4990e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.9882e-07 +2.4990e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.9092e-07 +2.4990e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.7793e-08 +2.4990e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8378e-08 +2.4990e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4992e-08 +2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2391e-08 +2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8343e-01 +2.6010e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0780e-01 +2.6010e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3292e-01 +2.6010e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2676e-02 +2.6010e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0580e-02 +2.6010e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2921e-03 +2.6010e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6496e-03 +2.6010e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2996e-04 +2.6010e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3831e-04 +2.6010e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1880e-04 +2.6010e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3867e-05 +2.6010e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5712e-05 +2.6010e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0428e-06 +2.6010e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2539e-06 +2.6010e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5034e-07 +2.6010e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.7892e-07 +2.6010e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.7723e-07 +2.6010e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.9322e-08 +2.6010e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.6496e-08 +2.6010e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.3482e-08 +2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2029e-08 +2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5710e-01 +2.7031e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0847e-01 +2.7031e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3232e-01 +2.7031e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4077e-02 +2.7031e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0445e-02 +2.7031e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2928e-03 +2.7031e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6713e-03 +2.7031e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6404e-04 +2.7031e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4438e-04 +2.7031e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1827e-04 +2.7031e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3023e-05 +2.7031e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6173e-05 +2.7031e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.9341e-06 +2.7031e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2484e-06 +2.7031e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6441e-07 +2.7031e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.7345e-07 +2.7031e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.7474e-07 +2.7031e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.7752e-08 +2.7031e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.5786e-08 +2.7031e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.2964e-08 +2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2018e-08 +2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5532e-01 +2.8051e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0785e-01 +2.8051e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3142e-01 +2.8051e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2532e-02 +2.8051e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0771e-02 +2.8051e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5913e-03 +2.8051e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6034e-03 +2.8051e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5448e-04 +2.8051e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4252e-04 +2.8051e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2009e-04 +2.8051e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4441e-05 +2.8051e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6117e-05 +2.8051e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8763e-06 +2.8051e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1714e-06 +2.8051e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6674e-07 +2.8051e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.5928e-07 +2.8051e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.6404e-07 +2.8051e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.3426e-08 +2.8051e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.2668e-08 +2.8051e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1285e-08 +2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0669e-08 +2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5866e-01 +2.9071e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0675e-01 +2.9071e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3216e-01 +2.9071e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4794e-02 +2.9071e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0248e-02 +2.9071e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3945e-03 +2.9071e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6557e-03 +2.9071e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5790e-04 +2.9071e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3749e-04 +2.9071e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1989e-04 +2.9071e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2997e-05 +2.9071e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5853e-05 +2.9071e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0409e-06 +2.9071e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1666e-06 +2.9071e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6626e-07 +2.9071e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6587e-07 +2.9071e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.6272e-07 +2.9071e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.3685e-08 +2.9071e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1837e-08 +2.9071e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1108e-08 +2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0962e-08 +3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6535e-01 +3.0092e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1741e-01 +3.0092e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3423e-01 +3.0092e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.5021e-02 +3.0092e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9988e-02 +3.0092e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3203e-03 +3.0092e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6973e-03 +3.0092e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6968e-04 +3.0092e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3336e-04 +3.0092e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2286e-04 +3.0092e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4868e-05 +3.0092e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6217e-05 +3.0092e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0035e-06 +3.0092e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2013e-06 +3.0092e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.4203e-07 +3.0092e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4184e-07 +3.0092e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.5381e-07 +3.0092e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.6439e-08 +3.0092e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.8697e-08 +3.0092e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9585e-08 +3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0431e-08 +3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5401e-01 +3.1112e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1274e-01 +3.1112e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3714e-01 +3.1112e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4021e-02 +3.1112e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0827e-02 +3.1112e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2840e-03 +3.1112e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6417e-03 +3.1112e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6142e-04 +3.1112e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3572e-04 +3.1112e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2011e-04 +3.1112e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3211e-05 +3.1112e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6054e-05 +3.1112e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0826e-06 +3.1112e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2233e-06 +3.1112e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.3882e-07 +3.1112e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.5407e-07 +3.1112e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.5310e-07 +3.1112e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.4968e-08 +3.1112e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.9597e-08 +3.1112e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9455e-08 +3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0375e-08 +3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6032e-01 +3.2133e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0692e-01 +3.2133e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3593e-01 +3.2133e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4364e-02 +3.2133e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0510e-02 +3.2133e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5352e-03 +3.2133e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6184e-03 +3.2133e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6401e-04 +3.2133e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4269e-04 +3.2133e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2224e-04 +3.2133e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4820e-05 +3.2133e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6655e-05 +3.2133e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1394e-06 +3.2133e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2861e-06 +3.2133e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6702e-07 +3.2133e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3886e-07 +3.2133e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4524e-07 +3.2133e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.0867e-08 +3.2133e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.6546e-08 +3.2133e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8735e-08 +3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.3267e-09 +3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5728e-01 +3.3153e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1038e-01 +3.3153e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3237e-01 +3.3153e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4438e-02 +3.3153e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0370e-02 +3.3153e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.6385e-03 +3.3153e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6227e-03 +3.3153e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2592e-04 +3.3153e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4377e-04 +3.3153e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1862e-04 +3.3153e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5130e-05 +3.3153e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6215e-05 +3.3153e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1307e-06 +3.3153e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2380e-06 +3.3153e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6277e-07 +3.3153e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4288e-07 +3.3153e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4755e-07 +3.3153e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.9957e-08 +3.3153e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.6246e-08 +3.3153e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8387e-08 +3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.5959e-09 +3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8616e-01 +3.4173e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1530e-01 +3.4173e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3290e-01 +3.4173e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4393e-02 +3.4173e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0633e-02 +3.4173e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2661e-03 +3.4173e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6293e-03 +3.4173e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3970e-04 +3.4173e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3756e-04 +3.4173e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2397e-04 +3.4173e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4015e-05 +3.4173e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6118e-05 +3.4173e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1201e-06 +3.4173e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3434e-06 +3.4173e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8221e-07 +3.4173e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3107e-07 +3.4173e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4261e-07 +3.4173e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.8001e-08 +3.4173e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.2425e-08 +3.4173e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.7322e-08 +3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.6184e-09 +3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7746e-01 +3.5194e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1603e-01 +3.5194e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3361e-01 +3.5194e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3030e-02 +3.5194e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0389e-02 +3.5194e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5009e-03 +3.5194e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7029e-03 +3.5194e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3367e-04 +3.5194e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3959e-04 +3.5194e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2187e-04 +3.5194e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4720e-05 +3.5194e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6766e-05 +3.5194e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0287e-06 +3.5194e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2959e-06 +3.5194e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7496e-07 +3.5194e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3960e-07 +3.5194e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4272e-07 +3.5194e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.6421e-08 +3.5194e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.2685e-08 +3.5194e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6971e-08 +3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.8144e-09 +3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7685e-01 +3.6214e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0575e-01 +3.6214e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3182e-01 +3.6214e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3287e-02 +3.6214e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0230e-02 +3.6214e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4368e-03 +3.6214e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7179e-03 +3.6214e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5930e-04 +3.6214e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3251e-04 +3.6214e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2063e-04 +3.6214e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5229e-05 +3.6214e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6188e-05 +3.6214e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0416e-06 +3.6214e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3701e-06 +3.6214e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5117e-07 +3.6214e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3513e-07 +3.6214e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4047e-07 +3.6214e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.1252e-08 +3.6214e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.0497e-08 +3.6214e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5896e-08 +3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.2241e-09 +3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8086e-01 +3.7235e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1971e-01 +3.7235e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3738e-01 +3.7235e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3624e-02 +3.7235e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0200e-02 +3.7235e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3344e-03 +3.7235e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6019e-03 +3.7235e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3836e-04 +3.7235e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4054e-04 +3.7235e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1982e-04 +3.7235e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4800e-05 +3.7235e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6695e-05 +3.7235e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1686e-06 +3.7235e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2934e-06 +3.7235e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5378e-07 +3.7235e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3025e-07 +3.7235e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3784e-07 +3.7235e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.2251e-08 +3.7235e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.1431e-08 +3.7235e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5805e-08 +3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.2474e-09 +3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5499e-01 +3.8255e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0875e-01 +3.8255e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3222e-01 +3.8255e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4074e-02 +3.8255e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9922e-02 +3.8255e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4746e-03 +3.8255e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6762e-03 +3.8255e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5939e-04 +3.8255e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3813e-04 +3.8255e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2277e-04 +3.8255e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3590e-05 +3.8255e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6818e-05 +3.8255e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1915e-06 +3.8255e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3311e-06 +3.8255e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6038e-07 +3.8255e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3460e-07 +3.8255e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3831e-07 +3.8255e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.1970e-08 +3.8255e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.1445e-08 +3.8255e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5310e-08 +3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.0422e-09 +3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6060e-01 +3.9276e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1206e-01 +3.9276e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3502e-01 +3.9276e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.5037e-02 +3.9276e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0235e-02 +3.9276e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.6256e-03 +3.9276e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7237e-03 +3.9276e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6080e-04 +3.9276e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4519e-04 +3.9276e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2080e-04 +3.9276e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4342e-05 +3.9276e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6375e-05 +3.9276e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2189e-06 +3.9276e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3508e-06 +3.9276e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9566e-07 +3.9276e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4343e-07 +3.9276e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3538e-07 +3.9276e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.0271e-08 +3.9276e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.8551e-08 +3.9276e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.4466e-08 +3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.6649e-09 +4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5773e-01 +4.0296e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1550e-01 +4.0296e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3772e-01 +4.0296e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3339e-02 +4.0296e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0002e-02 +4.0296e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2877e-03 +4.0296e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6808e-03 +4.0296e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5407e-04 +4.0296e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4019e-04 +4.0296e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2125e-04 +4.0296e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4208e-05 +4.0296e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6132e-05 +4.0296e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0211e-06 +4.0296e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2768e-06 +4.0296e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9323e-07 +4.0296e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4007e-07 +4.0296e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3612e-07 +4.0296e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.0972e-08 +4.0296e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.9238e-08 +4.0296e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.4348e-08 +4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.6309e-09 +4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7636e-01 +4.1316e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1075e-01 +4.1316e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3613e-01 +4.1316e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3307e-02 +4.1316e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0900e-02 +4.1316e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2962e-03 +4.1316e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6715e-03 +4.1316e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3969e-04 +4.1316e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3621e-04 +4.1316e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1872e-04 +4.1316e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4100e-05 +4.1316e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6804e-05 +4.1316e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2661e-06 +4.1316e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3357e-06 +4.1316e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8501e-07 +4.1316e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4285e-07 +4.1316e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3643e-07 +4.1316e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.7989e-08 +4.1316e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.6521e-08 +4.1316e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3228e-08 +4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.8040e-09 +4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5507e-01 +4.2337e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1210e-01 +4.2337e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3468e-01 +4.2337e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3698e-02 +4.2337e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9969e-02 +4.2337e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2759e-03 +4.2337e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6041e-03 +4.2337e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3849e-04 +4.2337e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3936e-04 +4.2337e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2099e-04 +4.2337e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5118e-05 +4.2337e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6424e-05 +4.2337e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1144e-06 +4.2337e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3513e-06 +4.2337e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9813e-07 +4.2337e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3965e-07 +4.2337e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3063e-07 +4.2337e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.6820e-08 +4.2337e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.6580e-08 +4.2337e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3298e-08 +4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.0627e-09 +4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5446e-01 +4.3357e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1064e-01 +4.3357e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3453e-01 +4.3357e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3133e-02 +4.3357e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0429e-02 +4.3357e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4438e-03 +4.3357e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6063e-03 +4.3357e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3427e-04 +4.3357e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3899e-04 +4.3357e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2101e-04 +4.3357e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3817e-05 +4.3357e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6249e-05 +4.3357e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0329e-06 +4.3357e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3766e-06 +4.3357e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7983e-07 +4.3357e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3732e-07 +4.3357e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3178e-07 +4.3357e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.5970e-08 +4.3357e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.7075e-08 +4.3357e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3538e-08 +4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.0326e-09 +4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7208e-01 +4.4378e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1364e-01 +4.4378e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3663e-01 +4.4378e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4838e-02 +4.4378e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0645e-02 +4.4378e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2840e-03 +4.4378e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6793e-03 +4.4378e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5235e-04 +4.4378e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3263e-04 +4.4378e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2233e-04 +4.4378e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3495e-05 +4.4378e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6639e-05 +4.4378e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0783e-06 +4.4378e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4162e-06 +4.4378e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1726e-07 +4.4378e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4432e-07 +4.4378e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3002e-07 +4.4378e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4337e-08 +4.4378e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.5068e-08 +4.4378e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2271e-08 +4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.4731e-09 +4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6523e-01 +4.5398e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1898e-01 +4.5398e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3121e-01 +4.5398e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3380e-02 +4.5398e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0554e-02 +4.5398e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2783e-03 +4.5398e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6700e-03 +4.5398e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3721e-04 +4.5398e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4500e-04 +4.5398e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1813e-04 +4.5398e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3933e-05 +4.5398e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6162e-05 +4.5398e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1922e-06 +4.5398e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3419e-06 +4.5398e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0066e-07 +4.5398e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4862e-07 +4.5398e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3486e-07 +4.5398e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4497e-08 +4.5398e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.5754e-08 +4.5398e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2326e-08 +4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.2812e-09 +4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7336e-01 +4.6418e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1133e-01 +4.6418e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3594e-01 +4.6418e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3711e-02 +4.6418e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0665e-02 +4.6418e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5403e-03 +4.6418e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6202e-03 +4.6418e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3463e-04 +4.6418e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3587e-04 +4.6418e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2362e-04 +4.6418e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3335e-05 +4.6418e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6202e-05 +4.6418e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1501e-06 +4.6418e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3633e-06 +4.6418e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9352e-07 +4.6418e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4225e-07 +4.6418e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3543e-07 +4.6418e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.5114e-08 +4.6418e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.4880e-08 +4.6418e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2497e-08 +4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.2740e-09 +4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7131e-01 +4.7439e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1069e-01 +4.7439e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3711e-01 +4.7439e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3908e-02 +4.7439e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0002e-02 +4.7439e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2995e-03 +4.7439e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7065e-03 +4.7439e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3787e-04 +4.7439e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4270e-04 +4.7439e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2219e-04 +4.7439e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4352e-05 +4.7439e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6287e-05 +4.7439e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1331e-06 +4.7439e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4063e-06 +4.7439e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0967e-07 +4.7439e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4320e-07 +4.7439e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3324e-07 +4.7439e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4943e-08 +4.7439e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3912e-08 +4.7439e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.1373e-08 +4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-02 -5.8244e-09 +4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6578e-01 +4.8459e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1646e-01 +4.8459e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3518e-01 +4.8459e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3328e-02 +4.8459e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0597e-02 +4.8459e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5904e-03 +4.8459e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6338e-03 +4.8459e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2317e-04 +4.8459e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4131e-04 +4.8459e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1843e-04 +4.8459e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5069e-05 +4.8459e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6414e-05 +4.8459e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.3192e-06 +4.8459e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3316e-06 +4.8459e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0732e-07 +4.8459e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3859e-07 +4.8459e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3042e-07 +4.8459e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.3290e-08 +4.8459e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.4135e-08 +4.8459e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.1439e-08 +4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-02 -5.9533e-09 +4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8241e-01 +4.9480e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0969e-01 +4.9480e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3330e-01 +4.9480e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4328e-02 +4.9480e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0449e-02 +4.9480e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5311e-03 +4.9480e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6674e-03 +4.9480e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2320e-04 +4.9480e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4239e-04 +4.9480e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2250e-04 +4.9480e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4293e-05 +4.9480e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6643e-05 +4.9480e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2044e-06 +4.9480e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3295e-06 +4.9480e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4974e-07 +4.9480e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6552e-07 +4.9480e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4622e-07 +4.9480e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.8893e-08 +4.9480e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3870e-08 +4.9480e+03 1.0000e+00 1.0000e+00 7.0795e-03 -9.6512e-09 +4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-02 -4.0552e-09 +5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7183e-01 +5.0500e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1283e-01 +5.0500e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3654e-01 +5.0500e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3080e-02 +5.0500e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0774e-02 +5.0500e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3896e-03 +5.0500e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6596e-03 +5.0500e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5857e-04 +5.0500e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4197e-04 +5.0500e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2063e-04 +5.0500e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3219e-05 +5.0500e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6599e-05 +5.0500e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1171e-06 +5.0500e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3334e-06 +5.0500e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2565e-07 +5.0500e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6750e-07 +5.0500e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4513e-07 +5.0500e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.9412e-08 +5.0500e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3795e-08 +5.0500e+03 1.0000e+00 1.0000e+00 7.0795e-03 -9.7642e-09 +5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-02 -3.9303e-09 diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index d47c14e..0899663 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -33,7 +33,7 @@ source_location = np.array([0., 0., 30.]) source_current = 1. -source_radius = 1. +source_radius = 5. receiver_location = np.array([10., 0., 30.]) receiver_orientation = "z" # "x", "y" or "z" diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index 973a8fd..f3d09af 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -26,7 +26,7 @@ # # -source_location = np.array([0., 0., 0.]) +source_location = np.array([0., 0., 10.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = np.sqrt(1/np.pi) @@ -34,7 +34,7 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location = np.array([20., 0., 0.]) +receiver_location = np.array([0.1, 0., 10.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -139,8 +139,8 @@ fig, ax = plt.subplots(1,1, figsize = (7, 7)) -ax.loglog(frequencies, np.abs(dpred[:,0]), 'b-', lw=2) -ax.loglog(frequencies, np.abs(dpred[:,1]), 'b--', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,0]), 'b-o', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,1]), 'b--o', lw=2) ax.loglog(frequencies, np.abs(dpred[:,2]), 'r-', lw=2) ax.loglog(frequencies, np.abs(dpred[:,3]), 'r--', lw=2) ax.set_xlabel("Frequency (Hz)") diff --git a/tutorials/plot_1_fdem_inv.py b/tutorials/plot_1_fdem_inv.py index bf80143..98ece64 100644 --- a/tutorials/plot_1_fdem_inv.py +++ b/tutorials/plot_1_fdem_inv.py @@ -76,7 +76,7 @@ source_location = np.array([0., 0., 30.]) source_current = 1. -source_radius = 1. +source_radius = 5. receiver_location = np.array([10., 0., 30.]) receiver_orientation = "z" diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py new file mode 100644 index 0000000..8fc1ab5 --- /dev/null +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -0,0 +1,249 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG import maps +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.EM1DSimulation import get_vertical_discretization_frequency + +plt.rcParams.update({'font.size': 16}) +save_file = True + + +##################################################################### +# topography +# ------------- +# +# +x = np.linspace(50,4950,50) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +##################################################################### +# Create Survey +# ------------- +# +# +x = np.linspace(50,5050,50) +n_sounding = len(x) + +source_locations = np.c_[x, np.zeros(n_sounding), 30 *np.ones(n_sounding)] +source_current = 1. +source_radius = 5. + +receiver_locations = np.c_[x+10., np.zeros(n_sounding), 30 *np.ones(n_sounding)] +receiver_orientation = "z" # "x", "y" or "z" +field_type = "ppm" # "secondary", "total" or "ppm" + +frequencies = np.array([25., 100., 382, 1822, 7970, 35920], dtype=float) + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + +# Sources +# source_list = [ +# em1d.sources.HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +# ] + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + +############################################### +# Defining a Model +# ---------------------- +# + +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +slope_conductivity = 1 + +model = np.ones(mesh.nC) * background_conductivity + +x0 = np.r_[0., 10.] +x1 = np.r_[dx*n_sounding, np.sum(hz)] +x2 = np.r_[dx*n_sounding, 10.] +pts = np.vstack((x0, x1, x2, x0)) +poly_inds = PolygonInd(mesh, pts) +model[poly_inds] = 1./50 + +mapping = maps.ExpMap(mesh) +sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) + +chi = np.zeros_like(sounding_models) + + + +cb = plt.colorbar( + mesh.plotImage(model, grid=False, clim=(1e-2, 1e-1),pcolorOpts={"norm":LogNorm()})[0], + fraction=0.03, pad=0.04 +) + +plt.ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) +plt.gca().set_aspect(1) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, + Solver=PardisoSolver +) + +#simulation.model = sounding_models +# +#ARGS = simulation.input_args(0) +#print("Number of arguments") +#print(len(ARGS)) +#print("Print arguments") +#for ii in range(0, len(ARGS)): +# print(ARGS[ii]) + +dpred = simulation.dpred(sounding_models) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +d = np.reshape(dpred, (n_sounding, 2*len(frequencies))).T + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, n_sounding): + ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) + ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) + +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["real", "imaginary"]) + +# +#d = np.reshape(dpred, (n_sounding, 2*len(frequencies))) +#fig = plt.figure(figsize = (10, 5)) +#ax1 = fig.add_subplot(121) +#ax2 = fig.add_subplot(122) +# +#for ii in range(0, n_sounding): +# ax1.semilogy(x, np.abs(d[:, 0:len(frequencies)]), 'k-', lw=2) +# ax2.semilogy(x, np.abs(d[:, len(frequencies):]), 'k--', lw=2) + + + +if save_file == True: + + noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' + + loc = np.repeat(source_locations, len(frequencies), axis=0) + fvec = np.kron(np.ones(n_sounding), frequencies) + dout = np.c_[dpred[0::2], dpred[1::2]] + + np.savetxt( + fname, + np.c_[loc, fvec, dout], + fmt='%.4e' + ) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py new file mode 100644 index 0000000..b048674 --- /dev/null +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -0,0 +1,229 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG import maps +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.EM1DSimulation import get_vertical_discretization_time + +plt.rcParams.update({'font.size': 16}) +save_file = True + + +##################################################################### +# topography +# ------------- +# +# +x = np.linspace(50,4950,50) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +##################################################################### +# Create Survey +# ------------- +# +# +x = np.linspace(50,5050,50) +n_sounding = len(x) + +source_locations = np.c_[x, np.ones((n_sounding, 2))] +source_current = 1. +source_radius = 5. + +receiver_locations = np.c_[x+10., np.ones((n_sounding, 2))] +receiver_orientation = "z" # "x", "y" or "z" + +times = np.logspace(-5, -2, 21) + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="dbdt" + ) + ] + +# Sources +# source_list = [ +# em1d.sources.TimeDomainHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +# ] + + source_list.append( + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_time(times, sigma_background=0.1, n_layer=40) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + +############################################### +# Defining a Model +# ---------------------- +# + +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +slope_conductivity = 1 + +model = np.ones(mesh.nC) * background_conductivity + +x0 = np.r_[0., 10.] +x1 = np.r_[dx*n_sounding, np.sum(hz)] +x2 = np.r_[dx*n_sounding, 10.] +pts = np.vstack((x0, x1, x2, x0)) +poly_inds = PolygonInd(mesh, pts) +model[poly_inds] = 1./50 + +mapping = maps.ExpMap(mesh) +sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) + +chi = np.zeros_like(sounding_models) + + + +cb = plt.colorbar( + mesh.plotImage(model, grid=False, clim=(1e-2, 1e-1),pcolorOpts={"norm":LogNorm()})[0], + fraction=0.03, pad=0.04 +) + +plt.ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) +plt.gca().set_aspect(1) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( + mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, + Solver=PardisoSolver +) + +#simulation.model = sounding_models +# +#ARGS = simulation.input_args(0) +#print("Number of arguments") +#print(len(ARGS)) +#print("Print arguments") +#for ii in range(0, len(ARGS)): +# print(ARGS[ii]) + +dpred = simulation.dpred(sounding_models) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +d = np.reshape(dpred, (n_sounding, len(times))) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, len(times)): + ax.semilogy(x, np.abs(d[:, ii]), '-', lw=2) + +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dBdt| (T/s)") + + + + + + +if save_file == True: + + noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dtm_stitched_data.obs' + + loc = np.repeat(source_locations, len(times), axis=0) + fvec = np.kron(np.ones(n_sounding), times) + + np.savetxt( + fname, + np.c_[loc, fvec, dpred], + fmt='%.4e' + ) + + + + + + + + + + + + + + + + + + + + + + + From 704af1baad09fc5ca5a3b6828e83cfe112ac4436 Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 5 Jun 2020 18:50:03 -0700 Subject: [PATCH 14/54] Complete fdem and tdem stitched forward and inversion (full testing needed) --- .../examples/Test_global_em1d_inversion.ipynb | 676 ++++-- simpegEM1D/Survey.py | 23 + simpegEM1D/simulation_stitched1d.py | 74 +- simpegEM1D/sources.py | 8 + tutorials/assets/em1dfm_stitched_data.obs | 600 ++--- tutorials/assets/em1dtm_stitched_data.obs | 2100 ++++++++--------- tutorials/plot_2_fdem_fwd_stitched.py | 52 +- tutorials/plot_2_fdem_inv_stitched.py | 532 +++++ tutorials/plot_2_tdem_fwd_stitched.py | 52 +- tutorials/plot_2_tdem_inv_stitched.py | 470 ++++ 10 files changed, 3041 insertions(+), 1546 deletions(-) create mode 100644 tutorials/plot_2_fdem_inv_stitched.py create mode 100644 tutorials/plot_2_tdem_inv_stitched.py diff --git a/notebooks/examples/Test_global_em1d_inversion.ipynb b/notebooks/examples/Test_global_em1d_inversion.ipynb index b1b2816..041f06f 100644 --- a/notebooks/examples/Test_global_em1d_inversion.ipynb +++ b/notebooks/examples/Test_global_em1d_inversion.ipynb @@ -23,6 +23,7 @@ ")\n", "from simpegEM1D.EM1DSimulation_original import get_vertical_discretization_frequency\n", "from pymatsolver import PardisoSolver\n", + "from simpegEM1D.EM1DSimulation_original import *\n", "%pylab inline" ] }, @@ -120,74 +121,16 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[[ 50. 0. 0.]\n", - " [ 150. 0. 0.]\n", - " [ 250. 0. 0.]\n", - " [ 350. 0. 0.]\n", - " [ 450. 0. 0.]\n", - " [ 550. 0. 0.]\n", - " [ 650. 0. 0.]\n", - " [ 750. 0. 0.]\n", - " [ 850. 0. 0.]\n", - " [ 950. 0. 0.]\n", - " [1050. 0. 0.]\n", - " [1150. 0. 0.]\n", - " [1250. 0. 0.]\n", - " [1350. 0. 0.]\n", - " [1450. 0. 0.]\n", - " [1550. 0. 0.]\n", - " [1650. 0. 0.]\n", - " [1750. 0. 0.]\n", - " [1850. 0. 0.]\n", - " [1950. 0. 0.]\n", - " [2050. 0. 0.]\n", - " [2150. 0. 0.]\n", - " [2250. 0. 0.]\n", - " [2350. 0. 0.]\n", - " [2450. 0. 0.]\n", - " [2550. 0. 0.]\n", - " [2650. 0. 0.]\n", - " [2750. 0. 0.]\n", - " [2850. 0. 0.]\n", - " [2950. 0. 0.]\n", - " [3050. 0. 0.]\n", - " [3150. 0. 0.]\n", - " [3250. 0. 0.]\n", - " [3350. 0. 0.]\n", - " [3450. 0. 0.]\n", - " [3550. 0. 0.]\n", - " [3650. 0. 0.]\n", - " [3750. 0. 0.]\n", - " [3850. 0. 0.]\n", - " [3950. 0. 0.]\n", - " [4050. 0. 0.]\n", - " [4150. 0. 0.]\n", - " [4250. 0. 0.]\n", - " [4350. 0. 0.]\n", - " [4450. 0. 0.]\n", - " [4550. 0. 0.]\n", - " [4650. 0. 0.]\n", - " [4750. 0. 0.]\n", - " [4850. 0. 0.]\n", - " [4950. 0. 0.]]\n" - ] - } - ], + "outputs": [], "source": [ "x = mesh.vectorCCx\n", "y = np.zeros_like(x)\n", "z = np.ones_like(x) * 30.\n", "rx_locations = np.c_[x, y, z]\n", "src_locations = np.c_[x, y, z]\n", - "topo = np.c_[x, y, z-30.].astype(float)\n", - "print(topo)" + "topo = np.c_[x, y, z-30.].astype(float)" ] }, { @@ -223,9 +166,7 @@ ")\n", "\n", "m = np.log(sigma_em1d)\n", - "# m = sigma_em1d.copy()\n", - "\n", - "sim.sigma = m" + "# m = sigma_em1d.copy()" ] }, { @@ -237,57 +178,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "Number of arguments\n", - "18\n", - "Print arguments\n", - "[50. 0. 30.]\n", - "[50. 0. 30.]\n", - "[50. 0. 0.]\n", - "[ 2.09938445 2.30487219 2.53047306 2.77815575 3.05008161 3.34862358\n", - " 3.67638684 4.03623155 4.43129787 4.86503328 5.3412227 5.86402155\n", - " 6.43799194 7.06814254 7.75997229 8.51951832 9.35340872 10.2689203\n", - " 11.27404215 12.37754533 13.58905938 14.91915642 16.37944335 17.98266316\n", - " 19.74280611 21.67523184 23.79680338 26.12603434 28.68325041 31.49076677]\n", - "[7.86 7.86 7.86 7.86 7.86 7.86]\n", - "[2.500e+01 1.000e+02 3.820e+02 1.822e+03 7.970e+03 3.592e+04]\n", - "secondary\n", - "ppm\n", - "VMD\n", - "[-3.40119738 -3.40119738 -3.40119738 -3.40119738 -3.40119738 -3.40119738\n", - " -3.40119738 -3.40119738 -2.99573227 -2.99573227 -2.99573227 -2.99573227\n", - " -2.99573227 -2.99573227 -2.99573227 -2.99573227 -3.91202301 -3.91202301\n", - " -3.91202301 -3.91202301 -3.91202301 -3.91202301 -3.91202301 -3.91202301\n", - " -3.91202301 -2.99573227 -2.99573227 -2.99573227 -2.99573227 -2.99573227]\n", - "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0.]\n", - "[0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001\n", - " 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001 0.001\n", - " 0.001 0.001 0.001 0.001 0.001 0.001]\n", - "[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.\n", - " 1. 1. 1. 1. 1. 1.]\n", - "[0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.\n", - " 0. 0. 0. 0. 0. 0.]\n", - "1.0\n", - "forward\n", - "False\n", - "False\n" + "Compute fields\n", + ">> Compute response\n" ] } ], - "source": [ - "ARGS = sim.input_args(0)\n", - "print(\"Number of arguments\")\n", - "print(len(ARGS))\n", - "print(\"Print arguments\")\n", - "for ii in range(0, len(ARGS)):\n", - " print(ARGS[ii])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], "source": [ "# %%time\n", "# dobs = sim.makeSyntheticData(m, std=0.03, force=True)\n", @@ -302,16 +197,77 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, + "execution_count": 10, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "J_sigma matrix shape\n", + "(18000,)\n", + "IJLayers shapes\n", + "(18000,)\n", + "(18000,)\n" + ] + } + ], + "source": [ + "m0 = np.ones(mesh.nC) * np.log(1./20.)\n", + "mapping = maps.ExpMap(mesh)\n", + "sim.sigmaMap = mapping\n", + "sim._Jmatrix_sigma = [\n", + " run_simulation_FD(sim.input_args(i, jac_switch='sensitivity_sigma')) for i in range(sim.n_sounding)\n", + "]\n", + "print(\"J_sigma matrix shape\")\n", + "sim._Jmatrix_sigma = np.hstack(sim._Jmatrix_sigma)\n", + "print(sim._Jmatrix_sigma.shape)\n", + "print(\"IJLayers shapes\")\n", + "for x in sim.IJLayers:\n", + " print(x.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": false + }, "outputs": [], - "source": [] + "source": [ + "J = sim.getJ_sigma(m0)" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Hz/Hp (ppm)')" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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pk1YrVZyc3P56le/ykMPPURPT4+3kuaxxsZGAAoKCnjmmWd44oknzhP6pqYm3njjDd544w1qa2vH/S8kJMRbsYuJiaG9vZ2mpiaampro7u4e99wuXryYO++8k7Vr17Jw4UL0ej12u52NGzfy29/+lj179uDv78+jjz5Kbm4u5eXllJeXU1VVNS5PRkVFERcXN840TePDDz+kvLwcgJycHNavX8/69etZvnw5fn6X1r7SNO2oEGKB72+lpaWNhYWF3Rc65lpws4lzaWlpVGFhYdpE/7spxVkIQVtbGyUlJZSUlHhbbK2trd59kpOTva20wsJC8vLyaG9v9wr38ePHJxRuTdMIDw8nIiKCkJCQcQLrseDgYJKTk0lJSfFaXFzcJbfaLBYLe/fu9baOS0tLAUhISGDt2rXccccdrFmzxls4OZ1O9u3bx+bNm9m8eTP19fXec+n1eubPn8/KlStZuXIly5Yto7e3l88//5wDBw5w4MABKioqvC0d3/uOiYnxVjA83ZTDw8MMDw97W0cJCQlkZmaSmZlJRkaGN8zPz592d+bw8DAOh4Pw8PCLiichxDjxcrlc2O126urqqKio8Fp5eblXQD3odDpvhUmn02Gz2byC5rvPkiVLWLduHevWrSM/P/+81pcn7x06dIijR48SGhpKbm4us2bNIiMjA4PBcFH3NBVut5u6ujpvXj969CglJSX09fVNuL9eryckJITo6GiioqLGhcHBwbhcLhwOB06nE4fDgcPhwOVyeXshPBVIj3AnJCSQlpZGWloaSUlJ02q5CyEoKytj48aNbNq0yStM4eHhPPbYYzz11FMsXLhw0hZxX18fb7/9Nq+//jqHDh3Cz8+Pe++9l6effprBwUH++Mc/smvXLgBuu+02nnrqKRYtWkRjYyM1NTXeSl1NTQ1nzpwhMTGR1NRUr6WkpBAREcH+/fv56KOPOHLkCEIIwsPDWblyJQcOHODMmTNkZGTwwgsv8Mwzz5zX42a326murqa8vJyamhpOnz5NZ2fnOLPb7axcuZL169ezbt06cnJyppv0kzLTxXnr1q3B//qv/5oQERHhqK6uDigoKLC89957Def23G3dujX4f/7P/5kQHh7urK+vNy1evHjozTffbNbr9ZjN5nlf+9rXznz88cehJpPJvXXr1trk5GTnX/7yl9Cf/OQn8Q6HQxceHu58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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "DOBS = d_obs.reshape(( sim.n_sounding, 2, survey.n_frequency))\n", "i_freq=0\n", @@ -328,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -340,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -428,7 +384,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": { "scrolled": false }, @@ -439,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -448,42 +404,467 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">> Use multiprocessing for parallelization\n", + ">> n_cpu: 2\n", + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n", + "Compute fields\n", + ">> Compute response\n", + "model has any nan: 0\n", + "============================ Inexact Gauss Newton ============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 3.43e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 1 1.71e+02 3.02e+03 1.02e+01 4.77e+03 1.01e+03 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 2 8.57e+01 9.78e+02 1.59e+01 2.34e+03 3.72e+02 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 3 4.29e+01 5.26e+02 1.94e+01 1.36e+03 2.06e+02 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 4 2.14e+01 3.48e+02 2.22e+01 8.23e+02 1.17e+02 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 1.1827e+00 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 1.1748e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 1.1748e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 5\n", + "------------------------- DONE! -------------------------\n" + ] + } + ], "source": [ "mopt_l0_ps0, mopt_l2_ps0, pred = run_inversion(option='l2', ps=0, px=2, pz=2, alpha_s=1., alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">> Use multiprocessing for parallelization\n", + ">> n_cpu: 2\n", + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:916: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", + " \"Without a Linear preconditioner, convergence may be slow. \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Compute fields\n", + ">> Compute response\n", + "model has any nan: 0\n", + "============================ Inexact Gauss Newton ============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", + "eps_p: 0.48452322852378993 eps_q: 0.48452322852378993\n", + ">> Fix Jmatrix\n", + ">> Compute J sigma\n", + " 4 2.49e+02 2.96e+02 4.09e-01 3.98e+02 2.08e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 5 3.88e+02 2.69e+02 5.87e-01 4.97e+02 7.65e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 6 3.88e+02 3.11e+02 4.01e-01 4.67e+02 9.75e+00 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 7 3.88e+02 3.05e+02 4.61e-01 4.84e+02 1.33e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 8 3.88e+02 3.17e+02 4.43e-01 4.89e+02 6.18e+00 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 9 3.88e+02 3.22e+02 4.53e-01 4.98e+02 7.70e+00 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 10 3.88e+02 3.29e+02 4.55e-01 5.06e+02 7.53e+00 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 11 3.19e+02 3.36e+02 4.60e-01 4.82e+02 2.26e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 12 3.19e+02 3.28e+02 5.33e-01 4.98e+02 1.46e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 13 2.60e+02 3.40e+02 5.18e-01 4.75e+02 2.29e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 14 2.15e+02 3.32e+02 6.14e-01 4.64e+02 2.02e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 15 1.79e+02 3.30e+02 6.90e-01 4.54e+02 2.01e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 16 1.79e+02 3.28e+02 7.96e-01 4.70e+02 2.15e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 17 1.46e+02 3.39e+02 8.09e-01 4.57e+02 2.43e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 18 1.20e+02 3.37e+02 9.58e-01 4.52e+02 2.99e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 19 9.80e+01 3.38e+02 1.09e+00 4.44e+02 3.63e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 20 8.02e+01 3.38e+02 1.23e+00 4.37e+02 5.04e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 21 6.58e+01 3.37e+02 1.45e+00 4.32e+02 6.74e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 22 5.39e+01 3.38e+02 1.37e+00 4.11e+02 7.78e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 23 4.45e+01 3.33e+02 1.25e+00 3.89e+02 9.40e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 24 4.45e+01 3.29e+02 1.08e+00 3.76e+02 1.02e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 25 4.45e+01 3.25e+02 9.16e-01 3.66e+02 1.17e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 26 4.45e+01 3.23e+02 7.93e-01 3.59e+02 1.09e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 27 4.45e+01 3.21e+02 7.58e-01 3.55e+02 1.09e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 28 4.45e+01 3.18e+02 7.47e-01 3.51e+02 1.23e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 29 4.45e+01 2.99e+02 8.97e-01 3.39e+02 1.03e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 30 4.45e+01 2.91e+02 9.14e-01 3.32e+02 1.26e+02 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 31 4.45e+01 2.87e+02 8.76e-01 3.26e+02 1.19e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 32 4.45e+01 2.81e+02 8.71e-01 3.20e+02 1.63e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 33 4.45e+01 2.75e+02 8.75e-01 3.14e+02 1.76e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + "Reach maximum number of IRLS cycles: 30\n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 3.0590e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 1.7618e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 1.7618e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 34\n", + "------------------------- DONE! -------------------------\n" + ] + } + ], "source": [ "mopt_l0_qx2, mopt_l2_qx2, pred = run_inversion(option='l0', ps=2, px=2, pz=0, alpha_s=1e-2, alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + ">> Use multiprocessing for parallelization\n", + ">> n_cpu: 2\n", + "SimPEG.InvProblem will set Regularization.mref to m0.\n", + "\n", + " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", + " ***Done using same Solver and solverOpts as the problem***\n", + ">> Compute J sigma\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "D:\\Documents\\Repositories\\simpeg\\SimPEG\\directives.py:916: UserWarning: Without a Linear preconditioner, convergence may be slow. Consider adding `Directives.UpdatePreconditioner` to your directives list\n", + " \"Without a Linear preconditioner, convergence may be slow. \"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Compute fields\n", + ">> Compute response\n", + "model has any nan: 0\n", + "============================ Inexact Gauss Newton ============================\n", + " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", + "-----------------------------------------------------------------------------\n", + "x0 has any nan: 0\n", + " 0 4.98e+02 2.50e+04 0.00e+00 2.50e+04 6.16e+03 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 1 4.98e+02 1.53e+03 2.52e-01 1.65e+03 7.68e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 2 4.98e+02 3.87e+02 3.53e-01 5.63e+02 7.87e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Compute J sigma\n", + " 3 2.49e+02 3.42e+02 3.93e-01 4.40e+02 7.40e+01 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + "Reached starting chifact with l2-norm regularization: Start IRLS steps...\n", + "eps_p: 0.4831159414302415 eps_q: 0.4831159414302415\n", + ">> Fix Jmatrix\n", + ">> Compute J sigma\n", + " 4 2.49e+02 2.96e+02 4.90e-01 4.18e+02 1.22e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 5 3.91e+02 2.64e+02 7.86e-01 5.71e+02 3.46e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 6 3.91e+02 3.30e+02 3.66e-01 4.73e+02 9.98e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 7 3.91e+02 3.02e+02 5.24e-01 5.07e+02 1.09e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 8 3.23e+02 3.32e+02 4.09e-01 4.64e+02 7.57e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 9 3.23e+02 3.12e+02 5.56e-01 4.92e+02 6.54e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 10 2.65e+02 3.36e+02 4.61e-01 4.58e+02 6.63e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 11 2.65e+02 3.20e+02 6.13e-01 4.83e+02 5.38e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 12 2.16e+02 3.41e+02 5.25e-01 4.54e+02 6.39e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 13 2.16e+02 3.27e+02 6.92e-01 4.76e+02 5.09e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 14 1.75e+02 3.45e+02 6.07e-01 4.51e+02 6.31e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 15 1.43e+02 3.38e+02 6.91e-01 4.37e+02 1.72e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 16 1.18e+02 3.35e+02 7.53e-01 4.24e+02 3.66e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 17 9.79e+01 3.30e+02 9.71e-01 4.25e+02 3.73e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 18 9.79e+01 3.29e+02 1.10e+00 4.37e+02 3.95e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 19 9.79e+01 3.26e+02 1.29e+00 4.52e+02 6.31e+01 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 20 9.79e+01 3.22e+02 1.35e+00 4.54e+02 1.05e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 21 9.79e+01 3.17e+02 1.41e+00 4.55e+02 1.58e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 22 9.79e+01 3.14e+02 1.36e+00 4.46e+02 2.30e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 23 9.79e+01 3.12e+02 1.23e+00 4.32e+02 2.72e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 24 9.79e+01 3.13e+02 1.07e+00 4.18e+02 3.23e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 25 9.79e+01 3.15e+02 1.02e+00 4.15e+02 4.11e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 26 9.79e+01 3.22e+02 8.80e-01 4.08e+02 3.66e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 27 9.79e+01 3.26e+02 7.70e-01 4.02e+02 3.17e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 28 9.79e+01 3.29e+02 7.07e-01 3.98e+02 3.16e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 29 8.11e+01 3.31e+02 6.18e-01 3.81e+02 1.74e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 30 8.11e+01 3.29e+02 5.83e-01 3.76e+02 1.63e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 31 8.11e+01 3.28e+02 5.56e-01 3.73e+02 2.14e+02 0 Skip BFGS \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 32 8.11e+01 3.28e+02 5.23e-01 3.70e+02 2.53e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + " 33 8.11e+01 3.27e+02 4.99e-01 3.67e+02 3.08e+02 0 \n", + "Compute fields\n", + ">> Compute response\n", + ">> Fix Jmatrix\n", + "Reach maximum number of IRLS cycles: 30\n", + "------------------------- STOP! -------------------------\n", + "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 2.5002e+03\n", + "1 : |xc-x_last| = 1.8464e-01 <= tolX*(1+|x0|) = 1.1702e+01\n", + "0 : |proj(x-g)-x| = 3.0787e+02 <= tolG = 1.0000e-01\n", + "0 : |proj(x-g)-x| = 3.0787e+02 <= 1e3*eps = 1.0000e-02\n", + "0 : maxIter = 40 <= iter = 34\n", + "------------------------- DONE! -------------------------\n" + ] + } + ], "source": [ "mopt_l0, mopt_l2, pred = run_inversion(option='l0', ps=2, px=0, pz=0, alpha_s=1e-2, alpha_x=10., alpha_z=1.)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "DOBS = d_obs.reshape((sim.n_sounding, 2, survey.n_frequency))\n", "DPRED = pred.reshape((sim.n_sounding, 2, survey.n_frequency))\n", @@ -497,7 +878,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -512,9 +893,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "sigmas = [\n", " sigma, \n", @@ -522,7 +916,7 @@ " sigma_est_l0_qx2,\n", " sigma_est_l0_ps0\n", "]\n", - "fig, axs = plt.subplots(4,1, figsize=(5, 10))\n", + "fig, axs = plt.subplots(4,1, figsize=(10, 10))\n", "for ii in range(4):\n", " cb = plt.colorbar(\n", " mesh.plotImage(\n", @@ -541,9 +935,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'sigma_est_l2_ps0' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0msigma_est_l2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0msigma_est_l2_qx2\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0msigma_est_l2_ps0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6\u001b[0m ]\n\u001b[0;32m 7\u001b[0m \u001b[0mfig\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maxs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msubplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m4\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfigsize\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m5\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m10\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mNameError\u001b[0m: name 'sigma_est_l2_ps0' is not defined" + ] + } + ], "source": [ "sigmas = [\n", " sigma, \n", diff --git a/simpegEM1D/Survey.py b/simpegEM1D/Survey.py index a45ff40..742d089 100644 --- a/simpegEM1D/Survey.py +++ b/simpegEM1D/Survey.py @@ -53,6 +53,17 @@ def nD(self): return int(nD) + @property + def vnD_by_sounding(self): + if getattr(self, '_vnD_by_sounding', None) is None: + temp = [] + for src in self.source_list: + temp.append( + np.sum([len(rx.frequencies) for rx in src.receiver_list]) + ) + self._vnD_by_sounding = np.array(temp) + return self._vnD_by_sounding + # @property # def hz_primary(self): # # Assumes HCP only at the moment @@ -90,6 +101,18 @@ def nD(self): nD += len(rx.times) return int(nD) + + + @property + def vnD_by_sounding(self): + if getattr(self, '_vnD_by_sounding', None) is None: + temp = [] + for src in self.source_list: + temp.append( + np.sum([len(rx.times) for rx in src.receiver_list]) + ) + self._vnD_by_sounding = np.array(temp) + return self._vnD_by_sounding @property diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index 05520ec..8367f60 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -279,8 +279,8 @@ def set_ij_n_layer(self, n_layer=None): else: m = n_layer - for i in range(self.survey.n_sounding): - n = self.survey.nD_vec[i] + for i in range(self.n_sounding): + n = self.survey.vnD_by_sounding[i] J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J I_temp = ( np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + @@ -306,7 +306,7 @@ def set_ij_height(self): shift_for_I = 0 m = self.n_layer for i in range(self.n_sounding): - n = self.survey.nD_vec[i] + n = self.survey.vnD[i] J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J I_temp = ( np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + @@ -701,7 +701,7 @@ def read_xyz_data(self, fname): def nD(self): # Need to generalize this for the dual moment data if getattr(self, '_nD', None) is None: - self._nD = self.nD_vec.sum() + self._nD = self.vnD.sum() return self._nD @@ -709,21 +709,21 @@ def nD(self): class GlobalEM1DSurveyFD(GlobalEM1DSurvey, EM1DSurveyFD): - @property - def nD_vec(self): - if getattr(self, '_nD_vec', None) is None: - self._nD_vec = [] - if self.switch_real_imag == "all": - nD_for_sounding = int(self.n_frequency * 2) - elif ( - self.switch_real_imag == "imag" or self.switch_real_imag == "real" - ): - nD_for_sounding = int(self.n_frequency) - - for ii in range(self.n_sounding): - self._nD_vec.append(nD_for_sounding) - self._nD_vec = np.array(self._nD_vec) - return self._nD_vec + # @property + # def nD_vec(self): + # if getattr(self, '_nD_vec', None) is None: + # self._nD_vec = [] + # if self.switch_real_imag == "all": + # nD_for_sounding = int(self.n_frequency * 2) + # elif ( + # self.switch_real_imag == "imag" or self.switch_real_imag == "real" + # ): + # nD_for_sounding = int(self.n_frequency) + + # for ii in range(self.n_sounding): + # self._nD_vec.append(nD_for_sounding) + # self._nD_vec = np.array(self._nD_vec) + # return self._nD_vec # @property # def nD(self): @@ -878,29 +878,29 @@ def set_parameters(self): (self.n_sounding), dtype=float ) - @property - def nD_vec(self): - if getattr(self, '_nD_vec', None) is None: - self._nD_vec = [] - - for ii, moment_type in enumerate(self.moment_type): - if moment_type == 'single': - self._nD_vec.append(self.time[ii].size) - elif moment_type == 'dual': - self._nD_vec.append( - self.time[ii].size+self.time_dual_moment[ii].size - ) - else: - raise Exception("moment_type must be either signle or dual") - self._nD_vec = np.array(self._nD_vec) - return self._nD_vec + # @property + # def nD_vec(self): + # if getattr(self, '_nD_vec', None) is None: + # self._nD_vec = [] + + # for ii, moment_type in enumerate(self.moment_type): + # if moment_type == 'single': + # self._nD_vec.append(self.time[ii].size) + # elif moment_type == 'dual': + # self._nD_vec.append( + # self.time[ii].size+self.time_dual_moment[ii].size + # ) + # else: + # raise Exception("moment_type must be either signle or dual") + # self._nD_vec = np.array(self._nD_vec) + # return self._nD_vec @property def data_index(self): # Need to generalize this for the dual moment data if getattr(self, '_data_index', None) is None: self._data_index = [ - np.arange(self.nD_vec[i_sounding])+np.sum(self.nD_vec[:i_sounding]) for i_sounding in range(self.n_sounding) + np.arange(self.vnD[i_sounding])+np.sum(self.vnD[:i_sounding]) for i_sounding in range(self.n_sounding) ] return self._data_index @@ -908,5 +908,5 @@ def data_index(self): def nD(self): # Need to generalize this for the dual moment data if getattr(self, '_nD', None) is None: - self._nD = self.nD_vec.sum() + self._nD = self.vnD.sum() return self._nD diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index 5aaeb66..c34f767 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -49,6 +49,13 @@ def offset_list(self): # Harmonic Sources ############################################################################# + +class BaseHarmonicSrc(BaseSrc): + + def __init__(self, receiver_list=None, **kwargs): + super(BaseHarmonicSrc, self).__init__(receiver_list=receiver_list, **kwargs) + + class HarmonicMagneticDipoleSource(BaseSrc): orientation = properties.StringChoice( @@ -321,6 +328,7 @@ def nD(self): """ # of data """ + if self.moment_type == "single": return self.n_time else: diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index 679e6c8..1d7bcc4 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.0494e+01 5.7794e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 2.7170e+02 1.1120e+03 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 3.1198e+03 5.6904e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.5654e+01 2.1264e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 5.8691e+02 1.4494e+03 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 2.1886e+03 2.0528e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 9.8763e+00 5.2865e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3598e+02 9.6605e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8561e+03 5.6903e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.7681e+01 1.9529e+02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 5.2199e+02 1.3114e+03 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.3822e+03 2.0548e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 9.2273e+00 4.7527e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.0443e+02 8.3978e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7237e+03 5.7601e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.4377e+01 1.7577e+02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.8457e+02 1.3124e+03 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.4466e+03 2.1178e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.7910e+00 4.6396e+01 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.9094e+02 8.0559e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8009e+03 5.7217e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.0091e+01 1.6752e+02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5634e+02 1.3246e+03 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.4901e+03 2.1111e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.3394e+00 4.4200e+01 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.7991e+02 7.6443e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8239e+03 5.7826e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.9580e+01 1.6020e+02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4074e+02 1.2682e+03 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5458e+03 2.1269e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 8.1411e+00 4.1420e+01 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.6605e+02 7.4699e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7124e+03 5.7265e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.5468e+01 1.5121e+02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3051e+02 1.3323e+03 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5921e+03 2.0440e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 7.8288e+00 3.8074e+01 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.5361e+02 7.0910e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7372e+03 5.6569e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.3554e+01 1.4601e+02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1489e+02 1.2857e+03 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5510e+03 2.0613e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 7.2480e+00 3.5459e+01 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.3931e+02 6.9094e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.7583e+03 5.6889e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.1863e+01 1.4270e+02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0747e+02 1.3113e+03 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5073e+03 2.1114e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 6.8149e+00 3.3430e+01 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.2970e+02 6.6801e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8204e+03 5.7134e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.1441e+01 1.3886e+02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 3.9695e+02 1.2979e+03 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.6056e+03 2.0646e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 6.6751e+00 3.0745e+01 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 1.1954e+02 6.4593e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 2.8462e+03 5.5984e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.0484e+01 1.3063e+02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1136e+02 1.3549e+03 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 2.5374e+03 2.0489e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.5904e+00 3.0704e+01 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.2088e+02 6.4400e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7399e+03 5.5565e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.9848e+01 1.2936e+02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9801e+02 1.3544e+03 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5037e+03 2.1178e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1295e+00 2.7991e+01 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1134e+02 6.4649e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7802e+03 5.6242e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.8733e+01 1.2893e+02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9318e+02 1.3265e+03 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5281e+03 2.1071e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.8414e+00 2.6423e+01 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0371e+02 6.3750e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7941e+03 5.7720e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.7448e+01 1.2308e+02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9325e+02 1.3615e+03 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5630e+03 2.0528e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.7100e+00 2.6491e+01 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0405e+02 6.5443e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7486e+03 5.6672e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6686e+01 1.2471e+02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0077e+02 1.3763e+03 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5575e+03 2.0948e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.5499e+00 2.4318e+01 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.9577e+01 6.5638e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8689e+03 5.7907e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6940e+01 1.2103e+02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8609e+02 1.3605e+03 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6088e+03 2.0831e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.5041e+00 2.3997e+01 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8849e+01 6.5705e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8108e+03 5.7082e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.6987e+01 1.2107e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9916e+02 1.3522e+03 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5494e+03 2.0961e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.1381e+00 2.3019e+01 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.7451e+01 6.5097e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7764e+03 5.5647e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4708e+01 1.1897e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0004e+02 1.3269e+03 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5994e+03 2.0697e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.2052e+00 2.2327e+01 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.3615e+01 6.3706e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8527e+03 5.5706e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4580e+01 1.2382e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8933e+02 1.3819e+03 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5382e+03 2.1166e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.7041e+00 2.1045e+01 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.2293e+01 6.3590e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8585e+03 5.7684e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4919e+01 1.2041e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9614e+02 1.3496e+03 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6039e+03 2.0666e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.8076e+00 2.0542e+01 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.0089e+01 6.4807e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8073e+03 5.5316e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4129e+01 1.2030e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8824e+02 1.3744e+03 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5506e+03 2.0743e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4319e+00 1.9658e+01 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.0075e+01 6.6671e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8126e+03 5.7821e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4413e+01 1.1736e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8777e+02 1.3588e+03 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5571e+03 2.0652e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.5164e+00 1.9098e+01 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.9894e+01 6.6655e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8453e+03 5.5401e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.4559e+01 1.1794e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8777e+02 1.3692e+03 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5305e+03 2.1135e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.1879e+00 1.8270e+01 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.7545e+01 6.5404e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7835e+03 5.7626e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3296e+01 1.2014e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9934e+02 1.3345e+03 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5252e+03 2.0922e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.0457e+00 1.7785e+01 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.8374e+01 6.6638e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7771e+03 5.7807e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2540e+01 1.1918e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9214e+02 1.3718e+03 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5139e+03 2.0499e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.2082e+00 1.7797e+01 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.7158e+01 6.6568e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7544e+03 5.7508e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3481e+01 1.1789e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9424e+02 1.3896e+03 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5849e+03 2.1255e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.7530e+00 1.6980e+01 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5300e+01 6.5205e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8308e+03 5.6930e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2938e+01 1.1816e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0392e+02 1.3757e+03 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5951e+03 2.0347e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8825e+00 1.6939e+01 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.6752e+01 6.3967e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8271e+03 5.7140e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.3415e+01 1.1974e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8856e+02 1.3794e+03 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5423e+03 2.0879e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8283e+00 1.6679e+01 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4710e+01 6.4425e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8281e+03 5.6365e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2393e+01 1.2003e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0523e+02 1.3449e+03 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6116e+03 2.0640e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4967e+00 1.5601e+01 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4127e+01 6.3894e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8424e+03 5.6894e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1713e+01 1.1938e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9360e+02 1.3846e+03 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5600e+03 2.0272e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5249e+00 1.5378e+01 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3626e+01 6.6477e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7666e+03 5.5688e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2659e+01 1.1812e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9128e+02 1.3855e+03 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5884e+03 2.0355e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.6328e+00 1.5448e+01 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2306e+01 6.6812e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8555e+03 5.7808e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2725e+01 1.1544e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0622e+02 1.3761e+03 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5407e+03 2.0437e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2432e+00 1.4696e+01 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3564e+01 6.5670e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7364e+03 5.7268e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1726e+01 1.1654e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0610e+02 1.3357e+03 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5924e+03 2.1230e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3516e+00 1.4588e+01 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2298e+01 6.4422e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7484e+03 5.6772e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2139e+01 1.1567e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9086e+02 1.3680e+03 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5755e+03 2.1001e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3431e+00 1.4834e+01 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5160e+01 6.4386e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8711e+03 5.6499e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1378e+01 1.1805e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9518e+02 1.3939e+03 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5960e+03 2.0922e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3067e+00 1.4460e+01 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1707e+01 6.4549e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8664e+03 5.6532e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1416e+01 1.1881e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0749e+02 1.3416e+03 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5614e+03 2.0442e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0199e+00 1.4255e+01 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2435e+01 6.5679e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7955e+03 5.6672e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1923e+01 1.1474e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9736e+02 1.3924e+03 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5361e+03 2.1104e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0485e+00 1.3685e+01 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1513e+01 6.5823e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8255e+03 5.7887e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1035e+01 1.1424e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9191e+02 1.3842e+03 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5530e+03 2.0386e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0892e+00 1.3982e+01 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2078e+01 6.6103e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8654e+03 5.6319e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.2033e+01 1.1864e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0867e+02 1.3923e+03 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5031e+03 2.0385e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9929e+00 1.3689e+01 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4708e+01 6.4155e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7687e+03 5.6029e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1622e+01 1.1817e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0647e+02 1.3765e+03 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5842e+03 2.1154e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7553e+00 1.3358e+01 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.1750e+01 6.3988e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8491e+03 5.7802e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1933e+01 1.1665e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0461e+02 1.3804e+03 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5347e+03 2.0598e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8373e+00 1.3253e+01 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4175e+01 6.6008e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7775e+03 5.7231e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1444e+01 1.1639e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9848e+02 1.3529e+03 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5327e+03 2.1268e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7339e+00 1.3678e+01 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4472e+01 6.5940e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7411e+03 5.6314e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1531e+01 1.1716e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 1.3599e+03 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5113e+03 2.1143e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7315e+00 1.3700e+01 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4426e+01 6.6188e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7380e+03 5.7594e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1426e+01 1.1424e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0252e+02 1.3347e+03 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5693e+03 2.0859e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5293e+00 1.3155e+01 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.5027e+01 6.5457e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7467e+03 5.5634e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1759e+01 1.1435e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0773e+02 1.3531e+03 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5809e+03 2.0278e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5393e+00 1.3213e+01 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2814e+01 6.6317e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7529e+03 5.6649e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0918e+01 1.1934e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0788e+02 1.3315e+03 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.6053e+03 2.0626e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5649e+00 1.2698e+01 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.3760e+01 6.6528e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7772e+03 5.6553e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0819e+01 1.1679e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0759e+02 1.3316e+03 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5447e+03 2.0990e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5992e+00 1.2879e+01 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2760e+01 6.5990e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8688e+03 5.7506e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1960e+01 1.1432e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0760e+02 1.3648e+03 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5116e+03 2.0563e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5653e+00 1.2735e+01 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2374e+01 6.4993e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7696e+03 5.7730e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.0786e+01 1.1651e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9951e+02 1.3936e+03 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5660e+03 2.0576e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5650e+00 1.2272e+01 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.4007e+01 6.4334e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.7554e+03 5.5922e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1189e+01 1.1693e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0095e+02 1.3736e+03 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5567e+03 2.0611e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5266e+00 1.2246e+01 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2054e+01 6.3834e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 2.8266e+03 5.6106e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 3.1543e+01 1.1647e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0871e+02 1.3624e+03 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.5975e+03 2.0598e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.3012e+01 6.7463e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 2.1576e+02 4.7701e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.2404e+03 3.6018e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 4.9305e+01 1.3995e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.8866e+02 5.7869e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5061e+03 2.1432e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.3076e+01 6.8127e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2876e+02 5.0693e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2549e+03 3.4573e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.9864e+01 1.3710e+02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6788e+02 5.8596e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5692e+03 2.1636e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.2342e+01 6.6388e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.1019e+02 4.9109e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2889e+03 3.5716e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.8954e+01 1.4234e+02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6868e+02 5.9486e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5206e+03 2.1387e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4947e+01 7.5491e+01 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2790e+02 4.8776e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2813e+03 3.4160e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5489e+01 1.4466e+02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6982e+02 6.0764e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5012e+03 2.3387e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4193e+01 7.4728e+01 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3134e+02 4.6685e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3021e+03 3.3100e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.2864e+01 1.4398e+02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6267e+02 6.3182e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5403e+03 2.2703e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4415e+01 7.9282e+01 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2697e+02 4.7835e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3551e+03 3.5343e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5080e+01 1.4334e+02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5783e+02 5.7616e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6040e+03 2.2859e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5128e+01 7.7276e+01 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3025e+02 4.7961e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3492e+03 3.3762e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.4557e+01 1.4665e+02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.8237e+02 6.0181e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5368e+03 2.2052e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4463e+01 7.8678e+01 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2812e+02 4.9378e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2513e+03 3.3235e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.1343e+01 1.4344e+02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5849e+02 5.9443e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.4647e+03 2.1849e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5087e+01 7.4468e+01 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2496e+02 4.7993e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3490e+03 3.5434e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5174e+01 1.4342e+02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6442e+02 5.9724e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.4862e+03 2.1513e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6507e+01 8.2777e+01 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3224e+02 4.9433e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3411e+03 3.6207e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.6529e+01 1.4043e+02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5940e+02 6.2655e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5714e+03 2.1557e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6570e+01 8.8690e+01 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3920e+02 4.7482e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2536e+03 3.4212e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.5965e+01 1.4995e+02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6502e+02 6.2301e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5426e+03 2.2380e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7565e+01 8.6073e+01 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4280e+02 4.7965e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3231e+03 3.3852e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7008e+01 1.4158e+02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6835e+02 6.1898e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5981e+03 2.1731e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6449e+01 8.9891e+01 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4087e+02 4.8362e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3098e+03 3.4446e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.5339e+01 1.4780e+02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.7015e+02 6.2895e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5677e+03 2.2693e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7291e+01 8.8456e+01 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3086e+02 4.7462e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3054e+03 3.3616e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7383e+01 1.4931e+02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.7447e+02 6.2142e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5836e+03 2.1891e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6469e+01 8.9632e+01 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3432e+02 4.9330e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2936e+03 3.3953e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.6470e+01 1.3936e+02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6187e+02 6.2712e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4923e+03 2.1663e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6992e+01 8.8111e+01 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2422e+02 4.9933e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3392e+03 3.6232e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7651e+01 1.5184e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6574e+02 5.8554e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5953e+03 2.2056e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0210e+01 9.4898e+01 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3519e+02 4.6537e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2916e+03 3.3273e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7461e+01 1.4307e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6596e+02 6.0108e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5044e+03 2.2925e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9083e+01 9.1859e+01 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3501e+02 4.7288e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3408e+03 3.3614e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7815e+01 1.4586e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6191e+02 5.9662e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4768e+03 2.2741e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9006e+01 8.9831e+01 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3479e+02 4.5772e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2668e+03 3.4436e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.8091e+01 1.5168e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6291e+02 6.1754e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5204e+03 2.1857e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0189e+01 9.2292e+01 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3864e+02 4.7126e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2914e+03 3.4940e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2333e+01 1.4961e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5291e+02 6.2833e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5501e+03 2.3180e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9759e+01 9.5226e+01 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2559e+02 4.9144e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3344e+03 3.5553e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0395e+01 1.4128e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5664e+02 5.9024e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5021e+03 2.1411e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9453e+01 9.2531e+01 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2557e+02 4.9168e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3597e+03 3.5291e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7704e+01 1.5193e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6069e+02 6.1357e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4835e+03 2.2802e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9539e+01 9.4396e+01 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2896e+02 4.9196e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2537e+03 3.3422e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.8638e+01 1.4725e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5045e+02 5.9138e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5117e+03 2.2929e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9288e+01 9.3859e+01 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3621e+02 4.9828e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2613e+03 3.4030e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1986e+01 1.4808e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6276e+02 5.7837e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5379e+03 2.3355e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2548e+01 9.9755e+01 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2626e+02 4.7558e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3094e+03 3.5558e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.9012e+01 1.4621e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6497e+02 5.9080e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6002e+03 2.1951e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1538e+01 9.7889e+01 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2695e+02 4.8784e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2670e+03 3.4175e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1380e+01 1.4605e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6225e+02 6.2514e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5280e+03 2.1896e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2250e+01 9.8301e+01 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4034e+02 4.7050e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3217e+03 3.4159e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1523e+01 1.4556e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5559e+02 5.8497e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5954e+03 2.1537e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0743e+01 1.0068e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4145e+02 4.5902e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2912e+03 3.4019e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3408e+01 1.4430e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6458e+02 5.8805e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5722e+03 2.1857e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0965e+01 9.6642e+01 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3864e+02 4.7035e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2592e+03 3.5616e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1363e+01 1.3777e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5971e+02 6.0275e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5456e+03 2.2041e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0986e+01 1.0146e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3198e+02 4.8709e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2465e+03 3.5761e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0884e+01 1.4896e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5596e+02 6.2336e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5097e+03 2.3079e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1903e+01 9.9147e+01 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3129e+02 4.9232e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3217e+03 3.4725e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4154e+01 1.3753e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5402e+02 6.1763e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5271e+03 2.1952e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2159e+01 9.7323e+01 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3276e+02 4.6237e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2377e+03 3.5738e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2030e+01 1.4130e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5591e+02 5.8127e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5328e+03 2.3021e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2077e+01 1.0148e+02 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2460e+02 4.6236e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3429e+03 3.5412e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0454e+01 1.5107e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6437e+02 6.1804e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5063e+03 2.3044e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3148e+01 1.0338e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2312e+02 4.8769e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3089e+03 3.4037e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3732e+01 1.4136e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5679e+02 5.7816e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5055e+03 2.1474e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4787e+01 1.0365e+02 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2857e+02 4.9782e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2819e+03 3.4135e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3315e+01 1.4827e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6355e+02 6.2321e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5645e+03 2.2694e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3402e+01 1.0284e+02 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3554e+02 4.8648e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2415e+03 3.4159e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2831e+01 1.4419e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5996e+02 6.0537e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4811e+03 2.2135e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4043e+01 9.7731e+01 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2671e+02 4.6273e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3529e+03 3.5749e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3144e+01 1.3972e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6263e+02 5.8411e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5825e+03 2.3061e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2881e+01 1.0094e+02 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2310e+02 4.9931e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2978e+03 3.4051e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2563e+01 1.4828e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5097e+02 6.1712e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5744e+03 2.1841e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3847e+01 1.0102e+02 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2916e+02 4.6978e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2436e+03 3.6283e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.5193e+01 1.3948e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5517e+02 5.8525e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5053e+03 2.2406e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2886e+01 9.5916e+01 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2830e+02 4.9088e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2671e+03 3.3743e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1530e+01 1.4662e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5934e+02 6.0380e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4678e+03 2.3207e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3988e+01 9.6768e+01 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3150e+02 4.7845e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2688e+03 3.3197e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1155e+01 1.3743e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5623e+02 6.1923e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5785e+03 2.3226e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3482e+01 1.0422e+02 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2152e+02 4.6027e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3302e+03 3.4628e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3916e+01 1.3890e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5582e+02 6.1248e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5395e+03 2.1553e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6597e+01 1.0096e+02 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3402e+02 4.7106e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2451e+03 3.4933e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3421e+01 1.3493e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.4856e+02 6.0391e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5604e+03 2.3337e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6391e+01 1.0438e+02 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3327e+02 4.7918e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2539e+03 3.5167e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4969e+01 1.4450e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5907e+02 5.8501e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4638e+03 2.2736e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4784e+01 1.0281e+02 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3143e+02 4.9261e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2691e+03 3.3992e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0901e+01 1.4627e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6556e+02 6.0809e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5346e+03 2.2404e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5557e+01 1.0002e+02 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3984e+02 4.7619e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3088e+03 3.3099e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1979e+01 1.4542e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5196e+02 6.1605e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5113e+03 2.3144e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5343e+01 1.0304e+02 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4195e+02 4.9710e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3353e+03 3.3140e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4196e+01 1.4488e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.4573e+02 5.9732e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4606e+03 2.3088e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4787e+01 1.0107e+02 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3487e+02 4.9190e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3403e+03 3.6198e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3880e+01 1.4354e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6397e+02 5.8520e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5529e+03 2.3105e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6350e+01 9.7237e+01 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3835e+02 4.6717e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2617e+03 3.4737e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4726e+01 1.4390e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6575e+02 5.8444e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4668e+03 2.3307e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4567e+01 1.0243e+02 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3649e+02 4.6974e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2855e+03 3.5426e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3710e+01 1.4099e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5936e+02 6.3155e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4820e+03 2.2434e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index eb958ea..e09e99b 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-05 -6.3438e-01 -5.0000e+01 1.0000e+00 1.0000e+00 1.4125e-05 -3.0464e-01 -5.0000e+01 1.0000e+00 1.0000e+00 1.9953e-05 -1.3321e-01 -5.0000e+01 1.0000e+00 1.0000e+00 2.8184e-05 -5.8533e-02 -5.0000e+01 1.0000e+00 1.0000e+00 3.9811e-05 -2.5275e-02 -5.0000e+01 1.0000e+00 1.0000e+00 5.6234e-05 -1.1434e-02 -5.0000e+01 1.0000e+00 1.0000e+00 7.9433e-05 -5.0625e-03 -5.0000e+01 1.0000e+00 1.0000e+00 1.1220e-04 -2.1341e-03 -5.0000e+01 1.0000e+00 1.0000e+00 1.5849e-04 -9.6063e-04 -5.0000e+01 1.0000e+00 1.0000e+00 2.2387e-04 -4.1512e-04 -5.0000e+01 1.0000e+00 1.0000e+00 3.1623e-04 -1.8247e-04 -5.0000e+01 1.0000e+00 1.0000e+00 4.4668e-04 -8.1089e-05 -5.0000e+01 1.0000e+00 1.0000e+00 6.3096e-04 -3.3618e-05 -5.0000e+01 1.0000e+00 1.0000e+00 8.9125e-04 -1.4574e-05 -5.0000e+01 1.0000e+00 1.0000e+00 1.2589e-03 -6.2021e-06 -5.0000e+01 1.0000e+00 1.0000e+00 1.7783e-03 -2.7669e-06 -5.0000e+01 1.0000e+00 1.0000e+00 2.5119e-03 -1.1808e-06 -5.0000e+01 1.0000e+00 1.0000e+00 3.5481e-03 -4.9525e-07 -5.0000e+01 1.0000e+00 1.0000e+00 5.0119e-03 -2.1027e-07 -5.0000e+01 1.0000e+00 1.0000e+00 7.0795e-03 -9.0299e-08 -5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-02 -3.6843e-08 -1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5096e-01 -1.5204e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0839e-01 -1.5204e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.2935e-01 -1.5204e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.1889e-02 -1.5204e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0747e-02 -1.5204e+02 1.0000e+00 1.0000e+00 5.6234e-05 -8.4772e-03 -1.5204e+02 1.0000e+00 1.0000e+00 7.9433e-05 -3.5391e-03 -1.5204e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.5505e-03 -1.5204e+02 1.0000e+00 1.0000e+00 1.5849e-04 -7.1284e-04 -1.5204e+02 1.0000e+00 1.0000e+00 2.2387e-04 -3.1729e-04 -1.5204e+02 1.0000e+00 1.0000e+00 3.1623e-04 -1.4209e-04 -1.5204e+02 1.0000e+00 1.0000e+00 4.4668e-04 -6.5506e-05 -1.5204e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8201e-05 -1.5204e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.2796e-05 -1.5204e+02 1.0000e+00 1.0000e+00 1.2589e-03 -5.6105e-06 -1.5204e+02 1.0000e+00 1.0000e+00 1.7783e-03 -2.4139e-06 -1.5204e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.0313e-06 -1.5204e+02 1.0000e+00 1.0000e+00 3.5481e-03 -4.6432e-07 -1.5204e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.9352e-07 -1.5204e+02 1.0000e+00 1.0000e+00 7.0795e-03 -8.5922e-08 -1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.5388e-08 -2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.8085e-01 -2.5408e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1632e-01 -2.5408e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3278e-01 -2.5408e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3346e-02 -2.5408e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9326e-02 -2.5408e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.3610e-03 -2.5408e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.9850e-03 -2.5408e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.2468e-03 -2.5408e+02 1.0000e+00 1.0000e+00 1.5849e-04 -5.2551e-04 -2.5408e+02 1.0000e+00 1.0000e+00 2.2387e-04 -2.4028e-04 -2.5408e+02 1.0000e+00 1.0000e+00 3.1623e-04 -1.1352e-04 -2.5408e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.0988e-05 -2.5408e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.3655e-05 -2.5408e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.0454e-05 -2.5408e+02 1.0000e+00 1.0000e+00 1.2589e-03 -4.8044e-06 -2.5408e+02 1.0000e+00 1.0000e+00 1.7783e-03 -2.1705e-06 -2.5408e+02 1.0000e+00 1.0000e+00 2.5119e-03 -9.2214e-07 -2.5408e+02 1.0000e+00 1.0000e+00 3.5481e-03 -4.0698e-07 -2.5408e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.7869e-07 -2.5408e+02 1.0000e+00 1.0000e+00 7.0795e-03 -7.7726e-08 -2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.4839e-08 -3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5611e-01 -3.5612e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1992e-01 -3.5612e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3110e-01 -3.5612e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.2665e-02 -3.5612e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9798e-02 -3.5612e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.0662e-03 -3.5612e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6938e-03 -3.5612e+02 1.0000e+00 1.0000e+00 1.1220e-04 -1.0164e-03 -3.5612e+02 1.0000e+00 1.0000e+00 1.5849e-04 -4.1679e-04 -3.5612e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.8970e-04 -3.5612e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.6009e-05 -3.5612e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.0714e-05 -3.5612e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.9137e-05 -3.5612e+02 1.0000e+00 1.0000e+00 8.9125e-04 -8.8380e-06 -3.5612e+02 1.0000e+00 1.0000e+00 1.2589e-03 -4.0961e-06 -3.5612e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.8610e-06 -3.5612e+02 1.0000e+00 1.0000e+00 2.5119e-03 -8.2748e-07 -3.5612e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.7504e-07 -3.5612e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.6738e-07 -3.5612e+02 1.0000e+00 1.0000e+00 7.0795e-03 -7.4911e-08 -3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.1261e-08 -4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5361e-01 -4.5816e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1557e-01 -4.5816e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3201e-01 -4.5816e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.4185e-02 -4.5816e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9881e-02 -4.5816e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.0491e-03 -4.5816e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5691e-03 -4.5816e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.5032e-04 -4.5816e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.8369e-04 -4.5816e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.6996e-04 -4.5816e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.6689e-05 -4.5816e+02 1.0000e+00 1.0000e+00 4.4668e-04 -3.6732e-05 -4.5816e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.7558e-05 -4.5816e+02 1.0000e+00 1.0000e+00 8.9125e-04 -7.8682e-06 -4.5816e+02 1.0000e+00 1.0000e+00 1.2589e-03 -3.8229e-06 -4.5816e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.7512e-06 -4.5816e+02 1.0000e+00 1.0000e+00 2.5119e-03 -8.0018e-07 -4.5816e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.4641e-07 -4.5816e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.5902e-07 -4.5816e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.9628e-08 -4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-02 -3.1723e-08 -5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5832e-01 -5.6020e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1362e-01 -5.6020e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3508e-01 -5.6020e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3392e-02 -5.6020e+02 1.0000e+00 1.0000e+00 3.9811e-05 -1.9764e-02 -5.6020e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.3401e-03 -5.6020e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5806e-03 -5.6020e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.1101e-04 -5.6020e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.5061e-04 -5.6020e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.4254e-04 -5.6020e+02 1.0000e+00 1.0000e+00 3.1623e-04 -6.1162e-05 -5.6020e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.8906e-05 -5.6020e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.3568e-05 -5.6020e+02 1.0000e+00 1.0000e+00 8.9125e-04 -6.5345e-06 -5.6020e+02 1.0000e+00 1.0000e+00 1.2589e-03 -3.1737e-06 -5.6020e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.4794e-06 -5.6020e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.7405e-07 -5.6020e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.1113e-07 -5.6020e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.4756e-07 -5.6020e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.6151e-08 -5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.9477e-08 -6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5759e-01 -6.6224e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1749e-01 -6.6224e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3646e-01 -6.6224e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.4322e-02 -6.6224e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0151e-02 -6.6224e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4566e-03 -6.6224e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5694e-03 -6.6224e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.2787e-04 -6.6224e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.2882e-04 -6.6224e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.3321e-04 -6.6224e+02 1.0000e+00 1.0000e+00 3.1623e-04 -5.5251e-05 -6.6224e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.6496e-05 -6.6224e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.2242e-05 -6.6224e+02 1.0000e+00 1.0000e+00 8.9125e-04 -5.9389e-06 -6.6224e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.8332e-06 -6.6224e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.3508e-06 -6.6224e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.3974e-07 -6.6224e+02 1.0000e+00 1.0000e+00 3.5481e-03 -3.0614e-07 -6.6224e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.3457e-07 -6.6224e+02 1.0000e+00 1.0000e+00 7.0795e-03 -6.3088e-08 -6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.7431e-08 -7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.8707e-01 -7.6429e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0572e-01 -7.6429e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3269e-01 -7.6429e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3500e-02 -7.6429e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0281e-02 -7.6429e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4037e-03 -7.6429e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.5907e-03 -7.6429e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.1116e-04 -7.6429e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.1561e-04 -7.6429e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2101e-04 -7.6429e+02 1.0000e+00 1.0000e+00 3.1623e-04 -5.3158e-05 -7.6429e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.4262e-05 -7.6429e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.1552e-05 -7.6429e+02 1.0000e+00 1.0000e+00 8.9125e-04 -5.4694e-06 -7.6429e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.5863e-06 -7.6429e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.2866e-06 -7.6429e+02 1.0000e+00 1.0000e+00 2.5119e-03 -6.0200e-07 -7.6429e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.8530e-07 -7.6429e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.3210e-07 -7.6429e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.9426e-08 -7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.7068e-08 -8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.7629e-01 -8.6633e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.0915e-01 -8.6633e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3191e-01 -8.6633e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.3251e-02 -8.6633e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0369e-02 -8.6633e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4073e-03 -8.6633e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6701e-03 -8.6633e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.3178e-04 -8.6633e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.2196e-04 -8.6633e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1749e-04 -8.6633e+02 1.0000e+00 1.0000e+00 3.1623e-04 -4.9150e-05 -8.6633e+02 1.0000e+00 1.0000e+00 4.4668e-04 -2.1016e-05 -8.6633e+02 1.0000e+00 1.0000e+00 6.3096e-04 -1.0118e-05 -8.6633e+02 1.0000e+00 1.0000e+00 8.9125e-04 -4.9216e-06 -8.6633e+02 1.0000e+00 1.0000e+00 1.2589e-03 -2.3685e-06 -8.6633e+02 1.0000e+00 1.0000e+00 1.7783e-03 -1.1666e-06 -8.6633e+02 1.0000e+00 1.0000e+00 2.5119e-03 -5.7217e-07 -8.6633e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.6638e-07 -8.6633e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.2551e-07 -8.6633e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.7469e-08 -8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.5396e-08 -9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-05 -6.5806e-01 -9.6837e+02 1.0000e+00 1.0000e+00 1.4125e-05 -3.1949e-01 -9.6837e+02 1.0000e+00 1.0000e+00 1.9953e-05 -1.3350e-01 -9.6837e+02 1.0000e+00 1.0000e+00 2.8184e-05 -5.2736e-02 -9.6837e+02 1.0000e+00 1.0000e+00 3.9811e-05 -2.0051e-02 -9.6837e+02 1.0000e+00 1.0000e+00 5.6234e-05 -7.4033e-03 -9.6837e+02 1.0000e+00 1.0000e+00 7.9433e-05 -2.6894e-03 -9.6837e+02 1.0000e+00 1.0000e+00 1.1220e-04 -9.2401e-04 -9.6837e+02 1.0000e+00 1.0000e+00 1.5849e-04 -3.1956e-04 -9.6837e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1254e-04 -9.6837e+02 1.0000e+00 1.0000e+00 3.1623e-04 -4.2773e-05 -9.6837e+02 1.0000e+00 1.0000e+00 4.4668e-04 -1.8167e-05 -9.6837e+02 1.0000e+00 1.0000e+00 6.3096e-04 -8.5284e-06 -9.6837e+02 1.0000e+00 1.0000e+00 8.9125e-04 -4.0306e-06 -9.6837e+02 1.0000e+00 1.0000e+00 1.2589e-03 -1.9594e-06 -9.6837e+02 1.0000e+00 1.0000e+00 1.7783e-03 -9.8762e-07 -9.6837e+02 1.0000e+00 1.0000e+00 2.5119e-03 -4.9138e-07 -9.6837e+02 1.0000e+00 1.0000e+00 3.5481e-03 -2.3273e-07 -9.6837e+02 1.0000e+00 1.0000e+00 5.0119e-03 -1.0803e-07 -9.6837e+02 1.0000e+00 1.0000e+00 7.0795e-03 -5.0265e-08 -9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-02 -2.3421e-08 -1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7618e-01 -1.0704e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0844e-01 -1.0704e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3714e-01 -1.0704e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4876e-02 -1.0704e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0043e-02 -1.0704e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2821e-03 -1.0704e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.5944e-03 -1.0704e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.1621e-04 -1.0704e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2760e-04 -1.0704e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1429e-04 -1.0704e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2323e-05 -1.0704e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.7035e-05 -1.0704e+03 1.0000e+00 1.0000e+00 6.3096e-04 -7.7353e-06 -1.0704e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.7732e-06 -1.0704e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.8404e-06 -1.0704e+03 1.0000e+00 1.0000e+00 1.7783e-03 -9.0759e-07 -1.0704e+03 1.0000e+00 1.0000e+00 2.5119e-03 -4.3331e-07 -1.0704e+03 1.0000e+00 1.0000e+00 3.5481e-03 -2.1164e-07 -1.0704e+03 1.0000e+00 1.0000e+00 5.0119e-03 -1.0025e-07 -1.0704e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.7851e-08 -1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.2382e-08 -1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5833e-01 -1.1724e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1200e-01 -1.1724e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3492e-01 -1.1724e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4828e-02 -1.1724e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0827e-02 -1.1724e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4907e-03 -1.1724e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6091e-03 -1.1724e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5885e-04 -1.1724e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3155e-04 -1.1724e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1237e-04 -1.1724e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2653e-05 -1.1724e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6375e-05 -1.1724e+03 1.0000e+00 1.0000e+00 6.3096e-04 -7.1321e-06 -1.1724e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.4052e-06 -1.1724e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.6975e-06 -1.1724e+03 1.0000e+00 1.0000e+00 1.7783e-03 -8.3089e-07 -1.1724e+03 1.0000e+00 1.0000e+00 2.5119e-03 -4.1084e-07 -1.1724e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.9554e-07 -1.1724e+03 1.0000e+00 1.0000e+00 5.0119e-03 -9.5656e-08 -1.1724e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.6529e-08 -1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.1777e-08 -1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6982e-01 -1.2745e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1990e-01 -1.2745e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3193e-01 -1.2745e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3698e-02 -1.2745e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0820e-02 -1.2745e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4908e-03 -1.2745e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7086e-03 -1.2745e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2763e-04 -1.2745e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3663e-04 -1.2745e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1733e-04 -1.2745e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1074e-05 -1.2745e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6040e-05 -1.2745e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.6075e-06 -1.2745e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.0987e-06 -1.2745e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.5302e-06 -1.2745e+03 1.0000e+00 1.0000e+00 1.7783e-03 -7.6733e-07 -1.2745e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.7921e-07 -1.2745e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.8261e-07 -1.2745e+03 1.0000e+00 1.0000e+00 5.0119e-03 -9.0203e-08 -1.2745e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.2028e-08 -1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.0206e-08 -1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7483e-01 -1.3765e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1284e-01 -1.3765e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3386e-01 -1.3765e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3998e-02 -1.3765e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0688e-02 -1.3765e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3319e-03 -1.3765e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.5994e-03 -1.3765e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2835e-04 -1.3765e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2874e-04 -1.3765e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1504e-04 -1.3765e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1117e-05 -1.3765e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5758e-05 -1.3765e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.8642e-06 -1.3765e+03 1.0000e+00 1.0000e+00 8.9125e-04 -3.0695e-06 -1.3765e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.5209e-06 -1.3765e+03 1.0000e+00 1.0000e+00 1.7783e-03 -7.5092e-07 -1.3765e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.8454e-07 -1.3765e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.8867e-07 -1.3765e+03 1.0000e+00 1.0000e+00 5.0119e-03 -8.9019e-08 -1.3765e+03 1.0000e+00 1.0000e+00 7.0795e-03 -4.3626e-08 -1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-02 -2.0625e-08 -1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6151e-01 -1.4786e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1220e-01 -1.4786e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3508e-01 -1.4786e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2755e-02 -1.4786e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0430e-02 -1.4786e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3576e-03 -1.4786e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6483e-03 -1.4786e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.4818e-04 -1.4786e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.2308e-04 -1.4786e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1629e-04 -1.4786e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.0596e-05 -1.4786e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5559e-05 -1.4786e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.5374e-06 -1.4786e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.8849e-06 -1.4786e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.3577e-06 -1.4786e+03 1.0000e+00 1.0000e+00 1.7783e-03 -6.9116e-07 -1.4786e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.4027e-07 -1.4786e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.7249e-07 -1.4786e+03 1.0000e+00 1.0000e+00 5.0119e-03 -8.2221e-08 -1.4786e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.9715e-08 -1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.9196e-08 -1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7640e-01 -1.5806e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0585e-01 -1.5806e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3579e-01 -1.5806e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4685e-02 -1.5806e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0485e-02 -1.5806e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4503e-03 -1.5806e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6761e-03 -1.5806e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.4186e-04 -1.5806e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3362e-04 -1.5806e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1767e-04 -1.5806e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2759e-05 -1.5806e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5331e-05 -1.5806e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1181e-06 -1.5806e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.7491e-06 -1.5806e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.2931e-06 -1.5806e+03 1.0000e+00 1.0000e+00 1.7783e-03 -6.1827e-07 -1.5806e+03 1.0000e+00 1.0000e+00 2.5119e-03 -3.2395e-07 -1.5806e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.5806e-07 -1.5806e+03 1.0000e+00 1.0000e+00 5.0119e-03 -7.7843e-08 -1.5806e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.7711e-08 -1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.7992e-08 -1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6366e-01 -1.6827e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1908e-01 -1.6827e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3229e-01 -1.6827e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3155e-02 -1.6827e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0292e-02 -1.6827e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4549e-03 -1.6827e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7097e-03 -1.6827e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2879e-04 -1.6827e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3038e-04 -1.6827e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1880e-04 -1.6827e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2850e-05 -1.6827e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5532e-05 -1.6827e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8933e-06 -1.6827e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.5344e-06 -1.6827e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.1932e-06 -1.6827e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.8952e-07 -1.6827e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.8771e-07 -1.6827e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.5009e-07 -1.6827e+03 1.0000e+00 1.0000e+00 5.0119e-03 -7.4123e-08 -1.6827e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.5950e-08 -1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.7334e-08 -1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6647e-01 -1.7847e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1748e-01 -1.7847e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3583e-01 -1.7847e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4891e-02 -1.7847e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0863e-02 -1.7847e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3425e-03 -1.7847e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6386e-03 -1.7847e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5861e-04 -1.7847e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4109e-04 -1.7847e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1980e-04 -1.7847e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2847e-05 -1.7847e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5348e-05 -1.7847e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7239e-06 -1.7847e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3884e-06 -1.7847e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.1050e-06 -1.7847e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.3364e-07 -1.7847e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7031e-07 -1.7847e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3757e-07 -1.7847e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.7072e-08 -1.7847e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.3361e-08 -1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.6452e-08 -1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6579e-01 -1.8867e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1763e-01 -1.8867e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3257e-01 -1.8867e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4047e-02 -1.8867e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0740e-02 -1.8867e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2965e-03 -1.8867e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6999e-03 -1.8867e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2143e-04 -1.8867e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3497e-04 -1.8867e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1917e-04 -1.8867e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.1498e-05 -1.8867e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5743e-05 -1.8867e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7329e-06 -1.8867e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4045e-06 -1.8867e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.0737e-06 -1.8867e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2170e-07 -1.8867e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7334e-07 -1.8867e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3288e-07 -1.8867e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.8369e-08 -1.8867e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.2720e-08 -1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.6176e-08 -1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8472e-01 -1.9888e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0689e-01 -1.9888e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3267e-01 -1.9888e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4835e-02 -1.9888e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0745e-02 -1.9888e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2970e-03 -1.9888e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6139e-03 -1.9888e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6933e-04 -1.9888e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4459e-04 -1.9888e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2087e-04 -1.9888e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2564e-05 -1.9888e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5148e-05 -1.9888e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7104e-06 -1.9888e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3433e-06 -1.9888e+03 1.0000e+00 1.0000e+00 1.2589e-03 -1.0096e-06 -1.9888e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9253e-07 -1.9888e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4881e-07 -1.9888e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2561e-07 -1.9888e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3649e-08 -1.9888e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.1552e-08 -1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.5635e-08 -2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6712e-01 -2.0908e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0873e-01 -2.0908e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3229e-01 -2.0908e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2731e-02 -2.0908e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9914e-02 -2.0908e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3125e-03 -2.0908e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6286e-03 -2.0908e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6908e-04 -2.0908e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3206e-04 -2.0908e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1827e-04 -2.0908e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2210e-05 -2.0908e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5808e-05 -2.0908e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7392e-06 -2.0908e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2759e-06 -2.0908e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.8253e-07 -2.0908e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5910e-07 -2.0908e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3004e-07 -2.0908e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1172e-07 -2.0908e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.6794e-08 -2.0908e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8846e-08 -2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.4099e-08 -2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8230e-01 -2.1929e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1590e-01 -2.1929e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3328e-01 -2.1929e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2651e-02 -2.1929e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0826e-02 -2.1929e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4700e-03 -2.1929e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7337e-03 -2.1929e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6409e-04 -2.1929e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4064e-04 -2.1929e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2026e-04 -2.1929e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3216e-05 -2.1929e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6000e-05 -2.1929e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.6351e-06 -2.1929e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2402e-06 -2.1929e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4994e-07 -2.1929e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.4776e-07 -2.1929e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2233e-07 -2.1929e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1571e-07 -2.1929e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.8258e-08 -2.1929e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8888e-08 -2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.4525e-08 -2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8123e-01 -2.2949e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0781e-01 -2.2949e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3413e-01 -2.2949e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2941e-02 -2.2949e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0199e-02 -2.2949e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3547e-03 -2.2949e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6954e-03 -2.2949e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2178e-04 -2.2949e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3106e-04 -2.2949e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2127e-04 -2.2949e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4530e-05 -2.2949e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6099e-05 -2.2949e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.6566e-06 -2.2949e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1754e-06 -2.2949e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0956e-07 -2.2949e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.1698e-07 -2.2949e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.0346e-07 -2.2949e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0654e-07 -2.2949e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4412e-08 -2.2949e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6801e-08 -2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.3776e-08 -2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8119e-01 -2.3969e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1300e-01 -2.3969e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3427e-01 -2.3969e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4478e-02 -2.3969e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0753e-02 -2.3969e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3062e-03 -2.3969e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6091e-03 -2.3969e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3677e-04 -2.3969e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4196e-04 -2.3969e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2170e-04 -2.3969e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4836e-05 -2.3969e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6297e-05 -2.3969e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.7247e-06 -2.3969e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1685e-06 -2.3969e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7200e-07 -2.3969e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.9430e-07 -2.3969e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.9613e-07 -2.3969e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6079e-08 -2.3969e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0235e-08 -2.3969e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5574e-08 -2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2589e-08 -2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7496e-01 -2.4990e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.2172e-01 -2.4990e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3289e-01 -2.4990e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4070e-02 -2.4990e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0271e-02 -2.4990e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4137e-03 -2.4990e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6051e-03 -2.4990e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3534e-04 -2.4990e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3719e-04 -2.4990e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1976e-04 -2.4990e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3257e-05 -2.4990e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6098e-05 -2.4990e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8806e-06 -2.4990e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2599e-06 -2.4990e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1200e-07 -2.4990e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.9882e-07 -2.4990e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.9092e-07 -2.4990e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.7793e-08 -2.4990e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8378e-08 -2.4990e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4992e-08 -2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2391e-08 -2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8343e-01 -2.6010e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0780e-01 -2.6010e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3292e-01 -2.6010e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2676e-02 -2.6010e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0580e-02 -2.6010e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2921e-03 -2.6010e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6496e-03 -2.6010e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2996e-04 -2.6010e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3831e-04 -2.6010e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1880e-04 -2.6010e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3867e-05 -2.6010e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5712e-05 -2.6010e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0428e-06 -2.6010e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2539e-06 -2.6010e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5034e-07 -2.6010e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.7892e-07 -2.6010e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.7723e-07 -2.6010e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.9322e-08 -2.6010e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.6496e-08 -2.6010e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.3482e-08 -2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2029e-08 -2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5710e-01 -2.7031e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0847e-01 -2.7031e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3232e-01 -2.7031e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4077e-02 -2.7031e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0445e-02 -2.7031e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2928e-03 -2.7031e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6713e-03 -2.7031e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6404e-04 -2.7031e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4438e-04 -2.7031e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1827e-04 -2.7031e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3023e-05 -2.7031e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6173e-05 -2.7031e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.9341e-06 -2.7031e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2484e-06 -2.7031e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6441e-07 -2.7031e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.7345e-07 -2.7031e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.7474e-07 -2.7031e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.7752e-08 -2.7031e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.5786e-08 -2.7031e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.2964e-08 -2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2018e-08 -2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5532e-01 -2.8051e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0785e-01 -2.8051e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3142e-01 -2.8051e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.2532e-02 -2.8051e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0771e-02 -2.8051e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5913e-03 -2.8051e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6034e-03 -2.8051e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5448e-04 -2.8051e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4252e-04 -2.8051e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2009e-04 -2.8051e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4441e-05 -2.8051e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6117e-05 -2.8051e+03 1.0000e+00 1.0000e+00 6.3096e-04 -5.8763e-06 -2.8051e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1714e-06 -2.8051e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6674e-07 -2.8051e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.5928e-07 -2.8051e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.6404e-07 -2.8051e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.3426e-08 -2.8051e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.2668e-08 -2.8051e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1285e-08 -2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0669e-08 -2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5866e-01 -2.9071e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0675e-01 -2.9071e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3216e-01 -2.9071e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4794e-02 -2.9071e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0248e-02 -2.9071e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3945e-03 -2.9071e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6557e-03 -2.9071e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5790e-04 -2.9071e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3749e-04 -2.9071e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1989e-04 -2.9071e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.2997e-05 -2.9071e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.5853e-05 -2.9071e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0409e-06 -2.9071e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.1666e-06 -2.9071e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6626e-07 -2.9071e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6587e-07 -2.9071e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.6272e-07 -2.9071e+03 1.0000e+00 1.0000e+00 3.5481e-03 -8.3685e-08 -2.9071e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1837e-08 -2.9071e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1108e-08 -2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0962e-08 -3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6535e-01 -3.0092e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1741e-01 -3.0092e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3423e-01 -3.0092e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.5021e-02 -3.0092e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9988e-02 -3.0092e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3203e-03 -3.0092e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6973e-03 -3.0092e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6968e-04 -3.0092e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3336e-04 -3.0092e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2286e-04 -3.0092e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4868e-05 -3.0092e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6217e-05 -3.0092e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0035e-06 -3.0092e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2013e-06 -3.0092e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.4203e-07 -3.0092e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4184e-07 -3.0092e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.5381e-07 -3.0092e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.6439e-08 -3.0092e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.8697e-08 -3.0092e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9585e-08 -3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0431e-08 -3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5401e-01 -3.1112e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1274e-01 -3.1112e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3714e-01 -3.1112e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4021e-02 -3.1112e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0827e-02 -3.1112e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2840e-03 -3.1112e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6417e-03 -3.1112e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6142e-04 -3.1112e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3572e-04 -3.1112e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2011e-04 -3.1112e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3211e-05 -3.1112e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6054e-05 -3.1112e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0826e-06 -3.1112e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2233e-06 -3.1112e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.3882e-07 -3.1112e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.5407e-07 -3.1112e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.5310e-07 -3.1112e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.4968e-08 -3.1112e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.9597e-08 -3.1112e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9455e-08 -3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0375e-08 -3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6032e-01 -3.2133e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0692e-01 -3.2133e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3593e-01 -3.2133e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4364e-02 -3.2133e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0510e-02 -3.2133e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5352e-03 -3.2133e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6184e-03 -3.2133e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6401e-04 -3.2133e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4269e-04 -3.2133e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2224e-04 -3.2133e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4820e-05 -3.2133e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6655e-05 -3.2133e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1394e-06 -3.2133e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2861e-06 -3.2133e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6702e-07 -3.2133e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3886e-07 -3.2133e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4524e-07 -3.2133e+03 1.0000e+00 1.0000e+00 3.5481e-03 -7.0867e-08 -3.2133e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.6546e-08 -3.2133e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8735e-08 -3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.3267e-09 -3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5728e-01 -3.3153e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1038e-01 -3.3153e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3237e-01 -3.3153e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4438e-02 -3.3153e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0370e-02 -3.3153e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.6385e-03 -3.3153e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6227e-03 -3.3153e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2592e-04 -3.3153e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4377e-04 -3.3153e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1862e-04 -3.3153e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5130e-05 -3.3153e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6215e-05 -3.3153e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1307e-06 -3.3153e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2380e-06 -3.3153e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6277e-07 -3.3153e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4288e-07 -3.3153e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4755e-07 -3.3153e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.9957e-08 -3.3153e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.6246e-08 -3.3153e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8387e-08 -3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.5959e-09 -3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8616e-01 -3.4173e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1530e-01 -3.4173e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3290e-01 -3.4173e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4393e-02 -3.4173e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0633e-02 -3.4173e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2661e-03 -3.4173e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6293e-03 -3.4173e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3970e-04 -3.4173e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3756e-04 -3.4173e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2397e-04 -3.4173e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4015e-05 -3.4173e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6118e-05 -3.4173e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1201e-06 -3.4173e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3434e-06 -3.4173e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8221e-07 -3.4173e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3107e-07 -3.4173e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4261e-07 -3.4173e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.8001e-08 -3.4173e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.2425e-08 -3.4173e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.7322e-08 -3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.6184e-09 -3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7746e-01 -3.5194e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1603e-01 -3.5194e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3361e-01 -3.5194e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3030e-02 -3.5194e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0389e-02 -3.5194e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5009e-03 -3.5194e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7029e-03 -3.5194e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3367e-04 -3.5194e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3959e-04 -3.5194e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2187e-04 -3.5194e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4720e-05 -3.5194e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6766e-05 -3.5194e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0287e-06 -3.5194e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2959e-06 -3.5194e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7496e-07 -3.5194e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3960e-07 -3.5194e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4272e-07 -3.5194e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.6421e-08 -3.5194e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.2685e-08 -3.5194e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6971e-08 -3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.8144e-09 -3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7685e-01 -3.6214e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0575e-01 -3.6214e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3182e-01 -3.6214e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3287e-02 -3.6214e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0230e-02 -3.6214e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4368e-03 -3.6214e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7179e-03 -3.6214e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5930e-04 -3.6214e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3251e-04 -3.6214e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2063e-04 -3.6214e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5229e-05 -3.6214e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6188e-05 -3.6214e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0416e-06 -3.6214e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3701e-06 -3.6214e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5117e-07 -3.6214e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3513e-07 -3.6214e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4047e-07 -3.6214e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.1252e-08 -3.6214e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.0497e-08 -3.6214e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5896e-08 -3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.2241e-09 -3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8086e-01 -3.7235e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1971e-01 -3.7235e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3738e-01 -3.7235e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3624e-02 -3.7235e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0200e-02 -3.7235e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3344e-03 -3.7235e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6019e-03 -3.7235e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3836e-04 -3.7235e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4054e-04 -3.7235e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1982e-04 -3.7235e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4800e-05 -3.7235e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6695e-05 -3.7235e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1686e-06 -3.7235e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2934e-06 -3.7235e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5378e-07 -3.7235e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3025e-07 -3.7235e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3784e-07 -3.7235e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.2251e-08 -3.7235e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.1431e-08 -3.7235e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5805e-08 -3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.2474e-09 -3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5499e-01 -3.8255e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0875e-01 -3.8255e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3222e-01 -3.8255e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4074e-02 -3.8255e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9922e-02 -3.8255e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4746e-03 -3.8255e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6762e-03 -3.8255e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5939e-04 -3.8255e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3813e-04 -3.8255e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2277e-04 -3.8255e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3590e-05 -3.8255e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6818e-05 -3.8255e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1915e-06 -3.8255e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3311e-06 -3.8255e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6038e-07 -3.8255e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3460e-07 -3.8255e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3831e-07 -3.8255e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.1970e-08 -3.8255e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.1445e-08 -3.8255e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.5310e-08 -3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.0422e-09 -3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6060e-01 -3.9276e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1206e-01 -3.9276e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3502e-01 -3.9276e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.5037e-02 -3.9276e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0235e-02 -3.9276e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.6256e-03 -3.9276e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7237e-03 -3.9276e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.6080e-04 -3.9276e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4519e-04 -3.9276e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2080e-04 -3.9276e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4342e-05 -3.9276e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6375e-05 -3.9276e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2189e-06 -3.9276e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3508e-06 -3.9276e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9566e-07 -3.9276e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4343e-07 -3.9276e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3538e-07 -3.9276e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.0271e-08 -3.9276e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.8551e-08 -3.9276e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.4466e-08 -3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.6649e-09 -4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5773e-01 -4.0296e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1550e-01 -4.0296e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3772e-01 -4.0296e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3339e-02 -4.0296e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0002e-02 -4.0296e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2877e-03 -4.0296e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6808e-03 -4.0296e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5407e-04 -4.0296e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4019e-04 -4.0296e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2125e-04 -4.0296e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4208e-05 -4.0296e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6132e-05 -4.0296e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0211e-06 -4.0296e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.2768e-06 -4.0296e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9323e-07 -4.0296e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4007e-07 -4.0296e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3612e-07 -4.0296e+03 1.0000e+00 1.0000e+00 3.5481e-03 -6.0972e-08 -4.0296e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.9238e-08 -4.0296e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.4348e-08 -4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.6309e-09 -4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7636e-01 -4.1316e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1075e-01 -4.1316e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3613e-01 -4.1316e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3307e-02 -4.1316e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0900e-02 -4.1316e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2962e-03 -4.1316e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6715e-03 -4.1316e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3969e-04 -4.1316e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3621e-04 -4.1316e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1872e-04 -4.1316e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4100e-05 -4.1316e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6804e-05 -4.1316e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2661e-06 -4.1316e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3357e-06 -4.1316e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8501e-07 -4.1316e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4285e-07 -4.1316e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3643e-07 -4.1316e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.7989e-08 -4.1316e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.6521e-08 -4.1316e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3228e-08 -4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.8040e-09 -4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5507e-01 -4.2337e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1210e-01 -4.2337e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3468e-01 -4.2337e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3698e-02 -4.2337e+03 1.0000e+00 1.0000e+00 3.9811e-05 -1.9969e-02 -4.2337e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2759e-03 -4.2337e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6041e-03 -4.2337e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3849e-04 -4.2337e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3936e-04 -4.2337e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2099e-04 -4.2337e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5118e-05 -4.2337e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6424e-05 -4.2337e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1144e-06 -4.2337e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3513e-06 -4.2337e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9813e-07 -4.2337e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3965e-07 -4.2337e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3063e-07 -4.2337e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.6820e-08 -4.2337e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.6580e-08 -4.2337e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3298e-08 -4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.0627e-09 -4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.5446e-01 -4.3357e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1064e-01 -4.3357e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3453e-01 -4.3357e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3133e-02 -4.3357e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0429e-02 -4.3357e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.4438e-03 -4.3357e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6063e-03 -4.3357e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3427e-04 -4.3357e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3899e-04 -4.3357e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2101e-04 -4.3357e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3817e-05 -4.3357e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6249e-05 -4.3357e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0329e-06 -4.3357e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3766e-06 -4.3357e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7983e-07 -4.3357e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3732e-07 -4.3357e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3178e-07 -4.3357e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.5970e-08 -4.3357e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.7075e-08 -4.3357e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.3538e-08 -4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.0326e-09 -4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7208e-01 -4.4378e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1364e-01 -4.4378e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3663e-01 -4.4378e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4838e-02 -4.4378e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0645e-02 -4.4378e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2840e-03 -4.4378e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6793e-03 -4.4378e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5235e-04 -4.4378e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3263e-04 -4.4378e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2233e-04 -4.4378e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3495e-05 -4.4378e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6639e-05 -4.4378e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.0783e-06 -4.4378e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4162e-06 -4.4378e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1726e-07 -4.4378e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4432e-07 -4.4378e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3002e-07 -4.4378e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4337e-08 -4.4378e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.5068e-08 -4.4378e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2271e-08 -4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.4731e-09 -4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6523e-01 -4.5398e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1898e-01 -4.5398e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3121e-01 -4.5398e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3380e-02 -4.5398e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0554e-02 -4.5398e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2783e-03 -4.5398e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6700e-03 -4.5398e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3721e-04 -4.5398e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4500e-04 -4.5398e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1813e-04 -4.5398e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3933e-05 -4.5398e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6162e-05 -4.5398e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1922e-06 -4.5398e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3419e-06 -4.5398e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0066e-07 -4.5398e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4862e-07 -4.5398e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3486e-07 -4.5398e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4497e-08 -4.5398e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.5754e-08 -4.5398e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2326e-08 -4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.2812e-09 -4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7336e-01 -4.6418e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1133e-01 -4.6418e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3594e-01 -4.6418e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3711e-02 -4.6418e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0665e-02 -4.6418e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5403e-03 -4.6418e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6202e-03 -4.6418e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3463e-04 -4.6418e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.3587e-04 -4.6418e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2362e-04 -4.6418e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3335e-05 -4.6418e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6202e-05 -4.6418e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1501e-06 -4.6418e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3633e-06 -4.6418e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9352e-07 -4.6418e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4225e-07 -4.6418e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3543e-07 -4.6418e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.5114e-08 -4.6418e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.4880e-08 -4.6418e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.2497e-08 -4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.2740e-09 -4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7131e-01 -4.7439e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1069e-01 -4.7439e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3711e-01 -4.7439e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3908e-02 -4.7439e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0002e-02 -4.7439e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.2995e-03 -4.7439e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.7065e-03 -4.7439e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.3787e-04 -4.7439e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4270e-04 -4.7439e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2219e-04 -4.7439e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4352e-05 -4.7439e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6287e-05 -4.7439e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1331e-06 -4.7439e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.4063e-06 -4.7439e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0967e-07 -4.7439e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.4320e-07 -4.7439e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3324e-07 -4.7439e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.4943e-08 -4.7439e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3912e-08 -4.7439e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.1373e-08 -4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-02 -5.8244e-09 -4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.6578e-01 -4.8459e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1646e-01 -4.8459e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3518e-01 -4.8459e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3328e-02 -4.8459e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0597e-02 -4.8459e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5904e-03 -4.8459e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6338e-03 -4.8459e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2317e-04 -4.8459e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4131e-04 -4.8459e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1843e-04 -4.8459e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.5069e-05 -4.8459e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6414e-05 -4.8459e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.3192e-06 -4.8459e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3316e-06 -4.8459e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0732e-07 -4.8459e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.3859e-07 -4.8459e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.3042e-07 -4.8459e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.3290e-08 -4.8459e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.4135e-08 -4.8459e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.1439e-08 -4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-02 -5.9533e-09 -4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.8241e-01 -4.9480e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.0969e-01 -4.9480e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3330e-01 -4.9480e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.4328e-02 -4.9480e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0449e-02 -4.9480e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.5311e-03 -4.9480e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6674e-03 -4.9480e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.2320e-04 -4.9480e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4239e-04 -4.9480e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2250e-04 -4.9480e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.4293e-05 -4.9480e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6643e-05 -4.9480e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.2044e-06 -4.9480e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3295e-06 -4.9480e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4974e-07 -4.9480e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6552e-07 -4.9480e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4622e-07 -4.9480e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.8893e-08 -4.9480e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3870e-08 -4.9480e+03 1.0000e+00 1.0000e+00 7.0795e-03 -9.6512e-09 -4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-02 -4.0552e-09 -5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-05 -6.7183e-01 -5.0500e+03 1.0000e+00 1.0000e+00 1.4125e-05 -3.1283e-01 -5.0500e+03 1.0000e+00 1.0000e+00 1.9953e-05 -1.3654e-01 -5.0500e+03 1.0000e+00 1.0000e+00 2.8184e-05 -5.3080e-02 -5.0500e+03 1.0000e+00 1.0000e+00 3.9811e-05 -2.0774e-02 -5.0500e+03 1.0000e+00 1.0000e+00 5.6234e-05 -7.3896e-03 -5.0500e+03 1.0000e+00 1.0000e+00 7.9433e-05 -2.6596e-03 -5.0500e+03 1.0000e+00 1.0000e+00 1.1220e-04 -9.5857e-04 -5.0500e+03 1.0000e+00 1.0000e+00 1.5849e-04 -3.4197e-04 -5.0500e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2063e-04 -5.0500e+03 1.0000e+00 1.0000e+00 3.1623e-04 -4.3219e-05 -5.0500e+03 1.0000e+00 1.0000e+00 4.4668e-04 -1.6599e-05 -5.0500e+03 1.0000e+00 1.0000e+00 6.3096e-04 -6.1171e-06 -5.0500e+03 1.0000e+00 1.0000e+00 8.9125e-04 -2.3334e-06 -5.0500e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2565e-07 -5.0500e+03 1.0000e+00 1.0000e+00 1.7783e-03 -3.6750e-07 -5.0500e+03 1.0000e+00 1.0000e+00 2.5119e-03 -1.4513e-07 -5.0500e+03 1.0000e+00 1.0000e+00 3.5481e-03 -5.9412e-08 -5.0500e+03 1.0000e+00 1.0000e+00 5.0119e-03 -2.3795e-08 -5.0500e+03 1.0000e+00 1.0000e+00 7.0795e-03 -9.7642e-09 -5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-02 -3.9303e-09 +5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-05 -1.2519e-01 +5.0000e+01 1.0000e+00 1.0000e+00 1.4125e-05 -5.3878e-02 +5.0000e+01 1.0000e+00 1.0000e+00 1.9953e-05 -2.2409e-02 +5.0000e+01 1.0000e+00 1.0000e+00 2.8184e-05 -9.0968e-03 +5.0000e+01 1.0000e+00 1.0000e+00 3.9811e-05 -3.6307e-03 +5.0000e+01 1.0000e+00 1.0000e+00 5.6234e-05 -1.4620e-03 +5.0000e+01 1.0000e+00 1.0000e+00 7.9433e-05 -6.5916e-04 +5.0000e+01 1.0000e+00 1.0000e+00 1.1220e-04 -3.2642e-04 +5.0000e+01 1.0000e+00 1.0000e+00 1.5849e-04 -2.0731e-04 +5.0000e+01 1.0000e+00 1.0000e+00 2.2387e-04 -1.3109e-04 +5.0000e+01 1.0000e+00 1.0000e+00 3.1623e-04 -8.1570e-05 +5.0000e+01 1.0000e+00 1.0000e+00 4.4668e-04 -5.1249e-05 +5.0000e+01 1.0000e+00 1.0000e+00 6.3096e-04 -3.0114e-05 +5.0000e+01 1.0000e+00 1.0000e+00 8.9125e-04 -1.6500e-05 +5.0000e+01 1.0000e+00 1.0000e+00 1.2589e-03 -8.0517e-06 +5.0000e+01 1.0000e+00 1.0000e+00 1.7783e-03 -3.7455e-06 +5.0000e+01 1.0000e+00 1.0000e+00 2.5119e-03 -1.5830e-06 +5.0000e+01 1.0000e+00 1.0000e+00 3.5481e-03 -7.3340e-07 +5.0000e+01 1.0000e+00 1.0000e+00 5.0119e-03 -3.1060e-07 +5.0000e+01 1.0000e+00 1.0000e+00 7.0795e-03 -1.2716e-07 +5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-02 -5.1980e-08 +1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2436e-01 +1.5204e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3254e-02 +1.5204e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2931e-02 +1.5204e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.7630e-03 +1.5204e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.4765e-03 +1.5204e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4897e-03 +1.5204e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.1556e-04 +1.5204e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.5093e-04 +1.5204e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9865e-04 +1.5204e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2999e-04 +1.5204e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.8001e-05 +1.5204e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.9649e-05 +1.5204e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8651e-05 +1.5204e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.5380e-05 +1.5204e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.0752e-06 +1.5204e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.8487e-06 +1.5204e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.5819e-06 +1.5204e+02 1.0000e+00 1.0000e+00 3.5481e-03 -6.9315e-07 +1.5204e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.1450e-07 +1.5204e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.2518e-07 +1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-02 -4.8790e-08 +2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1869e-01 +2.5408e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3905e-02 +2.5408e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1731e-02 +2.5408e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.3648e-03 +2.5408e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7706e-03 +2.5408e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4712e-03 +2.5408e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.0595e-04 +2.5408e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.3154e-04 +2.5408e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0935e-04 +2.5408e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2842e-04 +2.5408e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.2674e-05 +2.5408e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.1094e-05 +2.5408e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1176e-05 +2.5408e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6389e-05 +2.5408e+02 1.0000e+00 1.0000e+00 1.2589e-03 -7.6549e-06 +2.5408e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.6473e-06 +2.5408e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.7276e-06 +2.5408e+02 1.0000e+00 1.0000e+00 3.5481e-03 -7.3231e-07 +2.5408e+02 1.0000e+00 1.0000e+00 5.0119e-03 -2.9806e-07 +2.5408e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.1928e-07 +2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.2039e-08 +3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2404e-01 +3.5612e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3160e-02 +3.5612e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1449e-02 +3.5612e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.3660e-03 +3.5612e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7299e-03 +3.5612e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4977e-03 +3.5612e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.4912e-04 +3.5612e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.5349e-04 +3.5612e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0159e-04 +3.5612e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2861e-04 +3.5612e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.4684e-05 +3.5612e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.0546e-05 +3.5612e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9824e-05 +3.5612e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.5618e-05 +3.5612e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.1917e-06 +3.5612e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.6434e-06 +3.5612e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.6690e-06 +3.5612e+02 1.0000e+00 1.0000e+00 3.5481e-03 -7.0161e-07 +3.5612e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.0172e-07 +3.5612e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.2345e-07 +3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.2883e-08 +4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1918e-01 +4.5816e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.4485e-02 +4.5816e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.3266e-02 +4.5816e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.1998e-03 +4.5816e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.5535e-03 +4.5816e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4544e-03 +4.5816e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.6163e-04 +4.5816e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2649e-04 +4.5816e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.8854e-04 +4.5816e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2149e-04 +4.5816e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.3396e-05 +4.5816e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.8473e-05 +4.5816e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1470e-05 +4.5816e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6949e-05 +4.5816e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.3663e-06 +4.5816e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.3638e-06 +4.5816e+02 1.0000e+00 1.0000e+00 2.5119e-03 -2.0241e-06 +4.5816e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2480e-07 +4.5816e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.3992e-07 +4.5816e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4840e-07 +4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-02 -6.0471e-08 +5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2302e-01 +5.6020e+02 1.0000e+00 1.0000e+00 1.4125e-05 -4.9947e-02 +5.6020e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2242e-02 +5.6020e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.7894e-03 +5.6020e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.6545e-03 +5.6020e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4976e-03 +5.6020e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.4191e-04 +5.6020e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4533e-04 +5.6020e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9781e-04 +5.6020e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2405e-04 +5.6020e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.1571e-05 +5.6020e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.1297e-05 +5.6020e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1607e-05 +5.6020e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6977e-05 +5.6020e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.9245e-06 +5.6020e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.2041e-06 +5.6020e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.8740e-06 +5.6020e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.4887e-07 +5.6020e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.7162e-07 +5.6020e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.3908e-07 +5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.6906e-08 +6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2073e-01 +6.6224e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3443e-02 +6.6224e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1389e-02 +6.6224e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.2560e-03 +6.6224e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.5310e-03 +6.6224e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.3577e-03 +6.6224e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.6995e-04 +6.6224e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4154e-04 +6.6224e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0381e-04 +6.6224e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1901e-04 +6.6224e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.9412e-05 +6.6224e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.2640e-05 +6.6224e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9291e-05 +6.6224e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6510e-05 +6.6224e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.6123e-06 +6.6224e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.0535e-06 +6.6224e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.8710e-06 +6.6224e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2561e-07 +6.6224e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.6638e-07 +6.6224e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.5128e-07 +6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-02 -6.0543e-08 +7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2273e-01 +7.6429e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.2132e-02 +7.6429e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2038e-02 +7.6429e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.1093e-03 +7.6429e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7495e-03 +7.6429e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4514e-03 +7.6429e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.0735e-04 +7.6429e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2811e-04 +7.6429e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0092e-04 +7.6429e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2230e-04 +7.6429e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.1816e-05 +7.6429e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.2514e-05 +7.6429e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.0011e-05 +7.6429e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.7209e-05 +7.6429e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.7788e-06 +7.6429e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.0775e-06 +7.6429e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.9167e-06 +7.6429e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2828e-07 +7.6429e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.7088e-07 +7.6429e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4604e-07 +7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.9407e-08 +8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1720e-01 +8.6633e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3681e-02 +8.6633e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2698e-02 +8.6633e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.6731e-03 +8.6633e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7274e-03 +8.6633e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4760e-03 +8.6633e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.5635e-04 +8.6633e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2807e-04 +8.6633e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9374e-04 +8.6633e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2082e-04 +8.6633e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.0842e-05 +8.6633e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.8413e-05 +8.6633e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9475e-05 +8.6633e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6458e-05 +8.6633e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.4649e-06 +8.6633e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.1999e-06 +8.6633e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.9637e-06 +8.6633e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.9011e-07 +8.6633e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.5241e-07 +8.6633e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4475e-07 +8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.8191e-08 +9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2126e-01 +9.6837e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.2204e-02 +9.6837e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.3197e-02 +9.6837e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.9916e-03 +9.6837e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7437e-03 +9.6837e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.3743e-03 +9.6837e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.5788e-04 +9.6837e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4209e-04 +9.6837e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.8914e-04 +9.6837e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1701e-04 +9.6837e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.3958e-05 +9.6837e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.9038e-05 +9.6837e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8187e-05 +9.6837e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6555e-05 +9.6837e+02 1.0000e+00 1.0000e+00 1.2589e-03 -9.0637e-06 +9.6837e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.4481e-06 +9.6837e+02 1.0000e+00 1.0000e+00 2.5119e-03 -2.1237e-06 +9.6837e+02 1.0000e+00 1.0000e+00 3.5481e-03 -9.8166e-07 +9.6837e+02 1.0000e+00 1.0000e+00 5.0119e-03 -4.2133e-07 +9.6837e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.7171e-07 +9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-02 -7.1340e-08 +1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2076e-01 +1.0704e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3320e-02 +1.0704e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1559e-02 +1.0704e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7619e-03 +1.0704e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4076e-03 +1.0704e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4566e-03 +1.0704e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2579e-04 +1.0704e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3014e-04 +1.0704e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0247e-04 +1.0704e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1718e-04 +1.0704e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8979e-05 +1.0704e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6905e-05 +1.0704e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0534e-05 +1.0704e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7748e-05 +1.0704e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0034e-06 +1.0704e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6306e-06 +1.0704e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2021e-06 +1.0704e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.4543e-07 +1.0704e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1983e-07 +1.0704e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6350e-07 +1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.4874e-08 +1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1304e-01 +1.1724e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3736e-02 +1.1724e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2623e-02 +1.1724e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9193e-03 +1.1724e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4333e-03 +1.1724e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3989e-03 +1.1724e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2143e-04 +1.1724e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2131e-04 +1.1724e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9988e-04 +1.1724e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2138e-04 +1.1724e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6391e-05 +1.1724e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7412e-05 +1.1724e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8209e-05 +1.1724e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6862e-05 +1.1724e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7612e-06 +1.1724e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5300e-06 +1.1724e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2084e-06 +1.1724e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6563e-07 +1.1724e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.9528e-07 +1.1724e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6770e-07 +1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.6685e-08 +1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1702e-01 +1.2745e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3413e-02 +1.2745e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3123e-02 +1.2745e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2244e-03 +1.2745e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7139e-03 +1.2745e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3816e-03 +1.2745e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2464e-04 +1.2745e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3831e-04 +1.2745e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0394e-04 +1.2745e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1711e-04 +1.2745e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5550e-05 +1.2745e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5643e-05 +1.2745e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0669e-05 +1.2745e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7501e-05 +1.2745e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.6211e-06 +1.2745e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5239e-06 +1.2745e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2674e-06 +1.2745e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.3482e-07 +1.2745e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1405e-07 +1.2745e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6935e-07 +1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.1475e-08 +1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1761e-01 +1.3765e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4013e-02 +1.3765e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3099e-02 +1.3765e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7556e-03 +1.3765e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4359e-03 +1.3765e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5053e-03 +1.3765e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1645e-04 +1.3765e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2065e-04 +1.3765e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9688e-04 +1.3765e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1992e-04 +1.3765e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4511e-05 +1.3765e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7220e-05 +1.3765e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9560e-05 +1.3765e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6911e-05 +1.3765e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1453e-06 +1.3765e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.4763e-06 +1.3765e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2487e-06 +1.3765e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.4758e-07 +1.3765e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.0007e-07 +1.3765e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6451e-07 +1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.5983e-08 +1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1492e-01 +1.4786e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2963e-02 +1.4786e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2144e-02 +1.4786e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8903e-03 +1.4786e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4805e-03 +1.4786e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3617e-03 +1.4786e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0685e-04 +1.4786e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3254e-04 +1.4786e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9783e-04 +1.4786e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1762e-04 +1.4786e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8932e-05 +1.4786e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6810e-05 +1.4786e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0388e-05 +1.4786e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6879e-05 +1.4786e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1135e-06 +1.4786e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6719e-06 +1.4786e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.1049e-06 +1.4786e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6949e-07 +1.4786e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1399e-07 +1.4786e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.7128e-07 +1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.1334e-08 +1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2077e-01 +1.5806e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4758e-02 +1.5806e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2268e-02 +1.5806e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0006e-03 +1.5806e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4812e-03 +1.5806e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4108e-03 +1.5806e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5983e-04 +1.5806e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2600e-04 +1.5806e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9598e-04 +1.5806e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2633e-04 +1.5806e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8959e-05 +1.5806e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7519e-05 +1.5806e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7885e-05 +1.5806e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6044e-05 +1.5806e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9198e-06 +1.5806e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7534e-06 +1.5806e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4306e-06 +1.5806e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0723e-06 +1.5806e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8322e-07 +1.5806e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8966e-07 +1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1111e-08 +1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1583e-01 +1.6827e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0470e-02 +1.6827e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2376e-02 +1.6827e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5534e-03 +1.6827e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6015e-03 +1.6827e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3799e-03 +1.6827e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6032e-04 +1.6827e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5108e-04 +1.6827e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9217e-04 +1.6827e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2045e-04 +1.6827e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8823e-05 +1.6827e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4159e-05 +1.6827e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8247e-05 +1.6827e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6659e-05 +1.6827e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0942e-06 +1.6827e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6823e-06 +1.6827e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4889e-06 +1.6827e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1036e-06 +1.6827e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8475e-07 +1.6827e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9552e-07 +1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1724e-08 +1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2446e-01 +1.7847e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3608e-02 +1.7847e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1468e-02 +1.7847e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6784e-03 +1.7847e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4828e-03 +1.7847e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5059e-03 +1.7847e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2297e-04 +1.7847e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5167e-04 +1.7847e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0387e-04 +1.7847e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2750e-04 +1.7847e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7975e-05 +1.7847e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5615e-05 +1.7847e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7849e-05 +1.7847e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7038e-05 +1.7847e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1522e-06 +1.7847e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7108e-06 +1.7847e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4714e-06 +1.7847e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1335e-06 +1.7847e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.7625e-07 +1.7847e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9678e-07 +1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.0199e-08 +1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1586e-01 +1.8867e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3492e-02 +1.8867e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1714e-02 +1.8867e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7402e-03 +1.8867e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5772e-03 +1.8867e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4414e-03 +1.8867e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6625e-04 +1.8867e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4279e-04 +1.8867e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8898e-04 +1.8867e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2450e-04 +1.8867e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4239e-05 +1.8867e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6558e-05 +1.8867e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9669e-05 +1.8867e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6103e-05 +1.8867e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.8072e-06 +1.8867e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7965e-06 +1.8867e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2607e-06 +1.8867e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0623e-06 +1.8867e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.7853e-07 +1.8867e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.0355e-07 +1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.7697e-08 +1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1612e-01 +1.9888e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3288e-02 +1.9888e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2060e-02 +1.9888e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0717e-03 +1.9888e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7579e-03 +1.9888e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3674e-03 +1.9888e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4686e-04 +1.9888e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3907e-04 +1.9888e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8982e-04 +1.9888e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2146e-04 +1.9888e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5585e-05 +1.9888e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5849e-05 +1.9888e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9318e-05 +1.9888e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6760e-05 +1.9888e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2140e-06 +1.9888e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8696e-06 +1.9888e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3266e-06 +1.9888e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0750e-06 +1.9888e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.5303e-07 +1.9888e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8703e-07 +1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1672e-08 +2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2207e-01 +2.0908e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4969e-02 +2.0908e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3062e-02 +2.0908e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9233e-03 +2.0908e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7411e-03 +2.0908e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4827e-03 +2.0908e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2058e-04 +2.0908e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3678e-04 +2.0908e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0134e-04 +2.0908e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1931e-04 +2.0908e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1685e-05 +2.0908e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7879e-05 +2.0908e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7051e-05 +2.0908e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6090e-05 +2.0908e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9699e-06 +2.0908e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.1683e-06 +2.0908e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4562e-06 +2.0908e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2288e-06 +2.0908e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4614e-07 +2.0908e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1544e-07 +2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.3468e-08 +2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2475e-01 +2.1929e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5067e-02 +2.1929e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2504e-02 +2.1929e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8877e-03 +2.1929e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3966e-03 +2.1929e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4719e-03 +2.1929e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1913e-04 +2.1929e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2441e-04 +2.1929e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8927e-04 +2.1929e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2352e-04 +2.1929e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7616e-05 +2.1929e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4231e-05 +2.1929e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7416e-05 +2.1929e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6528e-05 +2.1929e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.7650e-06 +2.1929e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2684e-06 +2.1929e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5611e-06 +2.1929e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2080e-06 +2.1929e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.2312e-07 +2.1929e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.0983e-07 +2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.9777e-08 +2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2170e-01 +2.2949e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0599e-02 +2.2949e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2878e-02 +2.2949e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7361e-03 +2.2949e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4452e-03 +2.2949e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4099e-03 +2.2949e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2214e-04 +2.2949e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4690e-04 +2.2949e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9486e-04 +2.2949e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2335e-04 +2.2949e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4818e-05 +2.2949e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6976e-05 +2.2949e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6444e-05 +2.2949e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6533e-05 +2.2949e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3543e-06 +2.2949e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8915e-06 +2.2949e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6124e-06 +2.2949e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1792e-06 +2.2949e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0459e-07 +2.2949e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1552e-07 +2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.0667e-08 +2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1640e-01 +2.3969e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0106e-02 +2.3969e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1491e-02 +2.3969e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9028e-03 +2.3969e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6704e-03 +2.3969e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4500e-03 +2.3969e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3486e-04 +2.3969e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3901e-04 +2.3969e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9791e-04 +2.3969e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1741e-04 +2.3969e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7844e-05 +2.3969e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3383e-05 +2.3969e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7017e-05 +2.3969e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5752e-05 +2.3969e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0547e-06 +2.3969e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0440e-06 +2.3969e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3954e-06 +2.3969e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2103e-06 +2.3969e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4671e-07 +2.3969e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.2894e-07 +2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.1800e-08 +2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1855e-01 +2.4990e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4035e-02 +2.4990e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1631e-02 +2.4990e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.6076e-03 +2.4990e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4895e-03 +2.4990e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3601e-03 +2.4990e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5444e-04 +2.4990e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3045e-04 +2.4990e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9254e-04 +2.4990e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2336e-04 +2.4990e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5255e-05 +2.4990e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4530e-05 +2.4990e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8684e-05 +2.4990e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6995e-05 +2.4990e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4538e-06 +2.4990e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.1514e-06 +2.4990e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5635e-06 +2.4990e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2230e-06 +2.4990e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4394e-07 +2.4990e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1000e-07 +2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.0440e-08 +2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1822e-01 +2.6010e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2247e-02 +2.6010e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2540e-02 +2.6010e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8974e-03 +2.6010e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6457e-03 +2.6010e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3716e-03 +2.6010e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6784e-04 +2.6010e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3218e-04 +2.6010e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0033e-04 +2.6010e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2288e-04 +2.6010e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6262e-05 +2.6010e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5159e-05 +2.6010e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8384e-05 +2.6010e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6735e-05 +2.6010e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.5421e-06 +2.6010e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2683e-06 +2.6010e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5464e-06 +2.6010e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2356e-06 +2.6010e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0123e-07 +2.6010e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1449e-07 +2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.8103e-08 +2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1599e-01 +2.7031e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0291e-02 +2.7031e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1964e-02 +2.7031e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0484e-03 +2.7031e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7239e-03 +2.7031e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4451e-03 +2.7031e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3348e-04 +2.7031e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3119e-04 +2.7031e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8743e-04 +2.7031e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2489e-04 +2.7031e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.3345e-05 +2.7031e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6473e-05 +2.7031e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7317e-05 +2.7031e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5163e-05 +2.7031e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3259e-06 +2.7031e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0980e-06 +2.7031e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6079e-06 +2.7031e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3113e-06 +2.7031e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7302e-07 +2.7031e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4014e-07 +2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.8934e-08 +2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1436e-01 +2.8051e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1727e-02 +2.8051e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2288e-02 +2.8051e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0005e-03 +2.8051e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7528e-03 +2.8051e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3560e-03 +2.8051e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6221e-04 +2.8051e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3769e-04 +2.8051e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0124e-04 +2.8051e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2015e-04 +2.8051e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4159e-05 +2.8051e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6017e-05 +2.8051e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5733e-05 +2.8051e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5534e-05 +2.8051e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7869e-06 +2.8051e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0486e-06 +2.8051e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5643e-06 +2.8051e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2622e-06 +2.8051e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7865e-07 +2.8051e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4254e-07 +2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0300e-07 +2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2263e-01 +2.9071e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2448e-02 +2.9071e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3570e-02 +2.9071e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.1881e-03 +2.9071e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3949e-03 +2.9071e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3822e-03 +2.9071e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6680e-04 +2.9071e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2932e-04 +2.9071e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0268e-04 +2.9071e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2601e-04 +2.9071e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5816e-05 +2.9071e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4466e-05 +2.9071e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6938e-05 +2.9071e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6722e-05 +2.9071e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8189e-06 +2.9071e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0369e-06 +2.9071e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4941e-06 +2.9071e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2920e-06 +2.9071e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.9181e-07 +2.9071e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4278e-07 +2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0023e-07 +3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2514e-01 +3.0092e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5053e-02 +3.0092e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3382e-02 +3.0092e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5774e-03 +3.0092e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7045e-03 +3.0092e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4194e-03 +3.0092e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4035e-04 +3.0092e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.1791e-04 +3.0092e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0589e-04 +3.0092e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1645e-04 +3.0092e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4010e-05 +3.0092e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3516e-05 +3.0092e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8350e-05 +3.0092e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6629e-05 +3.0092e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8127e-06 +3.0092e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9878e-06 +3.0092e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5754e-06 +3.0092e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3150e-06 +3.0092e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.5847e-07 +3.0092e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.3429e-07 +3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.4544e-08 +3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1988e-01 +3.1112e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3550e-02 +3.1112e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2647e-02 +3.1112e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.3973e-03 +3.1112e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6855e-03 +3.1112e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4408e-03 +3.1112e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2638e-04 +3.1112e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2915e-04 +3.1112e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9134e-04 +3.1112e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2475e-04 +3.1112e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2830e-05 +3.1112e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3903e-05 +3.1112e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6907e-05 +3.1112e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6013e-05 +3.1112e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4926e-06 +3.1112e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2649e-06 +3.1112e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6013e-06 +3.1112e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2305e-06 +3.1112e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.8412e-07 +3.1112e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4575e-07 +3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.9779e-08 +3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1334e-01 +3.2133e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0421e-02 +3.2133e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1540e-02 +3.2133e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6582e-03 +3.2133e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4791e-03 +3.2133e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4755e-03 +3.2133e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1594e-04 +3.2133e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4658e-04 +3.2133e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8892e-04 +3.2133e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2320e-04 +3.2133e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6293e-05 +3.2133e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4805e-05 +3.2133e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8336e-05 +3.2133e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5272e-05 +3.2133e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2777e-06 +3.2133e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8716e-06 +3.2133e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5340e-06 +3.2133e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2240e-06 +3.2133e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.6502e-07 +3.2133e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4404e-07 +3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.8227e-08 +3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1664e-01 +3.3153e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3968e-02 +3.3153e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1823e-02 +3.3153e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7158e-03 +3.3153e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4634e-03 +3.3153e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3960e-03 +3.3153e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1716e-04 +3.3153e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5220e-04 +3.3153e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0373e-04 +3.3153e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2315e-04 +3.3153e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2778e-05 +3.3153e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2936e-05 +3.3153e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6172e-05 +3.3153e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5679e-05 +3.3153e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5647e-06 +3.3153e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0373e-06 +3.3153e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5836e-06 +3.3153e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3676e-06 +3.3153e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2426e-07 +3.3153e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7030e-07 +3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1156e-07 +3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1955e-01 +3.4173e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0867e-02 +3.4173e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2942e-02 +3.4173e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5371e-03 +3.4173e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5741e-03 +3.4173e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3583e-03 +3.4173e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4546e-04 +3.4173e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4338e-04 +3.4173e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9126e-04 +3.4173e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1966e-04 +3.4173e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8480e-05 +3.4173e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2899e-05 +3.4173e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6861e-05 +3.4173e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5967e-05 +3.4173e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8062e-06 +3.4173e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0855e-06 +3.4173e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6328e-06 +3.4173e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2786e-06 +3.4173e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2791e-07 +3.4173e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6550e-07 +3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0752e-07 +3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1327e-01 +3.5194e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5153e-02 +3.5194e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1638e-02 +3.5194e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7134e-03 +3.5194e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3990e-03 +3.5194e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3648e-03 +3.5194e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6372e-04 +3.5194e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2121e-04 +3.5194e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0419e-04 +3.5194e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2292e-04 +3.5194e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5703e-05 +3.5194e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6261e-05 +3.5194e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7239e-05 +3.5194e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5574e-05 +3.5194e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3595e-06 +3.5194e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0398e-06 +3.5194e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5997e-06 +3.5194e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3494e-06 +3.5194e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2022e-07 +3.5194e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6980e-07 +3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1519e-07 +3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1519e-01 +3.6214e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3815e-02 +3.6214e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2633e-02 +3.6214e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2267e-03 +3.6214e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6558e-03 +3.6214e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4868e-03 +3.6214e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1233e-04 +3.6214e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2843e-04 +3.6214e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0182e-04 +3.6214e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2634e-04 +3.6214e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7569e-05 +3.6214e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6277e-05 +3.6214e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8103e-05 +3.6214e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6229e-05 +3.6214e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9854e-06 +3.6214e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7450e-06 +3.6214e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6409e-06 +3.6214e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2708e-06 +3.6214e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.9941e-07 +3.6214e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5132e-07 +3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1398e-07 +3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1605e-01 +3.7235e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3334e-02 +3.7235e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1263e-02 +3.7235e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2773e-03 +3.7235e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4017e-03 +3.7235e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3765e-03 +3.7235e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3222e-04 +3.7235e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5147e-04 +3.7235e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0351e-04 +3.7235e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2679e-04 +3.7235e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2315e-05 +3.7235e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7240e-05 +3.7235e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6020e-05 +3.7235e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6422e-05 +3.7235e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1928e-06 +3.7235e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0792e-06 +3.7235e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6049e-06 +3.7235e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2909e-06 +3.7235e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7925e-07 +3.7235e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6076e-07 +3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1418e-07 +3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2497e-01 +3.8255e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1059e-02 +3.8255e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2338e-02 +3.8255e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0601e-03 +3.8255e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6146e-03 +3.8255e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4172e-03 +3.8255e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4514e-04 +3.8255e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3673e-04 +3.8255e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9507e-04 +3.8255e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2124e-04 +3.8255e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8075e-05 +3.8255e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2944e-05 +3.8255e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5826e-05 +3.8255e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5844e-05 +3.8255e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9180e-06 +3.8255e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7467e-06 +3.8255e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6509e-06 +3.8255e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2385e-06 +3.8255e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3372e-07 +3.8255e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5774e-07 +3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0680e-07 +3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2288e-01 +3.9276e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4371e-02 +3.9276e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2207e-02 +3.9276e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.1552e-03 +3.9276e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5496e-03 +3.9276e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4861e-03 +3.9276e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5374e-04 +3.9276e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4998e-04 +3.9276e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0512e-04 +3.9276e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1838e-04 +3.9276e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8332e-05 +3.9276e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5024e-05 +3.9276e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7398e-05 +3.9276e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5038e-05 +3.9276e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9194e-06 +3.9276e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7128e-06 +3.9276e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6059e-06 +3.9276e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2909e-06 +3.9276e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.1436e-07 +3.9276e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7148e-07 +3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1109e-07 +4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2246e-01 +4.0296e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4879e-02 +4.0296e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2599e-02 +4.0296e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5142e-03 +4.0296e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4981e-03 +4.0296e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4611e-03 +4.0296e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3944e-04 +4.0296e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4555e-04 +4.0296e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9324e-04 +4.0296e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1692e-04 +4.0296e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6807e-05 +4.0296e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7534e-05 +4.0296e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7437e-05 +4.0296e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5257e-05 +4.0296e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9641e-06 +4.0296e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7155e-06 +4.0296e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5202e-06 +4.0296e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3445e-06 +4.0296e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4071e-07 +4.0296e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9747e-07 +4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1949e-07 +4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2338e-01 +4.1316e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4648e-02 +4.1316e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3477e-02 +4.1316e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4441e-03 +4.1316e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7119e-03 +4.1316e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5007e-03 +4.1316e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0635e-04 +4.1316e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2924e-04 +4.1316e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9933e-04 +4.1316e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2672e-04 +4.1316e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8167e-05 +4.1316e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3742e-05 +4.1316e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6953e-05 +4.1316e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6103e-05 +4.1316e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0972e-06 +4.1316e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7958e-06 +4.1316e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6375e-06 +4.1316e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3829e-06 +4.1316e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3893e-07 +4.1316e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9663e-07 +4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2301e-07 +4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1901e-01 +4.2337e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2742e-02 +4.2337e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1788e-02 +4.2337e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4625e-03 +4.2337e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5784e-03 +4.2337e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4847e-03 +4.2337e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5968e-04 +4.2337e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3799e-04 +4.2337e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0433e-04 +4.2337e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2034e-04 +4.2337e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4962e-05 +4.2337e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3089e-05 +4.2337e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6258e-05 +4.2337e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6111e-05 +4.2337e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6900e-06 +4.2337e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9295e-06 +4.2337e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6172e-06 +4.2337e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3048e-06 +4.2337e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.5265e-07 +4.2337e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8725e-07 +4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2036e-07 +4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1761e-01 +4.3357e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3693e-02 +4.3357e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2416e-02 +4.3357e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.3487e-03 +4.3357e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5549e-03 +4.3357e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4545e-03 +4.3357e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1598e-04 +4.3357e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2827e-04 +4.3357e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9043e-04 +4.3357e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2555e-04 +4.3357e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7083e-05 +4.3357e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4990e-05 +4.3357e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7970e-05 +4.3357e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5403e-05 +4.3357e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9409e-06 +4.3357e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9789e-06 +4.3357e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6918e-06 +4.3357e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3957e-06 +4.3357e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.1931e-07 +4.3357e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7553e-07 +4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2216e-07 +4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1942e-01 +4.4378e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0864e-02 +4.4378e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2074e-02 +4.4378e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5944e-03 +4.4378e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6637e-03 +4.4378e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3623e-03 +4.4378e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1303e-04 +4.4378e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4098e-04 +4.4378e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8847e-04 +4.4378e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2140e-04 +4.4378e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6951e-05 +4.4378e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6280e-05 +4.4378e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7465e-05 +4.4378e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6188e-05 +4.4378e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8473e-06 +4.4378e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6803e-06 +4.4378e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6103e-06 +4.4378e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3202e-06 +4.4378e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4990e-07 +4.4378e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9658e-07 +4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2485e-07 +4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2261e-01 +4.5398e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0444e-02 +4.5398e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1270e-02 +4.5398e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5995e-03 +4.5398e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6036e-03 +4.5398e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4505e-03 +4.5398e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3634e-04 +4.5398e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3071e-04 +4.5398e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9915e-04 +4.5398e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2517e-04 +4.5398e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.3941e-05 +4.5398e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7413e-05 +4.5398e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5627e-05 +4.5398e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5230e-05 +4.5398e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1642e-06 +4.5398e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8621e-06 +4.5398e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7196e-06 +4.5398e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3798e-06 +4.5398e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4734e-07 +4.5398e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7523e-07 +4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1761e-07 +4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1831e-01 +4.6418e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3860e-02 +4.6418e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2380e-02 +4.6418e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7224e-03 +4.6418e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7009e-03 +4.6418e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3955e-03 +4.6418e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1376e-04 +4.6418e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2885e-04 +4.6418e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0313e-04 +4.6418e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2587e-04 +4.6418e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4493e-05 +4.6418e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6951e-05 +4.6418e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5819e-05 +4.6418e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5426e-05 +4.6418e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9821e-06 +4.6418e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8535e-06 +4.6418e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6834e-06 +4.6418e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3148e-06 +4.6418e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4956e-07 +4.6418e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9144e-07 +4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1988e-07 +4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1484e-01 +4.7439e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1707e-02 +4.7439e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3380e-02 +4.7439e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4876e-03 +4.7439e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6236e-03 +4.7439e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4579e-03 +4.7439e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1248e-04 +4.7439e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2103e-04 +4.7439e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0674e-04 +4.7439e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2483e-04 +4.7439e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5488e-05 +4.7439e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6729e-05 +4.7439e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5533e-05 +4.7439e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5885e-05 +4.7439e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.4571e-06 +4.7439e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5701e-06 +4.7439e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5949e-06 +4.7439e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2914e-06 +4.7439e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.5545e-07 +4.7439e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8830e-07 +4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2549e-07 +4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1328e-01 +4.8459e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3411e-02 +4.8459e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1793e-02 +4.8459e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7303e-03 +4.8459e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4650e-03 +4.8459e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3834e-03 +4.8459e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0865e-04 +4.8459e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4220e-04 +4.8459e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9823e-04 +4.8459e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2616e-04 +4.8459e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1648e-05 +4.8459e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5933e-05 +4.8459e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5571e-05 +4.8459e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5862e-05 +4.8459e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8079e-06 +4.8459e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7048e-06 +4.8459e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4736e-06 +4.8459e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3091e-06 +4.8459e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.6149e-07 +4.8459e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.1258e-07 +4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.3133e-07 +4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1934e-01 +4.9480e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1234e-02 +4.9480e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1493e-02 +4.9480e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.6105e-03 +4.9480e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7418e-03 +4.9480e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4636e-03 +4.9480e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3640e-04 +4.9480e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3356e-04 +4.9480e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9854e-04 +4.9480e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1625e-04 +4.9480e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2825e-05 +4.9480e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6921e-05 +4.9480e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7455e-05 +4.9480e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5374e-05 +4.9480e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7961e-06 +4.9480e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6451e-06 +4.9480e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6108e-06 +4.9480e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2735e-06 +4.9480e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.7228e-07 +4.9480e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9868e-07 +4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2369e-07 +5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2449e-01 +5.0500e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3728e-02 +5.0500e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3124e-02 +5.0500e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6695e-03 +5.0500e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5941e-03 +5.0500e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3723e-03 +5.0500e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1499e-04 +5.0500e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4878e-04 +5.0500e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0010e-04 +5.0500e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2118e-04 +5.0500e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1635e-05 +5.0500e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2898e-05 +5.0500e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7168e-05 +5.0500e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.4926e-05 +5.0500e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.3433e-06 +5.0500e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9116e-06 +5.0500e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6708e-06 +5.0500e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3149e-06 +5.0500e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4614e-07 +5.0500e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.0898e-07 +5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2575e-07 diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index 8fc1ab5..ac85359 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -15,6 +15,7 @@ import numpy as np import os +import matplotlib as mpl from matplotlib import pyplot as plt from matplotlib.colors import LogNorm from discretize import TensorMesh @@ -36,6 +37,7 @@ # # x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) y = np.zeros_like(x) z = np.zeros_like(x) topo = np.c_[x, y, z].astype(float) @@ -50,6 +52,7 @@ # # x = np.linspace(50,5050,50) +#x = np.linspace(50,250,3) n_sounding = len(x) source_locations = np.c_[x, np.zeros(n_sounding), 30 *np.ones(n_sounding)] @@ -126,16 +129,22 @@ def PolygonInd(mesh, pts): background_conductivity = 0.1 -slope_conductivity = 1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 model = np.ones(mesh.nC) * background_conductivity -x0 = np.r_[0., 10.] -x1 = np.r_[dx*n_sounding, np.sum(hz)] -x2 = np.r_[dx*n_sounding, 10.] -pts = np.vstack((x0, x1, x2, x0)) +layer_ind = mesh.gridCC[:, -1] < 50. +model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 50.] +x1 = np.r_[dx*n_sounding, 50.] +x2 = np.r_[dx*n_sounding, 150.] +x3 = np.r_[0., 75.] +pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) -model[poly_inds] = 1./50 +model[poly_inds] = slope_conductivity mapping = maps.ExpMap(mesh) sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) @@ -144,13 +153,32 @@ def PolygonInd(mesh, pts): -cb = plt.colorbar( - mesh.plotImage(model, grid=False, clim=(1e-2, 1e-1),pcolorOpts={"norm":LogNorm()})[0], - fraction=0.03, pad=0.04 + + + +fig = plt.figure(figsize=(9, 3)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod = np.log10(model) + +mesh.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, ) +ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + +ax1.set_title("Conductivity Model") +ax1.set_xlabel("x (m)") +ax1.set_ylabel("z (m)") -plt.ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) -plt.gca().set_aspect(1) +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) ####################################################################### # Define the Forward Simulation and Predic Data @@ -211,7 +239,7 @@ def PolygonInd(mesh, pts): if save_file == True: - noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) dpred += noise fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py new file mode 100644 index 0000000..0bba2ac --- /dev/null +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -0,0 +1,532 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + + +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D import get_2d_mesh, LateralConstraint +from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.EM1DSimulation import * #get_vertical_discretization_frequency + +save_file = True + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' + + + +##################################################################### +# topography +# ------------- +# +# + +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +############################################# +# Load Data and Plot +# ------------------ +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + + +source_locations = np.unique(dobs[:, 0:3], axis=0) +frequencies = np.unique(dobs[:, 3]) +dobs = mkvc(dobs[:, 4:].T) + +n_sounding = np.shape(source_locations)[0] + +dobs_plotting = np.reshape(dobs, (n_sounding, 2*len(frequencies))).T + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, n_sounding): + ax.loglog(frequencies, np.abs(dobs_plotting[0:len(frequencies), ii]), '-', lw=2) + ax.loglog(frequencies, np.abs(dobs_plotting[len(frequencies):, ii]), '--', lw=2) + +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["real", "imaginary"]) + + + +###################################################### +# Create Survey +# ------------- +# + + +source_current = 1. +source_radius = 5. + +receiver_locations = np.c_[source_locations[:, 0]+10., source_locations[:, 1:]] +receiver_orientation = "z" # "x", "y" or "z" +field_type = "ppm" # "secondary", "total" or "ppm" + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + +# Sources +# source_list = [ +# em1d.sources.HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +# ] + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.1*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + + +############################################### +# Defining a Model +# ---------------------- +# + +conductivity = np.ones(mesh.nC) * 0.1 + +mapping = maps.ExpMap(mesh) +starting_model = np.log(conductivity.reshape(mesh.vnC, order='F').flatten()) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, + Solver=PardisoSolver +) + +#simulation.model = starting_model +# +#simulation.set_ij_n_layer() +# +#simulation._Jmatrix_sigma = [ +# run_simulation_FD(simulation.input_args(i, jac_switch='sensitivity_sigma')) for i in range(simulation.n_sounding) +#] +#print("J_sigma matrix shape") +#simulation._Jmatrix_sigma = np.hstack(simulation._Jmatrix_sigma) +#print(simulation._Jmatrix_sigma.shape) +#print("IJLayers shapes") +#for x in simulation.IJLayers: +# print(x.shape) + + + + + + + + + + + + + + + +######################################################################## +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + +# Define the regularization (model objective function) +mesh_reg = get_2d_mesh(n_sounding, hz) +reg_map = maps.IdentityMap(mesh_reg) +reg = LateralConstraint( + mesh_reg, mapping=reg_map, + alpha_s = 0.001, + alpha_x = 0.001, + alpha_y = 1., +) +xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) +reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +reg_map = maps.IdentityMap(nP=mesh.nC) +reg = regularization.Sparse( + mesh, mapping=reg_map, +) + +ps, px, pz = 2, 1, 0 +reg.norms = np.c_[ps, px, pz, 0] +#reg.mref = starting_model + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + + + + + + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) + + +beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=30, minGNiter=1, + fix_Jmatrix=True, + f_min_change = 1e-4, + coolingRate=3 +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +target = directives.TargetMisfit() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + beta_schedule, + save_iteration, + update_IRLS, + update_jacobi, +] + + +opt.LSshorten = 0.5 +opt.remember('xc') + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +# True model +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +true_model = np.ones(mesh.nC) * background_conductivity + +layer_ind = mesh.gridCC[:, -1] < 50. +true_model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 50.] +x1 = np.r_[dx*n_sounding, 50.] +x2 = np.r_[dx*n_sounding, 150.] +x3 = np.r_[0., 75.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh, pts) +true_model[poly_inds] = slope_conductivity + +l2_model = np.exp(inv_prob.l2model) +l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) +l2_model = mkvc(l2_model) + +recovered_model = np.exp(recovered_model) +recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) +recovered_model = mkvc(recovered_model) + +models_list = [true_model, l2_model, simulation.Sigma] + +for ii, mod in enumerate(models_list): + + fig = plt.figure(figsize=(9, 3)) + ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) + log_mod = np.log10(mod) + + mesh.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(mod.min()), np.log10(mod.max())), +# clim=(np.log10(0.1), np.log10(1)), + pcolorOpts={"cmap": "viridis"}, + ) + ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + + ax1.set_title("Conductivity Model") + ax1.set_xlabel("x (m)") + ax1.set_ylabel("depth (m)") + + ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) + norm = mpl.colors.Normalize( + vmin=np.log10(mod.min()), vmax=np.log10(mod.max()) +# vmin=np.log10(0.1), vmax=np.log10(1) + ) + cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" + ) + cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + + + + + + + + + + + + + + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +#d = np.reshape(dpred, (n_sounding, 2*len(frequencies))).T +# +#fig, ax = plt.subplots(1,1, figsize = (7, 7)) +# +#for ii in range(0, n_sounding): +# ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) +# ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) +# +#ax.set_xlabel("Frequency (Hz)") +#ax.set_ylabel("|Hs/Hp| (ppm)") +#ax.set_title("Magnetic Field as a Function of Frequency") +#ax.legend(["real", "imaginary"]) +# +## +##d = np.reshape(dpred, (n_sounding, 2*len(frequencies))) +##fig = plt.figure(figsize = (10, 5)) +##ax1 = fig.add_subplot(121) +##ax2 = fig.add_subplot(122) +## +##for ii in range(0, n_sounding): +## ax1.semilogy(x, np.abs(d[:, 0:len(frequencies)]), 'k-', lw=2) +## ax2.semilogy(x, np.abs(d[:, len(frequencies):]), 'k--', lw=2) +# +# +# +#if save_file == True: +# +# noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) +# dpred += noise +# fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' +# +# loc = np.repeat(source_locations, len(frequencies), axis=0) +# fvec = np.kron(np.ones(n_sounding), frequencies) +# dout = np.c_[dpred[0::2], dpred[1::2]] +# +# np.savetxt( +# fname, +# np.c_[loc, fvec, dout], +# fmt='%.4e' +# ) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index b048674..0df7445 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -15,6 +15,7 @@ import numpy as np import os +import matplotlib as mpl from matplotlib import pyplot as plt from matplotlib.colors import LogNorm from discretize import TensorMesh @@ -35,7 +36,9 @@ # ------------- # # + x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) y = np.zeros_like(x) z = np.zeros_like(x) topo = np.c_[x, y, z].astype(float) @@ -50,6 +53,7 @@ # # x = np.linspace(50,5050,50) +#x = np.linspace(50,250,3) n_sounding = len(x) source_locations = np.c_[x, np.ones((n_sounding, 2))] @@ -117,16 +121,22 @@ def PolygonInd(mesh, pts): background_conductivity = 0.1 -slope_conductivity = 1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 model = np.ones(mesh.nC) * background_conductivity -x0 = np.r_[0., 10.] -x1 = np.r_[dx*n_sounding, np.sum(hz)] -x2 = np.r_[dx*n_sounding, 10.] -pts = np.vstack((x0, x1, x2, x0)) +layer_ind = mesh.gridCC[:, -1] < 50. +model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 50.] +x1 = np.r_[dx*n_sounding, 50.] +x2 = np.r_[dx*n_sounding, 150.] +x3 = np.r_[0., 75.] +pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) -model[poly_inds] = 1./50 +model[poly_inds] = slope_conductivity mapping = maps.ExpMap(mesh) sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) @@ -135,13 +145,31 @@ def PolygonInd(mesh, pts): -cb = plt.colorbar( - mesh.plotImage(model, grid=False, clim=(1e-2, 1e-1),pcolorOpts={"norm":LogNorm()})[0], - fraction=0.03, pad=0.04 +fig = plt.figure(figsize=(9, 3)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod = np.log10(model) + +mesh.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, ) +ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + +ax1.set_title("Conductivity Model") +ax1.set_xlabel("x (m)") +ax1.set_ylabel("z (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + -plt.ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) -plt.gca().set_aspect(1) ####################################################################### # Define the Forward Simulation and Predic Data @@ -192,7 +220,7 @@ def PolygonInd(mesh, pts): if save_file == True: - noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) dpred += noise fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dtm_stitched_data.obs' diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py new file mode 100644 index 0000000..73044c6 --- /dev/null +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -0,0 +1,470 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + + +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D import get_2d_mesh, LateralConstraint +from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.EM1DSimulation import * #get_vertical_discretization_frequency + +save_file = True + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dtm_stitched_data.obs' + + + +##################################################################### +# topography +# ------------- +# +# + +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +############################################# +# Load Data and Plot +# ------------------ +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + + +source_locations = np.unique(dobs[:, 0:3], axis=0) +times = np.unique(dobs[:, 3]) +dobs = mkvc(dobs[:, -1]) + +n_sounding = np.shape(source_locations)[0] + +dobs_plotting = np.reshape(dobs, (n_sounding, len(times))) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, len(times)): + ax.semilogy(x, np.abs(dobs_plotting[:, ii]), '-', lw=2) + +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dBdt| (T/s)") + + + +###################################################### +# Create Survey +# ------------- +# + + +source_current = 1. +source_radius = 5. + +receiver_locations = np.c_[source_locations[:, 0]+10., source_locations[:, 1:]] +receiver_orientation = "z" # "x", "y" or "z" + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation=receiver_orientation, + component="dbdt" + ) + ] + +# Sources +# source_list = [ +# em1d.sources.TimeDomainHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, a=source_radius, +# I=source_current +# ) +# ] + + source_list.append( + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.1*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_time(times, sigma_background=0.1, n_layer=30) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + + +############################################### +# Defining a Model +# ---------------------- +# + +conductivity = np.ones(mesh.nC) * 0.1 + +mapping = maps.ExpMap(mesh) +starting_model = np.log(conductivity.reshape(mesh.vnC, order='F').flatten()) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( + mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, + n_cpu=2, verbose=True, Solver=PardisoSolver +) + +#simulation.model = starting_model +# +#simulation.set_ij_n_layer() +# +#simulation._Jmatrix_sigma = [ +# run_simulation_FD(simulation.input_args(i, jac_switch='sensitivity_sigma')) for i in range(simulation.n_sounding) +#] +#print("J_sigma matrix shape") +#simulation._Jmatrix_sigma = np.hstack(simulation._Jmatrix_sigma) +#print(simulation._Jmatrix_sigma.shape) +#print("IJLayers shapes") +#for x in simulation.IJLayers: +# print(x.shape) + + + + + + + + + + + + + + + +######################################################################## +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + +# Define the regularization (model objective function) +mesh_reg = get_2d_mesh(n_sounding, hz) +reg_map = maps.IdentityMap(mesh_reg) +reg = LateralConstraint( + mesh_reg, mapping=reg_map, + alpha_s = 0.001, + alpha_x = 0.001, + alpha_y = 1., +) +xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) +reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +reg_map = maps.IdentityMap(nP=mesh.nC) +reg = regularization.Sparse( + mesh, mapping=reg_map, +) + +ps, px, pz = 2, 2, 0 +reg.norms = np.c_[ps, px, pz, 0] +#reg.mref = starting_model + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + + + + + + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1) + + +beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=1) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=30, minGNiter=1, + fix_Jmatrix=True, + f_min_change = 1e-4, + coolingRate=3 +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +target = directives.TargetMisfit() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + beta_schedule, + save_iteration, + update_IRLS, + update_jacobi, +] + + +opt.LSshorten = 0.5 +opt.remember('xc') + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +# True model +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +true_model = np.ones(mesh.nC) * background_conductivity + +layer_ind = mesh.gridCC[:, -1] < 50. +true_model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 50.] +x1 = np.r_[dx*n_sounding, 50.] +x2 = np.r_[dx*n_sounding, 150.] +x3 = np.r_[0., 75.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh, pts) +true_model[poly_inds] = slope_conductivity + + +l2_model = np.exp(inv_prob.l2model) +l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) +l2_model = mkvc(l2_model) + +recovered_model = np.exp(recovered_model) +recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) +recovered_model = mkvc(recovered_model) + +models_list = [true_model, l2_model, simulation.Sigma] + +for ii, mod in enumerate(models_list): + + fig = plt.figure(figsize=(9, 3)) + ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) + log_mod = np.log10(mod) + + mesh.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(mod.min()), np.log10(mod.max())), +# clim=(np.log10(0.1), np.log10(1)), + pcolorOpts={"cmap": "viridis"}, + ) + ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + + ax1.set_title("Conductivity Model") + ax1.set_xlabel("x (m)") + ax1.set_ylabel("depth (m)") + + ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) + norm = mpl.colors.Normalize( + vmin=np.log10(mod.min()), vmax=np.log10(mod.max()) +# vmin=np.log10(0.1), vmax=np.log10(1) + ) + cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" + ) + cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + + +data_list = [dobs, simulation.dpred(l2_model), simulation.dpred(recovered_model)] +color_list = ['k', 'b', 'r'] + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, len(data_list)): + d = np.reshape(data_list[ii], (n_sounding, len(times))) + ax.semilogy(x, np.abs(d), color_list[ii], lw=1) + +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dBdt| (T/s)") + + + + + + + + + + + + + + + + + + + + + From 1c8cacfdfb0dfc309ba0b56473e0e67af23606e7 Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 5 Jun 2020 19:21:10 -0700 Subject: [PATCH 15/54] Add radial response for VMD. --- simpegEM1D/receivers.py | 2 +- simpegEM1D/simulation.py | 11 +++++-- simpegEM1D/supporting_functions/kernels.py | 27 +++++++++------- tutorials/plot_1_fdem_fwd_sources.py | 36 +++++++++++++++------- 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 2ae6701..3b8819f 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -14,7 +14,7 @@ class HarmonicPointReceiver(BaseRx): ) orientation = properties.StringChoice( - "Field orientation", default="z", choices=["z"] + "Field orientation", default="z", choices=["x", "y", "z"] ) field_type = properties.StringChoice( diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 555f1a8..13c6539 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -269,7 +269,7 @@ def compute_integral(self, m, output_type='response'): if output_type == 'response': # for forward simulation if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( + hz = h_kernel_vertical_magnetic_dipole( self, lambd, f, n_layer, sig, chi, h, z, flag, I, output_type=output_type @@ -277,7 +277,14 @@ def compute_integral(self, m, output_type='response'): # kernels for each bessel function # (j0, j1, j2) - PJ = (hz, None, None) # PJ0 + if rx.orientation == 'x': + hz *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) + PJ = (None, hz, None) # PJ1 + elif rx.orientation == 'y': + hz *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) + PJ = (None, hz, None) # PJ1 + elif rx.orientation == 'z': + PJ = (hz, None, None) # PJ0 elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): hz = hz_kernel_circular_loop( diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index e799161..d25538a 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -518,25 +518,30 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): -def hz_kernel_vertical_magnetic_dipole( +def h_kernel_vertical_magnetic_dipole( simulation, lamda, f, n_layer, sig, chi, h, z, flag, I, output_type='response' ): """ - Kernel for vertical magnetic component (Hz) due to - vertical magnetic diopole (VMD) source in (kx,ky) domain + Kernel for vertical (Hz) and radial (Hrho) magnetic component due to + vertical magnetic diopole (VMD) source in (kx,ky) domain. .. math:: - H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} - \\r_{TE} e^{u_0|z-h|} - \\frac{\\lambda^3}{u_0} J_0(\\lambda r) d \\lambda + H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda + + and + + .. math:: + + H_{\\rho} = - \\frac{m}{4\\pi} \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_1(\\lambda r) d \\lambda """ - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 + coefficient_wavenumber = 1/(4*np.pi)*lamda**2 n_frequency = len(f) n_filter = simulation.n_filter @@ -558,7 +563,7 @@ def hz_kernel_vertical_magnetic_dipole( n_layer, n_frequency, n_filter ) - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + kernel = drTE * np.exp(-lamda*(z+h)) * coefficient_wavenumber else: rTE = np.empty( [n_frequency, n_filter], dtype=np.complex128, order='F' @@ -575,9 +580,9 @@ def hz_kernel_vertical_magnetic_dipole( rTE, n_layer, n_frequency, n_filter ) - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber + kernel = rTE * np.exp(-lamda*(z+h)) * coefficient_wavenumber if output_type == 'sensitivity_height': - kernel *= -2*u0 + kernel *= -2*lamda return kernel * I diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index f3d09af..9eb722a 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -34,7 +34,7 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location = np.array([0.1, 0., 10.]) +receiver_location = np.array([10., 0., 10.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -44,14 +44,28 @@ receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation=receiver_orientation, + receiver_location, frequencies, orientation='x', field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation=receiver_orientation, + receiver_location, frequencies, orientation='x', + field_type=field_type, component="imag" + ) +) + +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation='z', + field_type=field_type, component="real" + ) +) + +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation='z', field_type=field_type, component="imag" ) ) @@ -66,12 +80,12 @@ ) ) -source_list.append( - em1d.sources.HarmonicHorizontalLoopSource( - receiver_list=receiver_list, location=source_location, - a=source_radius, I=source_current - ) -) +#source_list.append( +# em1d.sources.HarmonicHorizontalLoopSource( +# receiver_list=receiver_list, location=source_location, +# a=source_radius, I=source_current +# ) +#) #source_list.append( # em1d.sources.HarmonicLineSource( @@ -139,8 +153,8 @@ fig, ax = plt.subplots(1,1, figsize = (7, 7)) -ax.loglog(frequencies, np.abs(dpred[:,0]), 'b-o', lw=2) -ax.loglog(frequencies, np.abs(dpred[:,1]), 'b--o', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,0]), 'b-', lw=2) +ax.loglog(frequencies, np.abs(dpred[:,1]), 'b--', lw=2) ax.loglog(frequencies, np.abs(dpred[:,2]), 'r-', lw=2) ax.loglog(frequencies, np.abs(dpred[:,3]), 'r--', lw=2) ax.set_xlabel("Frequency (Hz)") From 215b5e2124c6c35ad0488b0b69f9bd8359854b69 Mon Sep 17 00:00:00 2001 From: dccowan Date: Sat, 6 Jun 2020 00:58:40 -0700 Subject: [PATCH 16/54] Add all cartesian permutations for dipole sources and receivers. Stability for certain special cases not managed. --- simpegEM1D/simulation.py | 46 +++++++++++----- simpegEM1D/sources.py | 2 +- simpegEM1D/supporting_functions/kernels.py | 63 ++++++++++++++++++---- tutorials/plot_1_fdem_fwd_sources.py | 24 ++++++--- 4 files changed, 101 insertions(+), 34 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 13c6539..ab311d8 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -263,28 +263,46 @@ def compute_integral(self, m, output_type='response'): # Compute receiver height h = h_vector[ii] z = h + src.location[2] - rx.locations[2] - - flag = rx.field_type if output_type == 'response': # for forward simulation if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = h_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, h, z, - flag, I, output_type=output_type + PJ = magnetic_dipole_kernel( + self, lambd, f, n_layer, sig, chi, h, z, I, + src.orientation, rx.orientation, output_type=output_type ) # kernels for each bessel function # (j0, j1, j2) - if rx.orientation == 'x': - hz *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) - PJ = (None, hz, None) # PJ1 - elif rx.orientation == 'y': - hz *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) - PJ = (None, hz, None) # PJ1 - elif rx.orientation == 'z': - PJ = (hz, None, None) # PJ0 + if src.orientation == "z": + if rx.orientation == "x": + PJ[1] *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) + elif rx.orientation == "y": + PJ[1] *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) + # "z" component doesn't need multplier + elif src.orientation == "x": + rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + if rx.orientation == "x": + PJ[0] *= rx.locations[0]**2/rho**2 + PJ[1] *= (1/rho - 2*rx.locations[0]**2/rho**3) + elif rx.orienation == "y": + PJ[0] *= rx.locations[0]*rx.locations[1]/rho**2 + PJ[1] *= -2*rx.locations[0]*rx.locations[1]/rho**3 + elif rx.orientation == "z": + PJ[1] *= rx.locations[0]/rho + elif src.orientation == "y": + rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + if rx.orientation == "x": + PJ[0] *= -rx.locations[0]*rx.locations[1]/rho**2 + PJ[1] *= 2*rx.locations[0]*rx.locations[1]/rho**3 + elif rx.orientation == "y": + PJ[0] *= rx.locations[1]**2/rho**2 + PJ[1] *= (1/rho - 2*rx.locations[1]**2/rho**3) + elif rx.orientation == "z": + PJ[1] *= rx.locations[1]/rho + + PJ = tuple(PJ) + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): hz = hz_kernel_circular_loop( diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index c34f767..a25c6d5 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -59,7 +59,7 @@ def __init__(self, receiver_list=None, **kwargs): class HarmonicMagneticDipoleSource(BaseSrc): orientation = properties.StringChoice( - "Dipole Orientation", default="z", choices=["z"] + "Dipole Orientation", default="z", choices=["x", "y", "z"] ) def __init__(self, receiver_list=None, **kwargs): diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index d25538a..48f0832 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -518,30 +518,59 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): -def h_kernel_vertical_magnetic_dipole( - simulation, lamda, f, n_layer, sig, chi, h, z, - flag, I, output_type='response' +def magnetic_dipole_kernel( + simulation, lamda, f, n_layer, sig, chi, h, z, I, + src_orientation, rx_orientation, output_type='response' ): """ Kernel for vertical (Hz) and radial (Hrho) magnetic component due to vertical magnetic diopole (VMD) source in (kx,ky) domain. + + For vertical magnetic dipole: .. math:: - H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + H_z = \\frac{m}{4\\pi} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} \\lambda^2 J_0(\\lambda r) d \\lambda - and + .. math:: + + H_{\\rho} = - \\frac{m}{4\\pi} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_1(\\lambda r) d \\lambda + + For horizontal magnetic dipole: + + .. math:: + + H_x = \\frac{m}{4\\pi} \\Bigg \\frac{1}{\\rho} -\\frac{2x^2}{\\rho^3} \\Bigg ) + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda J_1(\\lambda r) d \\lambda + + \\frac{m}{4\\pi} \\frac{x^2}{\\rho^2} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda .. math:: - H_{\\rho} = - \\frac{m}{4\\pi} \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + H_y = - \\frac{m}{4\\pi} \\frac{2xy}{\\rho^3} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda J_1(\\lambda r) d \\lambda + + \\frac{m}{4\\pi} \\frac{xy}{\\rho^2} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda + + .. math:: + + H_z = \\frac{m}{4\\pi} \\frac{x}{\\rho} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} \\lambda^2 J_1(\\lambda r) d \\lambda """ - coefficient_wavenumber = 1/(4*np.pi)*lamda**2 + # coefficient_wavenumber = 1/(4*np.pi)*lamda**2 + C = I/(4*np.pi) n_frequency = len(f) n_filter = simulation.n_filter @@ -563,7 +592,7 @@ def h_kernel_vertical_magnetic_dipole( n_layer, n_frequency, n_filter ) - kernel = drTE * np.exp(-lamda*(z+h)) * coefficient_wavenumber + temp = drTE * np.exp(-lamda*(z+h)) else: rTE = np.empty( [n_frequency, n_filter], dtype=np.complex128, order='F' @@ -580,11 +609,23 @@ def h_kernel_vertical_magnetic_dipole( rTE, n_layer, n_frequency, n_filter ) - kernel = rTE * np.exp(-lamda*(z+h)) * coefficient_wavenumber + temp = rTE * np.exp(-lamda*(z+h)) if output_type == 'sensitivity_height': - kernel *= -2*lamda + temp *= -2*lamda + + + if src_orientation == "z": + if rx_orientation == "z": + kernels = [C * lamda**2 * temp, None, None] + else: + kernels = [None, C * lamda**2 * temp, None] + else: + if rx_orientation == "z": + kernels = [None, C * lamda**2 * temp, None] + else: + kernels = [C * lamda**2 * temp, C * lamda *temp, None] - return kernel * I + return kernels # Note # Here only computes secondary field. diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index 9eb722a..5f8e479 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -26,7 +26,7 @@ # # -source_location = np.array([0., 0., 10.]) +source_location = np.array([0., 0., 5.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = np.sqrt(1/np.pi) @@ -34,7 +34,8 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location = np.array([10., 0., 10.]) +receiver_location_1 = np.array([0., 0., 10.]) +receiver_location_2 = np.array([0., 0., 10.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -44,28 +45,28 @@ receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation='x', + receiver_location_1, frequencies, orientation='x', field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation='x', + receiver_location_1, frequencies, orientation='x', field_type=field_type, component="imag" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation='z', + receiver_location_2, frequencies, orientation='y', field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation='z', + receiver_location_2, frequencies, orientation='y', field_type=field_type, component="imag" ) ) @@ -75,8 +76,15 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, - orientation=source_orientation, I=source_current + receiver_list=receiver_list[0:2], location=source_location, + orientation="x", I=source_current + ) +) + +source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list[2:], location=source_location, + orientation="y", I=source_current ) ) From 478d9dca9c2af2d6bd883c53e51544d016751330 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 16 Jun 2020 16:01:50 -0700 Subject: [PATCH 17/54] Try to make special case for dipole source when rho-->0 --- simpegEM1D/simulation.py | 188 +++++++-------------- simpegEM1D/sources.py | 7 - simpegEM1D/supporting_functions/kernels.py | 181 ++++++++++++++++---- tutorials/assets/em1dfm_data.obs | 10 +- tutorials/assets/em1dtm_data.obs | 62 +++---- tutorials/plot_1_fdem_fwd_sources.py | 19 ++- tutorials/plot_1_tdem_fwd.py | 22 +-- tutorials/plot_1_tdem_fwd_chargeable.py | 6 +- tutorials/plot_1_tdem_fwd_waveforms.py | 14 +- 9 files changed, 283 insertions(+), 226 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index ab311d8..5f192eb 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -246,157 +246,99 @@ def compute_integral(self, m, output_type='response'): # Create globally, not for each receiver sig = self.sigma_cole(rx.frequencies) - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - r = src.location[0:2] - rx.locations[0:2] - r = np.sqrt(np.sum(r**2)) * np.ones(n_frequency) - else: - # a is the radius of the loop - r = src.a * np.ones(n_frequency) - - # Use function from empymod - # size of lambd is (n_frequency x n_filter) - lambd = np.empty([n_frequency, n_filter], order='F') - lambd[:, :], _ = get_dlf_points( - self.fhtfilt, r, self.hankel_pts_per_dec - ) - # Compute receiver height h = h_vector[ii] z = h + src.location[2] - rx.locations[2] - - if output_type == 'response': - # for forward simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - PJ = magnetic_dipole_kernel( - self, lambd, f, n_layer, sig, chi, h, z, I, - src.orientation, rx.orientation, output_type=output_type - ) - # kernels for each bessel function - # (j0, j1, j2) - if src.orientation == "z": - if rx.orientation == "x": - PJ[1] *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) - elif rx.orientation == "y": - PJ[1] *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) - # "z" component doesn't need multplier - elif src.orientation == "x": - rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) - if rx.orientation == "x": - PJ[0] *= rx.locations[0]**2/rho**2 - PJ[1] *= (1/rho - 2*rx.locations[0]**2/rho**3) - elif rx.orienation == "y": - PJ[0] *= rx.locations[0]*rx.locations[1]/rho**2 - PJ[1] *= -2*rx.locations[0]*rx.locations[1]/rho**3 - elif rx.orientation == "z": - PJ[1] *= rx.locations[0]/rho - elif src.orientation == "y": - rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) - if rx.orientation == "x": - PJ[0] *= -rx.locations[0]*rx.locations[1]/rho**2 - PJ[1] *= 2*rx.locations[0]*rx.locations[1]/rho**3 - elif rx.orientation == "y": - PJ[0] *= rx.locations[1]**2/rho**2 - PJ[1] *= (1/rho - 2*rx.locations[1]**2/rho**3) - elif rx.orientation == "z": - PJ[1] *= rx.locations[1]/rho + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - PJ = tuple(PJ) - + # Radial distance + r = src.location[0:2] - rx.locations[0:2] + r = np.sqrt(np.sum(r**2)) + + if r > 0.01: + + r_vec = r * np.ones(n_frequency) - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, h, z, I, r, - flag, output_type=output_type + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, r_vec, self.hankel_pts_per_dec ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - - # TODO: This has not implemented yet! - elif isinstance(src, HarmonicLineSource) | isinstance(src, TimeDomainLineSource): - # Need to compute y - hz = hz_kernel_horizontal_electric_dipole( - self, lambd, f, n_layer, - sig, chi, h, z, I, r, - flag, output_type=output_type + # Get kernel function at all lambda and frequencies + PJ = magnetic_dipole_kernel( + self, lambd, f, n_layer, sig, chi, I, h, z, r, + src, rx, output_type ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - else: - raise Exception("Src options are only VMD or CircularLoop!!") + PJ = tuple(PJ) - elif output_type == 'sensitivity_sigma': + if output_type=="sensitivity_sigma": + r_vec = np.tile(r_vec, (n_layer, 1)) - # for simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, h, z, - flag, I, output_type=output_type + integral_output = dlf( + PJ, lambd, r_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 ) - PJ = (hz, None, None) # PJ0 + # elif src.orientation == "z": - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, h, z, I, r, - flag, output_type=output_type - ) + # z_vec = -1j *z * np.ones(n_frequency) - PJ = (None, hz, None) # PJ1 + # # Use function from empymod + # # size of lambd is (n_frequency x n_filter) + # lambd = np.empty([n_frequency, n_filter], order='F') + # lambd[:, :], _ = get_dlf_points( + # self.fhtfilt, z_vec, self.hankel_pts_per_dec + # ) - else: - raise Exception("Src options are only VMD or CircularLoop!!") + # PJ = magnetic_dipole_fourier( + # self, lambd, f, n_layer, sig, chi, I, h, z, r, + # src, rx, output_type + # ) - r = np.tile(r, (n_layer, 1)) + # integral_output = fourier_dlf( + # PJ, lambd, z_vec, filters.key_201_2009(kind='sin'), self.hankel_pts_per_dec + # ) - elif output_type == 'sensitivity_height': - # for simulation - if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, h, z, - flag, I, output_type=output_type - ) - - PJ = (hz, None, None) # PJ0 - elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, h, z, I, r, - flag, output_type=output_type - ) + elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): + + # radial distance and loop radius + r = src.location[0:2] - rx.locations[0:2] + r_vec = np.sqrt(np.sum(r**2)) * np.ones(n_frequency) + a_vec = src.a * np.ones(n_frequency) + + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, a_vec, self.hankel_pts_per_dec + ) - PJ = (None, hz, None) # PJ1 + hz = horizontal_loop_kernel( + self, lambd, f, n_layer, + sig, chi, I, a_vec, h, z, r, + rx.orientation, output_type + ) - else: - raise Exception("Src options are only VMD or CircularLoop!!") + # kernels for each bessel function + # (j0, j1, j2) + PJ = (None, hz, None) # PJ1 - # Carry out Hankel DLF - # ab=66 => 33 (vertical magnetic src and rec) - # For response - # HzFHT size = (n_frequency,) - # For sensitivity - # HzFHT size = (n_layer, n_frequency) + if output_type=="sensitivity_sigma": + a_vec = np.tile(a_vec, (n_layer, 1)) - HzFHT = dlf( - PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 - ) + integral_output = dlf( + PJ, lambd, a_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 + ) if output_type == "sensitivity_sigma": - fields_list.append(HzFHT.T) + fields_list.append(integral_output.T) else: - fields_list.append(HzFHT) + fields_list.append(integral_output) return fields_list diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index a25c6d5..b1b36d5 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -287,13 +287,6 @@ def __init__(self, receiver_list=None, **kwargs): super(BaseTimeSrc, self).__init__(receiver_list=receiver_list, **kwargs) - - - - - - - @property def period(self): return 1./self.base_frequency diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 48f0832..1be4f5d 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -519,8 +519,8 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): def magnetic_dipole_kernel( - simulation, lamda, f, n_layer, sig, chi, h, z, I, - src_orientation, rx_orientation, output_type='response' + simulation, lamda, f, n_layer, sig, chi, I, h, z, r, + src, rx, output_type='response' ): """ @@ -575,6 +575,7 @@ def magnetic_dipole_kernel( n_frequency = len(f) n_filter = simulation.n_filter + # COMPUTE TE-MODE REFLECTION COEFFICIENT if output_type == 'sensitivity_sigma': drTE = np.zeros( [n_layer, n_frequency, n_filter], @@ -613,46 +614,171 @@ def magnetic_dipole_kernel( if output_type == 'sensitivity_height': temp *= -2*lamda - - if src_orientation == "z": - if rx_orientation == "z": + # COMPUTE KERNEL FUNCTIONS FOR HANKEL TRANSFORM + if src.orientation == "z": + if rx.orientation == "z": kernels = [C * lamda**2 * temp, None, None] - else: + elif rx.orientation == "x": + C *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) kernels = [None, C * lamda**2 * temp, None] - else: - if rx_orientation == "z": + elif rx.orientation == "y": + C *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) kernels = [None, C * lamda**2 * temp, None] - else: - kernels = [C * lamda**2 * temp, C * lamda *temp, None] + elif src.orientation == "x": + rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + if rx.orientation == "z": + C *= rx.locations[0]/rho + kernels = [None, C * lamda**2 * temp, None] + elif rx.orientation == "x": + C0 = C * rx.locations[0]**2/rho**2 + C1 = C * (1/rho - 2*rx.locations[0]**2/rho**3) + kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] + elif rx.orientation == "y": + C0 = C * rx.locations[0]*rx.locations[1]/rho**2 + C1 = C * -2*rx.locations[0]*rx.locations[1]/rho**3 + kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] + elif src.orientation == "z": + rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + if rx.orientation == "z": + C *= rx.locations[1]/rho + kernels = [None, C * lamda**2 * temp, None] + elif rx.orientation == "x": + C0 = C * -rx.locations[0]*rx.locations[1]/rho**2 + C1 = C * 2*rx.locations[0]*rx.locations[1]/rho**3 + kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] + elif rx.orientation == "y": + C0 = C * rx.locations[1]**2/rho**2 + C1 = C * (1/rho - 2*rx.locations[1]**2/rho**3) + kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] + return kernels - # Note - # Here only computes secondary field. - # I am not sure why it does not work if we add primary term. - # This term can be analytically evaluated, where h = 0. - # kernel = ( - # 1./(4*np.pi) * - # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 - # ) -# TODO: make this to take a vector rather than a single frequency -def hz_kernel_circular_loop( - simulation, lamda, f, n_layer, sig, chi, h, z, I, a, - flag, output_type='response' +def magnetic_dipole_fourier( + simulation, lamda, f, n_layer, sig, chi, I, h, z, r, + src, rx, output_type='response' ): """ + Kernel for vertical (Hz) and radial (Hrho) magnetic component due to + vertical magnetic diopole (VMD) source in (kx,ky) domain. + + For vertical magnetic dipole: + + .. math:: + + H_z = \\frac{m}{4\\pi} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda + + .. math:: + + H_{\\rho} = - \\frac{m}{4\\pi} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_1(\\lambda r) d \\lambda + + For horizontal magnetic dipole: - Kernel for vertical magnetic component (Hz) at the center - due to circular loop source in (kx,ky) domain + .. math:: + + H_x = \\frac{m}{4\\pi} \\Bigg \\frac{1}{\\rho} -\\frac{2x^2}{\\rho^3} \\Bigg ) + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda J_1(\\lambda r) d \\lambda + + \\frac{m}{4\\pi} \\frac{x^2}{\\rho^2} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda .. math:: + H_y = - \\frac{m}{4\\pi} \\frac{2xy}{\\rho^3} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda J_1(\\lambda r) d \\lambda + + \\frac{m}{4\\pi} \\frac{xy}{\\rho^2} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_0(\\lambda r) d \\lambda + + .. math:: + + H_z = \\frac{m}{4\\pi} \\frac{x}{\\rho} + \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} + \\lambda^2 J_1(\\lambda r) d \\lambda + + """ + + # coefficient_wavenumber = 1/(4*np.pi)*lamda**2 + C = I/(4*np.pi) + + n_frequency = len(f) + n_filter = simulation.n_filter + + # COMPUTE TE-MODE REFLECTION COEFFICIENT + if output_type == 'sensitivity_sigma': + drTE = np.zeros( + [n_layer, n_frequency, n_filter], + dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = simulation.thicknesses + drTE = rTEfunjac( + n_layer, f, lamda, sig, chi, thick, simulation.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_sensitivity( + f, lamda, sig, chi, depth, simulation.half_switch, drTE, + n_layer, n_frequency, n_filter + ) + + temp = drTE * np.exp(-lamda*(z+h)) + else: + rTE = np.empty( + [n_frequency, n_filter], dtype=np.complex128, order='F' + ) + if rte_fortran is None: + thick = simulation.thicknesses + rTE = rTEfunfwd( + n_layer, f, lamda, sig, chi, thick, simulation.half_switch + ) + else: + depth = simulation.depth + rte_fortran.rte_forward( + f, lamda, sig, chi, depth, simulation.half_switch, + rTE, n_layer, n_frequency, n_filter + ) + + if output_type == 'sensitivity_height': + rTE *= -2*lamda + + # COMPUTE KERNEL FUNCTIONS FOR FOURIER TRANSFORM + return C * lamda**2 * rTE + +# TODO: make this to take a vector rather than a single frequency +def horizontal_loop_kernel( + simulation, lamda, f, n_layer, sig, chi, I, a, h, z, r, + rx_orientation="z", output_type='response' +): + + """ + + Kernel for vertical (Hz) and radial (Hrho) magnetic component due to + horizontal cirular loop source in (kx,ky) domain. + + For the vertical component: + + .. math:: H_z = \\frac{Ia}{2} \\int_0^{\\infty} \\r_{TE}e^{u_0|z-h|}] \\frac{\\lambda^2}{u_0} J_1(\\lambda a) J_0(\\lambda r) d \\lambda + For the radial component: + + .. math:: + H_{\\rho} = - \\frac{Ia}{2} \\int_0^{\\infty} + \\r_{TE}e^{u_0|z-h|}] \\lambda + J_1(\\lambda a) J_1(\\lambda r) d \\lambda + + """ n_frequency = len(f) @@ -699,12 +825,7 @@ def hz_kernel_circular_loop( rTE, n_layer, n_frequency, n_filter ) - if flag == 'secondary': - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - kernel = rTE * ( - np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) - ) * coefficient_wavenumber + kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber if output_type == 'sensitivity_height': kernel *= -2*u0 diff --git a/tutorials/assets/em1dfm_data.obs b/tutorials/assets/em1dfm_data.obs index 571f710..aa6e5c0 100644 --- a/tutorials/assets/em1dfm_data.obs +++ b/tutorials/assets/em1dfm_data.obs @@ -1,5 +1,5 @@ -3.8200e+02 9.2837e+02 7.3866e+02 -1.8220e+03 1.7197e+03 1.1037e+03 -7.9700e+03 2.9952e+03 1.9864e+03 -3.5920e+04 5.6046e+03 1.9473e+03 -1.3010e+05 7.1229e+03 1.3633e+03 +3.8200e+02 9.2555e+02 7.3333e+02 +1.8220e+03 1.6882e+03 1.1341e+03 +7.9700e+03 3.0924e+03 1.9300e+03 +3.5920e+04 5.4375e+03 2.0141e+03 +1.3010e+05 6.8405e+03 1.3363e+03 diff --git a/tutorials/assets/em1dtm_data.obs b/tutorials/assets/em1dtm_data.obs index e3167cd..c6e5455 100644 --- a/tutorials/assets/em1dtm_data.obs +++ b/tutorials/assets/em1dtm_data.obs @@ -1,31 +1,31 @@ -1.0000e-05 6.0424e-07 -1.2589e-05 5.4259e-07 -1.5849e-05 4.6850e-07 -1.9953e-05 3.9459e-07 -2.5119e-05 3.3877e-07 -3.1623e-05 2.8420e-07 -3.9811e-05 2.3366e-07 -5.0119e-05 1.9199e-07 -6.3096e-05 1.5131e-07 -7.9433e-05 1.2753e-07 -1.0000e-04 1.0592e-07 -1.2589e-04 8.8744e-08 -1.5849e-04 7.6705e-08 -1.9953e-04 6.4267e-08 -2.5119e-04 5.8578e-08 -3.1623e-04 5.1666e-08 -3.9811e-04 4.4620e-08 -5.0119e-04 3.9279e-08 -6.3096e-04 3.4974e-08 -7.9433e-04 2.9832e-08 -1.0000e-03 2.5995e-08 -1.2589e-03 2.1381e-08 -1.5849e-03 1.7777e-08 -1.9953e-03 1.4320e-08 -2.5119e-03 1.0753e-08 -3.1623e-03 8.0587e-09 -3.9811e-03 6.1455e-09 -5.0119e-03 4.3226e-09 -6.3096e-03 3.0812e-09 -7.9433e-03 2.0688e-09 -1.0000e-02 1.4080e-09 +1.0000e-05 7.1363e-05 +1.2589e-05 6.1904e-05 +1.5849e-05 5.3582e-05 +1.9953e-05 4.7167e-05 +2.5119e-05 3.8185e-05 +3.1623e-05 3.2276e-05 +3.9811e-05 2.7285e-05 +5.0119e-05 2.1858e-05 +6.3096e-05 1.7959e-05 +7.9433e-05 1.4427e-05 +1.0000e-04 1.2149e-05 +1.2589e-04 1.0283e-05 +1.5849e-04 8.4535e-06 +1.9953e-04 7.6155e-06 +2.5119e-04 6.7671e-06 +3.1623e-04 5.9066e-06 +3.9811e-04 5.0983e-06 +5.0119e-04 4.5976e-06 +6.3096e-04 3.8836e-06 +7.9433e-04 3.4144e-06 +1.0000e-03 2.9740e-06 +1.2589e-03 2.4130e-06 +1.5849e-03 1.9717e-06 +1.9953e-03 1.5592e-06 +2.5119e-03 1.2031e-06 +3.1623e-03 9.3813e-07 +3.9811e-03 6.7352e-07 +5.0119e-03 4.8311e-07 +6.3096e-03 3.4088e-07 +7.9433e-03 2.2758e-07 +1.0000e-02 1.5616e-07 diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index 5f8e479..bec0d2b 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -18,7 +18,8 @@ from SimPEG import maps import simpegEM1D as em1d - +from empymod.transform import dlf, fourier_dlf, get_dlf_points +from empymod import filters ##################################################################### # Create Survey @@ -34,8 +35,8 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location_1 = np.array([0., 0., 10.]) -receiver_location_2 = np.array([0., 0., 10.]) +receiver_location_1 = np.array([0.1, 0., 0.5]) +receiver_location_2 = np.array([0., 0., 0.5]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -45,28 +46,28 @@ receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location_1, frequencies, orientation='x', + receiver_location_1, frequencies, orientation='z', field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location_1, frequencies, orientation='x', + receiver_location_1, frequencies, orientation='z', field_type=field_type, component="imag" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location_2, frequencies, orientation='y', + receiver_location_2, frequencies, orientation='z', field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location_2, frequencies, orientation='y', + receiver_location_2, frequencies, orientation='z', field_type=field_type, component="imag" ) ) @@ -77,14 +78,14 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list[0:2], location=source_location, - orientation="x", I=source_current + orientation="z", I=source_current ) ) source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list[2:], location=source_location, - orientation="y", I=source_current + orientation="z", I=source_current ) ) diff --git a/tutorials/plot_1_tdem_fwd.py b/tutorials/plot_1_tdem_fwd.py index 1830b84..c353fe2 100644 --- a/tutorials/plot_1_tdem_fwd.py +++ b/tutorials/plot_1_tdem_fwd.py @@ -36,7 +36,7 @@ source_current = 1. source_radius = 6. -receiver_location = np.array([10., 0., 20.]) +receiver_location = np.array([0., 0., 20.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -52,20 +52,20 @@ ) # Sources -#source_list = [ -# em1d.sources.TimeDomainHorizontalLoopSource( -# receiver_list=receiver_list, location=source_location, -# I=source_current, a=source_radius -# ) -#] - source_list = [ - em1d.sources.TimeDomainMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, a=source_radius ) ] +#source_list = [ +# em1d.sources.TimeDomainMagneticDipoleSource( +# receiver_list=receiver_list, location=source_location, orientation="z", +# I=source_current +# ) +#] + # Survey survey = em1d.survey.EM1DSurveyTD(source_list) diff --git a/tutorials/plot_1_tdem_fwd_chargeable.py b/tutorials/plot_1_tdem_fwd_chargeable.py index 337d441..f687eed 100644 --- a/tutorials/plot_1_tdem_fwd_chargeable.py +++ b/tutorials/plot_1_tdem_fwd_chargeable.py @@ -27,7 +27,7 @@ # # -source_location = np.array([0., 0., 0.]) +source_location = np.array([10., 0., 0.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = 10. @@ -55,9 +55,9 @@ # Sources source_list = [ - em1d.sources.TimeDomainHorizontalLoopSource( + em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - I=source_current, a=source_radius + I=source_current, orientation=source_orientation ) ] diff --git a/tutorials/plot_1_tdem_fwd_waveforms.py b/tutorials/plot_1_tdem_fwd_waveforms.py index 83e1e98..75a3340 100644 --- a/tutorials/plot_1_tdem_fwd_waveforms.py +++ b/tutorials/plot_1_tdem_fwd_waveforms.py @@ -33,7 +33,7 @@ source_current = 1. source_radius = 10. -receiver_location = np.array([0., 0., 0.]) +receiver_location = np.array([10., 0., 0.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -52,9 +52,9 @@ # Step off source_list.append( - em1d.sources.TimeDomainHorizontalLoopSource( + em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - I=source_current, a=source_radius, wave_type="stepoff" + orientation=source_orientation, I=source_current, wave_type="stepoff" ) ) @@ -62,10 +62,10 @@ time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) source_list.append( - em1d.sources.TimeDomainHorizontalLoopSource( + em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, I=source_current, - a=source_radius, + orientation=source_orientation, wave_type="general", time_input_currents=time_input_currents, input_currents=input_currents, @@ -80,10 +80,10 @@ time_input_currents_2 = np.r_[-np.logspace(-2, -5, 31), 0.] input_currents_2 = VTEMFun(time_input_currents+0.01, 8e-3, 0.01, 1) source_list.append( - em1d.sources.TimeDomainHorizontalLoopSource( + em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, I=source_current, - a=source_radius, + orientation=source_orientation, wave_type="general", time_input_currents=time_input_currents_2, input_currents=input_currents_2, From 7c2d9d4c2df6bcb8c5117df2b8fba7c75ea9bce9 Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 17 Jun 2020 14:21:36 -0700 Subject: [PATCH 18/54] improvements to stitched 1D tutorials --- simpegEM1D/simulation.py | 2 +- tutorials/assets/em1dfm_stitched_data.obs | 600 +++--- tutorials/assets/em1dtm_stitched_data.obs | 2100 ++++++++++----------- tutorials/plot_2_fdem_fwd_stitched.py | 12 +- tutorials/plot_2_fdem_inv_stitched.py | 113 +- tutorials/plot_2_tdem_fwd_stitched.py | 32 +- tutorials/plot_2_tdem_inv_stitched.py | 65 +- 7 files changed, 1447 insertions(+), 1477 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 5f192eb..9d03686 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -328,7 +328,7 @@ def compute_integral(self, m, output_type='response'): # (j0, j1, j2) PJ = (None, hz, None) # PJ1 - if output_type=="sensitivity_sigma": + if output_type == "sensitivity_sigma": a_vec = np.tile(a_vec, (n_layer, 1)) integral_output = dlf( diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index 1d7bcc4..ed6be07 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.3012e+01 6.7463e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 2.1576e+02 4.7701e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.2404e+03 3.6018e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 4.9305e+01 1.3995e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.8866e+02 5.7869e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5061e+03 2.1432e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.3076e+01 6.8127e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2876e+02 5.0693e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2549e+03 3.4573e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.9864e+01 1.3710e+02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6788e+02 5.8596e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5692e+03 2.1636e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.2342e+01 6.6388e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.1019e+02 4.9109e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2889e+03 3.5716e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 4.8954e+01 1.4234e+02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6868e+02 5.9486e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5206e+03 2.1387e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4947e+01 7.5491e+01 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2790e+02 4.8776e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2813e+03 3.4160e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5489e+01 1.4466e+02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6982e+02 6.0764e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5012e+03 2.3387e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4193e+01 7.4728e+01 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3134e+02 4.6685e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3021e+03 3.3100e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.2864e+01 1.4398e+02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6267e+02 6.3182e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5403e+03 2.2703e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4415e+01 7.9282e+01 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2697e+02 4.7835e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3551e+03 3.5343e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5080e+01 1.4334e+02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5783e+02 5.7616e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6040e+03 2.2859e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5128e+01 7.7276e+01 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3025e+02 4.7961e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3492e+03 3.3762e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.4557e+01 1.4665e+02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.8237e+02 6.0181e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5368e+03 2.2052e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4463e+01 7.8678e+01 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2812e+02 4.9378e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2513e+03 3.3235e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.1343e+01 1.4344e+02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5849e+02 5.9443e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.4647e+03 2.1849e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5087e+01 7.4468e+01 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.2496e+02 4.7993e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3490e+03 3.5434e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.5174e+01 1.4342e+02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.6442e+02 5.9724e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.4862e+03 2.1513e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6507e+01 8.2777e+01 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 2.3224e+02 4.9433e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3411e+03 3.6207e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 5.6529e+01 1.4043e+02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.5940e+02 6.2655e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5714e+03 2.1557e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6570e+01 8.8690e+01 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3920e+02 4.7482e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2536e+03 3.4212e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.5965e+01 1.4995e+02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6502e+02 6.2301e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5426e+03 2.2380e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7565e+01 8.6073e+01 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4280e+02 4.7965e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3231e+03 3.3852e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7008e+01 1.4158e+02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6835e+02 6.1898e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5981e+03 2.1731e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6449e+01 8.9891e+01 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4087e+02 4.8362e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3098e+03 3.4446e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.5339e+01 1.4780e+02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.7015e+02 6.2895e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5677e+03 2.2693e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7291e+01 8.8456e+01 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3086e+02 4.7462e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3054e+03 3.3616e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7383e+01 1.4931e+02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.7447e+02 6.2142e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5836e+03 2.1891e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6469e+01 8.9632e+01 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3432e+02 4.9330e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2936e+03 3.3953e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.6470e+01 1.3936e+02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6187e+02 6.2712e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4923e+03 2.1663e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6992e+01 8.8111e+01 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2422e+02 4.9933e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3392e+03 3.6232e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7651e+01 1.5184e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6574e+02 5.8554e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5953e+03 2.2056e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0210e+01 9.4898e+01 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3519e+02 4.6537e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2916e+03 3.3273e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7461e+01 1.4307e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6596e+02 6.0108e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5044e+03 2.2925e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9083e+01 9.1859e+01 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3501e+02 4.7288e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3408e+03 3.3614e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7815e+01 1.4586e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6191e+02 5.9662e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4768e+03 2.2741e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9006e+01 8.9831e+01 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3479e+02 4.5772e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2668e+03 3.4436e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.8091e+01 1.5168e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6291e+02 6.1754e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5204e+03 2.1857e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0189e+01 9.2292e+01 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3864e+02 4.7126e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2914e+03 3.4940e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2333e+01 1.4961e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5291e+02 6.2833e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5501e+03 2.3180e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9759e+01 9.5226e+01 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2559e+02 4.9144e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3344e+03 3.5553e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0395e+01 1.4128e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5664e+02 5.9024e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5021e+03 2.1411e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9453e+01 9.2531e+01 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2557e+02 4.9168e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3597e+03 3.5291e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.7704e+01 1.5193e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6069e+02 6.1357e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4835e+03 2.2802e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9539e+01 9.4396e+01 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2896e+02 4.9196e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2537e+03 3.3422e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.8638e+01 1.4725e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5045e+02 5.9138e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5117e+03 2.2929e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9288e+01 9.3859e+01 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3621e+02 4.9828e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2613e+03 3.4030e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1986e+01 1.4808e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6276e+02 5.7837e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5379e+03 2.3355e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2548e+01 9.9755e+01 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2626e+02 4.7558e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3094e+03 3.5558e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 5.9012e+01 1.4621e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6497e+02 5.9080e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6002e+03 2.1951e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1538e+01 9.7889e+01 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2695e+02 4.8784e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2670e+03 3.4175e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1380e+01 1.4605e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6225e+02 6.2514e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5280e+03 2.1896e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2250e+01 9.8301e+01 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4034e+02 4.7050e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3217e+03 3.4159e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1523e+01 1.4556e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5559e+02 5.8497e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5954e+03 2.1537e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0743e+01 1.0068e+02 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4145e+02 4.5902e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2912e+03 3.4019e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3408e+01 1.4430e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6458e+02 5.8805e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5722e+03 2.1857e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0965e+01 9.6642e+01 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3864e+02 4.7035e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2592e+03 3.5616e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1363e+01 1.3777e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5971e+02 6.0275e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5456e+03 2.2041e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0986e+01 1.0146e+02 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3198e+02 4.8709e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2465e+03 3.5761e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0884e+01 1.4896e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5596e+02 6.2336e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5097e+03 2.3079e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1903e+01 9.9147e+01 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3129e+02 4.9232e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3217e+03 3.4725e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4154e+01 1.3753e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5402e+02 6.1763e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5271e+03 2.1952e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2159e+01 9.7323e+01 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3276e+02 4.6237e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2377e+03 3.5738e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2030e+01 1.4130e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5591e+02 5.8127e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5328e+03 2.3021e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2077e+01 1.0148e+02 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2460e+02 4.6236e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3429e+03 3.5412e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0454e+01 1.5107e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6437e+02 6.1804e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5063e+03 2.3044e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3148e+01 1.0338e+02 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2312e+02 4.8769e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3089e+03 3.4037e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3732e+01 1.4136e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5679e+02 5.7816e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5055e+03 2.1474e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4787e+01 1.0365e+02 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2857e+02 4.9782e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2819e+03 3.4135e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3315e+01 1.4827e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6355e+02 6.2321e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5645e+03 2.2694e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3402e+01 1.0284e+02 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3554e+02 4.8648e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2415e+03 3.4159e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2831e+01 1.4419e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5996e+02 6.0537e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4811e+03 2.2135e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4043e+01 9.7731e+01 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2671e+02 4.6273e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3529e+03 3.5749e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3144e+01 1.3972e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6263e+02 5.8411e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5825e+03 2.3061e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2881e+01 1.0094e+02 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2310e+02 4.9931e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2978e+03 3.4051e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.2563e+01 1.4828e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5097e+02 6.1712e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5744e+03 2.1841e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3847e+01 1.0102e+02 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2916e+02 4.6978e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2436e+03 3.6283e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.5193e+01 1.3948e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5517e+02 5.8525e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5053e+03 2.2406e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2886e+01 9.5916e+01 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2830e+02 4.9088e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2671e+03 3.3743e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1530e+01 1.4662e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5934e+02 6.0380e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4678e+03 2.3207e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3988e+01 9.6768e+01 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3150e+02 4.7845e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2688e+03 3.3197e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1155e+01 1.3743e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5623e+02 6.1923e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5785e+03 2.3226e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3482e+01 1.0422e+02 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.2152e+02 4.6027e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3302e+03 3.4628e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3916e+01 1.3890e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5582e+02 6.1248e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5395e+03 2.1553e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6597e+01 1.0096e+02 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3402e+02 4.7106e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2451e+03 3.4933e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3421e+01 1.3493e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.4856e+02 6.0391e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5604e+03 2.3337e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6391e+01 1.0438e+02 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3327e+02 4.7918e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2539e+03 3.5167e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4969e+01 1.4450e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5907e+02 5.8501e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4638e+03 2.2736e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4784e+01 1.0281e+02 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3143e+02 4.9261e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2691e+03 3.3992e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.0901e+01 1.4627e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6556e+02 6.0809e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5346e+03 2.2404e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5557e+01 1.0002e+02 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3984e+02 4.7619e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3088e+03 3.3099e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.1979e+01 1.4542e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5196e+02 6.1605e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5113e+03 2.3144e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5343e+01 1.0304e+02 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.4195e+02 4.9710e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3353e+03 3.3140e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4196e+01 1.4488e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.4573e+02 5.9732e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4606e+03 2.3088e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4787e+01 1.0107e+02 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3487e+02 4.9190e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3403e+03 3.6198e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3880e+01 1.4354e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6397e+02 5.8520e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5529e+03 2.3105e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6350e+01 9.7237e+01 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3835e+02 4.6717e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2617e+03 3.4737e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.4726e+01 1.4390e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.6575e+02 5.8444e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4668e+03 2.3307e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4567e+01 1.0243e+02 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.3649e+02 4.6974e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2855e+03 3.5426e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.3710e+01 1.4099e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.5936e+02 6.3155e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.4820e+03 2.2434e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6056e+01 9.2459e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.6238e+02 8.3846e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5402e+03 3.2338e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.9740e+01 2.2772e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.3002e+02 6.5585e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2601e+03 2.3398e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5585e+01 9.5950e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7910e+02 9.0849e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4258e+03 3.3183e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.1140e+01 2.2699e+02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3886e+02 6.3611e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2660e+03 2.2878e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4943e+01 9.6309e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.6755e+02 8.8756e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5362e+03 3.4803e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3200e+01 2.2135e+02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4424e+02 6.6949e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2760e+03 2.1507e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7713e+01 1.1363e+02 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0705e+02 8.6445e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5292e+03 3.3724e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5522e+01 2.1780e+02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2057e+02 6.1033e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2761e+03 2.2750e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8357e+01 1.1162e+02 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8747e+02 9.0051e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5188e+03 3.3810e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9868e+01 2.3392e+02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1767e+02 6.4283e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2353e+03 2.2751e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8389e+01 1.1014e+02 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0557e+02 8.6566e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4825e+03 3.5411e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0350e+01 2.3182e+02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3662e+02 6.0383e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1815e+03 2.2872e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8470e+01 1.0454e+02 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0311e+02 8.6607e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4438e+03 3.3758e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9600e+01 2.3134e+02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3452e+02 6.4197e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2760e+03 2.3336e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0496e+01 1.1981e+02 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9817e+02 8.8252e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4308e+03 3.2706e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.3298e+01 2.3391e+02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1488e+02 6.1815e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2608e+03 2.2856e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0058e+01 1.1772e+02 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2212e+02 8.6709e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5321e+03 3.2362e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4705e+01 2.3788e+02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2652e+02 6.0962e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2872e+03 2.2465e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0763e+01 1.2164e+02 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1150e+02 8.3145e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4570e+03 3.2858e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.5805e+01 2.3088e+02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4193e+02 6.2843e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2324e+03 2.2094e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0493e+01 1.1841e+02 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9593e+02 8.6644e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4883e+03 3.2406e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4683e+01 2.2861e+02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3314e+02 6.0334e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2627e+03 2.2649e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1299e+01 1.2249e+02 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9522e+02 8.7373e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4696e+03 3.4470e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7172e+01 2.3237e+02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1095e+02 5.9996e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2649e+03 2.2644e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3815e+01 1.3275e+02 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0940e+02 8.7724e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4137e+03 3.5404e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4372e+01 2.4414e+02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0746e+02 6.3263e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2376e+03 2.2508e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3336e+01 1.3344e+02 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2984e+02 8.5970e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4136e+03 3.4301e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7399e+01 2.2733e+02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3139e+02 6.1425e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2827e+03 2.2932e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3661e+01 1.3455e+02 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1758e+02 8.8159e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5052e+03 3.5081e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7153e+01 2.4869e+02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1617e+02 6.3944e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2012e+03 2.1506e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2476e+01 1.3309e+02 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1782e+02 8.4182e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4972e+03 3.3481e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4629e+01 2.4038e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1759e+02 6.2989e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1819e+03 2.1909e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2092e+01 1.2932e+02 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0792e+02 8.9639e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5336e+03 3.2374e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6862e+01 2.4361e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2628e+02 6.5825e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2180e+03 2.3363e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3486e+01 1.2916e+02 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1934e+02 8.6113e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5350e+03 3.3609e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.5510e+01 2.3960e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0800e+02 6.4515e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2785e+03 2.1751e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6700e+01 1.4491e+02 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2751e+02 8.9755e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5503e+03 3.2487e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2771e+01 2.5016e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0226e+02 6.5962e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1818e+03 2.3268e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5522e+01 1.4381e+02 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3467e+02 9.0017e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4768e+03 3.2648e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3804e+01 2.4199e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8839e+02 6.4006e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1931e+03 2.1788e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5973e+01 1.3836e+02 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3653e+02 8.5956e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5170e+03 3.3386e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1187e+01 2.4635e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1945e+02 6.2825e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2521e+03 2.3101e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4935e+01 1.4295e+02 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1019e+02 8.6130e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4708e+03 3.4193e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0628e+01 2.4275e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8720e+02 6.1722e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2710e+03 2.2151e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4568e+01 1.4653e+02 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0252e+02 8.5263e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4879e+03 3.3906e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1020e+01 2.4572e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1478e+02 6.1553e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2574e+03 2.1563e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4766e+01 1.3576e+02 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1888e+02 8.7931e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4374e+03 3.2614e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8240e+01 2.4336e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9424e+02 6.1676e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2641e+03 2.2742e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7188e+01 1.4306e+02 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2444e+02 8.2525e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5150e+03 3.3518e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7591e+01 2.3855e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9569e+02 6.1509e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2815e+03 2.2537e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9086e+01 1.4157e+02 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1081e+02 8.3133e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4150e+03 3.2746e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6080e+01 2.3511e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1249e+02 6.1076e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2135e+03 2.3170e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7409e+01 1.5339e+02 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1313e+02 8.9212e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5442e+03 3.4537e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7096e+01 2.3733e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0397e+02 6.0491e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2134e+03 2.2545e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7166e+01 1.5093e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3598e+02 8.9355e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4611e+03 3.4607e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8688e+01 2.3769e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0908e+02 6.4150e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2700e+03 2.1834e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7797e+01 1.4320e+02 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3646e+02 8.9144e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4404e+03 3.4317e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7038e+01 2.3025e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0893e+02 6.5751e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2025e+03 2.3162e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8298e+01 1.4066e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3234e+02 8.2455e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5227e+03 3.4050e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6592e+01 2.3669e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1362e+02 6.0625e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2367e+03 2.2689e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7266e+01 1.5266e+02 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1975e+02 8.7698e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4511e+03 3.2902e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3136e+01 2.3632e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8131e+02 6.2188e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1859e+03 2.3494e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0729e+01 1.5320e+02 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1004e+02 8.5440e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4851e+03 3.3916e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7914e+01 2.4724e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9229e+02 6.1383e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1980e+03 2.2107e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1792e+01 1.4944e+02 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2923e+02 8.5902e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4977e+03 3.3351e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0104e+02 2.2832e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9125e+02 6.3954e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2717e+03 2.2004e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0672e+01 1.5064e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9945e+02 8.8057e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4661e+03 3.2586e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3668e+01 2.4228e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9598e+02 6.5404e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2230e+03 2.2820e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1890e+01 1.4519e+02 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2237e+02 8.5105e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4916e+03 3.3786e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7017e+01 2.3359e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9384e+02 6.2190e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2418e+03 2.3154e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0191e+01 1.5926e+02 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3369e+02 8.7825e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4431e+03 3.4595e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5486e+01 2.2944e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0981e+02 6.2381e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1957e+03 2.2079e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0507e+01 1.5218e+02 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0759e+02 8.4291e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5494e+03 3.4030e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8833e+01 2.3500e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9058e+02 6.4281e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2095e+03 2.1746e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1745e+01 1.4766e+02 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2488e+02 8.8277e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5120e+03 3.4140e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5318e+01 2.3012e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0882e+02 6.5511e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2911e+03 2.2939e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4143e+01 1.5218e+02 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3008e+02 8.2103e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5044e+03 3.3715e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0243e+02 2.3869e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9631e+02 6.2010e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2674e+03 2.3386e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3629e+01 1.5882e+02 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2086e+02 8.5320e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5142e+03 3.4042e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6128e+01 2.3945e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1539e+02 6.4918e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1986e+03 2.3408e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1433e+01 1.4912e+02 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2422e+02 8.8629e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4677e+03 3.2934e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0209e+02 2.2483e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8186e+02 6.0443e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2102e+03 2.1459e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3021e+01 1.5616e+02 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0680e+02 8.3763e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5035e+03 3.3456e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4430e+01 2.4441e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1274e+02 6.1023e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2737e+03 2.3350e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1801e+01 1.5180e+02 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1476e+02 8.5567e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4740e+03 3.2929e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4587e+01 2.3516e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9979e+02 6.5245e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2671e+03 2.2332e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3354e+01 1.5921e+02 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2028e+02 8.8257e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4599e+03 3.3008e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0126e+02 2.2712e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9721e+02 6.1559e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2895e+03 2.2980e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2213e+01 1.6061e+02 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2723e+02 8.6987e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4220e+03 3.5034e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0037e+02 2.2554e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0230e+02 6.5327e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2047e+03 2.1567e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2233e+01 1.4975e+02 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1362e+02 8.7363e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4314e+03 3.5344e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5347e+01 2.3953e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0663e+02 6.0577e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1841e+03 2.2304e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3747e+01 1.5721e+02 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2054e+02 8.3808e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5105e+03 3.4870e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0194e+02 2.2591e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1264e+02 6.4527e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2616e+03 2.2285e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4978e+01 1.5046e+02 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9398e+02 8.6377e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5261e+03 3.2273e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0288e+02 2.4198e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9678e+02 6.0828e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1927e+03 2.2070e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3940e+01 1.5983e+02 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1064e+02 8.2059e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4197e+03 3.3504e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8963e+01 2.4198e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8906e+02 6.2090e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2259e+03 2.2842e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5894e+01 1.6229e+02 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0708e+02 8.7575e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4136e+03 3.4768e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4532e+01 2.3056e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9921e+02 6.4960e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2156e+03 2.3262e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index e09e99b..0ac2663 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-05 -1.2519e-01 -5.0000e+01 1.0000e+00 1.0000e+00 1.4125e-05 -5.3878e-02 -5.0000e+01 1.0000e+00 1.0000e+00 1.9953e-05 -2.2409e-02 -5.0000e+01 1.0000e+00 1.0000e+00 2.8184e-05 -9.0968e-03 -5.0000e+01 1.0000e+00 1.0000e+00 3.9811e-05 -3.6307e-03 -5.0000e+01 1.0000e+00 1.0000e+00 5.6234e-05 -1.4620e-03 -5.0000e+01 1.0000e+00 1.0000e+00 7.9433e-05 -6.5916e-04 -5.0000e+01 1.0000e+00 1.0000e+00 1.1220e-04 -3.2642e-04 -5.0000e+01 1.0000e+00 1.0000e+00 1.5849e-04 -2.0731e-04 -5.0000e+01 1.0000e+00 1.0000e+00 2.2387e-04 -1.3109e-04 -5.0000e+01 1.0000e+00 1.0000e+00 3.1623e-04 -8.1570e-05 -5.0000e+01 1.0000e+00 1.0000e+00 4.4668e-04 -5.1249e-05 -5.0000e+01 1.0000e+00 1.0000e+00 6.3096e-04 -3.0114e-05 -5.0000e+01 1.0000e+00 1.0000e+00 8.9125e-04 -1.6500e-05 -5.0000e+01 1.0000e+00 1.0000e+00 1.2589e-03 -8.0517e-06 -5.0000e+01 1.0000e+00 1.0000e+00 1.7783e-03 -3.7455e-06 -5.0000e+01 1.0000e+00 1.0000e+00 2.5119e-03 -1.5830e-06 -5.0000e+01 1.0000e+00 1.0000e+00 3.5481e-03 -7.3340e-07 -5.0000e+01 1.0000e+00 1.0000e+00 5.0119e-03 -3.1060e-07 -5.0000e+01 1.0000e+00 1.0000e+00 7.0795e-03 -1.2716e-07 -5.0000e+01 1.0000e+00 1.0000e+00 1.0000e-02 -5.1980e-08 -1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2436e-01 -1.5204e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3254e-02 -1.5204e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2931e-02 -1.5204e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.7630e-03 -1.5204e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.4765e-03 -1.5204e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4897e-03 -1.5204e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.1556e-04 -1.5204e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.5093e-04 -1.5204e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9865e-04 -1.5204e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2999e-04 -1.5204e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.8001e-05 -1.5204e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.9649e-05 -1.5204e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8651e-05 -1.5204e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.5380e-05 -1.5204e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.0752e-06 -1.5204e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.8487e-06 -1.5204e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.5819e-06 -1.5204e+02 1.0000e+00 1.0000e+00 3.5481e-03 -6.9315e-07 -1.5204e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.1450e-07 -1.5204e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.2518e-07 -1.5204e+02 1.0000e+00 1.0000e+00 1.0000e-02 -4.8790e-08 -2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1869e-01 -2.5408e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3905e-02 -2.5408e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1731e-02 -2.5408e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.3648e-03 -2.5408e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7706e-03 -2.5408e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4712e-03 -2.5408e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.0595e-04 -2.5408e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.3154e-04 -2.5408e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0935e-04 -2.5408e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2842e-04 -2.5408e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.2674e-05 -2.5408e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.1094e-05 -2.5408e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1176e-05 -2.5408e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6389e-05 -2.5408e+02 1.0000e+00 1.0000e+00 1.2589e-03 -7.6549e-06 -2.5408e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.6473e-06 -2.5408e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.7276e-06 -2.5408e+02 1.0000e+00 1.0000e+00 3.5481e-03 -7.3231e-07 -2.5408e+02 1.0000e+00 1.0000e+00 5.0119e-03 -2.9806e-07 -2.5408e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.1928e-07 -2.5408e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.2039e-08 -3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2404e-01 -3.5612e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3160e-02 -3.5612e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1449e-02 -3.5612e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.3660e-03 -3.5612e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7299e-03 -3.5612e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4977e-03 -3.5612e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.4912e-04 -3.5612e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.5349e-04 -3.5612e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0159e-04 -3.5612e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2861e-04 -3.5612e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.4684e-05 -3.5612e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.0546e-05 -3.5612e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9824e-05 -3.5612e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.5618e-05 -3.5612e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.1917e-06 -3.5612e+02 1.0000e+00 1.0000e+00 1.7783e-03 -3.6434e-06 -3.5612e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.6690e-06 -3.5612e+02 1.0000e+00 1.0000e+00 3.5481e-03 -7.0161e-07 -3.5612e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.0172e-07 -3.5612e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.2345e-07 -3.5612e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.2883e-08 -4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1918e-01 -4.5816e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.4485e-02 -4.5816e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.3266e-02 -4.5816e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.1998e-03 -4.5816e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.5535e-03 -4.5816e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4544e-03 -4.5816e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.6163e-04 -4.5816e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2649e-04 -4.5816e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.8854e-04 -4.5816e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2149e-04 -4.5816e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.3396e-05 -4.5816e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.8473e-05 -4.5816e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1470e-05 -4.5816e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6949e-05 -4.5816e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.3663e-06 -4.5816e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.3638e-06 -4.5816e+02 1.0000e+00 1.0000e+00 2.5119e-03 -2.0241e-06 -4.5816e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2480e-07 -4.5816e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.3992e-07 -4.5816e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4840e-07 -4.5816e+02 1.0000e+00 1.0000e+00 1.0000e-02 -6.0471e-08 -5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2302e-01 -5.6020e+02 1.0000e+00 1.0000e+00 1.4125e-05 -4.9947e-02 -5.6020e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2242e-02 -5.6020e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.7894e-03 -5.6020e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.6545e-03 -5.6020e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4976e-03 -5.6020e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.4191e-04 -5.6020e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4533e-04 -5.6020e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9781e-04 -5.6020e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2405e-04 -5.6020e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.1571e-05 -5.6020e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.1297e-05 -5.6020e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.1607e-05 -5.6020e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6977e-05 -5.6020e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.9245e-06 -5.6020e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.2041e-06 -5.6020e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.8740e-06 -5.6020e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.4887e-07 -5.6020e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.7162e-07 -5.6020e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.3908e-07 -5.6020e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.6906e-08 -6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2073e-01 -6.6224e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3443e-02 -6.6224e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.1389e-02 -6.6224e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.2560e-03 -6.6224e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.5310e-03 -6.6224e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.3577e-03 -6.6224e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.6995e-04 -6.6224e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4154e-04 -6.6224e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0381e-04 -6.6224e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1901e-04 -6.6224e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.9412e-05 -6.6224e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.2640e-05 -6.6224e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9291e-05 -6.6224e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6510e-05 -6.6224e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.6123e-06 -6.6224e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.0535e-06 -6.6224e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.8710e-06 -6.6224e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2561e-07 -6.6224e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.6638e-07 -6.6224e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.5128e-07 -6.6224e+02 1.0000e+00 1.0000e+00 1.0000e-02 -6.0543e-08 -7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2273e-01 -7.6429e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.2132e-02 -7.6429e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2038e-02 -7.6429e+02 1.0000e+00 1.0000e+00 2.8184e-05 -9.1093e-03 -7.6429e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7495e-03 -7.6429e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4514e-03 -7.6429e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.0735e-04 -7.6429e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2811e-04 -7.6429e+02 1.0000e+00 1.0000e+00 1.5849e-04 -2.0092e-04 -7.6429e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2230e-04 -7.6429e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.1816e-05 -7.6429e+02 1.0000e+00 1.0000e+00 4.4668e-04 -5.2514e-05 -7.6429e+02 1.0000e+00 1.0000e+00 6.3096e-04 -3.0011e-05 -7.6429e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.7209e-05 -7.6429e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.7788e-06 -7.6429e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.0775e-06 -7.6429e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.9167e-06 -7.6429e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.2828e-07 -7.6429e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.7088e-07 -7.6429e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4604e-07 -7.6429e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.9407e-08 -8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.1720e-01 -8.6633e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.3681e-02 -8.6633e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.2698e-02 -8.6633e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.6731e-03 -8.6633e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7274e-03 -8.6633e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.4760e-03 -8.6633e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.5635e-04 -8.6633e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.2807e-04 -8.6633e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.9374e-04 -8.6633e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.2082e-04 -8.6633e+02 1.0000e+00 1.0000e+00 3.1623e-04 -8.0842e-05 -8.6633e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.8413e-05 -8.6633e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.9475e-05 -8.6633e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6458e-05 -8.6633e+02 1.0000e+00 1.0000e+00 1.2589e-03 -8.4649e-06 -8.6633e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.1999e-06 -8.6633e+02 1.0000e+00 1.0000e+00 2.5119e-03 -1.9637e-06 -8.6633e+02 1.0000e+00 1.0000e+00 3.5481e-03 -8.9011e-07 -8.6633e+02 1.0000e+00 1.0000e+00 5.0119e-03 -3.5241e-07 -8.6633e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.4475e-07 -8.6633e+02 1.0000e+00 1.0000e+00 1.0000e-02 -5.8191e-08 -9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-05 -1.2126e-01 -9.6837e+02 1.0000e+00 1.0000e+00 1.4125e-05 -5.2204e-02 -9.6837e+02 1.0000e+00 1.0000e+00 1.9953e-05 -2.3197e-02 -9.6837e+02 1.0000e+00 1.0000e+00 2.8184e-05 -8.9916e-03 -9.6837e+02 1.0000e+00 1.0000e+00 3.9811e-05 -3.7437e-03 -9.6837e+02 1.0000e+00 1.0000e+00 5.6234e-05 -1.3743e-03 -9.6837e+02 1.0000e+00 1.0000e+00 7.9433e-05 -6.5788e-04 -9.6837e+02 1.0000e+00 1.0000e+00 1.1220e-04 -3.4209e-04 -9.6837e+02 1.0000e+00 1.0000e+00 1.5849e-04 -1.8914e-04 -9.6837e+02 1.0000e+00 1.0000e+00 2.2387e-04 -1.1701e-04 -9.6837e+02 1.0000e+00 1.0000e+00 3.1623e-04 -7.3958e-05 -9.6837e+02 1.0000e+00 1.0000e+00 4.4668e-04 -4.9038e-05 -9.6837e+02 1.0000e+00 1.0000e+00 6.3096e-04 -2.8187e-05 -9.6837e+02 1.0000e+00 1.0000e+00 8.9125e-04 -1.6555e-05 -9.6837e+02 1.0000e+00 1.0000e+00 1.2589e-03 -9.0637e-06 -9.6837e+02 1.0000e+00 1.0000e+00 1.7783e-03 -4.4481e-06 -9.6837e+02 1.0000e+00 1.0000e+00 2.5119e-03 -2.1237e-06 -9.6837e+02 1.0000e+00 1.0000e+00 3.5481e-03 -9.8166e-07 -9.6837e+02 1.0000e+00 1.0000e+00 5.0119e-03 -4.2133e-07 -9.6837e+02 1.0000e+00 1.0000e+00 7.0795e-03 -1.7171e-07 -9.6837e+02 1.0000e+00 1.0000e+00 1.0000e-02 -7.1340e-08 -1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2076e-01 -1.0704e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3320e-02 -1.0704e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1559e-02 -1.0704e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7619e-03 -1.0704e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4076e-03 -1.0704e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4566e-03 -1.0704e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2579e-04 -1.0704e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3014e-04 -1.0704e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0247e-04 -1.0704e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1718e-04 -1.0704e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8979e-05 -1.0704e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6905e-05 -1.0704e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0534e-05 -1.0704e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7748e-05 -1.0704e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0034e-06 -1.0704e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6306e-06 -1.0704e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2021e-06 -1.0704e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.4543e-07 -1.0704e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1983e-07 -1.0704e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6350e-07 -1.0704e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.4874e-08 -1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1304e-01 -1.1724e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3736e-02 -1.1724e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2623e-02 -1.1724e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9193e-03 -1.1724e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4333e-03 -1.1724e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3989e-03 -1.1724e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2143e-04 -1.1724e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2131e-04 -1.1724e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9988e-04 -1.1724e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2138e-04 -1.1724e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6391e-05 -1.1724e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7412e-05 -1.1724e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8209e-05 -1.1724e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6862e-05 -1.1724e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7612e-06 -1.1724e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5300e-06 -1.1724e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2084e-06 -1.1724e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6563e-07 -1.1724e+03 1.0000e+00 1.0000e+00 5.0119e-03 -3.9528e-07 -1.1724e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6770e-07 -1.1724e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.6685e-08 -1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1702e-01 -1.2745e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3413e-02 -1.2745e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3123e-02 -1.2745e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2244e-03 -1.2745e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7139e-03 -1.2745e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3816e-03 -1.2745e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2464e-04 -1.2745e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3831e-04 -1.2745e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0394e-04 -1.2745e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1711e-04 -1.2745e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5550e-05 -1.2745e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5643e-05 -1.2745e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0669e-05 -1.2745e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7501e-05 -1.2745e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.6211e-06 -1.2745e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5239e-06 -1.2745e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2674e-06 -1.2745e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.3482e-07 -1.2745e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1405e-07 -1.2745e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6935e-07 -1.2745e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.1475e-08 -1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1761e-01 -1.3765e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4013e-02 -1.3765e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3099e-02 -1.3765e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7556e-03 -1.3765e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4359e-03 -1.3765e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5053e-03 -1.3765e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1645e-04 -1.3765e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2065e-04 -1.3765e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9688e-04 -1.3765e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1992e-04 -1.3765e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4511e-05 -1.3765e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7220e-05 -1.3765e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9560e-05 -1.3765e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6911e-05 -1.3765e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1453e-06 -1.3765e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.4763e-06 -1.3765e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2487e-06 -1.3765e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.4758e-07 -1.3765e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.0007e-07 -1.3765e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.6451e-07 -1.3765e+03 1.0000e+00 1.0000e+00 1.0000e-02 -6.5983e-08 -1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1492e-01 -1.4786e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2963e-02 -1.4786e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2144e-02 -1.4786e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8903e-03 -1.4786e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4805e-03 -1.4786e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3617e-03 -1.4786e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0685e-04 -1.4786e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3254e-04 -1.4786e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9783e-04 -1.4786e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1762e-04 -1.4786e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8932e-05 -1.4786e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6810e-05 -1.4786e+03 1.0000e+00 1.0000e+00 6.3096e-04 -3.0388e-05 -1.4786e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6879e-05 -1.4786e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1135e-06 -1.4786e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6719e-06 -1.4786e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.1049e-06 -1.4786e+03 1.0000e+00 1.0000e+00 3.5481e-03 -9.6949e-07 -1.4786e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.1399e-07 -1.4786e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.7128e-07 -1.4786e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.1334e-08 -1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2077e-01 -1.5806e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4758e-02 -1.5806e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2268e-02 -1.5806e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0006e-03 -1.5806e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4812e-03 -1.5806e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4108e-03 -1.5806e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5983e-04 -1.5806e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2600e-04 -1.5806e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9598e-04 -1.5806e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2633e-04 -1.5806e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8959e-05 -1.5806e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7519e-05 -1.5806e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7885e-05 -1.5806e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6044e-05 -1.5806e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9198e-06 -1.5806e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7534e-06 -1.5806e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4306e-06 -1.5806e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0723e-06 -1.5806e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8322e-07 -1.5806e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8966e-07 -1.5806e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1111e-08 -1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1583e-01 -1.6827e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0470e-02 -1.6827e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2376e-02 -1.6827e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5534e-03 -1.6827e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6015e-03 -1.6827e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3799e-03 -1.6827e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6032e-04 -1.6827e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5108e-04 -1.6827e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9217e-04 -1.6827e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2045e-04 -1.6827e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8823e-05 -1.6827e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4159e-05 -1.6827e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8247e-05 -1.6827e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6659e-05 -1.6827e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0942e-06 -1.6827e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6823e-06 -1.6827e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4889e-06 -1.6827e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1036e-06 -1.6827e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.8475e-07 -1.6827e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9552e-07 -1.6827e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1724e-08 -1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2446e-01 -1.7847e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3608e-02 -1.7847e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1468e-02 -1.7847e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6784e-03 -1.7847e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4828e-03 -1.7847e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5059e-03 -1.7847e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2297e-04 -1.7847e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5167e-04 -1.7847e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0387e-04 -1.7847e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2750e-04 -1.7847e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7975e-05 -1.7847e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5615e-05 -1.7847e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7849e-05 -1.7847e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.7038e-05 -1.7847e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1522e-06 -1.7847e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7108e-06 -1.7847e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4714e-06 -1.7847e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1335e-06 -1.7847e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.7625e-07 -1.7847e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.9678e-07 -1.7847e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.0199e-08 -1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1586e-01 -1.8867e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3492e-02 -1.8867e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1714e-02 -1.8867e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7402e-03 -1.8867e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5772e-03 -1.8867e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4414e-03 -1.8867e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6625e-04 -1.8867e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4279e-04 -1.8867e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8898e-04 -1.8867e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2450e-04 -1.8867e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4239e-05 -1.8867e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6558e-05 -1.8867e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9669e-05 -1.8867e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6103e-05 -1.8867e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.8072e-06 -1.8867e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7965e-06 -1.8867e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.2607e-06 -1.8867e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0623e-06 -1.8867e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.7853e-07 -1.8867e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.0355e-07 -1.8867e+03 1.0000e+00 1.0000e+00 1.0000e-02 -7.7697e-08 -1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1612e-01 -1.9888e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3288e-02 -1.9888e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2060e-02 -1.9888e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0717e-03 -1.9888e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7579e-03 -1.9888e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3674e-03 -1.9888e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4686e-04 -1.9888e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3907e-04 -1.9888e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8982e-04 -1.9888e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2146e-04 -1.9888e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5585e-05 -1.9888e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5849e-05 -1.9888e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.9318e-05 -1.9888e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6760e-05 -1.9888e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2140e-06 -1.9888e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8696e-06 -1.9888e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3266e-06 -1.9888e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.0750e-06 -1.9888e+03 1.0000e+00 1.0000e+00 5.0119e-03 -4.5303e-07 -1.9888e+03 1.0000e+00 1.0000e+00 7.0795e-03 -1.8703e-07 -1.9888e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.1672e-08 -2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2207e-01 -2.0908e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4969e-02 -2.0908e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3062e-02 -2.0908e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9233e-03 -2.0908e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7411e-03 -2.0908e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4827e-03 -2.0908e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2058e-04 -2.0908e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3678e-04 -2.0908e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0134e-04 -2.0908e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1931e-04 -2.0908e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1685e-05 -2.0908e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7879e-05 -2.0908e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7051e-05 -2.0908e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6090e-05 -2.0908e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9699e-06 -2.0908e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.1683e-06 -2.0908e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4562e-06 -2.0908e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2288e-06 -2.0908e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4614e-07 -2.0908e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1544e-07 -2.0908e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.3468e-08 -2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2475e-01 -2.1929e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5067e-02 -2.1929e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2504e-02 -2.1929e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8877e-03 -2.1929e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3966e-03 -2.1929e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4719e-03 -2.1929e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1913e-04 -2.1929e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2441e-04 -2.1929e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8927e-04 -2.1929e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2352e-04 -2.1929e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7616e-05 -2.1929e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4231e-05 -2.1929e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7416e-05 -2.1929e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6528e-05 -2.1929e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.7650e-06 -2.1929e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2684e-06 -2.1929e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5611e-06 -2.1929e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2080e-06 -2.1929e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.2312e-07 -2.1929e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.0983e-07 -2.1929e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.9777e-08 -2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2170e-01 -2.2949e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0599e-02 -2.2949e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2878e-02 -2.2949e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7361e-03 -2.2949e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4452e-03 -2.2949e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4099e-03 -2.2949e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2214e-04 -2.2949e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4690e-04 -2.2949e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9486e-04 -2.2949e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2335e-04 -2.2949e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4818e-05 -2.2949e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6976e-05 -2.2949e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6444e-05 -2.2949e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6533e-05 -2.2949e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3543e-06 -2.2949e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8915e-06 -2.2949e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6124e-06 -2.2949e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.1792e-06 -2.2949e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0459e-07 -2.2949e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1552e-07 -2.2949e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.0667e-08 -2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1640e-01 -2.3969e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0106e-02 -2.3969e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1491e-02 -2.3969e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.9028e-03 -2.3969e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6704e-03 -2.3969e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4500e-03 -2.3969e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3486e-04 -2.3969e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3901e-04 -2.3969e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9791e-04 -2.3969e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1741e-04 -2.3969e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7844e-05 -2.3969e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3383e-05 -2.3969e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7017e-05 -2.3969e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5752e-05 -2.3969e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0547e-06 -2.3969e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0440e-06 -2.3969e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.3954e-06 -2.3969e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2103e-06 -2.3969e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4671e-07 -2.3969e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.2894e-07 -2.3969e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.1800e-08 -2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1855e-01 -2.4990e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4035e-02 -2.4990e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1631e-02 -2.4990e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.6076e-03 -2.4990e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4895e-03 -2.4990e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3601e-03 -2.4990e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5444e-04 -2.4990e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3045e-04 -2.4990e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9254e-04 -2.4990e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2336e-04 -2.4990e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5255e-05 -2.4990e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4530e-05 -2.4990e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8684e-05 -2.4990e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6995e-05 -2.4990e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4538e-06 -2.4990e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.1514e-06 -2.4990e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5635e-06 -2.4990e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2230e-06 -2.4990e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.4394e-07 -2.4990e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1000e-07 -2.4990e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.0440e-08 -2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1822e-01 -2.6010e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2247e-02 -2.6010e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2540e-02 -2.6010e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.8974e-03 -2.6010e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6457e-03 -2.6010e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3716e-03 -2.6010e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6784e-04 -2.6010e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3218e-04 -2.6010e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0033e-04 -2.6010e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2288e-04 -2.6010e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6262e-05 -2.6010e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5159e-05 -2.6010e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8384e-05 -2.6010e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6735e-05 -2.6010e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.5421e-06 -2.6010e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2683e-06 -2.6010e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5464e-06 -2.6010e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2356e-06 -2.6010e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.0123e-07 -2.6010e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.1449e-07 -2.6010e+03 1.0000e+00 1.0000e+00 1.0000e-02 -8.8103e-08 -2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1599e-01 -2.7031e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0291e-02 -2.7031e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1964e-02 -2.7031e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0484e-03 -2.7031e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7239e-03 -2.7031e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4451e-03 -2.7031e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3348e-04 -2.7031e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3119e-04 -2.7031e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8743e-04 -2.7031e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2489e-04 -2.7031e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.3345e-05 -2.7031e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6473e-05 -2.7031e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7317e-05 -2.7031e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5163e-05 -2.7031e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3259e-06 -2.7031e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0980e-06 -2.7031e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6079e-06 -2.7031e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3113e-06 -2.7031e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7302e-07 -2.7031e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4014e-07 -2.7031e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.8934e-08 -2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1436e-01 -2.8051e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1727e-02 -2.8051e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2288e-02 -2.8051e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0005e-03 -2.8051e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7528e-03 -2.8051e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3560e-03 -2.8051e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6221e-04 -2.8051e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3769e-04 -2.8051e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0124e-04 -2.8051e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2015e-04 -2.8051e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4159e-05 -2.8051e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6017e-05 -2.8051e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5733e-05 -2.8051e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5534e-05 -2.8051e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7869e-06 -2.8051e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0486e-06 -2.8051e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5643e-06 -2.8051e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2622e-06 -2.8051e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7865e-07 -2.8051e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4254e-07 -2.8051e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0300e-07 -2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2263e-01 -2.9071e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2448e-02 -2.9071e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3570e-02 -2.9071e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.1881e-03 -2.9071e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3949e-03 -2.9071e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3822e-03 -2.9071e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6680e-04 -2.9071e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2932e-04 -2.9071e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0268e-04 -2.9071e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2601e-04 -2.9071e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5816e-05 -2.9071e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4466e-05 -2.9071e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6938e-05 -2.9071e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6722e-05 -2.9071e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8189e-06 -2.9071e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0369e-06 -2.9071e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4941e-06 -2.9071e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2920e-06 -2.9071e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.9181e-07 -2.9071e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4278e-07 -2.9071e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0023e-07 -3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2514e-01 -3.0092e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5053e-02 -3.0092e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3382e-02 -3.0092e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5774e-03 -3.0092e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7045e-03 -3.0092e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4194e-03 -3.0092e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4035e-04 -3.0092e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.1791e-04 -3.0092e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0589e-04 -3.0092e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1645e-04 -3.0092e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4010e-05 -3.0092e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3516e-05 -3.0092e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8350e-05 -3.0092e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6629e-05 -3.0092e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8127e-06 -3.0092e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9878e-06 -3.0092e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5754e-06 -3.0092e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3150e-06 -3.0092e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.5847e-07 -3.0092e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.3429e-07 -3.0092e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.4544e-08 -3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1988e-01 -3.1112e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3550e-02 -3.1112e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2647e-02 -3.1112e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.3973e-03 -3.1112e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6855e-03 -3.1112e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4408e-03 -3.1112e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.2638e-04 -3.1112e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2915e-04 -3.1112e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9134e-04 -3.1112e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2475e-04 -3.1112e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2830e-05 -3.1112e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3903e-05 -3.1112e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6907e-05 -3.1112e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6013e-05 -3.1112e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.4926e-06 -3.1112e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.2649e-06 -3.1112e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6013e-06 -3.1112e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2305e-06 -3.1112e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.8412e-07 -3.1112e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4575e-07 -3.1112e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.9779e-08 -3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1334e-01 -3.2133e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0421e-02 -3.2133e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1540e-02 -3.2133e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6582e-03 -3.2133e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4791e-03 -3.2133e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4755e-03 -3.2133e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1594e-04 -3.2133e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4658e-04 -3.2133e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8892e-04 -3.2133e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2320e-04 -3.2133e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6293e-05 -3.2133e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4805e-05 -3.2133e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8336e-05 -3.2133e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5272e-05 -3.2133e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.2777e-06 -3.2133e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8716e-06 -3.2133e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5340e-06 -3.2133e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2240e-06 -3.2133e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.6502e-07 -3.2133e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.4404e-07 -3.2133e+03 1.0000e+00 1.0000e+00 1.0000e-02 -9.8227e-08 -3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1664e-01 -3.3153e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3968e-02 -3.3153e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1823e-02 -3.3153e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7158e-03 -3.3153e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4634e-03 -3.3153e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3960e-03 -3.3153e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1716e-04 -3.3153e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5220e-04 -3.3153e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0373e-04 -3.3153e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2315e-04 -3.3153e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2778e-05 -3.3153e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2936e-05 -3.3153e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6172e-05 -3.3153e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5679e-05 -3.3153e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.5647e-06 -3.3153e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0373e-06 -3.3153e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5836e-06 -3.3153e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3676e-06 -3.3153e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2426e-07 -3.3153e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7030e-07 -3.3153e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1156e-07 -3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1955e-01 -3.4173e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0867e-02 -3.4173e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2942e-02 -3.4173e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5371e-03 -3.4173e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5741e-03 -3.4173e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3583e-03 -3.4173e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4546e-04 -3.4173e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4338e-04 -3.4173e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9126e-04 -3.4173e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1966e-04 -3.4173e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8480e-05 -3.4173e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2899e-05 -3.4173e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6861e-05 -3.4173e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5967e-05 -3.4173e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8062e-06 -3.4173e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0855e-06 -3.4173e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6328e-06 -3.4173e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2786e-06 -3.4173e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2791e-07 -3.4173e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6550e-07 -3.4173e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0752e-07 -3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1327e-01 -3.5194e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.5153e-02 -3.5194e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1638e-02 -3.5194e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7134e-03 -3.5194e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.3990e-03 -3.5194e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3648e-03 -3.5194e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.6372e-04 -3.5194e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2121e-04 -3.5194e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0419e-04 -3.5194e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2292e-04 -3.5194e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5703e-05 -3.5194e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6261e-05 -3.5194e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7239e-05 -3.5194e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5574e-05 -3.5194e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.3595e-06 -3.5194e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0398e-06 -3.5194e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5997e-06 -3.5194e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3494e-06 -3.5194e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.2022e-07 -3.5194e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6980e-07 -3.5194e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1519e-07 -3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1519e-01 -3.6214e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3815e-02 -3.6214e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2633e-02 -3.6214e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2267e-03 -3.6214e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6558e-03 -3.6214e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4868e-03 -3.6214e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1233e-04 -3.6214e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2843e-04 -3.6214e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0182e-04 -3.6214e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2634e-04 -3.6214e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7569e-05 -3.6214e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6277e-05 -3.6214e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.8103e-05 -3.6214e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6229e-05 -3.6214e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9854e-06 -3.6214e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7450e-06 -3.6214e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6409e-06 -3.6214e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2708e-06 -3.6214e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.9941e-07 -3.6214e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5132e-07 -3.6214e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1398e-07 -3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1605e-01 -3.7235e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3334e-02 -3.7235e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1263e-02 -3.7235e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.2773e-03 -3.7235e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4017e-03 -3.7235e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3765e-03 -3.7235e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3222e-04 -3.7235e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.5147e-04 -3.7235e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0351e-04 -3.7235e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2679e-04 -3.7235e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2315e-05 -3.7235e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7240e-05 -3.7235e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6020e-05 -3.7235e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6422e-05 -3.7235e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1928e-06 -3.7235e+03 1.0000e+00 1.0000e+00 1.7783e-03 -5.0792e-06 -3.7235e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6049e-06 -3.7235e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2909e-06 -3.7235e+03 1.0000e+00 1.0000e+00 5.0119e-03 -5.7925e-07 -3.7235e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.6076e-07 -3.7235e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1418e-07 -3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2497e-01 -3.8255e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1059e-02 -3.8255e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2338e-02 -3.8255e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.0601e-03 -3.8255e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6146e-03 -3.8255e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4172e-03 -3.8255e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.4514e-04 -3.8255e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3673e-04 -3.8255e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9507e-04 -3.8255e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2124e-04 -3.8255e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8075e-05 -3.8255e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2944e-05 -3.8255e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5826e-05 -3.8255e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5844e-05 -3.8255e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9180e-06 -3.8255e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7467e-06 -3.8255e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6509e-06 -3.8255e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2385e-06 -3.8255e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3372e-07 -3.8255e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.5774e-07 -3.8255e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.0680e-07 -3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2288e-01 -3.9276e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4371e-02 -3.9276e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2207e-02 -3.9276e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.1552e-03 -3.9276e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5496e-03 -3.9276e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4861e-03 -3.9276e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5374e-04 -3.9276e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4998e-04 -3.9276e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0512e-04 -3.9276e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1838e-04 -3.9276e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8332e-05 -3.9276e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5024e-05 -3.9276e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7398e-05 -3.9276e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5038e-05 -3.9276e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9194e-06 -3.9276e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7128e-06 -3.9276e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6059e-06 -3.9276e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2909e-06 -3.9276e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.1436e-07 -3.9276e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7148e-07 -3.9276e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1109e-07 -4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2246e-01 -4.0296e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4879e-02 -4.0296e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2599e-02 -4.0296e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5142e-03 -4.0296e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4981e-03 -4.0296e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4611e-03 -4.0296e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3944e-04 -4.0296e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4555e-04 -4.0296e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9324e-04 -4.0296e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1692e-04 -4.0296e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6807e-05 -4.0296e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7534e-05 -4.0296e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7437e-05 -4.0296e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5257e-05 -4.0296e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9641e-06 -4.0296e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7155e-06 -4.0296e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5202e-06 -4.0296e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3445e-06 -4.0296e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4071e-07 -4.0296e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9747e-07 -4.0296e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1949e-07 -4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2338e-01 -4.1316e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.4648e-02 -4.1316e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3477e-02 -4.1316e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4441e-03 -4.1316e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7119e-03 -4.1316e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.5007e-03 -4.1316e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0635e-04 -4.1316e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2924e-04 -4.1316e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9933e-04 -4.1316e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2672e-04 -4.1316e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.8167e-05 -4.1316e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3742e-05 -4.1316e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6953e-05 -4.1316e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6103e-05 -4.1316e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.0972e-06 -4.1316e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7958e-06 -4.1316e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6375e-06 -4.1316e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3829e-06 -4.1316e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.3893e-07 -4.1316e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9663e-07 -4.1316e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2301e-07 -4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1901e-01 -4.2337e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.2742e-02 -4.2337e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1788e-02 -4.2337e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4625e-03 -4.2337e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5784e-03 -4.2337e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4847e-03 -4.2337e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.5968e-04 -4.2337e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3799e-04 -4.2337e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0433e-04 -4.2337e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2034e-04 -4.2337e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4962e-05 -4.2337e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.3089e-05 -4.2337e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.6258e-05 -4.2337e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6111e-05 -4.2337e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.6900e-06 -4.2337e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9295e-06 -4.2337e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6172e-06 -4.2337e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3048e-06 -4.2337e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.5265e-07 -4.2337e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8725e-07 -4.2337e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2036e-07 -4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1761e-01 -4.3357e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3693e-02 -4.3357e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2416e-02 -4.3357e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.3487e-03 -4.3357e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5549e-03 -4.3357e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4545e-03 -4.3357e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1598e-04 -4.3357e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2827e-04 -4.3357e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9043e-04 -4.3357e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2555e-04 -4.3357e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.7083e-05 -4.3357e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.4990e-05 -4.3357e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7970e-05 -4.3357e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5403e-05 -4.3357e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9409e-06 -4.3357e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9789e-06 -4.3357e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6918e-06 -4.3357e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3957e-06 -4.3357e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.1931e-07 -4.3357e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7553e-07 -4.3357e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2216e-07 -4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1942e-01 -4.4378e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0864e-02 -4.4378e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2074e-02 -4.4378e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5944e-03 -4.4378e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6637e-03 -4.4378e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3623e-03 -4.4378e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1303e-04 -4.4378e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4098e-04 -4.4378e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.8847e-04 -4.4378e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2140e-04 -4.4378e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.6951e-05 -4.4378e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6280e-05 -4.4378e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7465e-05 -4.4378e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.6188e-05 -4.4378e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8473e-06 -4.4378e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6803e-06 -4.4378e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6103e-06 -4.4378e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3202e-06 -4.4378e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4990e-07 -4.4378e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9658e-07 -4.4378e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2485e-07 -4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2261e-01 -4.5398e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.0444e-02 -4.5398e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1270e-02 -4.5398e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.5995e-03 -4.5398e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6036e-03 -4.5398e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4505e-03 -4.5398e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3634e-04 -4.5398e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3071e-04 -4.5398e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9915e-04 -4.5398e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2517e-04 -4.5398e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.3941e-05 -4.5398e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.7413e-05 -4.5398e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5627e-05 -4.5398e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5230e-05 -4.5398e+03 1.0000e+00 1.0000e+00 1.2589e-03 -9.1642e-06 -4.5398e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8621e-06 -4.5398e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.7196e-06 -4.5398e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3798e-06 -4.5398e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4734e-07 -4.5398e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.7523e-07 -4.5398e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1761e-07 -4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1831e-01 -4.6418e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3860e-02 -4.6418e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.2380e-02 -4.6418e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7224e-03 -4.6418e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7009e-03 -4.6418e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3955e-03 -4.6418e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1376e-04 -4.6418e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2885e-04 -4.6418e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0313e-04 -4.6418e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2587e-04 -4.6418e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.4493e-05 -4.6418e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6951e-05 -4.6418e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5819e-05 -4.6418e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5426e-05 -4.6418e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.9821e-06 -4.6418e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.8535e-06 -4.6418e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6834e-06 -4.6418e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3148e-06 -4.6418e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4956e-07 -4.6418e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9144e-07 -4.6418e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.1988e-07 -4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1484e-01 -4.7439e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1707e-02 -4.7439e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3380e-02 -4.7439e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.4876e-03 -4.7439e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.6236e-03 -4.7439e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4579e-03 -4.7439e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1248e-04 -4.7439e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.2103e-04 -4.7439e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0674e-04 -4.7439e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2483e-04 -4.7439e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.5488e-05 -4.7439e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6729e-05 -4.7439e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5533e-05 -4.7439e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5885e-05 -4.7439e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.4571e-06 -4.7439e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.5701e-06 -4.7439e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.5949e-06 -4.7439e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2914e-06 -4.7439e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.5545e-07 -4.7439e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.8830e-07 -4.7439e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2549e-07 -4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1328e-01 -4.8459e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3411e-02 -4.8459e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1793e-02 -4.8459e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.7303e-03 -4.8459e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.4650e-03 -4.8459e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3834e-03 -4.8459e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.0865e-04 -4.8459e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4220e-04 -4.8459e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9823e-04 -4.8459e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2616e-04 -4.8459e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1648e-05 -4.8459e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.5933e-05 -4.8459e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.5571e-05 -4.8459e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5862e-05 -4.8459e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.8079e-06 -4.8459e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.7048e-06 -4.8459e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.4736e-06 -4.8459e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3091e-06 -4.8459e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.6149e-07 -4.8459e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.1258e-07 -4.8459e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.3133e-07 -4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.1934e-01 -4.9480e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.1234e-02 -4.9480e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.1493e-02 -4.9480e+03 1.0000e+00 1.0000e+00 2.8184e-05 -9.6105e-03 -4.9480e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.7418e-03 -4.9480e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.4636e-03 -4.9480e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.3640e-04 -4.9480e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.3356e-04 -4.9480e+03 1.0000e+00 1.0000e+00 1.5849e-04 -1.9854e-04 -4.9480e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.1625e-04 -4.9480e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.2825e-05 -4.9480e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.6921e-05 -4.9480e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7455e-05 -4.9480e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.5374e-05 -4.9480e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.7961e-06 -4.9480e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.6451e-06 -4.9480e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6108e-06 -4.9480e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.2735e-06 -4.9480e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.7228e-07 -4.9480e+03 1.0000e+00 1.0000e+00 7.0795e-03 -2.9868e-07 -4.9480e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2369e-07 -5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-05 -1.2449e-01 -5.0500e+03 1.0000e+00 1.0000e+00 1.4125e-05 -5.3728e-02 -5.0500e+03 1.0000e+00 1.0000e+00 1.9953e-05 -2.3124e-02 -5.0500e+03 1.0000e+00 1.0000e+00 2.8184e-05 -8.6695e-03 -5.0500e+03 1.0000e+00 1.0000e+00 3.9811e-05 -3.5941e-03 -5.0500e+03 1.0000e+00 1.0000e+00 5.6234e-05 -1.3723e-03 -5.0500e+03 1.0000e+00 1.0000e+00 7.9433e-05 -6.1499e-04 -5.0500e+03 1.0000e+00 1.0000e+00 1.1220e-04 -3.4878e-04 -5.0500e+03 1.0000e+00 1.0000e+00 1.5849e-04 -2.0010e-04 -5.0500e+03 1.0000e+00 1.0000e+00 2.2387e-04 -1.2118e-04 -5.0500e+03 1.0000e+00 1.0000e+00 3.1623e-04 -7.1635e-05 -5.0500e+03 1.0000e+00 1.0000e+00 4.4668e-04 -4.2898e-05 -5.0500e+03 1.0000e+00 1.0000e+00 6.3096e-04 -2.7168e-05 -5.0500e+03 1.0000e+00 1.0000e+00 8.9125e-04 -1.4926e-05 -5.0500e+03 1.0000e+00 1.0000e+00 1.2589e-03 -8.3433e-06 -5.0500e+03 1.0000e+00 1.0000e+00 1.7783e-03 -4.9116e-06 -5.0500e+03 1.0000e+00 1.0000e+00 2.5119e-03 -2.6708e-06 -5.0500e+03 1.0000e+00 1.0000e+00 3.5481e-03 -1.3149e-06 -5.0500e+03 1.0000e+00 1.0000e+00 5.0119e-03 -6.4614e-07 -5.0500e+03 1.0000e+00 1.0000e+00 7.0795e-03 -3.0898e-07 -5.0500e+03 1.0000e+00 1.0000e+00 1.0000e-02 -1.2575e-07 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -6.2562e-01 +5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -3.3170e-01 +5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -1.7244e-01 +5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -8.0626e-02 +5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -4.2627e-02 +5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -2.8357e-02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -1.9295e-02 +5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.3469e-02 +5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -8.9758e-03 +5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -6.8613e-03 +5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -4.2961e-03 +5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -2.7824e-03 +5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -1.6574e-03 +5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -8.8091e-04 +5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -4.2011e-04 +5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.1588e-04 +5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -8.9711e-05 +5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -4.3608e-05 +5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -1.8574e-05 +5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -7.2079e-06 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -3.2784e-06 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4003e-01 +1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2657e-01 +1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7115e-01 +1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6272e-02 +1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5275e-02 +1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7806e-02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8524e-02 +1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3757e-02 +1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.5007e-03 +1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.5060e-03 +1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.1807e-03 +1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8219e-03 +1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5569e-03 +1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.5169e-04 +1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.1683e-04 +1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.1442e-04 +1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.7559e-05 +1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.3130e-05 +1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.8536e-05 +1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.7915e-06 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.0811e-06 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4037e-01 +2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2899e-01 +2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6184e-01 +2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.3233e-02 +2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5558e-02 +2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6569e-02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8797e-02 +2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3300e-02 +2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.6594e-03 +2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3264e-03 +2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.4803e-03 +2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8293e-03 +2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5259e-03 +2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.7579e-04 +2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.5157e-04 +2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0544e-04 +2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.1006e-05 +2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.3329e-05 +2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.8757e-05 +2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.6430e-06 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.0535e-06 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.3370e-01 +3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2535e-01 +3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5817e-01 +3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5487e-02 +3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.6079e-02 +3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6102e-02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7558e-02 +3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1912e-02 +3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.9447e-03 +3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.0690e-03 +3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2545e-03 +3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6168e-03 +3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5832e-03 +3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.1567e-04 +3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0565e-04 +3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3661e-04 +3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1387e-04 +3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.7588e-05 +3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0729e-05 +3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.5488e-06 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.7276e-06 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.5301e-01 +4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4800e-01 +4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6776e-01 +4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.1372e-02 +4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5795e-02 +4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6490e-02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9171e-02 +4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2013e-02 +4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.9270e-03 +4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4941e-03 +4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.0569e-03 +4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7828e-03 +4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6133e-03 +4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.6063e-04 +4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9221e-04 +4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4426e-04 +4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0488e-04 +4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.9014e-05 +4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0107e-05 +4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.6975e-06 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.5801e-06 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9392e-01 +5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2524e-01 +5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6258e-01 +5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5198e-02 +5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3576e-02 +5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8806e-02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8591e-02 +5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2115e-02 +5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.1296e-03 +5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4853e-03 +5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2549e-03 +5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7459e-03 +5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6770e-03 +5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.2160e-04 +5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9032e-04 +5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4916e-04 +5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1057e-04 +5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.7046e-05 +5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1202e-05 +5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1469e-06 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.8127e-06 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1917e-01 +6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3621e-01 +6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5771e-01 +6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6168e-02 +6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3184e-02 +6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7382e-02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8359e-02 +6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2595e-02 +6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6366e-03 +6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4282e-03 +6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3629e-03 +6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6783e-03 +6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6034e-03 +6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.0517e-04 +6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0058e-04 +6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4154e-04 +6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1110e-04 +6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0361e-05 +6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1537e-05 +6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1903e-06 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.7710e-06 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.5374e-01 +7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3899e-01 +7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7173e-01 +7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6372e-02 +7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3400e-02 +7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6081e-02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8897e-02 +7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2796e-02 +7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.2937e-03 +7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.1818e-03 +7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.8602e-03 +7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5674e-03 +7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6463e-03 +7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.0041e-03 +7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1914e-04 +7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.7676e-04 +7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2308e-04 +7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.4470e-05 +7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4232e-05 +7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0446e-05 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9805e-06 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9167e-01 +8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3240e-01 +8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6594e-01 +8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.2797e-02 +8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3121e-02 +8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8007e-02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9154e-02 +8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2302e-02 +8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.7191e-03 +8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.7785e-03 +8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.9657e-03 +8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6229e-03 +8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6104e-03 +8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7437e-04 +8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1102e-04 +8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6621e-04 +8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2775e-04 +8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.6584e-05 +8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4495e-05 +8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0337e-05 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9675e-06 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4345e-01 +9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3170e-01 +9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6245e-01 +9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5874e-02 +9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3312e-02 +9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6833e-02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8301e-02 +9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2921e-02 +9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.8072e-03 +9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.5927e-03 +9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.0913e-03 +9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5321e-03 +9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6398e-03 +9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.8381e-04 +9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1086e-04 +9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6616e-04 +9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2063e-04 +9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.2951e-05 +9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4820e-05 +9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0309e-05 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.0484e-06 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9781e-01 +1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1834e-01 +1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6873e-01 +1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5532e-02 +1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5898e-02 +1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7275e-02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9105e-02 +1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3062e-02 +1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.9428e-03 +1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.0844e-03 +1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8100e-03 +1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6640e-03 +1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7010e-03 +1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5967e-04 +1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1071e-04 +1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.6792e-04 +1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.2919e-04 +1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.4742e-05 +1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.3257e-05 +1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0546e-05 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.1234e-06 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2891e-01 +1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3146e-01 +1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6768e-01 +1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9717e-02 +1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7015e-02 +1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7981e-02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7507e-02 +1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2626e-02 +1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2462e-03 +1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7662e-03 +1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.9799e-03 +1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5502e-03 +1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6579e-03 +1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7265e-04 +1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6050e-04 +1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7800e-04 +1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4111e-04 +1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.4560e-05 +1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7291e-05 +1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1551e-05 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.6411e-06 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4197e-01 +1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4158e-01 +1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6243e-01 +1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0697e-02 +1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5333e-02 +1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8488e-02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8929e-02 +1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2551e-02 +1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0802e-03 +1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9509e-03 +1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0036e-03 +1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6703e-03 +1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6969e-03 +1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8849e-04 +1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3819e-04 +1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9793e-04 +1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4263e-04 +1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.1582e-05 +1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7040e-05 +1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1738e-05 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.5682e-06 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2768e-01 +1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4566e-01 +1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7144e-01 +1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4884e-02 +1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2911e-02 +1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6960e-02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7267e-02 +1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2929e-02 +1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2578e-03 +1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.0152e-03 +1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7453e-03 +1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4856e-03 +1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5508e-03 +1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7097e-04 +1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4907e-04 +1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7644e-04 +1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4192e-04 +1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.9647e-05 +1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.8303e-05 +1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0942e-05 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.8941e-06 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2799e-01 +1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2386e-01 +1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6756e-01 +1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6591e-02 +1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4431e-02 +1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8237e-02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8758e-02 +1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2588e-02 +1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5977e-03 +1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4773e-03 +1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0055e-03 +1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5400e-03 +1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6464e-03 +1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6383e-04 +1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3941e-04 +1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9133e-04 +1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3805e-04 +1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.2798e-05 +1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.6223e-05 +1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1872e-05 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.7158e-06 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.8935e-01 +1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4201e-01 +1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6685e-01 +1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8436e-02 +1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5677e-02 +1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6115e-02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7444e-02 +1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2435e-02 +1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2493e-03 +1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4960e-03 +1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7530e-03 +1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3386e-03 +1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6603e-03 +1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2582e-04 +1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7038e-04 +1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0171e-04 +1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4880e-04 +1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.2543e-05 +1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.0367e-05 +1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2967e-05 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4784e-06 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9946e-01 +1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2996e-01 +1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7098e-01 +1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8961e-02 +1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6571e-02 +1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6652e-02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8703e-02 +1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1947e-02 +1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7101e-03 +1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7742e-03 +1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7753e-03 +1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5903e-03 +1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5221e-03 +1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6935e-04 +1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3947e-04 +1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8414e-04 +1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4095e-04 +1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6877e-05 +1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1501e-05 +1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2371e-05 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3847e-06 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1694e-01 +1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2925e-01 +1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6070e-01 +1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0420e-02 +1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5727e-02 +1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6919e-02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7340e-02 +1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2913e-02 +1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2323e-03 +1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6998e-03 +1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8338e-03 +1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4469e-03 +1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6192e-03 +1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6660e-04 +1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3891e-04 +1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9657e-04 +1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4845e-04 +1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.7368e-05 +1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.9466e-05 +1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3497e-05 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3567e-06 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0240e-01 +1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2014e-01 +1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7248e-01 +1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2640e-02 +1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2696e-02 +1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8905e-02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8053e-02 +1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2790e-02 +1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7276e-03 +1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8067e-03 +1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6664e-03 +1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5394e-03 +1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5570e-03 +1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3912e-04 +1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5069e-04 +1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9640e-04 +1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5573e-04 +1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6126e-05 +1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1446e-05 +1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2948e-05 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4495e-06 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9582e-01 +1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2237e-01 +1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5867e-01 +1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4919e-02 +1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3766e-02 +1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6208e-02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8675e-02 +1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2289e-02 +1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6364e-03 +1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5096e-03 +1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7437e-03 +1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4276e-03 +1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5001e-03 +1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0188e-03 +1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5535e-04 +1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9745e-04 +1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5490e-04 +1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6680e-05 +1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.9982e-05 +1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3065e-05 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3436e-06 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5291e-01 +2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4376e-01 +2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7156e-01 +2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0455e-02 +2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3210e-02 +2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7299e-02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8173e-02 +2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2745e-02 +2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4394e-03 +2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8510e-03 +2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8140e-03 +2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5087e-03 +2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5719e-03 +2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0281e-04 +2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7030e-04 +2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0948e-04 +2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5300e-04 +2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7503e-05 +2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4781e-05 +2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4015e-05 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.2094e-06 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1189e-01 +2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3397e-01 +2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7087e-01 +2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5282e-02 +2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6996e-02 +2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8878e-02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8452e-02 +2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1824e-02 +2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5803e-03 +2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6363e-03 +2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8160e-03 +2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4700e-03 +2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6040e-03 +2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8031e-04 +2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7268e-04 +2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1684e-04 +2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6115e-04 +2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1325e-05 +2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2368e-05 +2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3983e-05 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1212e-06 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3738e-01 +2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2592e-01 +2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6731e-01 +2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0073e-02 +2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2850e-02 +2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7275e-02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7555e-02 +2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2087e-02 +2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0111e-03 +2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4934e-03 +2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7703e-03 +2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3703e-03 +2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4997e-03 +2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8168e-04 +2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7095e-04 +2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0796e-04 +2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5185e-04 +2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5145e-05 +2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4466e-05 +2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3862e-05 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1458e-06 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9322e-01 +2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3320e-01 +2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5805e-01 +2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8802e-02 +2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3047e-02 +2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6789e-02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8718e-02 +2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1873e-02 +2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4443e-03 +2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3911e-03 +2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6284e-03 +2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2759e-03 +2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5902e-03 +2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4987e-04 +2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6042e-04 +2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0306e-04 +2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5325e-04 +2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.3199e-05 +2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2389e-05 +2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3654e-05 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6344e-06 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1478e-01 +2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2956e-01 +2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6970e-01 +2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9763e-02 +2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4411e-02 +2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8325e-02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8163e-02 +2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2986e-02 +2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3697e-03 +2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4984e-03 +2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7822e-03 +2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4469e-03 +2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5310e-03 +2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9215e-04 +2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7243e-04 +2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9699e-04 +2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6522e-04 +2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2591e-05 +2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5386e-05 +2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5566e-05 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5976e-06 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1272e-01 +2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1870e-01 +2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6559e-01 +2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3622e-02 +2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6343e-02 +2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7197e-02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8884e-02 +2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2275e-02 +2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5975e-03 +2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8142e-03 +2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8816e-03 +2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4892e-03 +2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4692e-03 +2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1473e-04 +2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7489e-04 +2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0396e-04 +2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5606e-04 +2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9254e-05 +2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5755e-05 +2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5506e-05 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3253e-06 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2909e-01 +2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3621e-01 +2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6824e-01 +2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0332e-02 +2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4611e-02 +2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8367e-02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8288e-02 +2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2399e-02 +2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3890e-03 +2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7987e-03 +2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5616e-03 +2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2984e-03 +2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4815e-03 +2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0301e-04 +2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2205e-04 +2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0925e-04 +2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6224e-04 +2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6797e-05 +2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8073e-05 +2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6149e-05 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7389e-06 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9078e-01 +2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2880e-01 +2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6332e-01 +2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2928e-02 +2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5102e-02 +2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6043e-02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9084e-02 +2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2571e-02 +2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3219e-03 +2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4939e-03 +2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8168e-03 +2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3003e-03 +2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4849e-03 +2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1837e-04 +2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3768e-04 +2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0250e-04 +2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5428e-04 +2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6263e-05 +2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7150e-05 +2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6130e-05 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5271e-06 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2288e-01 +2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.5070e-01 +2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6736e-01 +2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9874e-02 +2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3846e-02 +2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7950e-02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8031e-02 +2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2546e-02 +2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5668e-03 +2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6943e-03 +2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7759e-03 +2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4779e-03 +2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4587e-03 +2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4529e-04 +2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4044e-04 +2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9473e-04 +2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6689e-04 +2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.0565e-05 +2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5454e-05 +2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6679e-05 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4171e-06 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4846e-01 +3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3156e-01 +3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7037e-01 +3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8822e-02 +3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2650e-02 +3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6739e-02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7575e-02 +3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2348e-02 +3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0850e-03 +3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5295e-03 +3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5583e-03 +3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4259e-03 +3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4311e-03 +3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8803e-04 +3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5661e-04 +3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1505e-04 +3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7119e-04 +3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4732e-05 +3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6919e-05 +3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6470e-05 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5707e-06 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4965e-01 +3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4157e-01 +3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6227e-01 +3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3147e-02 +3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7031e-02 +3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8034e-02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9026e-02 +3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2412e-02 +3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3879e-03 +3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4433e-03 +3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7396e-03 +3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2438e-03 +3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4954e-03 +3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0395e-04 +3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5798e-04 +3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0882e-04 +3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6808e-04 +3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5612e-05 +3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7221e-05 +3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7741e-05 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2704e-06 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4604e-01 +3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1983e-01 +3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7087e-01 +3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9651e-02 +3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3890e-02 +3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8436e-02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8087e-02 +3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2313e-02 +3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4193e-03 +3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4573e-03 +3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6157e-03 +3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3209e-03 +3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5074e-03 +3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9172e-04 +3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4476e-04 +3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0927e-04 +3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6147e-04 +3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3163e-05 +3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9633e-05 +3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6738e-05 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4521e-06 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2829e-01 +3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1913e-01 +3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6725e-01 +3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0350e-02 +3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5503e-02 +3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7927e-02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8724e-02 +3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2917e-02 +3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3512e-03 +3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9162e-03 +3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5403e-03 +3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2979e-03 +3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4793e-03 +3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9356e-04 +3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4283e-04 +3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9280e-04 +3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6701e-04 +3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6253e-05 +3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9331e-05 +3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7566e-05 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1168e-06 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0574e-01 +3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3153e-01 +3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6167e-01 +3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2105e-02 +3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5194e-02 +3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6121e-02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8138e-02 +3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2027e-02 +3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7556e-03 +3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5210e-03 +3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5739e-03 +3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2426e-03 +3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5219e-03 +3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2133e-04 +3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2528e-04 +3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9266e-04 +3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5726e-04 +3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4560e-05 +3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9083e-05 +3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7562e-05 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1967e-06 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0269e-01 +3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.5065e-01 +3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5872e-01 +3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4012e-02 +3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3880e-02 +3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6583e-02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8459e-02 +3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2547e-02 +3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1537e-03 +3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8391e-03 +3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5890e-03 +3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3220e-03 +3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4219e-03 +3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0574e-04 +3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1891e-04 +3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9562e-04 +3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6101e-04 +3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9562e-05 +3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9299e-05 +3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7308e-05 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5449e-06 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4404e-01 +3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2876e-01 +3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6717e-01 +3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3305e-02 +3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6043e-02 +3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7727e-02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8951e-02 +3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1862e-02 +3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2104e-03 +3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5233e-03 +3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6684e-03 +3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3454e-03 +3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4894e-03 +3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7207e-04 +3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0322e-04 +3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1638e-04 +3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6594e-04 +3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7159e-05 +3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9345e-05 +3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9302e-05 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7296e-06 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1126e-01 +3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3766e-01 +3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6070e-01 +3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4005e-02 +3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6563e-02 +3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8674e-02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8412e-02 +3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1947e-02 +3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8430e-03 +3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8013e-03 +3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5950e-03 +3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4352e-03 +3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5063e-03 +3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9898e-04 +3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3080e-04 +3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0206e-04 +3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7043e-04 +3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6805e-05 +3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1750e-05 +3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7898e-05 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5881e-06 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5052e-01 +3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4592e-01 +3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6358e-01 +3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1045e-02 +3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6981e-02 +3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8260e-02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8813e-02 +3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2145e-02 +3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7548e-03 +3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3925e-03 +3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5944e-03 +3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4289e-03 +3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3934e-03 +3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5083e-04 +3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2303e-04 +3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1937e-04 +3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7137e-04 +3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7505e-05 +3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9584e-05 +3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8064e-05 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2092e-06 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5069e-01 +3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2072e-01 +3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7202e-01 +3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5766e-02 +3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4742e-02 +3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7224e-02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7916e-02 +3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2753e-02 +3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2664e-03 +3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6075e-03 +3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5865e-03 +3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3548e-03 +3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4149e-03 +3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0696e-04 +3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0943e-04 +3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1164e-04 +3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6385e-04 +3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3765e-05 +3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8882e-05 +3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8600e-05 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2767e-06 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1548e-01 +4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1816e-01 +4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6775e-01 +4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3598e-02 +4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5867e-02 +4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7240e-02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7660e-02 +4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2626e-02 +4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7653e-03 +4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7266e-03 +4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6022e-03 +4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3325e-03 +4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3953e-03 +4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5846e-04 +4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2821e-04 +4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0226e-04 +4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6584e-04 +4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.1630e-05 +4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0312e-05 +4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8242e-05 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.1178e-06 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1360e-01 +4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2513e-01 +4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7343e-01 +4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0060e-02 +4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4198e-02 +4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6148e-02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7336e-02 +4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1964e-02 +4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3866e-03 +4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5629e-03 +4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6478e-03 +4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3167e-03 +4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4039e-03 +4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5456e-04 +4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1292e-04 +4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1255e-04 +4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6910e-04 +4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8259e-05 +4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1545e-05 +4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8927e-05 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6596e-06 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3881e-01 +4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4536e-01 +4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6506e-01 +4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3369e-02 +4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2604e-02 +4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8132e-02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7707e-02 +4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2625e-02 +4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6916e-03 +4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7739e-03 +4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6180e-03 +4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3450e-03 +4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5289e-03 +4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7712e-04 +4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2648e-04 +4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1215e-04 +4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6580e-04 +4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2875e-05 +4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0799e-05 +4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0021e-05 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.8948e-06 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1183e-01 +4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3201e-01 +4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6702e-01 +4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0231e-02 +4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4480e-02 +4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7620e-02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7645e-02 +4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2219e-02 +4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2609e-03 +4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8976e-03 +4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7391e-03 +4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4462e-03 +4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4669e-03 +4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1690e-04 +4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0152e-04 +4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9940e-04 +4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6344e-04 +4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0110e-05 +4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0404e-05 +4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8825e-05 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2847e-06 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9480e-01 +4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1738e-01 +4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7423e-01 +4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3877e-02 +4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3422e-02 +4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8180e-02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8565e-02 +4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1763e-02 +4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8205e-03 +4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7181e-03 +4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5557e-03 +4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2865e-03 +4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4342e-03 +4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1913e-04 +4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4155e-04 +4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1063e-04 +4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6142e-04 +4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4611e-05 +4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4490e-05 +4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0218e-05 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4800e-06 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3240e-01 +4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3961e-01 +4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7325e-01 +4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4210e-02 +4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7215e-02 +4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8710e-02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8594e-02 +4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2192e-02 +4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0442e-03 +4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6420e-03 +4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6662e-03 +4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2281e-03 +4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4885e-03 +4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9320e-04 +4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1191e-04 +4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0269e-04 +4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6548e-04 +4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5683e-05 +4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3158e-05 +4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9142e-05 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4798e-06 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2408e-01 +4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2707e-01 +4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6359e-01 +4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0738e-02 +4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6917e-02 +4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8550e-02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8351e-02 +4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2779e-02 +4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6297e-03 +4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6451e-03 +4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5880e-03 +4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2434e-03 +4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5271e-03 +4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.4803e-04 +4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0615e-04 +4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8533e-04 +4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6847e-04 +4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8547e-05 +4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1510e-05 +4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9269e-05 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2599e-06 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2710e-01 +4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2614e-01 +4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6044e-01 +4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4764e-02 +4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3866e-02 +4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7790e-02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8368e-02 +4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2945e-02 +4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5410e-03 +4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8761e-03 +4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5063e-03 +4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3662e-03 +4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4139e-03 +4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.3766e-04 +4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1462e-04 +4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8410e-04 +4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6031e-04 +4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8817e-05 +4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2500e-05 +4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1228e-05 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7116e-06 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4616e-01 +4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3842e-01 +4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7249e-01 +4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9790e-02 +4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6236e-02 +4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6652e-02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8289e-02 +4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1975e-02 +4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8111e-03 +4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5466e-03 +4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5083e-03 +4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2429e-03 +4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5148e-03 +4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.4327e-04 +4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0880e-04 +4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0281e-04 +4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7141e-04 +4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.1178e-05 +4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4852e-05 +4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9826e-05 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7199e-06 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3787e-01 +4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4006e-01 +4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6553e-01 +4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3490e-02 +4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4679e-02 +4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6529e-02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7790e-02 +4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2462e-02 +4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3475e-03 +4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4048e-03 +4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6359e-03 +4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3952e-03 +4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4746e-03 +4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0155e-04 +4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9777e-04 +4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8677e-04 +4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6098e-04 +4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5928e-05 +4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3755e-05 +4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0572e-05 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.1049e-06 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0010e-01 +5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1817e-01 +5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7310e-01 +5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9295e-02 +5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3309e-02 +5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8360e-02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7481e-02 +5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2223e-02 +5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4746e-03 +5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4490e-03 +5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5344e-03 +5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3026e-03 +5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4795e-03 +5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1790e-04 +5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1145e-04 +5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9732e-04 +5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5820e-04 +5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8502e-05 +5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4149e-05 +5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0708e-05 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4316e-06 diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index ac85359..f3c023c 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -134,14 +134,14 @@ def PolygonInd(mesh, pts): model = np.ones(mesh.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 50. +layer_ind = mesh.gridCC[:, -1] < 30. model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 50.] -x1 = np.r_[dx*n_sounding, 50.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 75.] +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 130.] +x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) model[poly_inds] = slope_conductivity @@ -161,7 +161,7 @@ def PolygonInd(mesh, pts): log_mod = np.log10(model) mesh.plotImage( - log_mod, ax=ax1, grid=False, + log_mod, ax=ax1, grid=True, clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), pcolorOpts={"cmap": "viridis"}, ) diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 0bba2ac..c8b09cc 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -180,7 +180,9 @@ # dx = 100. -hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) +hz = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=30 +) hx = np.ones(n_sounding) * dx mesh = TensorMesh([hx, hz], x0='00') @@ -204,8 +206,8 @@ # Simulate response for static conductivity simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, - Solver=PardisoSolver + mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, + n_cpu=2, verbose=True, Solver=PardisoSolver ) #simulation.model = starting_model @@ -260,8 +262,8 @@ reg_map = maps.IdentityMap(mesh_reg) reg = LateralConstraint( mesh_reg, mapping=reg_map, - alpha_s = 0.001, - alpha_x = 0.001, + alpha_s = 0.1, + alpha_x = 0.0001, alpha_y = 1., ) xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) @@ -273,9 +275,11 @@ mesh, mapping=reg_map, ) -ps, px, pz = 2, 1, 0 -reg.norms = np.c_[ps, px, pz, 0] -#reg.mref = starting_model +ps, px, py = 1, 1, 1 +reg.norms = np.c_[ps, px, py, 0] + +reg.mref = starting_model +reg.mrefInSmooth = True # Define how the optimization problem is solved. Here we will use an inexact # Gauss-Newton approach that employs the conjugate gradient solver. @@ -326,9 +330,9 @@ update_IRLS = directives.Update_IRLS( - max_irls_iterations=30, minGNiter=1, + max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, - f_min_change = 1e-4, + f_min_change = 1e-3, coolingRate=3 ) @@ -394,22 +398,25 @@ def PolygonInd(mesh, pts): true_model = np.ones(mesh.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 50. +layer_ind = mesh.gridCC[:, -1] < 30. true_model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 50.] -x1 = np.r_[dx*n_sounding, 50.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 75.] +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 120.] +x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) true_model[poly_inds] = slope_conductivity -l2_model = np.exp(inv_prob.l2model) +l2_model = inv_prob.l2model +dpred_l2 = simulation.dpred(l2_model) +l2_model = np.exp(l2_model) l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) l2_model = mkvc(l2_model) +dpred = simulation.dpred(recovered_model) recovered_model = np.exp(recovered_model) recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) recovered_model = mkvc(recovered_model) @@ -424,7 +431,7 @@ def PolygonInd(mesh, pts): mesh.plotImage( log_mod, ax=ax1, grid=False, - clim=(np.log10(mod.min()), np.log10(mod.max())), + clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) @@ -436,7 +443,7 @@ def PolygonInd(mesh, pts): ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) norm = mpl.colors.Normalize( - vmin=np.log10(mod.min()), vmax=np.log10(mod.max()) + vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) # vmin=np.log10(0.1), vmax=np.log10(1) ) cbar = mpl.colorbar.ColorbarBase( @@ -448,65 +455,21 @@ def PolygonInd(mesh, pts): +data_list = [dobs, dpred_l2, dpred] +color_list = ['k', 'b', 'r'] +fig = plt.figure(figsize = (12, 6)) +ax1 = fig.add_axes([0.05, 0.1, 0.4, 0.8]) +ax2 = fig.add_axes([0.55, 0.1, 0.4, 0.8]) - - - - - - - - - - -####################################################################### -# Plotting Results -# ------------------------------------------------- -# -# - - -#d = np.reshape(dpred, (n_sounding, 2*len(frequencies))).T -# -#fig, ax = plt.subplots(1,1, figsize = (7, 7)) -# -#for ii in range(0, n_sounding): -# ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) -# ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) -# -#ax.set_xlabel("Frequency (Hz)") -#ax.set_ylabel("|Hs/Hp| (ppm)") -#ax.set_title("Magnetic Field as a Function of Frequency") -#ax.legend(["real", "imaginary"]) -# -## -##d = np.reshape(dpred, (n_sounding, 2*len(frequencies))) -##fig = plt.figure(figsize = (10, 5)) -##ax1 = fig.add_subplot(121) -##ax2 = fig.add_subplot(122) -## -##for ii in range(0, n_sounding): -## ax1.semilogy(x, np.abs(d[:, 0:len(frequencies)]), 'k-', lw=2) -## ax2.semilogy(x, np.abs(d[:, len(frequencies):]), 'k--', lw=2) -# -# -# -#if save_file == True: -# -# noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) -# dpred += noise -# fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' -# -# loc = np.repeat(source_locations, len(frequencies), axis=0) -# fvec = np.kron(np.ones(n_sounding), frequencies) -# dout = np.c_[dpred[0::2], dpred[1::2]] -# -# np.savetxt( -# fname, -# np.c_[loc, fvec, dout], -# fmt='%.4e' -# ) +for ii in range(0, len(data_list)): + d1 = np.reshape(data_list[ii][0::2], (n_sounding, len(frequencies))) + d2 = np.reshape(data_list[ii][1::2], (n_sounding, len(frequencies))) + ax1.semilogy(x, np.abs(d1), color_list[ii], lw=1) + ax2.semilogy(x, np.abs(d2), color_list[ii], lw=1) + +ax.set_xlabel("Frequencies (s)") +ax.set_ylabel("Re[H] (A/m)") diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 0df7445..2128790 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -56,11 +56,11 @@ #x = np.linspace(50,250,3) n_sounding = len(x) -source_locations = np.c_[x, np.ones((n_sounding, 2))] +source_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] source_current = 1. source_radius = 5. -receiver_locations = np.c_[x+10., np.ones((n_sounding, 2))] +receiver_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] receiver_orientation = "z" # "x", "y" or "z" times = np.logspace(-5, -2, 21) @@ -80,19 +80,19 @@ ] # Sources -# source_list = [ -# em1d.sources.TimeDomainHorizontalLoopSource( -# receiver_list=receiver_list, location=source_location, a=source_radius, -# I=source_current -# ) -# ] - source_list.append( - em1d.sources.TimeDomainMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation="z", + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, a=source_radius, I=source_current ) ) + +# source_list.append( +# em1d.sources.TimeDomainMagneticDipoleSource( +# receiver_list=receiver_list, location=source_location, orientation="z", +# I=source_current +# ) +# ) # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -126,14 +126,14 @@ def PolygonInd(mesh, pts): model = np.ones(mesh.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 50. +layer_ind = mesh.gridCC[:, -1] < 30. model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 50.] -x1 = np.r_[dx*n_sounding, 50.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 75.] +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 130.] +x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) model[poly_inds] = slope_conductivity diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index 73044c6..fd99bf0 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -104,7 +104,7 @@ source_current = 1. source_radius = 5. -receiver_locations = np.c_[source_locations[:, 0]+10., source_locations[:, 1:]] +receiver_locations = np.c_[source_locations[:, 0], source_locations[:, 1:]] receiver_orientation = "z" # "x", "y" or "z" source_list = [] @@ -122,19 +122,19 @@ ] # Sources -# source_list = [ -# em1d.sources.TimeDomainHorizontalLoopSource( -# receiver_list=receiver_list, location=source_location, a=source_radius, -# I=source_current -# ) -# ] - source_list.append( - em1d.sources.TimeDomainMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation="z", + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, a=source_radius, I=source_current ) ) + +# source_list.append( +# em1d.sources.TimeDomainMagneticDipoleSource( +# receiver_list=receiver_list, location=source_location, orientation="z", +# I=source_current +# ) +# ) # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -168,7 +168,9 @@ # dx = 100. -hz = get_vertical_discretization_time(times, sigma_background=0.1, n_layer=30) +hz = get_vertical_discretization_time( + times, sigma_background=0.1, n_layer=30 +) hx = np.ones(n_sounding) * dx mesh = TensorMesh([hx, hz], x0='00') @@ -248,8 +250,8 @@ reg_map = maps.IdentityMap(mesh_reg) reg = LateralConstraint( mesh_reg, mapping=reg_map, - alpha_s = 0.001, - alpha_x = 0.001, + alpha_s = 0.1, + alpha_x = 0.0001, alpha_y = 1., ) xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) @@ -261,9 +263,11 @@ mesh, mapping=reg_map, ) -ps, px, pz = 2, 2, 0 -reg.norms = np.c_[ps, px, pz, 0] -#reg.mref = starting_model +ps, px, py = 1, 1, 1 +reg.norms = np.c_[ps, px, py, 0] + +reg.mref = starting_model +reg.mrefInSmooth = True # Define how the optimization problem is solved. Here we will use an inexact # Gauss-Newton approach that employs the conjugate gradient solver. @@ -301,10 +305,10 @@ # Defining a starting value for the trade-off parameter (beta) between the data # misfit and the regularization. -starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1) +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) -beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=1) +beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) # Update the preconditionner update_Jacobi = directives.UpdatePreconditioner() @@ -314,9 +318,9 @@ update_IRLS = directives.Update_IRLS( - max_irls_iterations=30, minGNiter=1, + max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, - f_min_change = 1e-4, + f_min_change = 1e-3, coolingRate=3 ) @@ -382,23 +386,26 @@ def PolygonInd(mesh, pts): true_model = np.ones(mesh.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 50. +layer_ind = mesh.gridCC[:, -1] < 30. true_model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 50.] -x1 = np.r_[dx*n_sounding, 50.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 75.] +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 130.] +x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) true_model[poly_inds] = slope_conductivity -l2_model = np.exp(inv_prob.l2model) +l2_model = inv_prob.l2model +dpred_l2 = simulation.dpred(l2_model) +l2_model = np.exp(l2_model) l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) l2_model = mkvc(l2_model) +dpred = simulation.dpred(recovered_model) recovered_model = np.exp(recovered_model) recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) recovered_model = mkvc(recovered_model) @@ -413,7 +420,7 @@ def PolygonInd(mesh, pts): mesh.plotImage( log_mod, ax=ax1, grid=False, - clim=(np.log10(mod.min()), np.log10(mod.max())), + clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) @@ -425,7 +432,7 @@ def PolygonInd(mesh, pts): ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) norm = mpl.colors.Normalize( - vmin=np.log10(mod.min()), vmax=np.log10(mod.max()) + vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) # vmin=np.log10(0.1), vmax=np.log10(1) ) cbar = mpl.colorbar.ColorbarBase( @@ -436,7 +443,7 @@ def PolygonInd(mesh, pts): -data_list = [dobs, simulation.dpred(l2_model), simulation.dpred(recovered_model)] +data_list = [dobs, dpred_l2, dpred] color_list = ['k', 'b', 'r'] fig, ax = plt.subplots(1,1, figsize = (7, 7)) From 31a7a1de3cc4cc45ea448ae858498a6a78c25695 Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 29 Jun 2020 12:56:46 -0700 Subject: [PATCH 19/54] small edits --- simpegEM1D/simulation.py | 38 +++++++++++++------------- tutorials/plot_1_fdem_fwd_sources.py | 24 ++++++++-------- tutorials/plot_1_tdem_fwd_waveforms.py | 30 ++++++++++---------- 3 files changed, 46 insertions(+), 46 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 9d03686..3aa407a 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -256,31 +256,31 @@ def compute_integral(self, m, output_type='response'): r = src.location[0:2] - rx.locations[0:2] r = np.sqrt(np.sum(r**2)) - if r > 0.01: +# if r > 0.01: - r_vec = r * np.ones(n_frequency) + r_vec = r * np.ones(n_frequency) - # Use function from empymod - # size of lambd is (n_frequency x n_filter) - lambd = np.empty([n_frequency, n_filter], order='F') - lambd[:, :], _ = get_dlf_points( - self.fhtfilt, r_vec, self.hankel_pts_per_dec - ) + # Use function from empymod + # size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') + lambd[:, :], _ = get_dlf_points( + self.fhtfilt, r_vec, self.hankel_pts_per_dec + ) - # Get kernel function at all lambda and frequencies - PJ = magnetic_dipole_kernel( - self, lambd, f, n_layer, sig, chi, I, h, z, r, - src, rx, output_type - ) + # Get kernel function at all lambda and frequencies + PJ = magnetic_dipole_kernel( + self, lambd, f, n_layer, sig, chi, I, h, z, r, + src, rx, output_type + ) - PJ = tuple(PJ) + PJ = tuple(PJ) - if output_type=="sensitivity_sigma": - r_vec = np.tile(r_vec, (n_layer, 1)) + if output_type=="sensitivity_sigma": + r_vec = np.tile(r_vec, (n_layer, 1)) - integral_output = dlf( - PJ, lambd, r_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 - ) + integral_output = dlf( + PJ, lambd, r_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 + ) # elif src.orientation == "z": diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index bec0d2b..199c3ac 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -27,7 +27,7 @@ # # -source_location = np.array([0., 0., 5.]) +source_location = np.array([0., 0., 2.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = np.sqrt(1/np.pi) @@ -35,8 +35,8 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location_1 = np.array([0.1, 0., 0.5]) -receiver_location_2 = np.array([0., 0., 0.5]) +receiver_location_1 = np.array([0., 0., 1.]) +receiver_location_2 = np.array([0., 0., 1.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -82,19 +82,19 @@ ) ) +#source_list.append( +# em1d.sources.HarmonicMagneticDipoleSource( +# receiver_list=receiver_list[2:], location=source_location, +# orientation="z", I=source_current +# ) +#) + source_list.append( - em1d.sources.HarmonicMagneticDipoleSource( + em1d.sources.HarmonicHorizontalLoopSource( receiver_list=receiver_list[2:], location=source_location, - orientation="z", I=source_current + a=source_radius, I=source_current ) ) - -#source_list.append( -# em1d.sources.HarmonicHorizontalLoopSource( -# receiver_list=receiver_list, location=source_location, -# a=source_radius, I=source_current -# ) -#) #source_list.append( # em1d.sources.HarmonicLineSource( diff --git a/tutorials/plot_1_tdem_fwd_waveforms.py b/tutorials/plot_1_tdem_fwd_waveforms.py index 75a3340..734143f 100644 --- a/tutorials/plot_1_tdem_fwd_waveforms.py +++ b/tutorials/plot_1_tdem_fwd_waveforms.py @@ -150,21 +150,21 @@ # Compute and plot complex conductivity at all frequencies frequencies = np.logspace(-3, 6, 91) -sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) - -fig = plt.figure() -ax = fig.add_subplot(111) -ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=2) -ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=2) -ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=2) -ax.set_xlim(np.min(frequencies), np.max(frequencies)) -ax.set_ylim(0., 1.1*sigma) -ax.set_xlabel("Frequency (Hz)") -ax.set_ylabel("Conductivity") -ax.legend( - ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], - loc="center right" -) +#sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) +# +#fig = plt.figure() +#ax = fig.add_subplot(111) +#ax.semilogx(frequencies, sigma*np.ones(len(frequencies)), "b", lw=2) +#ax.semilogx(frequencies, np.real(sigma_complex), "r", lw=2) +#ax.semilogx(frequencies, np.imag(sigma_complex), "r--", lw=2) +#ax.set_xlim(np.min(frequencies), np.max(frequencies)) +#ax.set_ylim(0., 1.1*sigma) +#ax.set_xlabel("Frequency (Hz)") +#ax.set_ylabel("Conductivity") +#ax.legend( +# ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], +# loc="center right" +#) ####################################################################### # Define the Forward Simulation and Predict Data From 33f627a6b46d7e8ae41a0521d59fa135743cb241 Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 20 Jul 2020 11:14:00 -0700 Subject: [PATCH 20/54] Fix import issues --- simpegEM1D/__init__.py | 55 ++++++++++++++------- simpegEM1D/supporting_functions/__init__.py | 2 + 2 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 simpegEM1D/supporting_functions/__init__.py diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index c1d20fe..d6bb0df 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,14 +1,34 @@ -from .simulation_original import BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation -from .survey_original import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD -from . import supporting_functions -from .analytics import * -from .sources import ( - HarmonicMagneticDipoleSource, HarmonicHorizontalLoopSource, HarmonicLineSource, - TimeDomainMagneticDipoleSource, TimeDomainHorizontalLoopSource, TimeDomainLineSource +# Surveys +from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD +# from .survey_original import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD + +# Sources and receivers +from . import sources +from . import receivers + +# Simulations +from .simulation import ( + BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation ) -from .receivers import HarmonicPointReceiver, TimeDomainPointReceiver -# from .RTEfun import rTEfunfwd, rTEfunjac +from .simulation_stitched1d import ( + GlobalEM1DSimulation, GlobalEM1DSimulationFD, GlobalEM1DSimulationTD, + GlobalEM1DSurvey, GlobalEM1DSurveyFD, GlobalEM1DSurveyTD +) + +# Other +from .analytics import * from .waveforms import * +from .Utils1D import * + +from . import supporting_functions + +# from .sources import ( +# HarmonicMagneticDipoleSource, HarmonicHorizontalLoopSource, HarmonicLineSource, +# TimeDomainMagneticDipoleSource, TimeDomainHorizontalLoopSource, TimeDomainLineSource +# ) +# from .receivers import HarmonicPointReceiver, TimeDomainPointReceiver +# from .RTEfun import rTEfunfwd, rTEfunjac + from .KnownWaveforms import ( skytem_HM_2015, skytem_LM_2015, butter_lowpass_filter, butterworth_type_filter, @@ -22,16 +42,13 @@ geotem, tempest ) -from .Utils1D import * -from .simulation_stitched1d import ( - GlobalEM1DSimulationFD, GlobalEM1DSurveyFD, - GlobalEM1DSimulationTD, GlobalEM1DSurveyTD -) -from .EM1DSimulation import ( - get_vertical_discretization_frequency, - get_vertical_discretization_time, - set_mesh_1d, run_simulation_FD, run_simulation_TD -) + + +# from .EM1DSimulation import ( +# get_vertical_discretization_frequency, +# get_vertical_discretization_time, +# set_mesh_1d, run_simulation_FD, run_simulation_TD +# ) from .Regularization import ( LateralConstraint, get_2d_mesh ) diff --git a/simpegEM1D/supporting_functions/__init__.py b/simpegEM1D/supporting_functions/__init__.py new file mode 100644 index 0000000..a4fa666 --- /dev/null +++ b/simpegEM1D/supporting_functions/__init__.py @@ -0,0 +1,2 @@ +from .digital_filter import * +from .kernels import * \ No newline at end of file From 1ae755b9af0b012cc5302692361e5c2652ede40d Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 27 Jul 2020 20:07:59 -0700 Subject: [PATCH 21/54] Fix some bugs and fix tests (incomplete) --- simpegEM1D/EM1DSimulation.py | 180 -- simpegEM1D/EM1DSimulation_original.py | 208 -- simpegEM1D/IO.py | 2 +- simpegEM1D/Waveform_old.py | 113 - simpegEM1D/__init__.py | 5 +- simpegEM1D/simulation.py | 4 +- simpegEM1D/simulation_original.py | 643 ----- simpegEM1D/simulation_stitched1d.py | 132 +- simpegEM1D/simulation_stitched1d_original.py | 980 -------- .../supporting_functions/kernels_original.py | 848 ------- simpegEM1D/utils/__init__.py | 1 + simpegEM1D/{Utils1D.py => utils/utils1D.py} | 47 + tests/testEM1D_FD_fwd.py | 392 +-- tests/testEM1D_FD_jac_layers.py | 144 +- tests/testEM1D_TD_general_fwd.py | 231 +- tests/testEM1D_TD_off_fwd.py | 188 +- tutorials/assets/em1dfm_data.obs | 10 +- tutorials/assets/em1dfm_stitched_data.obs | 600 ++--- tutorials/assets/em1dtm_data.obs | 62 +- tutorials/assets/em1dtm_stitched_data.obs | 2100 ++++++++--------- tutorials/plot_1_fdem_fwd.py | 4 +- tutorials/plot_1_fdem_fwd_chargeable.py | 4 +- tutorials/plot_1_fdem_inv.py | 3 +- tutorials/plot_1_tdem_fwd.py | 2 +- tutorials/plot_1_tdem_inv.py | 3 +- tutorials/plot_2_fdem_fwd_stitched.py | 3 +- tutorials/plot_2_fdem_inv_stitched.py | 4 +- tutorials/plot_2_tdem_fwd_stitched.py | 3 +- tutorials/plot_2_tdem_inv_stitched.py | 4 +- 29 files changed, 2107 insertions(+), 4813 deletions(-) delete mode 100644 simpegEM1D/EM1DSimulation.py delete mode 100644 simpegEM1D/EM1DSimulation_original.py delete mode 100644 simpegEM1D/Waveform_old.py delete mode 100644 simpegEM1D/simulation_original.py delete mode 100644 simpegEM1D/simulation_stitched1d_original.py delete mode 100644 simpegEM1D/supporting_functions/kernels_original.py create mode 100644 simpegEM1D/utils/__init__.py rename simpegEM1D/{Utils1D.py => utils/utils1D.py} (71%) diff --git a/simpegEM1D/EM1DSimulation.py b/simpegEM1D/EM1DSimulation.py deleted file mode 100644 index ebee781..0000000 --- a/simpegEM1D/EM1DSimulation.py +++ /dev/null @@ -1,180 +0,0 @@ -import numpy as np -from discretize import TensorMesh -from SimPEG import maps, utils -from .analytics import skin_depth, diffusion_distance -from .simulation import EM1DFMSimulation, EM1DTMSimulation -from .survey import EM1DSurveyFD, EM1DSurveyTD - - -def get_vertical_discretization_frequency( - frequency, sigma_background=0.01, - factor_fmax=4, factor_fmin=1., n_layer=19, - hz_min=None, z_max=None -): - if hz_min is None: - hz_min = skin_depth(frequency.max(), sigma_background) / factor_fmax - if z_max is None: - z_max = skin_depth(frequency.min(), sigma_background) * factor_fmin - i = 4 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - - while z_sum < z_max: - i += 1 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - return hz - - -def get_vertical_discretization_time( - time, sigma_background=0.01, - factor_tmin=4, facter_tmax=1., n_layer=19, - hz_min=None, z_max=None -): - if hz_min is None: - hz_min = diffusion_distance(time.min(), sigma_background) / factor_tmin - if z_max is None: - z_max = diffusion_distance(time.max(), sigma_background) * facter_tmax - i = 4 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - while z_sum < z_max: - i += 1 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - return hz - - -def set_mesh_1d(hz): - return TensorMesh([hz], x0=[0]) - - -def run_simulation_FD(args): - """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : - """ - - src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - - local_survey = EM1DSurveyFD([src]) - expmap = maps.ExpMap(nP=len(hz)) - thicknesses = hz[0:-1] - - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - - sim = EM1DFMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - # return utils.mkvc(drespdsig) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - - mesh1D = set_mesh_1d(hz) - wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) - sigmaMap = expmap * wires.sigma - - sim = EM1DFMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, Map=wires.h, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - # return utils.mkvc(drespdsig) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - - -def run_simulation_TD(args): - """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : - """ - - src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - - local_survey = EM1DSurveyTD([src]) - expmap = maps.ExpMap(nP=len(hz)) - thicknesses = hz[0:-1] - - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - sim = EM1DTMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - - mesh1D = set_mesh_1d(hz) - wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) - sigmaMap = expmap * wires.sigma - sim = EM1DTMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, Map=wires.h, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - diff --git a/simpegEM1D/EM1DSimulation_original.py b/simpegEM1D/EM1DSimulation_original.py deleted file mode 100644 index 113655c..0000000 --- a/simpegEM1D/EM1DSimulation_original.py +++ /dev/null @@ -1,208 +0,0 @@ -import numpy as np -from discretize import TensorMesh -from SimPEG import maps, utils -from .analytics import skin_depth, diffusion_distance -from .simulation_original import EM1DFMSimulation, EM1DTMSimulation -from .survey_original import EM1DSurveyFD, EM1DSurveyTD - - -def get_vertical_discretization_frequency( - frequency, sigma_background=0.01, - factor_fmax=4, factor_fmin=1., n_layer=19, - hz_min=None, z_max=None -): - if hz_min is None: - hz_min = skin_depth(frequency.max(), sigma_background) / factor_fmax - if z_max is None: - z_max = skin_depth(frequency.min(), sigma_background) * factor_fmin - i = 4 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - - while z_sum < z_max: - i += 1 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - return hz - - -def get_vertical_discretization_time( - time, sigma_background=0.01, - factor_tmin=4, facter_tmax=1., n_layer=19, - hz_min=None, z_max=None -): - if hz_min is None: - hz_min = diffusion_distance(time.min(), sigma_background) / factor_tmin - if z_max is None: - z_max = diffusion_distance(time.max(), sigma_background) * facter_tmax - i = 4 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - while z_sum < z_max: - i += 1 - hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) - z_sum = hz.sum() - return hz - - -def set_mesh_1d(hz): - return TensorMesh([hz], x0=[0]) - - -def run_simulation_FD(args): - """ - args - - rx_location: Recevier location (x, y, z) - src_location: Source location (x, y, z) - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - offset: Source-Receiver offset - frequency: Frequency (Hz) - field_type: - rx_type: - src_type: - sigma: - jac_switch : - """ - - rx_location, src_location, topo, hz, offset, frequency, field_type, rx_type, src_type, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - mesh_1d = set_mesh_1d(hz) - depth = -mesh_1d.gridN[:-1] - FDsurvey = EM1DSurveyFD( - rx_location=rx_location, - src_location=src_location, - topo=topo, - frequency=frequency, - offset=offset, - field_type=field_type, - rx_type=rx_type, - src_type=src_type, - depth=depth, - half_switch=half_switch - ) - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - expmap = maps.ExpMap(mesh_1d) - sim = EM1DFMSimulation( - mesh_1d, survey=FDsurvey, sigmaMap=expmap, chi=chi, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - # return utils.mkvc(drespdsig) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = maps.ExpMap(mesh_1d) - sigmaMap = expmap * wires.sigma - sim = EM1DFMSimulation( - mesh_1d, survey=FDsurvey, sigmaMap=sigmaMap, hMap=wires.h, chi=chi, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - # return utils.mkvc(drespdsig) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - - -def run_simulation_TD(args): - """ - args - - rx_location: Recevier location (x, y, z) - src_location: Source location (x, y, z) - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - time: Time (s) - field_type: 'secondary' - rx_type: - src_type: - wave_type: - offset: Source-Receiver offset (for VMD) - a: Source-loop radius (for Circular Loop) - time_input_currents: - input_currents: - n_pulse: - base_frequency: - sigma: - jac_switch: - """ - - rx_location, src_location, topo, hz, time, field_type, rx_type, src_type, wave_type, offset, a, time_input_currents, input_currents, n_pulse, base_frequency, use_lowpass_filter, high_cut_frequency, moment_type, time_dual_moment, time_input_currents_dual_moment, input_currents_dual_moment, base_frequency_dual_moment, sigma, eta, tau, c, h, jac_switch, invert_height, half_switch = args - - mesh_1d = set_mesh_1d(hz) - depth = -mesh_1d.gridN[:-1] - TDsurvey = EM1DSurveyTD( - rx_location=rx_location, - src_location=src_location, - topo=topo, - depth=depth, - time=time, - field_type=field_type, - rx_type=rx_type, - src_type=src_type, - wave_type=wave_type, - offset=offset, - a=a, - time_input_currents=time_input_currents, - input_currents=input_currents, - n_pulse=n_pulse, - base_frequency=base_frequency, - high_cut_frequency=high_cut_frequency, - moment_type=moment_type, - time_dual_moment=time_dual_moment, - time_input_currents_dual_moment=time_input_currents_dual_moment, - input_currents_dual_moment=input_currents_dual_moment, - base_frequency_dual_moment=base_frequency_dual_moment, - half_switch=half_switch, - ) - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - expmap = maps.ExpMap(mesh_1d) - sim = EM1DTMSimulation( - mesh_1d, survey=TDsurvey, sigmaMap=expmap, hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - wires = maps.Wires(('sigma', mesh_1d.nC), ('h', 1)) - expmap = maps.ExpMap(mesh_1d) - sigmaMap = expmap * wires.sigma - sim = EM1DTMSimulation( - mesh_1d, survey=TDsurvey, sigmaMap=sigmaMap, hMap=wires.h, - hankel_filter='key_101_2009', - eta=eta, tau=tau, c=c - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - diff --git a/simpegEM1D/IO.py b/simpegEM1D/IO.py index c4cd0ab..d3252b5 100644 --- a/simpegEM1D/IO.py +++ b/simpegEM1D/IO.py @@ -4,7 +4,7 @@ import scipy.sparse as sp from SimPEG import utils from discretize import TensorMesh -from .EM1DSimulation import set_mesh_1d +from .utils import set_mesh_1d import matplotlib.pyplot as plt from matplotlib.colors import LogNorm import warnings diff --git a/simpegEM1D/Waveform_old.py b/simpegEM1D/Waveform_old.py deleted file mode 100644 index 740793e..0000000 --- a/simpegEM1D/Waveform_old.py +++ /dev/null @@ -1,113 +0,0 @@ -import numpy as np -from scipy.interpolate import interp1d -from scipy.constants import mu_0 - -def TriangleFun(time, ta, tb): - """ - Triangular Waveform - * time: 1D array for time - * ta: time at peak - * tb: time at step-off - """ - out = np.zeros(time.size) - out[time<=ta] = 1/ta*time[time<=ta] - out[(time>ta)&(timeta)&(timeta)&(timeta)&(timeta)&(timeta)&(time 0", - ) - - survey = properties.Instance( - "a survey object", BaseEM1DSurvey, required=True - ) - - def __init__(self, mesh, **kwargs): - BaseSimulation.__init__(self, mesh, **kwargs) - - # Check input arguments. If self.hankel_filter is not a valid filter, - # it will set it to the default (key_201_2009). - - ht, htarg = check_hankel( - 'dlf', - { - 'dlf': self.hankel_filter, - 'pts_per_dec': 0 - }, - 1 - ) - - self.fhtfilt = htarg['dlf'] # Store filter - self.hankel_pts_per_dec = htarg['pts_per_dec'] # Store pts_per_dec - if self.verbose: - print(">> Use "+self.hankel_filter+" filter for Hankel Transform") - - # if self.hankel_pts_per_dec != 0: - # raise NotImplementedError() - - # make it as a property? - - def sigma_cole(self): - """ - Computes Pelton's Cole-Cole conductivity model - in frequency domain. - - Parameter - --------- - - n_filter: int - the number of filter values - f: ndarray - frequency (Hz) - - Return - ------ - - sigma_complex: ndarray (n_layer x n_frequency x n_filter) - Cole-Cole conductivity values at given frequencies - - """ - n_layer = self.survey.n_layer - n_frequency = self.survey.n_frequency - n_filter = self.n_filter - f = self.survey.frequency - - sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) - if np.isscalar(self.eta): - eta = self.eta - tau = self.tau - c = self.c - else: - eta = np.tile(self.eta.reshape([-1, 1]), (1, n_frequency)) - tau = np.tile(self.tau.reshape([-1, 1]), (1, n_frequency)) - c = np.tile(self.c.reshape([-1, 1]), (1, n_frequency)) - - w = np.tile( - 2*np.pi*f, - (n_layer, 1) - ) - - sigma_complex = np.empty( - [n_layer, n_frequency], dtype=np.complex128, order='F' - ) - sigma_complex[:, :] = ( - sigma - - sigma*eta/(1+(1-eta)*(1j*w*tau)**c) - ) - - sigma_complex_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - sigma_complex_tensor[:, :, :] = np.tile(sigma_complex.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) - - return sigma_complex_tensor - - @property - def n_filter(self): - """ Length of filter """ - return self.fhtfilt.base.size - - def forward(self, m, output_type='response'): - """ - Return Bz or dBzdt - """ - - self.model = m - - n_frequency = self.survey.n_frequency - flag = self.survey.field_type - n_layer = self.survey.n_layer - depth = self.survey.depth - I = self.survey.I - n_filter = self.n_filter - - # Get lambd and offset, will depend on pts_per_dec - if self.survey.src_type == "VMD": - r = self.survey.offset - else: - # a is the radius of the loop - r = self.survey.a * np.ones(n_frequency) - - # Use function from empymod - # size of lambd is (n_frequency x n_filter) - lambd = np.empty([self.survey.frequency.size, n_filter], order='F') - lambd[:, :], _ = get_dlf_points( - self.fhtfilt, r, self.hankel_pts_per_dec - ) - - # TODO: potentially store - f = np.empty([self.survey.frequency.size, n_filter], order='F') - f[:, :] = np.tile( - self.survey.frequency.reshape([-1, 1]), (1, n_filter) - ) - # h is an inversion parameter - if self.hMap is not None: - h = self.h - else: - h = self.survey.h - - z = h + self.survey.dz - - chi = self.chi - - if np.isscalar(self.chi): - chi = np.ones_like(self.sigma) * self.chi - - # TODO: potentially store - sig = self.sigma_cole() - - if output_type == 'response': - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) - - # kernels for each bessel function - # (j0, j1, j2) - PJ = (hz, None, None) # PJ0 - - elif self.survey.src_type == 'CircularLoop': - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - - # TODO: This has not implemented yet! - elif self.survey.src_type == "piecewise_line": - # Need to compute y - hz = hz_kernel_horizontal_electric_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - # kernels for each bessel function - # (j0, j1, j2) - PJ = (None, hz, None) # PJ1 - - else: - raise Exception("Src options are only VMD or CircularLoop!!") - - elif output_type == 'sensitivity_sigma': - - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) - - PJ = (hz, None, None) # PJ0 - - elif self.survey.src_type == 'CircularLoop': - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - - PJ = (None, hz, None) # PJ1 - - else: - raise Exception("Src options are only VMD or CircularLoop!!") - - r = np.tile(r, (n_layer, 1)) - - elif output_type == 'sensitivity_height': - - # for simulation - if self.survey.src_type == 'VMD': - hz = hz_kernel_vertical_magnetic_dipole( - self, lambd, f, n_layer, - sig, chi, depth, h, z, - flag, I, output_type=output_type - ) - - PJ = (hz, None, None) # PJ0 - - elif self.survey.src_type == 'CircularLoop': - - hz = hz_kernel_circular_loop( - self, lambd, f, n_layer, - sig, chi, depth, h, z, I, r, - flag, output_type=output_type - ) - - PJ = (None, hz, None) # PJ1 - - else: - raise Exception("Src options are only VMD or CircularLoop!!") - - # Carry out Hankel DLF - # ab=66 => 33 (vertical magnetic src and rec) - # For response - # HzFHT size = (n_frequency,) - # For sensitivity - # HzFHT size = (n_layer, n_frequency) - - HzFHT = dlf(PJ, lambd, r, self.fhtfilt, self.hankel_pts_per_dec, - ang_fact=None, ab=33) - - if output_type == "sensitivity_sigma": - return HzFHT.T - - return HzFHT - - # @profile - def fields(self, m): - f = self.forward(m, output_type='response') - # self.survey._pred = utils.mkvc(self.survey.projectFields(f)) - return f - - def getJ_height(self, m, f=None): - """ - - """ - if self.hMap is None: - return utils.Zero() - - if self._Jmatrix_height is not None: - return self._Jmatrix_height - else: - - if self.verbose: - print(">> Compute J height ") - - dudz = self.forward(m, output_type="sensitivity_height") - - self._Jmatrix_height = ( - self.projectFields(dudz) - ).reshape([-1, 1]) - - return self._Jmatrix_height - - # @profile - def getJ_sigma(self, m, f=None): - - if self.sigmaMap is None: - return utils.Zero() - - if self._Jmatrix_sigma is not None: - return self._Jmatrix_sigma - else: - - if self.verbose: - print(">> Compute J sigma") - - dudsig = self.forward(m, output_type="sensitivity_sigma") - - self._Jmatrix_sigma = self.projectFields(dudsig) - if self._Jmatrix_sigma.ndim == 1: - self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) - return self._Jmatrix_sigma - - def getJ(self, m, f=None): - return ( - self.getJ_sigma(m, f=f) * self.sigmaDeriv + - self.getJ_height(m, f=f) * self.hDeriv - ) - - def Jvec(self, m, v, f=None): - """ - Computing Jacobian^T multiplied by vector. - """ - - J_sigma = self.getJ_sigma(m, f=f) - J_height = self.getJ_height(m, f=f) - Jv = np.dot(J_sigma, self.sigmaMap.deriv(m, v)) - if self.hMap is not None: - Jv += np.dot(J_height, self.hMap.deriv(m, v)) - return Jv - - def Jtvec(self, m, v, f=None): - """ - Computing Jacobian^T multiplied by vector. - """ - - J_sigma = self.getJ_sigma(m, f=f) - J_height = self.getJ_height(m, f=f) - Jtv = self.sigmaDeriv.T*np.dot(J_sigma.T, v) - if self.hMap is not None: - Jtv += self.hDeriv.T*np.dot(J_height.T, v) - return Jtv - - @property - def deleteTheseOnModelUpdate(self): - toDelete = [] - if self.fix_Jmatrix is False: - if self._Jmatrix_sigma is not None: - toDelete += ['_Jmatrix_sigma'] - if self._Jmatrix_height is not None: - toDelete += ['_Jmatrix_height'] - return toDelete - - def depth_of_investigation_christiansen_2012(self, std, thres_hold=0.8): - pred = self.survey._pred.copy() - delta_d = std * np.log(abs(self.survey.dobs)) - J = self.getJ(self.model) - J_sum = abs(utils.sdiag(1/delta_d/pred) * J).sum(axis=0) - S = np.cumsum(J_sum[::-1])[::-1] - active = S-thres_hold > 0. - doi = abs(self.survey.depth[active]).max() - return doi, active - - def get_threshold(self, uncert): - _, active = self.depth_of_investigation(uncert) - JtJdiag = self.get_JtJdiag(uncert) - delta = JtJdiag[active].min() - return delta - - def get_JtJdiag(self, uncert): - J = self.getJ(self.model) - JtJdiag = (np.power((utils.sdiag(1./uncert)*J), 2)).sum(axis=0) - return JtJdiag - - - def dpred(self, m, f=None): - """ - Computes predicted data. - Here we do not store predicted data - because projection (`d = P(f)`) is cheap. - """ - - if f is None: - f = self.fields(m) - return utils.mkvc(self.projectFields(f)) - - - -class EM1DFMSimulation(BaseEM1DSimulation): - - def __init__(self, mesh, **kwargs): - BaseEM1DSimulation.__init__(self, mesh, **kwargs) - - - @property - def hz_primary(self): - # Assumes HCP only at the moment - if self.survey.src_type == 'VMD': - return -1./(4*np.pi*self.survey.offset**3) - elif self.survey.src_type == 'CircularLoop': - return self.I/(2*self.survey.a) * np.ones_like(self.survey.frequency) - else: - raise NotImplementedError() - - - def projectFields(self, u): - """ - Decompose frequency domain EM responses as real and imaginary - components - """ - - ureal = (u.real).copy() - uimag = (u.imag).copy() - - if self.survey.rx_type == 'Hz': - factor = 1. - elif self.survey.rx_type == 'ppm': - factor = 1./self.hz_primary * 1e6 - - if self.survey.switch_real_imag == 'all': - ureal = (u.real).copy() - uimag = (u.imag).copy() - if ureal.ndim == 1 or 0: - resp = np.r_[ureal*factor, uimag*factor] - elif ureal.ndim == 2: - if np.isscalar(factor): - resp = np.vstack( - (factor*ureal, factor*uimag) - ) - else: - resp = np.vstack( - (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - ) - else: - raise NotImplementedError() - elif self.survey.switch_real_imag == 'real': - resp = (u.real).copy() - elif self.survey.switch_real_imag == 'imag': - resp = (u.imag).copy() - else: - raise NotImplementedError() - - return resp - - - - - - -class EM1DTMSimulation(BaseEM1DSimulation): - - - - - - def __init__(self, mesh, **kwargs): - BaseEM1DSimulation.__init__(self, mesh, **kwargs) - - - def projectFields(self, u): - """ - Transform frequency domain responses to time domain responses - """ - # Compute frequency domain reponses right at filter coefficient values - # Src waveform: Step-off - - if self.survey.use_lowpass_filter: - factor = self.survey.lowpass_filter.copy() - else: - factor = np.ones_like(self.survey.frequency, dtype=complex) - - if self.survey.rx_type == 'Bz': - factor *= 1./(2j*np.pi*self.survey.frequency) - - if self.survey.wave_type == 'stepoff': - # Compute EM responses - if u.size == self.survey.n_frequency: - resp, _ = fourier_dlf( - u.flatten()*factor, self.survey.time, - self.survey.frequency, self.survey.ftarg - ) - # Compute EM sensitivities - else: - resp = np.zeros( - (self.survey.n_time, self.survey.n_layer), dtype=np.float64, order='F') - # ) - # TODO: remove for loop - for i in range(self.survey.n_layer): - resp_i, _ = fourier_dlf( - u[:, i]*factor, self.survey.time, - self.survey.frequency, self.survey.ftarg - ) - resp[:, i] = resp_i - - # Evaluate piecewise linear input current waveforms - # Using Fittermann's approach (19XX) with Gaussian Quadrature - elif self.survey.wave_type == 'general': - # Compute EM responses - if u.size == self.survey.n_frequency: - resp_int, _ = fourier_dlf( - u.flatten()*factor, self.survey.time_int, - self.survey.frequency, self.survey.ftarg - ) - # step_func = interp1d( - # self.time_int, resp_int - # ) - step_func = iuSpline( - np.log10(self.survey.time_int), resp_int - ) - - resp = piecewise_pulse_fast( - step_func, self.survey.time, - self.survey.time_input_currents, - self.survey.input_currents, - self.survey.period, - n_pulse=self.survey.n_pulse - ) - - # Compute response for the dual moment - if self.survey.moment_type == "dual": - resp_dual_moment = piecewise_pulse_fast( - step_func, self.survey.time_dual_moment, - self.survey.time_input_currents_dual_moment, - self.survey.input_currents_dual_moment, - self.survey.period_dual_moment, - n_pulse=self.survey.n_pulse - ) - # concatenate dual moment response - # so, ordering is the first moment data - # then the second moment data. - resp = np.r_[resp, resp_dual_moment] - - # Compute EM sensitivities - else: - if self.survey.moment_type == "single": - resp = np.zeros( - (self.survey.n_time, self.survey.n_layer), - dtype=np.float64, order='F' - ) - else: - # For dual moment - resp = np.zeros( - (self.survey.n_time+self.survey.n_time_dual_moment, self.survey.n_layer), - dtype=np.float64, order='F') - - # TODO: remove for loop (?) - for i in range(self.survey.n_layer): - resp_int_i, _ = fourier_dlf( - u[:, i]*factor, self.survey.time_int, - self.survey.frequency, self.survey.ftarg - ) - # step_func = interp1d( - # self.time_int, resp_int_i - # ) - - step_func = iuSpline( - np.log10(self.survey.time_int), resp_int_i - ) - - resp_i = piecewise_pulse_fast( - step_func, self.survey.time, - self.survey.time_input_currents, self.survey.input_currents, - self.survey.period, n_pulse=self.survey.n_pulse - ) - - if self.survey.moment_type == "single": - resp[:, i] = resp_i - else: - resp_dual_moment_i = piecewise_pulse_fast( - step_func, - self.survey.time_dual_moment, - self.survey.time_input_currents_dual_moment, - self.survey.input_currents_dual_moment, - self.survey.period_dual_moment, - n_pulse=self.survey.n_pulse - ) - resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - return resp * (-2.0/np.pi) * mu_0 - - - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Predicted data (`_pred`) are computed and stored - # when self.prob.fields(m) is called. - # """ - # if f is None: - # f = self.fields(m) - - # return f - - - - -if __name__ == '__main__': - main() diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index 8367f60..43bf533 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -13,7 +13,7 @@ from SimPEG.simulation import BaseSimulation from SimPEG.survey import BaseSurvey from .survey import * -from .EM1DSimulation import run_simulation_FD, run_simulation_TD +from .simulation import * import properties import warnings @@ -22,6 +22,136 @@ def dot(args): return np.dot(args[0], args[1]) +def run_simulation_FD(args): + """ + args + + src: source object + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : + """ + + src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + local_survey = EM1DSurveyFD([src]) + expmap = maps.ExpMap(nP=len(hz)) + thicknesses = hz[0:-1] + + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + + sim = EM1DFMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + # return utils.mkvc(drespdsig) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + + mesh1D = set_mesh_1d(hz) + wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) + sigmaMap = expmap * wires.sigma + + sim = EM1DFMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, Map=wires.h, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + # return utils.mkvc(drespdsig) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + + +def run_simulation_TD(args): + """ + args + + src: source object + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : + """ + + src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + local_survey = EM1DSurveyTD([src]) + expmap = maps.ExpMap(nP=len(hz)) + thicknesses = hz[0:-1] + + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + sim = EM1DTMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + + mesh1D = set_mesh_1d(hz) + wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) + sigmaMap = expmap * wires.sigma + sim = EM1DTMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, Map=wires.h, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + + class GlobalEM1DSimulation(BaseSimulation): """ The GlobalProblem allows you to run a whole bunch of SubProblems, diff --git a/simpegEM1D/simulation_stitched1d_original.py b/simpegEM1D/simulation_stitched1d_original.py deleted file mode 100644 index 71f4e16..0000000 --- a/simpegEM1D/simulation_stitched1d_original.py +++ /dev/null @@ -1,980 +0,0 @@ -try: - from multiprocessing import Pool -except ImportError: - print("multiprocessing is not available") - PARALLEL = False -else: - PARALLEL = True - import multiprocessing - -import numpy as np -import scipy.sparse as sp -from SimPEG import props, utils, maps, survey -from SimPEG.simulation import BaseSimulation -from SimPEG.survey import BaseSurvey -from .survey_original import EM1DSurveyFD, EM1DSurveyTD -from .EM1DSimulation_original import run_simulation_FD, run_simulation_TD -import properties -import warnings - - -def dot(args): - return np.dot(args[0], args[1]) - - -class GlobalEM1DSimulation(BaseSimulation): - """ - The GlobalProblem allows you to run a whole bunch of SubProblems, - potentially in parallel, potentially of different meshes. - This is handy for working with lots of sources, - """ - sigma, sigmaMap, sigmaDeriv = props.Invertible( - "Electrical conductivity (S/m)" - ) - - h, hMap, hDeriv = props.Invertible( - "Receiver Height (m), h > 0", - ) - - chi = props.PhysicalProperty( - "Magnetic susceptibility (H/m)", - ) - - eta = props.PhysicalProperty( - "Electrical chargeability (V/V), 0 <= eta < 1" - ) - - tau = props.PhysicalProperty( - "Time constant (s)" - ) - - c = props.PhysicalProperty( - "Frequency Dependency, 0 < c < 1" - ) - - _Jmatrix_sigma = None - _Jmatrix_height = None - run_simulation = None - n_cpu = None - hz = None - parallel = False - parallel_jvec_jtvec = False - verbose = False - fix_Jmatrix = False - invert_height = None - - def __init__(self, mesh, **kwargs): - utils.setKwargs(self, **kwargs) - self.mesh = mesh - if PARALLEL: - if self.parallel: - print(">> Use multiprocessing for parallelization") - if self.n_cpu is None: - self.n_cpu = multiprocessing.cpu_count() - print((">> n_cpu: %i") % (self.n_cpu)) - else: - print(">> Serial version is used") - else: - print(">> Serial version is used") - if self.hz is None: - raise Exception("Input vertical thickness hz !") - if self.hMap is None: - self.invert_height = False - else: - self.invert_height = True - - # ------------- For survey ------------- # - @property - def n_layer(self): - return self.hz.size - - @property - def n_sounding(self): - return self.survey.n_sounding - - @property - def rx_locations(self): - return self.survey.rx_locations - - @property - def src_locations(self): - return self.survey.src_locations - - @property - def data_index(self): - return self.survey.data_index - - @property - def topo(self): - return self.survey.topo - - @property - def offset(self): - return self.survey.offset - - @property - def a(self): - return self.survey.a - - @property - def I(self): - return self.survey.I - - @property - def field_type(self): - return self.survey.field_type - - @property - def rx_type(self): - return self.survey.rx_type - - @property - def src_type(self): - return self.survey.src_type - - @property - def half_switch(self): - return self.survey.half_switch - - # ------------- For physical properties ------------- # - @property - def Sigma(self): - if getattr(self, '_Sigma', None) is None: - # Ordering: first z then x - self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) - return self._Sigma - - @property - def Chi(self): - if getattr(self, '_Chi', None) is None: - # Ordering: first z then x - if self.chi is None: - self._Chi = np.zeros( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) - return self._Chi - - @property - def Eta(self): - if getattr(self, '_Eta', None) is None: - # Ordering: first z then x - if self.eta is None: - self._Eta = np.zeros( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Eta = self.eta.reshape((self.n_sounding, self.n_layer)) - return self._Eta - - @property - def Tau(self): - if getattr(self, '_Tau', None) is None: - # Ordering: first z then x - if self.tau is None: - self._Tau = 1e-3*np.ones( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Tau = self.tau.reshape((self.n_sounding, self.n_layer)) - return self._Tau - - @property - def C(self): - if getattr(self, '_C', None) is None: - # Ordering: first z then x - if self.c is None: - self._C = np.ones( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._C = self.c.reshape((self.n_sounding, self.n_layer)) - return self._C - - @property - def JtJ_sigma(self): - return self._JtJ_sigma - - def JtJ_height(self): - return self._JtJ_height - - @property - def H(self): - if self.hMap is None: - return np.ones(self.n_sounding) - else: - return self.h - - @property - def Sigma(self): - if getattr(self, '_Sigma', None) is None: - # Ordering: first z then x - self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) - return self._Sigma - - # ------------- Etcetra .... ------------- # - @property - def IJLayers(self): - if getattr(self, '_IJLayers', None) is None: - # Ordering: first z then x - self._IJLayers = self.set_ij_n_layer() - return self._IJLayers - - @property - def IJHeight(self): - if getattr(self, '_IJHeight', None) is None: - # Ordering: first z then x - self._IJHeight = self.set_ij_n_layer(n_layer=1) - return self._IJHeight - - # ------------- For physics ------------- # - def fields(self, m): - if self.verbose: - print("Compute fields") - - return self.forward(m) - - def dpred(self, m, f=None): - """ - Return predicted data. - Predicted data, (`_pred`) are computed when - self.fields is called. - """ - if f is None: - f = self.fields(m) - - return f - - def forward(self, m): - self.model = m - - if self.verbose: - print(">> Compute response") - - if self.survey.__class__ == GlobalEM1DSurveyFD: - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - # This assumes the same # of layer for each of soundings - result = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch='forward') for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - else: - result = [ - run_simulation(self.input_args(i, jac_switch='forward')) for i in range(self.n_sounding) - ] - return np.hstack(result) - - def set_ij_n_layer(self, n_layer=None): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DSimulation when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - if n_layer is None: - m = self.n_layer - else: - m = n_layer - - for i in range(self.survey.n_sounding): - n = self.survey.nD_vec[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) - - def set_ij_height(self): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DSimulation when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - m = self.n_layer - for i in range(n_sounding): - n = self.survey.nD_vec[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) - - - def getJ_sigma(self, m): - """ - Compute d F / d sigma - """ - if self._Jmatrix_sigma is not None: - return self._Jmatrix_sigma - if self.verbose: - print(">> Compute J sigma") - self.model = m - - if self.survey.__class__ == GlobalEM1DSurveyFD: - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - self._Jmatrix_sigma = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch='sensitivity_sigma') for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - if self.parallel_jvec_jtvec is False: - # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() - self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) - # self._JtJ_sigma_diag = - self._Jmatrix_sigma = sp.coo_matrix( - (self._Jmatrix_sigma, self.IJLayers), dtype=float - ).tocsr() - else: - # _Jmatrix_sigma is block diagnoal matrix (sparse) - # self._Jmatrix_sigma = sp.block_diag( - # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) - # ] - # ).tocsr() - self._Jmatrix_sigma = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) - ] - self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) - self._Jmatrix_sigma = sp.coo_matrix( - (self._Jmatrix_sigma, self.IJLayers), dtype=float - ).tocsr() - - return self._Jmatrix_sigma - - def getJ_height(self, m): - """ - Compute d F / d height - """ - if self.hMap is None: - return utils.Zero() - - if self._Jmatrix_height is not None: - return self._Jmatrix_height - if self.verbose: - print(">> Compute J height") - - self.model = m - - if self.survey.__class__ == GlobalEM1DSurveyFD: - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - self._Jmatrix_height = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch="sensitivity_height") for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - if self.parallel_jvec_jtvec is False: - # self._Jmatrix_height = sp.block_diag(self._Jmatrix_height).tocsr() - self._Jmatrix_height = np.hstack(self._Jmatrix_height) - self._Jmatrix_height = sp.coo_matrix( - (self._Jmatrix_height, self.IJHeight), dtype=float - ).tocsr() - else: - # self._Jmatrix_height = sp.block_diag( - # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) - # ] - # ).tocsr() - self._Jmatrix_height = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) - ] - self._Jmatrix_height = np.hstack(self._Jmatrix_height) - self._Jmatrix_height = sp.coo_matrix( - (self._Jmatrix_height, self.IJHeight), dtype=float - ).tocsr() - - return self._Jmatrix_height - - def Jvec(self, m, v, f=None): - J_sigma = self.getJ_sigma(m) - J_height = self.getJ_height(m) - # This is deprecated at the moment - # if self.parallel and self.parallel_jvec_jtvec: - # # Extra division of sigma is because: - # # J_sigma = dF/dlog(sigma) - # # And here sigmaMap also includes ExpMap - # v_sigma = utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) - # V_sigma = v_sigma.reshape((self.n_sounding, self.n_layer)) - - # pool = Pool(self.n_cpu) - # Jv = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i], V_sigma[i, :]) for i in range(self.n_sounding)] - # ) - # ) - # if self.hMap is not None: - # v_height = self.hMap.deriv(m, v) - # V_height = v_height.reshape((self.n_sounding, self.n_layer)) - # Jv += np.hstack( - # pool.map( - # dot, - # [(J_height[i], V_height[i, :]) for i in range(self.n_sounding)] - # ) - # ) - # pool.close() - # pool.join() - # else: - Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) - if self.hMap is not None: - Jv += J_height*(self.hDeriv * v) - return Jv - - def Jtvec(self, m, v, f=None): - J_sigma = self.getJ_sigma(m) - J_height = self.getJ_height(m) - # This is deprecated at the moment - # if self.parallel and self.parallel_jvec_jtvec: - # pool = Pool(self.n_cpu) - # Jtv = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] - # ) - # ) - # if self.hMap is not None: - # Jtv_height = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] - # ) - # ) - # # This assumes certain order for model, m = (sigma, height) - # Jtv = np.hstack((Jtv, Jtv_height)) - # pool.close() - # pool.join() - # return Jtv - # else: - # Extra division of sigma is because: - # J_sigma = dF/dlog(sigma) - # And here sigmaMap also includes ExpMap - Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) - if self.hMap is not None: - Jtv += self.hDeriv.T*(J_height.T*v) - return Jtv - - def getJtJdiag(self, m, W=None, threshold=1e-8): - """ - Compute diagonal component of JtJ or - trace of sensitivity matrix (J) - """ - J_sigma = self.getJ_sigma(m) - J_matrix = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) - - if self.hMap is not None: - J_height = self.getJ_height(m) - J_matrix += J_height*self.hDeriv - - if W is None: - W = utils.speye(J_matrix.shape[0]) - - J_matrix = W*J_matrix - JtJ_diag = (J_matrix.T*J_matrix).diagonal() - JtJ_diag /= JtJ_diag.max() - JtJ_diag += threshold - return JtJ_diag - - @property - def deleteTheseOnModelUpdate(self): - toDelete = [] - if self.sigmaMap is not None: - toDelete += ['_Sigma'] - if self.fix_Jmatrix is False: - if self._Jmatrix_sigma is not None: - toDelete += ['_Jmatrix_sigma'] - if self._Jmatrix_height is not None: - toDelete += ['_Jmatrix_height'] - return toDelete - - -class GlobalEM1DSimulationFD(GlobalEM1DSimulation): - - def run_simulation(self, args): - if self.verbose: - print(">> Frequency-domain") - return run_simulation_FD(args) - - @property - def frequency(self): - return self.survey.frequency - - @property - def switch_real_imag(self): - return self.survey.switch_real_imag - - def input_args(self, i_sounding, jac_switch='forward'): - output = ( - self.rx_locations[i_sounding, :], - self.src_locations[i_sounding, :], - self.topo[i_sounding, :], - self.hz, - self.offset, - self.frequency, - self.field_type, - self.rx_type, - self.src_type, - self.Sigma[i_sounding, :], - self.Eta[i_sounding, :], - self.Tau[i_sounding, :], - self.C[i_sounding, :], - self.Chi[i_sounding, :], - self.H[i_sounding], - jac_switch, - self.invert_height, - self.half_switch - ) - return output - - -class GlobalEM1DSimulationTD(GlobalEM1DSimulation): - - @property - def wave_type(self): - return self.survey.wave_type - - @property - def input_currents(self): - return self.survey.input_currents - - @property - def time_input_currents(self): - return self.survey.time_input_currents - - @property - def n_pulse(self): - return self.survey.n_pulse - - @property - def base_frequency(self): - return self.survey.base_frequency - - @property - def time(self): - return self.survey.time - - @property - def use_lowpass_filter(self): - return self.survey.use_lowpass_filter - - @property - def high_cut_frequency(self): - return self.survey.high_cut_frequency - - @property - def moment_type(self): - return self.survey.moment_type - - @property - def time_dual_moment(self): - return self.survey.time_dual_moment - - @property - def time_input_currents_dual_moment(self): - return self.survey.time_input_currents_dual_moment - - @property - def input_currents_dual_moment(self): - return self.survey.input_currents_dual_moment - - @property - def base_frequency_dual_moment(self): - return self.survey.base_frequency_dual_moment - - def input_args(self, i_sounding, jac_switch='forward'): - output = ( - self.rx_locations[i_sounding, :], - self.src_locations[i_sounding, :], - self.topo[i_sounding, :], - self.hz, - self.time[i_sounding], - self.field_type[i_sounding], - self.rx_type[i_sounding], - self.src_type[i_sounding], - self.wave_type[i_sounding], - self.offset[i_sounding], - self.a[i_sounding], - self.time_input_currents[i_sounding], - self.input_currents[i_sounding], - self.n_pulse[i_sounding], - self.base_frequency[i_sounding], - self.use_lowpass_filter[i_sounding], - self.high_cut_frequency[i_sounding], - self.moment_type[i_sounding], - self.time_dual_moment[i_sounding], - self.time_input_currents_dual_moment[i_sounding], - self.input_currents_dual_moment[i_sounding], - self.base_frequency_dual_moment[i_sounding], - self.Sigma[i_sounding, :], - self.Eta[i_sounding, :], - self.Tau[i_sounding, :], - self.C[i_sounding, :], - self.H[i_sounding], - jac_switch, - self.invert_height, - self.half_switch - ) - return output - - def run_simulation(self, args): - if self.verbose: - print(">> Time-domain") - return run_simulation_TD(args) - - # def forward(self, m, f=None): - # self.model = m - - # if self.parallel: - # pool = Pool(self.n_cpu) - # # This assumes the same # of layer for each of soundings - # result = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, jac_switch=False) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # else: - # result = [ - # run_simulation_TD(self.input_args(i, jac_switch=False)) for i in range(self.n_sounding) - # ] - # return np.hstack(result) - - # def getJ(self, m): - # """ - # Compute d F / d sigma - # """ - # if self._Jmatrix is not None: - # return self._Jmatrix - # if self.verbose: - # print(">> Compute J") - # self.model = m - # if self.parallel: - # pool = Pool(self.n_cpu) - # self._Jmatrix = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, jac_switch=True) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # if self.parallel_jvec_jtvec is False: - # self._Jmatrix = sp.block_diag(self._Jmatrix).tocsr() - # else: - # # _Jmatrix is block diagnoal matrix (sparse) - # self._Jmatrix = sp.block_diag( - # [ - # run_simulation_TD(self.input_args(i, jac_switch=True)) for i in range(self.n_sounding) - # ] - # ).tocsr() - # return self._Jmatrix - - -class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): - - # This assumes a multiple sounding locations - rx_locations = properties.Array( - "Receiver locations ", dtype=float, shape=('*', 3) - ) - src_locations = properties.Array( - "Source locations ", dtype=float, shape=('*', 3) - ) - topo = properties.Array( - "Topography", dtype=float, shape=('*', 3) - ) - - half_switch = properties.Bool("Switch for half-space", default=False) - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Return predicted data. - # Predicted data, (`_pred`) are computed when - # self.prob.fields is called. - # """ - # if f is None: - # f = self.prob.fields(m) - - # return self._pred - - @property - def n_sounding(self): - """ - # of Receiver locations - """ - return self.rx_locations.shape[0] - - @property - def n_layer(self): - """ - # of Receiver locations - """ - return self.sim.n_layer - - def read_xyz_data(self, fname): - """ - Read csv file format - This is a place holder at this point - """ - pass - - @property - def nD(self): - # Need to generalize this for the dual moment data - if getattr(self, '_nD', None) is None: - self._nD = self.nD_vec.sum() - return self._nD - - - - -class GlobalEM1DSurveyFD(GlobalEM1DSurvey, EM1DSurveyFD): - - @property - def nD_vec(self): - if getattr(self, '_nD_vec', None) is None: - self._nD_vec = [] - if self.switch_real_imag == "all": - nD_for_sounding = int(self.n_frequency * 2) - elif ( - self.switch_real_imag == "imag" or self.switch_real_imag == "real" - ): - nD_for_sounding = int(self.n_frequency) - - for ii in range(self.n_sounding): - self._nD_vec.append(nD_for_sounding) - self._nD_vec = np.array(self._nD_vec) - return self._nD_vec - - # @property - # def nD(self): - # if self.switch_real_imag == "all": - # return int(self.n_frequency * 2) * self.n_sounding - # elif ( - # self.switch_real_imag == "imag" or self.switch_real_imag == "real" - # ): - # return int(self.n_frequency) * self.n_sounding - - def read_xyz_data(self, fname): - """ - Read csv file format - This is a place holder at this point - """ - pass - - -class GlobalEM1DSurveyTD(GlobalEM1DSurvey): - - # --------------- Essential inputs ---------------- # - src_type = None - - rx_type = None - - field_type = None - - time = [] - - wave_type = None - - moment_type = None - - time_input_currents = [] - - input_currents = [] - - # --------------- Selective inputs ---------------- # - n_pulse = properties.Array( - "The number of pulses", - default=None - ) - - base_frequency = properties.Array( - "Base frequency (Hz)", - dtype=float, default=None - ) - - offset = properties.Array( - "Src-Rx offsets", dtype=float, default=None, - shape=('*', '*') - ) - - I = properties.Array( - "Src loop current", dtype=float, default=None - ) - - a = properties.Array( - "Src loop radius", dtype=float, default=None - ) - - use_lowpass_filter = properties.Array( - "Switch for low pass filter", - dtype=bool, default=None - ) - - high_cut_frequency = properties.Array( - "High cut frequency for low pass filter (Hz)", - dtype=float, default=None - ) - - # ------------- For dual moment ------------- # - - time_dual_moment = [] - - time_input_currents_dual_moment = [] - - input_currents_dual_moment = [] - - base_frequency_dual_moment = properties.Array( - "Base frequency for the dual moment (Hz)", - dtype=float, default=None - ) - - def __init__(self, **kwargs): - GlobalEM1DSurvey.__init__(self, **kwargs) - self.set_parameters() - - def set_parameters(self): - # TODO: need to put some validation process - # e.g. for VMD `offset` must be required - # e.g. for CircularLoop `a` must be required - - print(">> Set parameters") - if self.n_pulse is None: - self.n_pulse = np.ones(self.n_sounding, dtype=int) * 1 - - if self.base_frequency is None: - self.base_frequency = np.ones( - (self.n_sounding), dtype=float - ) * 30 - - if self.offset is None: - self.offset = np.empty((self.n_sounding, 1), dtype=float) - - if self.I is None: - self.I = np.empty(self.n_sounding, dtype=float) - - if self.a is None: - self.a = np.empty(self.n_sounding, dtype=float) - - if self.use_lowpass_filter is None: - self.use_lowpass_filter = np.zeros(self.n_sounding, dtype=bool) - - if self.high_cut_frequency is None: - self.high_cut_frequency = np.empty(self.n_sounding, dtype=float) - - if self.moment_type is None: - self.moment_type = np.array(["single"], dtype=str).repeat( - self.n_sounding, axis=0 - ) - - # List - if not self.time_input_currents: - self.time_input_currents = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.input_currents: - self.input_currents = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - - # List - if not self.time_dual_moment: - self.time_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.time_input_currents_dual_moment: - self.time_input_currents_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.input_currents_dual_moment: - self.input_currents_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - - if self.base_frequency_dual_moment is None: - self.base_frequency_dual_moment = np.empty( - (self.n_sounding), dtype=float - ) - - @property - def nD_vec(self): - if getattr(self, '_nD_vec', None) is None: - self._nD_vec = [] - - for ii, moment_type in enumerate(self.moment_type): - if moment_type == 'single': - self._nD_vec.append(self.time[ii].size) - elif moment_type == 'dual': - self._nD_vec.append( - self.time[ii].size+self.time_dual_moment[ii].size - ) - else: - raise Exception("moment_type must be either signle or dual") - self._nD_vec = np.array(self._nD_vec) - return self._nD_vec - - @property - def data_index(self): - # Need to generalize this for the dual moment data - if getattr(self, '_data_index', None) is None: - self._data_index = [ - np.arange(self.nD_vec[i_sounding])+np.sum(self.nD_vec[:i_sounding]) for i_sounding in range(self.n_sounding) - ] - return self._data_index - - @property - def nD(self): - # Need to generalize this for the dual moment data - if getattr(self, '_nD', None) is None: - self._nD = self.nD_vec.sum() - return self._nD diff --git a/simpegEM1D/supporting_functions/kernels_original.py b/simpegEM1D/supporting_functions/kernels_original.py deleted file mode 100644 index a6b42d6..0000000 --- a/simpegEM1D/supporting_functions/kernels_original.py +++ /dev/null @@ -1,848 +0,0 @@ -import numpy as np -from scipy.constants import mu_0 - -try: - from simpegEM1D.Fortran.m_rTE_Fortran import rte_fortran -except ImportError as e: - rte_fortran = None - - - - - - -def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): - """ - Compute reflection coefficients for Transverse Electric (TE) mode. - Only one for loop for multiple layers. - - Parameters - ---------- - n_layer : int - The number layers - f : complex, ndarray - Frequency (Hz); size = (n_frequency x n_filter) - lamda : complex, ndarray - Frequency (Hz); size = (n_frequency x n_filter) - sig: compelx, ndarray - Conductivity (S/m); size = (n_layer x n_frequency x n_filter) - chi: compelx, ndarray - Susceptibility (SI); size = (n_layer,) - depth: float, ndarray - Top boundary of the layers; size = (n_ayer,) - HalfSwitch: bool - Switch for halfspace - - Returns - ------- - rTE: compex, ndarray - Reflection coefficients; - size = (n_frequency x n_lamba) - """ - - n_frequency, n_filter = lamda.shape - - Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - w = 2*np.pi*f - - rTE = np.zeros((n_frequency, n_filter), dtype=complex) - utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) - utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) - const = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - # may be store these and reuse for sensitivity? - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - M0sum00 = Mtemp00 - M0sum10 = Mtemp10 - M0sum01 = Mtemp01 - M0sum11 = Mtemp11 - - if HalfSwitch: - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = M0sum00 - M1sum10 = M0sum10 - M1sum01 = M0sum01 - M1sum11 = M0sum11 - - else: - - for j in range(n_layer-1): - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.-const) - Mtemp01 = 0.5*(1.-const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+const) - - M1sum00 = M0sum00*Mtemp00 + M0sum01*Mtemp10 - M1sum10 = M0sum10*Mtemp00 + M0sum11*Mtemp10 - M1sum01 = M0sum00*Mtemp01 + M0sum01*Mtemp11 - M1sum11 = M0sum10*Mtemp01 + M0sum11*Mtemp11 - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - rTE = M1sum01/M1sum11 - - return rTE - - -def matmul(a00, a10, a01, a11, b00, b10, b01, b11): - """ - Compute 2x2 matrix mutiplication in vector way - C = A*B - C = [a00 a01] * [b00 b01] = [c00 c01] - [a10 a11] [b10 b11] [c10 c11] - """ - - c00 = a00*b00 + a01*b10 - c10 = a10*b00 + a11*b10 - c01 = a00*b01 + a01*b11 - c11 = a10*b01 + a11*b11 - - return c00, c10, c01, c11 - - - -# TODO: make this to take a vector rather than a single frequency -def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): - """ - Compute sensitivity of reflection coefficients for - Transverse Electric (TE) mode with regard to conductivity - - Parameters - ---------- - n_layer : int - The number layers - f : complex, ndarray - Frequency (Hz); size = (n_frequency x n_finlter) - lamda : complex, ndarray - Frequency (Hz); size = (n_frequency x n_finlter) - sig: compelx, ndarray - Conductivity (S/m); size = (n_layer x 1) - chi: compelx, ndarray - Susceptibility (SI); size = (n_layer x 1) - depth: float, ndarray - Top boundary of the layers - HalfSwitch: bool - Switch for halfspace - - Returns - ------- - rTE: compex, ndarray - Derivative of reflection coefficients; - size = (n_frequency x n_layer x n_finlter) - """ - # Initializing arrays - n_frequency, n_filter = lamda.shape - - Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dMtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dj0temp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dj1temp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - w = 2*np.pi*f - - rTE = np.zeros((n_frequency, n_filter), dtype=complex) - drTE = np.zeros((n_layer, n_frequency, n_filter), dtype=complex) - utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) - utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) - const = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute M1 - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute dM1du1 - dj0Mtemp00 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp10 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp01 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp11 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - - # TODO: for computing Jacobian - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - dJ00 = [] - dJ10 = [] - dJ01 = [] - dJ11 = [] - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - M0sum00 = Mtemp00.copy() - M0sum10 = Mtemp10.copy() - M0sum01 = Mtemp01.copy() - M0sum11 = Mtemp11.copy() - - if HalfSwitch or n_layer == 1: - - M1sum00 = M0sum00.copy() - M1sum10 = M0sum10.copy() - M1sum01 = M0sum01.copy() - M1sum11 = M0sum11.copy() - - else: - - for j in range(n_layer-1): - - dJ_10Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ01Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.- const) - Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+ const) - - M1sum00, M1sum10, M1sum01, M1sum11 = matmul( - M0sum00, M0sum10, M0sum01, M0sum11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - # TODO: for Computing Jacobian - - dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 - - if j == 0: - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - # Compute dM1dm1*M2 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( - dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - # Compute M1*dM2dm1 - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( - M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, - dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 - ) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - else: - - h_1 = thick[j-1] - utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j-1])*sig[j-1]) - const0 = mu_0*(1+chi[j-1])/(mu_0*(1+chi[j])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - # Compute dMjdmj*Mj+1 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( - dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - # Compute Mj*dMj+1dmj - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( - M00[j], M10[j], M01[j], M11[j], - dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 - ) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - # rTE = M1sum01/M1sum11 - - if HalfSwitch or n_layer == 1: - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 - - dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ1sum00 = dudsig*dj0Mtemp00 - dJ1sum10 = dudsig*dj0Mtemp10 - dJ1sum01 = dudsig*dj0Mtemp01 - dJ1sum11 = dudsig*dj0Mtemp11 - - drTE = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - else: - - # j = n_layer - utemp0 = ( - np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-1])*sig[n_layer-1, :, :]) - ) - dudsig = 0.5*1j*w*mu_0*(1+chi[n_layer-1])/utemp0 - - h_1 = thick[n_layer-2] - - utemp_1 = ( - np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-2])*sig[n_layer-2, :, :]) - ) - const0 = mu_0*(1+chi[n_layer-2])/(mu_0*(1+chi[n_layer-1])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - dJ_10Mtemp00 = dj0Mtemp00 - dJ_10Mtemp10 = dj0Mtemp10 - dJ_10Mtemp01 = dj0Mtemp01 - dJ_10Mtemp11 = dj0Mtemp11 - - dJ00.append(dudsig*dJ_10Mtemp00) - dJ10.append(dudsig*dJ_10Mtemp10) - dJ01.append(dudsig*dJ_10Mtemp01) - dJ11.append(dudsig*dJ_10Mtemp11) - - for i in range(n_layer): - - dJ0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - if i == 0: - - for j in range(n_layer-2): - - if j == 0: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ00[i], dJ10[i], dJ01[i], dJ11[i], - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - else: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif (i > 0) & (i < n_layer-1): - - dJ0sum00 = M00[0] - dJ0sum10 = M10[0] - dJ0sum01 = M01[0] - dJ0sum11 = M11[0] - - for j in range (n_layer-2): - - if j==i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - dJ00[i], dJ10[i], dJ01[i], dJ11[i] - ) - - elif j < i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+1], M10[j+1], M01[j+1], M11[j+1] - ) - - elif j > i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif i == n_layer-1: - - dJ0sum00 = M00[0] - dJ0sum10 = M10[0] - dJ0sum01 = M01[0] - dJ0sum11 = M11[0] - - for j in range(n_layer-1): - - if j < n_layer-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+1], M10[j+1], M01[j+1], M11[j+1] - ) - - elif j == n_layer-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - dJ00[i], dJ10[i], dJ01[i], dJ11[i] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - drTE[i, :] = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - return drTE - # Still worthwhile to output both? - # return rTE, drTE - - - - -def hz_kernel_vertical_magnetic_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, - flag, I, output_type='response' -): - - """ - Kernel for vertical magnetic component (Hz) due to - vertical magnetic diopole (VMD) source in (kx,ky) domain - - .. math:: - - H_z = \\frac{m}{4\\pi} \\int_0^{\\infty} - \\r_{TE} e^{u_0|z-h|} - \\frac{\\lambda^3}{u_0} J_0(\\lambda r) d \\lambda - - """ - - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**3/u0 - - n_frequency = len(f) - n_filter = simulation.n_filter - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, drTE, - n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel * I - - # Note - # Here only computes secondary field. - # I am not sure why it does not work if we add primary term. - # This term can be analytically evaluated, where h = 0. - # kernel = ( - # 1./(4*np.pi) * - # (np.exp(u0*(z-h))+rTE * np.exp(-u0*(z+h)))*lamda**3/u0 - # ) - -# TODO: make this to take a vector rather than a single frequency -def hz_kernel_circular_loop( - simulation, lambd, f, n_layer, sig, chi, depth, h, z, I, r, - flag, output_type='response' -): - - """ - - Kernel for vertical magnetic component (Hz) at the center - due to circular loop source in (kx,ky) domain - - .. math:: - - H_z = \\frac{Ia}{2} \\int_0^{\\infty} - \\r_{TE}e^{u_0|z-h|}] \\frac{\\lambda^2}{u_0} - J_1(\\lambda a) J_0(\\lambda r) d \\lambda - - """ - - n_frequency = len(f) - n_filter = simulation.n_filter - - w = 2*np.pi*f - u0 = lamda - radius = np.empty([n_frequency, n_filter], order='F') - radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - - coefficient_wavenumber = I*radius*0.5*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.empty( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - if flag == 'secondary': - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - kernel = rTE * ( - np.exp(-u0*(z+h)) + np.exp(u0*(z-h)) - ) * coefficient_wavenumber - - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - -def hz_kernel_horizontal_electric_dipole( - simulation, lamda, f, n_layer, sig, chi, depth, h, z, - flag, output_type='response' -): - - """ - Kernel for vertical magnetic field (Hz) due to - horizontal electric diopole (HED) source in (kx,ky) domain - - """ - n_frequency = len(f) - n_filter = simulation.n_filter - - u0 = lamda - coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 - - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], dtype=np.complex128, - order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - drTE, n_layer, n_frequency, n_filter - ) - - kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = -np.diff(depth) - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.survey.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.survey.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber - if output_type == 'sensitivity_height': - kernel *= -2*u0 - - return kernel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# import numpy as np -# from scipy.constants import mu_0 -# from .DigFilter import EvalDigitalFilt -# from RTEfun import rTEfun - -# def HzKernel_layer(lamda, f, nlay, sig, chi, depth, h, z, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) due to vertical magnetic -# diopole (VMD) source in (kx,ky) domain - -# """ -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag=='secondary': -# # Note -# # Here only computes secondary field. -# # I am not sure why it does not work if we add primary term. -# # This term can be analytically evaluated, where h = 0. - -# kernel = 1/(4*np.pi)*(rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# else: -# kernel = 1/(4*np.pi)*(np.exp(u0*(z-h))+ rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# return kernel - -# def HzkernelCirc_layer(lamda, f, nlay, sig, chi, depth, h, z, I, a, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) at the center -# due to circular loop source in (kx,ky) domain - -# .. math:: - -# H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + r_{TE}e^{u_0|z-h|}] \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda - -# """ - -# w = 2*np.pi*f -# rTE = np.zeros(lamda.size, dtype=complex) -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag == 'secondary': -# kernel = I*a*0.5*(rTE*np.exp(-u0*(z+h)))*lamda**2/u0 -# else: -# kernel = I*a*0.5*(np.exp(u0*(z-h))+rTE*np.exp(-u0*(z+h)))*lamda**2/u0 - -# return kernel - -#TODO: Get rid of below two functions and put in in main class -# def HzFreq_layer(nlay, sig, chi, depth, f, z, h, r, flag, YBASE, WT0): -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzKernel_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT0, kernel, r) - -# return HzFHT - -# def HzCircFreq_layer(nlay, sig, chi, depth, f, z, h, I, a, flag, YBASE, WT1): - -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzkernelCirc_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, I, a, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT1, kernel, a) - -# return HzFHT diff --git a/simpegEM1D/utils/__init__.py b/simpegEM1D/utils/__init__.py new file mode 100644 index 0000000..5a1c581 --- /dev/null +++ b/simpegEM1D/utils/__init__.py @@ -0,0 +1 @@ +from .utils1D import * diff --git a/simpegEM1D/Utils1D.py b/simpegEM1D/utils/utils1D.py similarity index 71% rename from simpegEM1D/Utils1D.py rename to simpegEM1D/utils/utils1D.py index b5fe314..8f4bb98 100644 --- a/simpegEM1D/Utils1D.py +++ b/simpegEM1D/utils/utils1D.py @@ -1,6 +1,11 @@ import numpy as np import matplotlib.pyplot as plt import scipy +from discretize import TensorMesh +from SimPEG import maps, utils +from ..analytics import skin_depth, diffusion_distance +from ..simulation import EM1DFMSimulation, EM1DTMSimulation +from ..survey import EM1DSurveyFD, EM1DSurveyTD def plotLayer(sig, mesh, xscale='log', ax=None, showlayers=False, xlim=None,**kwargs): """ @@ -99,3 +104,45 @@ def write25Dinputformat(Rvals,Ivals, frequency, x, z, offset, fname='profile2D.i fid.write("%5i\n" % (ist+1)) fid.write("%10.4f %10.4f %10.5e %10.5e \n" % (x[ist]+offset, z[ist], Rvals[ifreq, ist], Ivals[ifreq, ist])) + +def get_vertical_discretization_frequency( + frequency, sigma_background=0.01, + factor_fmax=4, factor_fmin=1., n_layer=19, + hz_min=None, z_max=None +): + if hz_min is None: + hz_min = skin_depth(frequency.max(), sigma_background) / factor_fmax + if z_max is None: + z_max = skin_depth(frequency.min(), sigma_background) * factor_fmin + i = 4 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + + while z_sum < z_max: + i += 1 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + return hz + + +def get_vertical_discretization_time( + time, sigma_background=0.01, + factor_tmin=4, facter_tmax=1., n_layer=19, + hz_min=None, z_max=None +): + if hz_min is None: + hz_min = diffusion_distance(time.min(), sigma_background) / factor_tmin + if z_max is None: + z_max = diffusion_distance(time.max(), sigma_background) * facter_tmax + i = 4 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + while z_sum < z_max: + i += 1 + hz = np.logspace(np.log10(hz_min), np.log10(hz_min*i), n_layer) + z_sum = hz.sum() + return hz + + +def set_mesh_1d(hz): + return TensorMesh([hz], x0=[0]) \ No newline at end of file diff --git a/tests/testEM1D_FD_fwd.py b/tests/testEM1D_FD_fwd.py index b7fe7b0..ca51481 100644 --- a/tests/testEM1D_FD_fwd.py +++ b/tests/testEM1D_FD_fwd.py @@ -1,7 +1,10 @@ import unittest from SimPEG import * +from discretize import TensorMesh import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DAnalytics, EM1DSurveyFD +import simpegEM1D as em1d +from simpegEM1D.analytics import * +#from simpegEM1D import EM1D, EM1DAnalytics, EM1DSurveyFD import numpy as np from scipy.constants import mu_0 @@ -12,252 +15,251 @@ def setUp(self): nearthick = np.logspace(-1, 1, 5) deepthick = np.logspace(1, 2, 10) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - nlay = depth.size + thicknesses = np.r_[nearthick, deepthick] topo = np.r_[0., 0., 100.] - - FDsurvey = EM1DSurveyFD( - rx_location=np.array([0., 0., 100.+1e-5]), - src_location=np.array([0., 0., 100.+1e-5]), - field_type='secondary', - depth=depth, - topo=topo, - frequency=np.logspace(1, 8, 61), - offset=10. * np.ones(61) + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([10., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(1, 8, 61) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + + source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=src_location, orientation="z" + ) + ] - sig_half = 1e-2 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) + # Survey + survey = em1d.survey.EM1DSurveyFD(source_list) + + sigma = 1e-2 + chi = 0. tau = 1e-3 eta = 2e-1 c = 1. - m_1D = np.log(np.ones(nlay)*sig_half) - FDsurvey.rx_type = 'Hz' - - prob = EM1D( - mesh1D, sigmaMap=expmap - ) - prob.pair(FDsurvey) - prob.chi = np.zeros(FDsurvey.n_layer) - - self.survey = FDsurvey - self.prob = prob - self.mesh1D = mesh1D + self.topo = topo + self.survey = survey self.showIt = False + self.sigma = sigma self.tau = tau self.eta = eta self.c = c + self.chi = chi + self.offset = 10. + self.frequencies = frequencies + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 def test_EM1DFDfwd_VMD_RealCond(self): - self.prob.survey.src_type = 'VMD' - self.prob.survey.offset = np.ones(self.prob.survey.n_frequency) * 10. - sig_half = 0.01 - m_1D = np.log(np.ones(self.prob.survey.n_layer)*sig_half) - Hz = self.prob.forward(m_1D) - Hzanal = EM1DAnalytics.Hzanal( - sig_half, self.prob.survey.frequency, - self.prob.survey.offset, 'secondary' + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DFMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo ) - + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + Hz = sim.dpred(m_1D) + + soln_anal = Hzanal( + self.sigma, self.frequencies, self.offset, 'secondary' + ) + if self.showIt is True: - - plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') + N=int(len(Hz)/2) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:]), 'r') + plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() + + soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] - err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) + err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-VMD for real conductivity works") def test_EM1DFDfwd_VMD_ComplexCond(self): - if self.prob.ispaired: - self.prob.unpair() - if self.survey.ispaired: - self.survey.unpair() - - self.prob = EM1D( - self.mesh1D, - sigmaMap=Maps.IdentityMap(self.mesh1D), - chi=np.zeros(self.survey.n_layer), - eta=self.eta, - tau=self.tau, - c=self.c + sigma_map = maps.IdentityMap(nP=self.nlayers) + chi = np.zeros(self.nlayers) + tau = self.tau*np.ones(self.nlayers) + c = self.c*np.ones(self.nlayers) + eta = self.eta*np.ones(self.nlayers) + + sim = em1d.simulation.EM1DFMSimulation( + survey=self.survey, thicknesses=self.thicknesses, topo=self.topo, + sigmaMap=sigma_map, eta=eta, tau=tau, c=c, chi=chi ) - self.prob.pair(self.survey) - self.prob.survey.src_type = 'VMD' - sig_half = 0.01 - m_1D = np.ones(self.prob.survey.n_layer)*sig_half - Hz = self.prob.forward(m_1D) - sigCole = EM1DAnalytics.ColeCole( - self.survey.frequency, sig_half, - self.eta, self.tau, self.c - ) - Hzanal = EM1DAnalytics.Hzanal( - sigCole, self.prob.survey.frequency, - self.prob.survey.offset, 'secondary' + + m_1D = self.sigma*np.ones(self.nlayers) + Hz = sim.dpred(m_1D) + + sigma_colecole = ColeCole( + self.frequencies, self.sigma, self.eta, self.tau, self.c + ) + + soln_anal = Hzanal( + sigma_colecole, self.frequencies, self.offset, 'secondary' ) if self.showIt is True: - - plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') + N=int(len(Hz)/2) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:]), 'r') + plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() + + soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] - err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) + err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-VMD for complex conductivity works") def test_EM1DFDfwd_CircularLoop_RealCond(self): - self.prob.survey.src_type = 'CircularLoop' - I = 1e0 - a = 1e1 - self.prob.survey.I = I - self.prob.survey.a = a - sig_half = 0.01 - m_1D = np.log(np.ones(self.prob.survey.n_layer)*sig_half) - Hz = self.prob.forward(m_1D) - Hzanal = EM1DAnalytics.HzanalCirc( - sig_half, self.prob.survey.frequency, - I, a, 'secondary' + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(1, 8, 61) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + + source_list = [ + em1d.sources.HarmonicHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, a=5. + ) + ] + + survey = em1d.survey.EM1DSurveyFD(source_list) + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + Hz = sim.dpred(m_1D) + + soln_anal = HzanalCirc( + self.sigma, self.frequencies, 1., 5., 'secondary' ) if self.showIt is True: - - plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') + N=int(len(Hz)/2) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:]), 'r') + plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() - err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) + soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] + + err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-CircularLoop for real conductivity works") def test_EM1DFDfwd_CircularLoop_ComplexCond(self): - if self.prob.ispaired: - self.prob.unpair() - if self.survey.ispaired: - self.survey.unpair() - - self.prob = EM1D( - self.mesh1D, - sigmaMap=Maps.IdentityMap(self.mesh1D), - chi=np.zeros(self.survey.n_layer), - eta=self.eta, - tau=self.tau, - c=self.c + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(1, 8, 61) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) ) - - self.prob.pair(self.survey) - self.prob.survey.src_type = 'CircularLoop' - I = 1e0 - a = 1e1 - self.prob.survey.I = I - self.prob.survey.a = a - - sig_half = 0.01 - m_1D = np.ones(self.prob.survey.n_layer)*sig_half - Hz = self.prob.forward(m_1D) - sigCole = EM1DAnalytics.ColeCole( - self.survey.frequency, sig_half, self.eta, self.tau, self.c + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + + source_list = [ + em1d.sources.HarmonicHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, a=5. + ) + ] + + # Survey + survey = em1d.survey.EM1DSurveyFD(source_list) + + sigma_map = maps.IdentityMap(nP=self.nlayers) + chi = np.zeros(self.nlayers) + tau = self.tau*np.ones(self.nlayers) + c = self.c*np.ones(self.nlayers) + eta = self.eta*np.ones(self.nlayers) + + sim = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=self.thicknesses, topo=self.topo, + sigmaMap=sigma_map, eta=eta, tau=tau, c=c, chi=chi + ) + + m_1D = self.sigma*np.ones(self.nlayers) + Hz = sim.dpred(m_1D) + + sigma_colecole = ColeCole( + self.frequencies, self.sigma, self.eta, self.tau, self.c ) - Hzanal = EM1DAnalytics.HzanalCirc( - sigCole, self.prob.survey.frequency, I, a, 'secondary' + + soln_anal = HzanalCirc( + sigma_colecole, self.frequencies, 1., 5., 'secondary' ) if self.showIt is True: - - plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') + N=int(len(Hz)/2) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:]), 'r') + plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() - err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) + soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] + + err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-CircularLoop for complex conductivity works") - # def test_EM1DFDfwd_VMD_EM1D_sigchi(self): - - # self.survey.rx_location = np.array([0., 0., 110.+1e-5]) - # self.survey.src_location = np.array([0., 0., 110.+1e-5]) - # self.survey.field_type = 'secondary' - - # hx = np.r_[np.ones(3)*10] - # mesh1D = Mesh.TensorMesh([hx], [0.]) - # depth = -mesh1D.gridN[:-1] - # nlay = depth.size - # topo = np.r_[0., 0., 100.] - - # self.survey.depth = depth - # self.survey.topo = topo - - # self.survey.frequency = np.logspace(-3, 5, 61) - # self.prob.unpair() - # mapping = Maps.ExpMap(mesh1D) - # # 1. Verification for variable conductivity - # chi = np.array([0., 0., 0.]) - # sig = np.array([0.01, 0.1, 0.01]) - - # self.prob = EM1D(mesh1D, sigmaMap=mapping, chi=chi, jacSwitch=False) - # self.prob.pair(self.survey) - # self.prob.survey.src_type = 'VMD' - # self.prob.survey.offset = 10. * np.ones(self.survey.n_frequency) - - # m_1D = np.log(sig) - # Hz = self.prob.forward(m_1D) - # from scipy import io - # mat = io.loadmat('em1dfm/VMD_3lay.mat') - # freq = mat['data'][:, 0] - # Hzanal = mat['data'][:, 1] + 1j*mat['data'][:, 2] - - # if self.showIt is True: - - # plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - # plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - # plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - # plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') - # plt.show() - - # err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) - # self.assertTrue(err < 0.08) - - # chi = np.array([0., 1., 0.], dtype=float) - # sig = np.array([0.01, 0.01, 0.01], dtype=float) - # self.prob.chi = chi - - # m_1D = np.log(sig) - # Hz = self.prob.forward(m_1D) - - # # 2. Verification for variable susceptibility - # mat = io.loadmat('em1dfm/VMD_3lay_chi.mat') - # freq = mat['data'][:, 0] - # Hzanal = mat['data'][:, 1] + 1j*mat['data'][:, 2] - - # if self.showIt is True: - - # plt.loglog(self.prob.survey.frequency, abs(Hz.real), 'b') - # plt.loglog(self.prob.survey.frequency, abs(Hzanal.real), 'b*') - # plt.loglog(self.prob.survey.frequency, abs(Hz.imag), 'r') - # plt.loglog(self.prob.survey.frequency, abs(Hzanal.imag), 'r*') - # plt.show() - - # err = np.linalg.norm(Hz-Hzanal)/np.linalg.norm(Hzanal) - # self.assertTrue(err < 0.08) - - # print ("EM1DFD comprison of UBC code works") - if __name__ == '__main__': unittest.main() diff --git a/tests/testEM1D_FD_jac_layers.py b/tests/testEM1D_FD_jac_layers.py index 0692913..555860a 100644 --- a/tests/testEM1D_FD_jac_layers.py +++ b/tests/testEM1D_FD_jac_layers.py @@ -1,7 +1,8 @@ import unittest from SimPEG import * +from SimPEG.utils import mkvc import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DAnalytics, DigFilter, EM1DSurveyFD +import simpegEM1D as em1d import numpy as np @@ -9,82 +10,92 @@ class EM1D_FD_Jac_layers_ProblemTests(unittest.TestCase): def setUp(self): - nearthick = np.logspace(-1, 1, 2) - deepthick = np.logspace(1, 2, 5) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - n_layer = depth.size - - FDsurvey = EM1DSurveyFD( - rx_location=np.array([0., 0., 100.+50.]), - src_location=np.array([0., 0., 100.+50.]), - field_type='secondary', - topo=np.r_[0., 0., 100.], - depth=depth, - frequency=np.logspace(2, 4, 10), - src_type='CircularLoop' + nearthick = np.logspace(-1, 1, 5) + deepthick = np.logspace(1, 2, 10) + thicknesses = np.r_[nearthick, deepthick] + topo = np.r_[0., 0., 100.] + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([10., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(1, 8, 61) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real" + ) ) - - sig_half = 1e-1 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) - tau = 1e-3 - eta = 2e-1 - c = 1. - - m_1D = np.log(np.ones(n_layer)*sig_half) - FDsurvey.rxType = 'Hz' - - prob = EM1D(mesh1D, sigmaMap=expmap) - prob.pair(FDsurvey) - prob.chi = np.zeros(FDsurvey.n_layer) - - self.survey = FDsurvey - self.prob = prob - self.mesh1D = mesh1D + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag" + ) + ) + + I = 1. + a = 10. + source_list = [ + em1d.sources.HarmonicHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, I=I, a=a + ) + ] + + # Survey + survey = em1d.survey.EM1DSurveyFD(source_list) + + self.topo = topo + self.survey = survey self.showIt = False + self.frequencies = frequencies + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 + self.sigma_map = maps.ExpMap(nP=self.nlayers) + + sim = em1d.simulation.EM1DFMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=self.sigma_map, topo=self.topo + ) + + self.sim = sim def test_EM1DFDJvec_Layers(self): - I = 1e0 - a = 1e1 - self.prob.survey.I = I - self.prob.survey.a = a - - sig_half = 0.01 - sig_blk = 0.1 - sig = np.ones(self.prob.survey.n_layer)*sig_half - sig[3] = sig_blk + sigma_half = 0.01 + sigma_blk = 0.1 + sig = np.ones(self.nlayers)*sigma_half + sig[3] = sigma_blk m_1D = np.log(sig) - - Hz = self.prob.forward(m_1D, output_type='response') - dHzdsig = self.prob.forward( + + Hz = self.sim.dpred(m_1D) + dHzdsig = self.sim.compute_integral( m_1D, output_type='sensitivity_sigma' ) def fwdfun(m): - resp = self.prob.survey.dpred(m) + resp = self.sim.dpred(m) return resp # return Hz def jacfun(m, dm): - Jvec = self.prob.Jvec(m, dm) + Jvec = self.sim.Jvec(m, dm) return Jvec dm = m_1D*0.5 derChk = lambda m: [fwdfun(m), lambda mx: jacfun(m, mx)] - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_1D, num=4, dx=dm, plotIt=False, eps=1e-15 ) if self.showIt is True: ilay = 3 - temp_r = Utils.mkvc((dHzdsig[:, ilay].copy()).real) - temp_i = Utils.mkvc((dHzdsig[:, ilay].copy()).imag) - frequency = Utils.mkvc(self.prob.survey.frequency) + temp_r = mkvc((dHzdsig[:, ilay].copy()).real) + temp_i = mkvc((dHzdsig[:, ilay].copy()).imag) + frequency = mkvc(self.prob.survey.frequency) plt.loglog(frequency[temp_r > 0], temp_r[temp_r > 0], 'b.-') plt.loglog(frequency[temp_r < 0], -temp_r[temp_r < 0], 'b.--') @@ -97,33 +108,28 @@ def jacfun(m, dm): def test_EM1DFDJtvec_Layers(self): - I = 1e0 - a = 1e1 - self.prob.survey.I = I - self.prob.survey.a = a - - sig_half = 0.01 - sig_blk = 0.1 - sig = np.ones(self.prob.survey.n_layer)*sig_half - sig[3] = sig_blk + sigma_half = 0.01 + sigma_blk = 0.1 + sig = np.ones(self.nlayers)*sigma_half + sig[3] = sigma_blk m_true = np.log(sig) - - dobs = self.prob.survey.dpred(m_true) + + dobs = self.sim.dpred(m_true) m_ini = np.log( - np.ones(self.prob.survey.n_layer)*sig_half + np.ones(self.nlayers)*sigma_half ) - resp_ini = self.prob.survey.dpred(m_ini) + resp_ini = self.sim.dpred(m_ini) dr = resp_ini-dobs def misfit(m, dobs): - dpred = self.survey.dpred(m) + dpred = self.sim.dpred(m) misfit = 0.5*np.linalg.norm(dpred-dobs)**2 - dmisfit = self.prob.Jtvec(m, dr) + dmisfit = self.sim.Jtvec(m, dr) return misfit, dmisfit derChk = lambda m: misfit(m, dobs) - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_ini, num=4, plotIt=False, eps=1e-27 ) self.assertTrue(passed) diff --git a/tests/testEM1D_TD_general_fwd.py b/tests/testEM1D_TD_general_fwd.py index 1047873..8f6e221 100644 --- a/tests/testEM1D_TD_general_fwd.py +++ b/tests/testEM1D_TD_general_fwd.py @@ -1,8 +1,11 @@ import unittest -from SimPEG import Mesh, Maps, Utils +from SimPEG import maps +from SimPEG.utils import mkvc import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DSurveyTD, EM1DAnalytics -from simpegEM1D.Waveforms import piecewise_ramp +import simpegEM1D as em1d +from simpegEM1D.KnownWaveforms import piecewise_ramp +from simpegEM1D.analytics import * +from simpegEM1D.waveforms import TriangleFun import numpy as np from scipy import io from scipy.interpolate import interp1d @@ -11,114 +14,182 @@ class EM1D_TD_FwdProblemTests(unittest.TestCase): def setUp(self): - + nearthick = np.logspace(-1, 1, 5) deepthick = np.logspace(1, 2, 10) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - LocSigZ = -mesh1D.gridCC - - # Triangular waveform - time_input_currents = np.r_[0., 5.5*1e-4, 1.1*1e-3] - input_currents = np.r_[0., 1., 0.] - - TDsurvey = EM1DSurveyTD( - rx_location=np.array([0., 0., 100.+1e-5]), - src_location=np.array([0., 0., 100.+1e-5]), - topo=np.r_[0., 0., 100.], - depth=depth, - field_type='secondary', - rx_type='Bz', - wave_type='general', - time_input_currents=time_input_currents, - input_currents=input_currents, - n_pulse=2, - base_frequency=25., - time=np.logspace(-5, -2, 31), - src_type='CircularLoop', - I=1e0, - a=2e1 - ) - - sig_half = 1e-4 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) - m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) - chi = np.zeros(TDsurvey.n_layer) - - prob = EM1D( - mesh1D, sigmaMap=expmap, chi=chi - ) - prob.pair(TDsurvey) - - self.survey = TDsurvey - self.prob = prob - self.mesh1D = mesh1D - self.showIt = True - self.chi = chi - self.m_1D = m_1D - self.sig_half = sig_half - self.expmap = expmap + thicknesses = np.r_[nearthick, deepthick] + topo = np.r_[0., 0., 100.] + a = 20. + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([10., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + times = np.logspace(-5, -2, 31) + + # Receiver list + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="dbdt" + ) + ] + + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] + input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) + source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, + location=src_location, + a=a, I=1., + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) + ] + + # Survey + survey = em1d.survey.EM1DSurveyTD(source_list) + + sigma = 1e-2 + + self.topo = topo + self.survey = survey + self.showIt = False + self.sigma = sigma + self.times = times + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 + self.a = a + + + + + + + + + +# nearthick = np.logspace(-1, 1, 5) +# deepthick = np.logspace(1, 2, 10) +# hx = np.r_[nearthick, deepthick] +# mesh1D = Mesh.TensorMesh([hx], [0.]) +# depth = -mesh1D.gridN[:-1] +# LocSigZ = -mesh1D.gridCC +# +# # Triangular waveform +# time_input_currents = np.r_[0., 5.5*1e-4, 1.1*1e-3] +# input_currents = np.r_[0., 1., 0.] +# +# TDsurvey = EM1DSurveyTD( +# rx_location=np.array([0., 0., 100.+1e-5]), +# src_location=np.array([0., 0., 100.+1e-5]), +# topo=np.r_[0., 0., 100.], +# depth=depth, +# field_type='secondary', +# rx_type='Bz', +# wave_type='general', +# time_input_currents=time_input_currents, +# input_currents=input_currents, +# n_pulse=2, +# base_frequency=25., +# time=np.logspace(-5, -2, 31), +# src_type='CircularLoop', +# I=1e0, +# a=2e1 +# ) +# +# sig_half = 1e-4 +# chi_half = 0. +# +# expmap = Maps.ExpMap(mesh1D) +# m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) +# chi = np.zeros(TDsurvey.n_layer) +# +# prob = EM1D( +# mesh1D, sigmaMap=expmap, chi=chi +# ) +# prob.pair(TDsurvey) +# +# self.survey = TDsurvey +# self.prob = prob +# self.mesh1D = mesh1D +# self.showIt = True +# self.chi = chi +# self.m_1D = m_1D +# self.sig_half = sig_half +# self.expmap = expmap def test_em1dtd_circular_loop_single_pulse(self): - f = self.prob.forward(self.m_1D) - BzTD = self.prob.survey.projectFields(f) - - def step_func_Bzdt(time): - return EM1DAnalytics.BzAnalCircT( - self.survey.a, time, self.sig_half + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + f = sim.compute_integral(m_1D) + d = sim.dpred(m_1D, f=f) + bz = d[0:len(self.times)] + dbdt = d[len(self.times):] + + def step_func_Bzt(time): + return BzAnalCircT( + self.a, self.times, self.sigma ) - BzTD_analytic = piecewise_ramp( - step_func_Bzdt, self.survey.time, - self.survey.time_input_currents, self.survey.input_currents + bz_analytic = piecewise_ramp( + step_func_Bzt, self.times, + sim.survey.source_list[0].time_input_currents, + sim.survey.source_list[0].input_currents ) if self.showIt: plt.subplot(121) - plt.loglog(self.survey.time, BzTD, 'b*') - plt.loglog(self.survey.time, BzTD_analytic, 'b') + plt.loglog(self.times, bz, 'b*') + plt.loglog(self.times, bz_analytic, 'b') plt.subplot(122) plt.loglog( - self.survey.time, abs((BzTD-BzTD_analytic)/BzTD_analytic), 'r:' + self.times, abs((bz-bz_analytic)/bz_analytic), 'r:' ) plt.show() - err = np.linalg.norm(BzTD-BzTD_analytic)/np.linalg.norm(BzTD_analytic) + err = np.linalg.norm(bz-bz_analytic)/np.linalg.norm(bz_analytic) print ('Bz error = ', err) self.assertTrue(err < 6e-2) - self.survey.rx_type = 'dBzdt' - dBzdtTD = self.prob.survey.projectFields(f) - - def step_func_dBzdt(time): - return EM1DAnalytics.dBzdtAnalCircT( - self.survey.a, time, self.sig_half + def step_func_dBzdt(): + return dBzdtAnalCircT( + self.a, self.times, self.sigma ) - dBzdtTD_analytic = piecewise_ramp( - step_func_dBzdt, self.survey.time, - self.survey.time_input_currents, self.survey.input_currents + dbdt_analytic = piecewise_ramp( + step_func_dBzdt, self.times, + sim.survey.source_list[0].time_input_currents, + sim.survey.source_list[0].input_currents ) + if self.showIt: plt.subplot(121) - plt.loglog(self.survey.time, abs(dBzdtTD), 'b*') + plt.loglog(self.times, abs(dbdt), 'b*') plt.loglog( - self.survey.time, - abs(dBzdtTD_analytic), 'b' + self.times, + abs(dbdt_analytic), 'b' ) plt.subplot(122) plt.loglog( - self.survey.time, - abs((dBzdtTD-dBzdtTD_analytic)/dBzdtTD_analytic), 'r:' + self.times, + abs((dbdt-dbdt_analytic)/dbdt_analytic), 'r:' ) plt.show() err = ( - np.linalg.norm(dBzdtTD-dBzdtTD_analytic)/ - np.linalg.norm(dBzdtTD_analytic) + np.linalg.norm(dbdt-dbdt_analytic)/ + np.linalg.norm(dbdt_analytic) ) print ('dBzdt error = ', err) diff --git a/tests/testEM1D_TD_off_fwd.py b/tests/testEM1D_TD_off_fwd.py index 3d8ad10..e73b3b5 100644 --- a/tests/testEM1D_TD_off_fwd.py +++ b/tests/testEM1D_TD_off_fwd.py @@ -1,10 +1,11 @@ import unittest import numpy as np -from SimPEG import Maps, Utils, Mesh +from SimPEG import maps, utils import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DAnalytics, EM1DSurveyTD +import simpegEM1D as em1d from scipy import io -from simpegEM1D.DigFilter import setFrequency +from simpegEM1D.supporting_functions.digital_filter import setFrequency +from simpegEM1D.analytics import * class EM1D_TD_FwdProblemTests(unittest.TestCase): @@ -13,81 +14,96 @@ def setUp(self): nearthick = np.logspace(-1, 1, 5) deepthick = np.logspace(1, 2, 10) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - LocSigZ = -mesh1D.gridCC - - TDsurvey = EM1DSurveyTD( - rx_location=np.array([0., 0., 100.+1e-5]), - src_location=np.array([0., 0., 100.+1e-5]), - topo=np.r_[0., 0., 100.], - depth=depth, - field_type='secondary', - rx_type='Bz', - wave_type='stepoff', - time=np.logspace(-5, -2, 64), - src_type='CircularLoop', - I=1e0, - a=1e1 + thicknesses = np.r_[nearthick, deepthick] + topo = np.r_[0., 0., 100.] + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + times = np.logspace(-5, -2, 31) + a = 20. + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="b" + ) ) - - sig_half = 1e-2 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) - tau = 1e-3 * np.ones(TDsurvey.n_layer) - eta = 2e-1 * np.ones(TDsurvey.n_layer) - c = 1. * np.ones(TDsurvey.n_layer) - m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) - chi = np.zeros(TDsurvey.n_layer) - - prob = EM1D( - mesh1D, sigmaMap=expmap, chi=chi + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="dbdt" + ) ) - prob.pair(TDsurvey) - - self.survey = TDsurvey - self.prob = prob - self.mesh1D = mesh1D + + source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, + a=a, I=1., wave_type="stepoff" + ) + ] + # Survey + survey = em1d.survey.EM1DSurveyTD(source_list) + + sigma = 1e-2 + chi = 0. + tau = 1e-3 + eta = 2e-1 + c = 1. + + self.topo = topo + self.survey = survey self.showIt = False + self.sigma = sigma self.tau = tau self.eta = eta self.c = c self.chi = chi - self.m_1D = m_1D - self.sig_half = sig_half - self.expmap = expmap + self.times = times + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 + self.a = a def test_EM1DTDfwd_CirLoop_RealCond(self): - BzTD = self.prob.survey.dpred(self.m_1D) - Bzanal = EM1DAnalytics.BzAnalCircT( - self.survey.a, self.survey.time, self.sig_half + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + d = sim.dpred(m_1D) + bz = d[0:len(self.times)] + dbdt = d[len(self.times):] + + bzanal = BzAnalCircT( + self.a, self.times, self.sigma + ) + + dbdtanal = dBzdtAnalCircT( + self.a, self.times, self.sigma ) if self.showIt is True: - plt.loglog(self.survey.time, (BzTD), 'b') - plt.loglog(self.survey.time, (Bzanal), 'b.') + plt.loglog(self.times, (bz), 'b') + plt.loglog(self.times, (bzanal), 'b.') plt.show() - err = np.linalg.norm(BzTD-Bzanal)/np.linalg.norm(Bzanal) + err = np.linalg.norm(bz-bzanal)/np.linalg.norm(bzanal) print ('Bz error = ', err) self.assertTrue(err < 1e-2) - self.survey.rx_type = 'dBzdt' - dBzdtTD = self.prob.survey.dpred(self.m_1D) - dBzdtanal = EM1DAnalytics.dBzdtAnalCircT( - self.survey.a, self.survey.time, self.sig_half - ) - if self.showIt is True: - plt.loglog(self.survey.time, -(dBzdtTD), 'b-') - plt.loglog(self.survey.time, -(dBzdtanal), 'b.') + plt.loglog(self.times, -(dbdt), 'b-') + plt.loglog(self.times, -(dbdtanal), 'b.') plt.show() - err = np.linalg.norm(dBzdtTD-dBzdtanal)/np.linalg.norm(dBzdtanal) + err = np.linalg.norm(dbdt-dbdtanal)/np.linalg.norm(dbdtanal) print ('dBzdt error = ', err) self.assertTrue(err < 5e-2) @@ -95,52 +111,54 @@ def test_EM1DTDfwd_CirLoop_RealCond(self): def test_EM1DTDfwd_CirLoop_ComplexCond(self): - if self.prob.ispaired: - self.prob.unpair() - if self.survey.ispaired: - self.survey.unpair() - - self.prob = EM1D( - self.mesh1D, sigmaMap=self.expmap, chi=self.chi, - eta=self.eta, tau=self.tau, c=self.c + sigma_map = maps.IdentityMap(nP=self.nlayers) + chi = np.zeros(self.nlayers) + tau = self.tau*np.ones(self.nlayers) + c = self.c*np.ones(self.nlayers) + eta = self.eta*np.ones(self.nlayers) + + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo, + eta=eta, tau=tau, c=c, chi=chi ) - self.prob.pair(self.survey) - - BzTD = self.prob.survey.dpred(self.m_1D) - - w_, _, omega_int = setFrequency(self.survey.time) - sigCole = EM1DAnalytics.ColeCole( - omega_int/(2*np.pi), self.sig_half, - self.eta[0], self.tau[0], self.c[0] + + m_1D = np.ones(self.nlayers)*self.sigma + d = sim.dpred(m_1D) + bz = d[0:len(self.times)] + dbdt = d[len(self.times):] + + w_, _, omega_int = setFrequency(self.times) + sigCole = ColeCole( + omega_int/(2*np.pi), self.sigma, + self.eta, self.tau, self.c ) - Bzanal = EM1DAnalytics.BzAnalCircTCole( - self.survey.a, self.survey.time, sigCole + bzanal = BzAnalCircTCole( + self.a, self.times, sigCole ) if self.showIt is True: - plt.loglog(self.survey.time, (BzTD), 'b') - plt.loglog(self.survey.time, (Bzanal), 'b*') + plt.loglog(self.times, (bz), 'b') + plt.loglog(self.times, (bzanal), 'b*') plt.show() - err = np.linalg.norm(BzTD-Bzanal)/np.linalg.norm(Bzanal) + err = np.linalg.norm(bz-bzanal)/np.linalg.norm(bzanal) print ('Bz error = ', err) self.assertTrue(err < 1e-2) - - self.survey.rx_type = 'dBzdt' - dBzdtTD = self.survey.dpred(self.m_1D) - dBzdtanal = EM1DAnalytics.dBzdtAnalCircTCole( - self.survey.a, self.survey.time, sigCole + + dbdtanal = dBzdtAnalCircTCole( + self.a, self.times, sigCole ) if self.showIt is True: - plt.loglog(self.survey.time, - dBzdtTD, 'b') - plt.loglog(self.survey.time, - dBzdtanal, 'b*') + plt.loglog(self.times, - dbdt, 'b') + plt.loglog(self.times, - dbdtanal, 'b*') plt.show() - err = np.linalg.norm(dBzdtTD-dBzdtanal)/np.linalg.norm(dBzdtanal) + err = np.linalg.norm(dbdt-dbdtanal)/np.linalg.norm(dbdtanal) print ('dBzdt error = ', err) self.assertTrue(err < 5e-2) print ("EM1DTD-CirculurLoop for Complex conductivity works") diff --git a/tutorials/assets/em1dfm_data.obs b/tutorials/assets/em1dfm_data.obs index aa6e5c0..9279a70 100644 --- a/tutorials/assets/em1dfm_data.obs +++ b/tutorials/assets/em1dfm_data.obs @@ -1,5 +1,5 @@ -3.8200e+02 9.2555e+02 7.3333e+02 -1.8220e+03 1.6882e+03 1.1341e+03 -7.9700e+03 3.0924e+03 1.9300e+03 -3.5920e+04 5.4375e+03 2.0141e+03 -1.3010e+05 6.8405e+03 1.3363e+03 +3.8200e+02 9.3664e+02 7.3894e+02 +1.8220e+03 1.7232e+03 1.1115e+03 +7.9700e+03 2.9979e+03 1.9208e+03 +3.5920e+04 5.4208e+03 1.9754e+03 +1.3010e+05 7.1201e+03 1.3787e+03 diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index ed6be07..3861fe6 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6056e+01 9.2459e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.6238e+02 8.3846e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5402e+03 3.2338e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.9740e+01 2.2772e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.3002e+02 6.5585e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2601e+03 2.3398e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5585e+01 9.5950e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7910e+02 9.0849e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4258e+03 3.3183e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.1140e+01 2.2699e+02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3886e+02 6.3611e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2660e+03 2.2878e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.4943e+01 9.6309e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.6755e+02 8.8756e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5362e+03 3.4803e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3200e+01 2.2135e+02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4424e+02 6.6949e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2760e+03 2.1507e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7713e+01 1.1363e+02 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0705e+02 8.6445e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5292e+03 3.3724e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5522e+01 2.1780e+02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2057e+02 6.1033e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2761e+03 2.2750e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8357e+01 1.1162e+02 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8747e+02 9.0051e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5188e+03 3.3810e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9868e+01 2.3392e+02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1767e+02 6.4283e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2353e+03 2.2751e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8389e+01 1.1014e+02 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0557e+02 8.6566e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4825e+03 3.5411e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0350e+01 2.3182e+02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3662e+02 6.0383e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1815e+03 2.2872e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8470e+01 1.0454e+02 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0311e+02 8.6607e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4438e+03 3.3758e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9600e+01 2.3134e+02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3452e+02 6.4197e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2760e+03 2.3336e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0496e+01 1.1981e+02 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9817e+02 8.8252e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4308e+03 3.2706e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.3298e+01 2.3391e+02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1488e+02 6.1815e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2608e+03 2.2856e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0058e+01 1.1772e+02 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2212e+02 8.6709e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5321e+03 3.2362e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4705e+01 2.3788e+02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2652e+02 6.0962e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2872e+03 2.2465e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0763e+01 1.2164e+02 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1150e+02 8.3145e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4570e+03 3.2858e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.5805e+01 2.3088e+02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4193e+02 6.2843e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2324e+03 2.2094e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0493e+01 1.1841e+02 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9593e+02 8.6644e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4883e+03 3.2406e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4683e+01 2.2861e+02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3314e+02 6.0334e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2627e+03 2.2649e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1299e+01 1.2249e+02 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9522e+02 8.7373e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4696e+03 3.4470e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7172e+01 2.3237e+02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1095e+02 5.9996e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2649e+03 2.2644e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3815e+01 1.3275e+02 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0940e+02 8.7724e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4137e+03 3.5404e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4372e+01 2.4414e+02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0746e+02 6.3263e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2376e+03 2.2508e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3336e+01 1.3344e+02 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2984e+02 8.5970e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4136e+03 3.4301e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7399e+01 2.2733e+02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3139e+02 6.1425e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2827e+03 2.2932e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3661e+01 1.3455e+02 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1758e+02 8.8159e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5052e+03 3.5081e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7153e+01 2.4869e+02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1617e+02 6.3944e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2012e+03 2.1506e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2476e+01 1.3309e+02 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1782e+02 8.4182e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4972e+03 3.3481e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4629e+01 2.4038e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1759e+02 6.2989e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1819e+03 2.1909e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2092e+01 1.2932e+02 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0792e+02 8.9639e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5336e+03 3.2374e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6862e+01 2.4361e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2628e+02 6.5825e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2180e+03 2.3363e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3486e+01 1.2916e+02 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1934e+02 8.6113e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5350e+03 3.3609e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.5510e+01 2.3960e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0800e+02 6.4515e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2785e+03 2.1751e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6700e+01 1.4491e+02 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2751e+02 8.9755e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5503e+03 3.2487e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2771e+01 2.5016e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0226e+02 6.5962e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1818e+03 2.3268e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5522e+01 1.4381e+02 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3467e+02 9.0017e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4768e+03 3.2648e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3804e+01 2.4199e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8839e+02 6.4006e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1931e+03 2.1788e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5973e+01 1.3836e+02 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3653e+02 8.5956e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5170e+03 3.3386e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1187e+01 2.4635e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1945e+02 6.2825e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2521e+03 2.3101e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4935e+01 1.4295e+02 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1019e+02 8.6130e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4708e+03 3.4193e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0628e+01 2.4275e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8720e+02 6.1722e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2710e+03 2.2151e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4568e+01 1.4653e+02 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0252e+02 8.5263e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4879e+03 3.3906e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1020e+01 2.4572e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1478e+02 6.1553e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2574e+03 2.1563e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4766e+01 1.3576e+02 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1888e+02 8.7931e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4374e+03 3.2614e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8240e+01 2.4336e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9424e+02 6.1676e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2641e+03 2.2742e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7188e+01 1.4306e+02 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2444e+02 8.2525e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5150e+03 3.3518e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7591e+01 2.3855e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9569e+02 6.1509e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2815e+03 2.2537e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9086e+01 1.4157e+02 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1081e+02 8.3133e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4150e+03 3.2746e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6080e+01 2.3511e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1249e+02 6.1076e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2135e+03 2.3170e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7409e+01 1.5339e+02 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1313e+02 8.9212e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5442e+03 3.4537e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7096e+01 2.3733e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0397e+02 6.0491e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2134e+03 2.2545e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7166e+01 1.5093e+02 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3598e+02 8.9355e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4611e+03 3.4607e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8688e+01 2.3769e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0908e+02 6.4150e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2700e+03 2.1834e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7797e+01 1.4320e+02 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3646e+02 8.9144e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4404e+03 3.4317e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7038e+01 2.3025e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0893e+02 6.5751e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2025e+03 2.3162e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8298e+01 1.4066e+02 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3234e+02 8.2455e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5227e+03 3.4050e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6592e+01 2.3669e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1362e+02 6.0625e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2367e+03 2.2689e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7266e+01 1.5266e+02 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1975e+02 8.7698e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4511e+03 3.2902e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3136e+01 2.3632e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8131e+02 6.2188e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1859e+03 2.3494e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0729e+01 1.5320e+02 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1004e+02 8.5440e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4851e+03 3.3916e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7914e+01 2.4724e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9229e+02 6.1383e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1980e+03 2.2107e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1792e+01 1.4944e+02 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2923e+02 8.5902e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4977e+03 3.3351e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0104e+02 2.2832e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9125e+02 6.3954e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2717e+03 2.2004e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0672e+01 1.5064e+02 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9945e+02 8.8057e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4661e+03 3.2586e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3668e+01 2.4228e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9598e+02 6.5404e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2230e+03 2.2820e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1890e+01 1.4519e+02 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2237e+02 8.5105e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4916e+03 3.3786e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7017e+01 2.3359e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9384e+02 6.2190e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2418e+03 2.3154e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0191e+01 1.5926e+02 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3369e+02 8.7825e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4431e+03 3.4595e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5486e+01 2.2944e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0981e+02 6.2381e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1957e+03 2.2079e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0507e+01 1.5218e+02 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0759e+02 8.4291e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5494e+03 3.4030e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8833e+01 2.3500e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9058e+02 6.4281e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2095e+03 2.1746e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1745e+01 1.4766e+02 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2488e+02 8.8277e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5120e+03 3.4140e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5318e+01 2.3012e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0882e+02 6.5511e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2911e+03 2.2939e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4143e+01 1.5218e+02 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3008e+02 8.2103e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5044e+03 3.3715e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0243e+02 2.3869e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9631e+02 6.2010e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2674e+03 2.3386e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3629e+01 1.5882e+02 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2086e+02 8.5320e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5142e+03 3.4042e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6128e+01 2.3945e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1539e+02 6.4918e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1986e+03 2.3408e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1433e+01 1.4912e+02 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2422e+02 8.8629e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4677e+03 3.2934e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0209e+02 2.2483e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8186e+02 6.0443e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2102e+03 2.1459e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3021e+01 1.5616e+02 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0680e+02 8.3763e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5035e+03 3.3456e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4430e+01 2.4441e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1274e+02 6.1023e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2737e+03 2.3350e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1801e+01 1.5180e+02 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1476e+02 8.5567e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4740e+03 3.2929e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4587e+01 2.3516e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9979e+02 6.5245e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2671e+03 2.2332e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3354e+01 1.5921e+02 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2028e+02 8.8257e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4599e+03 3.3008e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0126e+02 2.2712e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9721e+02 6.1559e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2895e+03 2.2980e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2213e+01 1.6061e+02 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2723e+02 8.6987e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4220e+03 3.5034e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0037e+02 2.2554e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0230e+02 6.5327e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2047e+03 2.1567e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2233e+01 1.4975e+02 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1362e+02 8.7363e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4314e+03 3.5344e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5347e+01 2.3953e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0663e+02 6.0577e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1841e+03 2.2304e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3747e+01 1.5721e+02 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2054e+02 8.3808e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5105e+03 3.4870e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0194e+02 2.2591e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1264e+02 6.4527e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2616e+03 2.2285e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4978e+01 1.5046e+02 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9398e+02 8.6377e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5261e+03 3.2273e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0288e+02 2.4198e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9678e+02 6.0828e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1927e+03 2.2070e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3940e+01 1.5983e+02 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1064e+02 8.2059e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4197e+03 3.3504e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8963e+01 2.4198e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8906e+02 6.2090e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2259e+03 2.2842e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5894e+01 1.6229e+02 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0708e+02 8.7575e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4136e+03 3.4768e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4532e+01 2.3056e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9921e+02 6.4960e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2156e+03 2.3262e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.4883e+01 9.0662e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.7760e+02 9.0433e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5491e+03 3.3352e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3279e+01 2.2137e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.4508e+02 6.5579e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2059e+03 2.3090e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6272e+01 9.1811e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5813e+02 8.9487e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4235e+03 3.3411e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.0041e+01 2.1258e+02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4005e+02 6.4878e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2682e+03 2.3369e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5178e+01 9.5565e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5361e+02 9.0483e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5459e+03 3.3759e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2516e+01 2.2384e+02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3412e+02 6.6794e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2835e+03 2.2897e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7760e+01 1.0614e+02 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9004e+02 8.4099e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4703e+03 3.2712e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2170e+01 2.3232e+02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2691e+02 6.5291e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2225e+03 2.3297e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7519e+01 1.0783e+02 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1081e+02 8.4845e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4927e+03 3.3456e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.8739e+01 2.3768e+02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3495e+02 6.5965e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2370e+03 2.1819e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7823e+01 1.0657e+02 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0382e+02 8.7518e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4224e+03 3.5382e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7388e+01 2.2228e+02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5173e+02 6.1839e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2897e+03 2.2212e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7557e+01 1.1045e+02 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1386e+02 8.7563e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4700e+03 3.4434e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5876e+01 2.3780e+02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1605e+02 6.0047e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2539e+03 2.2317e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0285e+01 1.2636e+02 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2806e+02 8.3777e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4852e+03 3.3489e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0055e+01 2.4164e+02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4139e+02 6.2375e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2599e+03 2.3216e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1156e+01 1.1554e+02 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0317e+02 8.2337e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4998e+03 3.2845e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.6365e+01 2.2433e+02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2949e+02 6.0521e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2728e+03 2.3245e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0265e+01 1.1908e+02 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0896e+02 8.4735e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4349e+03 3.2739e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2644e+01 2.2546e+02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1537e+02 6.5346e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2493e+03 2.2925e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0860e+01 1.1818e+02 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1924e+02 8.6293e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5024e+03 3.2995e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6772e+01 2.4197e+02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0594e+02 6.3674e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2970e+03 2.1843e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0460e+01 1.2196e+02 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1491e+02 8.6673e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4665e+03 3.5096e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6998e+01 2.2431e+02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3539e+02 6.2736e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2770e+03 2.1648e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2993e+01 1.2947e+02 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0479e+02 8.7089e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4696e+03 3.2397e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8177e+01 2.3519e+02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2205e+02 6.3680e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1975e+03 2.2252e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1941e+01 1.3399e+02 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0230e+02 8.4806e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5547e+03 3.4937e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7600e+01 2.3774e+02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0417e+02 6.2266e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2657e+03 2.1819e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3460e+01 1.2813e+02 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2711e+02 8.7336e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5356e+03 3.2903e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8160e+01 2.4571e+02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1158e+02 6.2126e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2031e+03 2.2077e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3257e+01 1.3776e+02 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0059e+02 8.3858e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4643e+03 3.2507e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9571e+01 2.3834e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9635e+02 6.6082e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2538e+03 2.3491e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3186e+01 1.3139e+02 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2860e+02 8.3999e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4405e+03 3.2325e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7847e+01 2.3056e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2950e+02 6.1413e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2962e+03 2.1526e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3088e+01 1.2604e+02 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3227e+02 8.5369e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4671e+03 3.2667e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6477e+01 2.3512e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2540e+02 6.3369e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2389e+03 2.2225e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6695e+01 1.3967e+02 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0226e+02 8.4436e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4150e+03 3.3708e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3167e+01 2.4106e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8917e+02 6.2684e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2558e+03 2.1517e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4725e+01 1.4385e+02 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0114e+02 8.3905e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4643e+03 3.2939e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1749e+01 2.4010e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0233e+02 6.3512e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1964e+03 2.2116e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4599e+01 1.3878e+02 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3226e+02 8.4864e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4981e+03 3.5218e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9347e+01 2.2895e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9765e+02 6.0502e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2054e+03 2.1975e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6720e+01 1.4071e+02 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0178e+02 8.4236e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4469e+03 3.4476e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1929e+01 2.3633e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1969e+02 6.1908e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2256e+03 2.2015e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5665e+01 1.4030e+02 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1729e+02 8.7013e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4933e+03 3.2447e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3177e+01 2.4966e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9069e+02 6.4490e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2060e+03 2.3472e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5420e+01 1.3453e+02 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3030e+02 8.2484e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4421e+03 3.4446e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3039e+01 2.4811e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0290e+02 6.5678e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2122e+03 2.3515e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8923e+01 1.4341e+02 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3558e+02 8.2123e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4281e+03 3.3192e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6041e+01 2.4529e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9075e+02 6.2591e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2983e+03 2.2861e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7628e+01 1.5261e+02 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0308e+02 8.3668e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5399e+03 3.3671e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8456e+01 2.2751e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8771e+02 6.1118e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2115e+03 2.2521e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7337e+01 1.5074e+02 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1052e+02 8.4690e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5481e+03 3.2633e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5655e+01 2.3204e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9775e+02 6.4243e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2689e+03 2.3261e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7211e+01 1.4931e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0308e+02 8.2068e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5123e+03 3.3121e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6956e+01 2.4010e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1702e+02 6.2913e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2840e+03 2.3207e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7767e+01 1.4581e+02 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3014e+02 8.5517e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4875e+03 3.3759e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8491e+01 2.3194e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0824e+02 6.0743e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2908e+03 2.2593e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7973e+01 1.4321e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2019e+02 8.9672e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4259e+03 3.4974e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8246e+01 2.2737e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9083e+02 6.4974e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2669e+03 2.3456e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9005e+01 1.4175e+02 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3313e+02 8.2459e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4691e+03 3.3508e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2254e+01 2.4954e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8263e+02 6.3961e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2647e+03 2.1773e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1021e+01 1.5623e+02 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9972e+02 8.6357e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4336e+03 3.3847e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3517e+01 2.3505e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0398e+02 6.5857e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2468e+03 2.2417e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0153e+01 1.4523e+02 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3223e+02 8.7956e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5346e+03 3.5027e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8212e+01 2.4634e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0694e+02 6.5026e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2707e+03 2.2491e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2088e+01 1.4820e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1530e+02 8.2893e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4993e+03 3.4551e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7853e+01 2.4435e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0968e+02 6.5830e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2526e+03 2.2769e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9637e+01 1.5084e+02 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9698e+02 8.2281e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4271e+03 3.4166e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9025e+01 2.4421e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0547e+02 6.2047e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.2076e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1229e+01 1.5631e+02 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1561e+02 8.3811e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4432e+03 3.4392e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3441e+01 2.3833e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1428e+02 6.2494e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1906e+03 2.2297e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1567e+01 1.5808e+02 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2893e+02 8.9693e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4539e+03 3.4814e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8454e+01 2.4544e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1331e+02 6.4513e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2572e+03 2.2889e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9449e+01 1.5875e+02 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9791e+02 8.2605e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5196e+03 3.5059e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6010e+01 2.3121e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9493e+02 6.3546e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2134e+03 2.3236e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2841e+01 1.5399e+02 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2308e+02 8.8214e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4670e+03 3.4918e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4701e+01 2.4507e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8406e+02 6.0366e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2019e+03 2.2127e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1545e+01 1.6181e+02 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1434e+02 8.5339e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5417e+03 3.4677e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0213e+02 2.4060e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1001e+02 6.1629e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2653e+03 2.2573e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2700e+01 1.5937e+02 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0850e+02 8.2275e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5254e+03 3.3493e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0157e+02 2.2468e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8413e+02 6.5237e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2675e+03 2.3366e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1493e+01 1.5038e+02 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2426e+02 8.3839e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5066e+03 3.3265e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4505e+01 2.2697e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8740e+02 6.4272e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2934e+03 2.2363e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3489e+01 1.5967e+02 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2428e+02 8.3389e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5205e+03 3.4209e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3741e+01 2.3517e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8074e+02 6.5899e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2221e+03 2.3103e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2242e+01 1.5333e+02 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0882e+02 8.4274e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4188e+03 3.2871e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9256e+01 2.4489e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0115e+02 6.3698e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2302e+03 2.2096e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3312e+01 1.5115e+02 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9417e+02 8.8120e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4250e+03 3.3576e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7712e+01 2.2484e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8340e+02 6.1584e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2914e+03 2.2966e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2623e+01 1.5099e+02 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1105e+02 8.6265e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4232e+03 3.2622e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5715e+01 2.4483e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1283e+02 6.4122e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2480e+03 2.1525e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3648e+01 1.5163e+02 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9479e+02 8.6925e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4591e+03 3.5030e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6671e+01 2.3184e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1201e+02 6.5691e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2742e+03 2.2032e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5835e+01 1.5367e+02 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9406e+02 8.3811e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4626e+03 3.4658e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6252e+01 2.3411e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9632e+02 6.2239e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2080e+03 2.2142e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5984e+01 1.5969e+02 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2378e+02 8.6915e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5474e+03 3.4472e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0035e+02 2.2575e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0974e+02 6.5704e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2278e+03 2.3173e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3608e+01 1.6083e+02 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0022e+02 8.3101e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4357e+03 3.2730e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4979e+01 2.4048e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8398e+02 6.0641e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2005e+03 diff --git a/tutorials/assets/em1dtm_data.obs b/tutorials/assets/em1dtm_data.obs index c6e5455..3098c36 100644 --- a/tutorials/assets/em1dtm_data.obs +++ b/tutorials/assets/em1dtm_data.obs @@ -1,31 +1,31 @@ -1.0000e-05 7.1363e-05 -1.2589e-05 6.1904e-05 -1.5849e-05 5.3582e-05 -1.9953e-05 4.7167e-05 -2.5119e-05 3.8185e-05 -3.1623e-05 3.2276e-05 -3.9811e-05 2.7285e-05 -5.0119e-05 2.1858e-05 -6.3096e-05 1.7959e-05 -7.9433e-05 1.4427e-05 -1.0000e-04 1.2149e-05 -1.2589e-04 1.0283e-05 -1.5849e-04 8.4535e-06 -1.9953e-04 7.6155e-06 -2.5119e-04 6.7671e-06 -3.1623e-04 5.9066e-06 -3.9811e-04 5.0983e-06 -5.0119e-04 4.5976e-06 -6.3096e-04 3.8836e-06 -7.9433e-04 3.4144e-06 -1.0000e-03 2.9740e-06 -1.2589e-03 2.4130e-06 -1.5849e-03 1.9717e-06 -1.9953e-03 1.5592e-06 -2.5119e-03 1.2031e-06 -3.1623e-03 9.3813e-07 -3.9811e-03 6.7352e-07 -5.0119e-03 4.8311e-07 -6.3096e-03 3.4088e-07 -7.9433e-03 2.2758e-07 -1.0000e-02 1.5616e-07 +1.0000e-05 7.3102e-05 +1.2589e-05 6.1993e-05 +1.5849e-05 5.4940e-05 +1.9953e-05 4.6413e-05 +2.5119e-05 3.9683e-05 +3.1623e-05 3.2801e-05 +3.9811e-05 2.6515e-05 +5.0119e-05 2.2078e-05 +6.3096e-05 1.7474e-05 +7.9433e-05 1.4549e-05 +1.0000e-04 1.1931e-05 +1.2589e-04 1.0031e-05 +1.5849e-04 8.7759e-06 +1.9953e-04 7.4916e-06 +2.5119e-04 6.6940e-06 +3.1623e-04 5.9304e-06 +3.9811e-04 5.2050e-06 +5.0119e-04 4.5807e-06 +6.3096e-04 3.8969e-06 +7.9433e-04 3.4024e-06 +1.0000e-03 2.9312e-06 +1.2589e-03 2.4097e-06 +1.5849e-03 2.0154e-06 +1.9953e-03 1.6079e-06 +2.5119e-03 1.2174e-06 +3.1623e-03 9.4721e-07 +3.9811e-03 6.9441e-07 +5.0119e-03 4.8236e-07 +6.3096e-03 3.3284e-07 +7.9433e-03 2.3610e-07 +1.0000e-02 1.5219e-07 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index 0ac2663..68c6f5e 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -6.2562e-01 -5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -3.3170e-01 -5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -1.7244e-01 -5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -8.0626e-02 -5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -4.2627e-02 -5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -2.8357e-02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -1.9295e-02 -5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.3469e-02 -5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -8.9758e-03 -5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -6.8613e-03 -5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -4.2961e-03 -5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -2.7824e-03 -5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -1.6574e-03 -5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -8.8091e-04 -5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -4.2011e-04 -5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.1588e-04 -5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -8.9711e-05 -5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -4.3608e-05 -5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -1.8574e-05 -5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -7.2079e-06 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -3.2784e-06 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4003e-01 -1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2657e-01 -1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7115e-01 -1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6272e-02 -1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5275e-02 -1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7806e-02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8524e-02 -1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3757e-02 -1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.5007e-03 -1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.5060e-03 -1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.1807e-03 -1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8219e-03 -1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5569e-03 -1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.5169e-04 -1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.1683e-04 -1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.1442e-04 -1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.7559e-05 -1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.3130e-05 -1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.8536e-05 -1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.7915e-06 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.0811e-06 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4037e-01 -2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2899e-01 -2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6184e-01 -2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.3233e-02 -2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5558e-02 -2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6569e-02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8797e-02 -2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3300e-02 -2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.6594e-03 -2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3264e-03 -2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.4803e-03 -2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8293e-03 -2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5259e-03 -2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.7579e-04 -2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.5157e-04 -2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0544e-04 -2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.1006e-05 -2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.3329e-05 -2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.8757e-05 -2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.6430e-06 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.0535e-06 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.3370e-01 -3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2535e-01 -3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5817e-01 -3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5487e-02 -3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.6079e-02 -3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6102e-02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7558e-02 -3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1912e-02 -3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.9447e-03 -3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.0690e-03 -3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2545e-03 -3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6168e-03 -3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5832e-03 -3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.1567e-04 -3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0565e-04 -3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3661e-04 -3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1387e-04 -3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.7588e-05 -3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0729e-05 -3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.5488e-06 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.7276e-06 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.5301e-01 -4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4800e-01 -4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6776e-01 -4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.1372e-02 -4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5795e-02 -4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6490e-02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9171e-02 -4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2013e-02 -4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.9270e-03 -4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4941e-03 -4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.0569e-03 -4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7828e-03 -4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6133e-03 -4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.6063e-04 -4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9221e-04 -4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4426e-04 -4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0488e-04 -4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.9014e-05 -4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0107e-05 -4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.6975e-06 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.5801e-06 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9392e-01 -5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2524e-01 -5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6258e-01 -5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5198e-02 -5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3576e-02 -5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8806e-02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8591e-02 -5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2115e-02 -5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.1296e-03 -5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4853e-03 -5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2549e-03 -5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7459e-03 -5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6770e-03 -5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.2160e-04 -5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9032e-04 -5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4916e-04 -5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1057e-04 -5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.7046e-05 -5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1202e-05 -5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1469e-06 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.8127e-06 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1917e-01 -6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3621e-01 -6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5771e-01 -6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6168e-02 -6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3184e-02 -6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7382e-02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8359e-02 -6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2595e-02 -6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6366e-03 -6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4282e-03 -6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3629e-03 -6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6783e-03 -6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6034e-03 -6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.0517e-04 -6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0058e-04 -6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4154e-04 -6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1110e-04 -6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0361e-05 -6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1537e-05 -6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1903e-06 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.7710e-06 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.5374e-01 -7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3899e-01 -7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7173e-01 -7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6372e-02 -7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3400e-02 -7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6081e-02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8897e-02 -7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2796e-02 -7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.2937e-03 -7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.1818e-03 -7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.8602e-03 -7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5674e-03 -7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6463e-03 -7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.0041e-03 -7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1914e-04 -7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.7676e-04 -7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2308e-04 -7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.4470e-05 -7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4232e-05 -7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0446e-05 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9805e-06 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9167e-01 -8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3240e-01 -8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6594e-01 -8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.2797e-02 -8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3121e-02 -8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8007e-02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9154e-02 -8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2302e-02 -8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.7191e-03 -8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.7785e-03 -8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.9657e-03 -8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6229e-03 -8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6104e-03 -8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7437e-04 -8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1102e-04 -8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6621e-04 -8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2775e-04 -8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.6584e-05 -8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4495e-05 -8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0337e-05 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9675e-06 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4345e-01 -9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3170e-01 -9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6245e-01 -9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.5874e-02 -9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.3312e-02 -9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6833e-02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8301e-02 -9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2921e-02 -9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.8072e-03 -9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.5927e-03 -9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.0913e-03 -9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5321e-03 -9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6398e-03 -9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.8381e-04 -9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.1086e-04 -9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6616e-04 -9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2063e-04 -9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.2951e-05 -9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.4820e-05 -9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0309e-05 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.0484e-06 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9781e-01 -1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1834e-01 -1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6873e-01 -1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5532e-02 -1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5898e-02 -1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7275e-02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9105e-02 -1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3062e-02 -1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.9428e-03 -1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.0844e-03 -1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8100e-03 -1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6640e-03 -1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7010e-03 -1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5967e-04 -1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1071e-04 -1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.6792e-04 -1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.2919e-04 -1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.4742e-05 -1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.3257e-05 -1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0546e-05 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.1234e-06 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2891e-01 -1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3146e-01 -1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6768e-01 -1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9717e-02 -1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7015e-02 -1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7981e-02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7507e-02 -1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2626e-02 -1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2462e-03 -1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7662e-03 -1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.9799e-03 -1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5502e-03 -1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6579e-03 -1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7265e-04 -1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6050e-04 -1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7800e-04 -1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4111e-04 -1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.4560e-05 -1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7291e-05 -1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1551e-05 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.6411e-06 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4197e-01 -1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4158e-01 -1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6243e-01 -1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0697e-02 -1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5333e-02 -1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8488e-02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8929e-02 -1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2551e-02 -1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0802e-03 -1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9509e-03 -1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0036e-03 -1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6703e-03 -1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6969e-03 -1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8849e-04 -1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3819e-04 -1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9793e-04 -1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4263e-04 -1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.1582e-05 -1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7040e-05 -1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1738e-05 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.5682e-06 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2768e-01 -1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4566e-01 -1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7144e-01 -1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4884e-02 -1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2911e-02 -1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6960e-02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7267e-02 -1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2929e-02 -1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2578e-03 -1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.0152e-03 -1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7453e-03 -1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4856e-03 -1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5508e-03 -1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7097e-04 -1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4907e-04 -1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7644e-04 -1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4192e-04 -1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.9647e-05 -1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.8303e-05 -1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0942e-05 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.8941e-06 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2799e-01 -1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2386e-01 -1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6756e-01 -1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6591e-02 -1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4431e-02 -1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8237e-02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8758e-02 -1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2588e-02 -1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5977e-03 -1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4773e-03 -1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0055e-03 -1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5400e-03 -1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6464e-03 -1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6383e-04 -1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3941e-04 -1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9133e-04 -1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3805e-04 -1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.2798e-05 -1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.6223e-05 -1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1872e-05 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.7158e-06 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.8935e-01 -1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4201e-01 -1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6685e-01 -1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8436e-02 -1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5677e-02 -1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6115e-02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7444e-02 -1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2435e-02 -1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2493e-03 -1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4960e-03 -1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7530e-03 -1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3386e-03 -1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6603e-03 -1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2582e-04 -1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7038e-04 -1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0171e-04 -1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4880e-04 -1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.2543e-05 -1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.0367e-05 -1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2967e-05 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4784e-06 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9946e-01 -1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2996e-01 -1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7098e-01 -1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8961e-02 -1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6571e-02 -1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6652e-02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8703e-02 -1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1947e-02 -1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7101e-03 -1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7742e-03 -1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7753e-03 -1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5903e-03 -1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5221e-03 -1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6935e-04 -1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3947e-04 -1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8414e-04 -1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4095e-04 -1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6877e-05 -1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1501e-05 -1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2371e-05 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3847e-06 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1694e-01 -1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2925e-01 -1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6070e-01 -1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0420e-02 -1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5727e-02 -1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6919e-02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7340e-02 -1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2913e-02 -1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2323e-03 -1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6998e-03 -1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8338e-03 -1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4469e-03 -1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6192e-03 -1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.6660e-04 -1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3891e-04 -1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9657e-04 -1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4845e-04 -1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.7368e-05 -1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.9466e-05 -1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3497e-05 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3567e-06 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0240e-01 -1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2014e-01 -1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7248e-01 -1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2640e-02 -1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2696e-02 -1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8905e-02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8053e-02 -1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2790e-02 -1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7276e-03 -1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8067e-03 -1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6664e-03 -1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5394e-03 -1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5570e-03 -1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3912e-04 -1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5069e-04 -1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9640e-04 -1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5573e-04 -1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6126e-05 -1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1446e-05 -1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2948e-05 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4495e-06 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9582e-01 -1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2237e-01 -1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5867e-01 -1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4919e-02 -1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3766e-02 -1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6208e-02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8675e-02 -1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2289e-02 -1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6364e-03 -1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5096e-03 -1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7437e-03 -1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4276e-03 -1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5001e-03 -1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0188e-03 -1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5535e-04 -1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9745e-04 -1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5490e-04 -1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.6680e-05 -1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.9982e-05 -1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3065e-05 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.3436e-06 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5291e-01 -2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4376e-01 -2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7156e-01 -2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0455e-02 -2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3210e-02 -2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7299e-02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8173e-02 -2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2745e-02 -2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4394e-03 -2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8510e-03 -2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8140e-03 -2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5087e-03 -2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5719e-03 -2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0281e-04 -2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7030e-04 -2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0948e-04 -2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5300e-04 -2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7503e-05 -2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4781e-05 -2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4015e-05 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.2094e-06 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1189e-01 -2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3397e-01 -2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7087e-01 -2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5282e-02 -2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6996e-02 -2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8878e-02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8452e-02 -2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1824e-02 -2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5803e-03 -2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6363e-03 -2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8160e-03 -2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4700e-03 -2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6040e-03 -2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8031e-04 -2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7268e-04 -2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1684e-04 -2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6115e-04 -2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1325e-05 -2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2368e-05 -2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3983e-05 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1212e-06 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3738e-01 -2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2592e-01 -2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6731e-01 -2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0073e-02 -2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2850e-02 -2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7275e-02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7555e-02 -2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2087e-02 -2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0111e-03 -2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4934e-03 -2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7703e-03 -2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3703e-03 -2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4997e-03 -2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8168e-04 -2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7095e-04 -2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0796e-04 -2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5185e-04 -2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5145e-05 -2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4466e-05 -2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3862e-05 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1458e-06 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9322e-01 -2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3320e-01 -2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5805e-01 -2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8802e-02 -2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3047e-02 -2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6789e-02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8718e-02 -2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1873e-02 -2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4443e-03 -2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3911e-03 -2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6284e-03 -2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2759e-03 -2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5902e-03 -2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4987e-04 -2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6042e-04 -2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0306e-04 -2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5325e-04 -2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.3199e-05 -2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2389e-05 -2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3654e-05 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6344e-06 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1478e-01 -2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2956e-01 -2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6970e-01 -2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9763e-02 -2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4411e-02 -2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8325e-02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8163e-02 -2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2986e-02 -2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3697e-03 -2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4984e-03 -2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7822e-03 -2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4469e-03 -2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5310e-03 -2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9215e-04 -2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7243e-04 -2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9699e-04 -2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6522e-04 -2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2591e-05 -2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5386e-05 -2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5566e-05 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5976e-06 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1272e-01 -2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1870e-01 -2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6559e-01 -2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3622e-02 -2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6343e-02 -2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7197e-02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8884e-02 -2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2275e-02 -2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5975e-03 -2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8142e-03 -2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8816e-03 -2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4892e-03 -2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4692e-03 -2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1473e-04 -2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7489e-04 -2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0396e-04 -2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5606e-04 -2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9254e-05 -2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5755e-05 -2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5506e-05 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3253e-06 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2909e-01 -2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3621e-01 -2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6824e-01 -2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0332e-02 -2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4611e-02 -2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8367e-02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8288e-02 -2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2399e-02 -2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3890e-03 -2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7987e-03 -2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5616e-03 -2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2984e-03 -2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4815e-03 -2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0301e-04 -2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2205e-04 -2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0925e-04 -2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6224e-04 -2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6797e-05 -2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8073e-05 -2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6149e-05 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7389e-06 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9078e-01 -2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2880e-01 -2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6332e-01 -2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2928e-02 -2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5102e-02 -2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6043e-02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9084e-02 -2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2571e-02 -2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3219e-03 -2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4939e-03 -2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8168e-03 -2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3003e-03 -2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4849e-03 -2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1837e-04 -2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3768e-04 -2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0250e-04 -2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5428e-04 -2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6263e-05 -2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7150e-05 -2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6130e-05 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5271e-06 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2288e-01 -2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.5070e-01 -2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6736e-01 -2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9874e-02 -2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3846e-02 -2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7950e-02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8031e-02 -2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2546e-02 -2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5668e-03 -2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6943e-03 -2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7759e-03 -2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4779e-03 -2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4587e-03 -2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4529e-04 -2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4044e-04 -2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9473e-04 -2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6689e-04 -2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.0565e-05 -2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5454e-05 -2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6679e-05 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4171e-06 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4846e-01 -3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3156e-01 -3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7037e-01 -3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8822e-02 -3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2650e-02 -3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6739e-02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7575e-02 -3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2348e-02 -3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0850e-03 -3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5295e-03 -3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5583e-03 -3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4259e-03 -3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4311e-03 -3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8803e-04 -3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5661e-04 -3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1505e-04 -3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7119e-04 -3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4732e-05 -3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6919e-05 -3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6470e-05 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5707e-06 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4965e-01 -3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4157e-01 -3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6227e-01 -3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3147e-02 -3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7031e-02 -3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8034e-02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9026e-02 -3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2412e-02 -3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3879e-03 -3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4433e-03 -3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7396e-03 -3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2438e-03 -3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4954e-03 -3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0395e-04 -3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5798e-04 -3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0882e-04 -3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6808e-04 -3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5612e-05 -3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7221e-05 -3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7741e-05 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2704e-06 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4604e-01 -3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1983e-01 -3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7087e-01 -3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9651e-02 -3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3890e-02 -3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8436e-02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8087e-02 -3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2313e-02 -3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4193e-03 -3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4573e-03 -3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6157e-03 -3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3209e-03 -3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5074e-03 -3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9172e-04 -3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4476e-04 -3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0927e-04 -3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6147e-04 -3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3163e-05 -3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9633e-05 -3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6738e-05 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4521e-06 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2829e-01 -3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1913e-01 -3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6725e-01 -3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0350e-02 -3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5503e-02 -3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7927e-02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8724e-02 -3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2917e-02 -3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3512e-03 -3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9162e-03 -3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5403e-03 -3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2979e-03 -3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4793e-03 -3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9356e-04 -3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4283e-04 -3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9280e-04 -3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6701e-04 -3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6253e-05 -3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9331e-05 -3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7566e-05 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1168e-06 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0574e-01 -3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3153e-01 -3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6167e-01 -3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2105e-02 -3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5194e-02 -3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6121e-02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8138e-02 -3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2027e-02 -3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7556e-03 -3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5210e-03 -3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5739e-03 -3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2426e-03 -3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5219e-03 -3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2133e-04 -3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2528e-04 -3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9266e-04 -3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5726e-04 -3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4560e-05 -3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9083e-05 -3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7562e-05 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1967e-06 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0269e-01 -3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.5065e-01 -3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5872e-01 -3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4012e-02 -3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3880e-02 -3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6583e-02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8459e-02 -3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2547e-02 -3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1537e-03 -3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8391e-03 -3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5890e-03 -3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3220e-03 -3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4219e-03 -3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0574e-04 -3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1891e-04 -3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9562e-04 -3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6101e-04 -3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9562e-05 -3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9299e-05 -3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7308e-05 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5449e-06 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4404e-01 -3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2876e-01 -3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6717e-01 -3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3305e-02 -3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6043e-02 -3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7727e-02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8951e-02 -3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1862e-02 -3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2104e-03 -3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5233e-03 -3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6684e-03 -3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3454e-03 -3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4894e-03 -3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7207e-04 -3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0322e-04 -3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1638e-04 -3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6594e-04 -3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7159e-05 -3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9345e-05 -3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9302e-05 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7296e-06 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1126e-01 -3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3766e-01 -3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6070e-01 -3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4005e-02 -3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6563e-02 -3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8674e-02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8412e-02 -3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1947e-02 -3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8430e-03 -3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8013e-03 -3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5950e-03 -3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4352e-03 -3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5063e-03 -3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9898e-04 -3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3080e-04 -3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0206e-04 -3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7043e-04 -3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6805e-05 -3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1750e-05 -3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7898e-05 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5881e-06 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5052e-01 -3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4592e-01 -3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6358e-01 -3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1045e-02 -3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6981e-02 -3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8260e-02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8813e-02 -3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2145e-02 -3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7548e-03 -3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3925e-03 -3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5944e-03 -3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4289e-03 -3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3934e-03 -3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5083e-04 -3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2303e-04 -3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1937e-04 -3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7137e-04 -3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7505e-05 -3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9584e-05 -3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8064e-05 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2092e-06 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5069e-01 -3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2072e-01 -3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7202e-01 -3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.5766e-02 -3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4742e-02 -3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7224e-02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7916e-02 -3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2753e-02 -3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2664e-03 -3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6075e-03 -3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5865e-03 -3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3548e-03 -3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4149e-03 -3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0696e-04 -3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0943e-04 -3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1164e-04 -3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6385e-04 -3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3765e-05 -3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8882e-05 -3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8600e-05 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2767e-06 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1548e-01 -4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1816e-01 -4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6775e-01 -4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3598e-02 -4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5867e-02 -4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7240e-02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7660e-02 -4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2626e-02 -4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7653e-03 -4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7266e-03 -4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6022e-03 -4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3325e-03 -4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3953e-03 -4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5846e-04 -4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2821e-04 -4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0226e-04 -4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6584e-04 -4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.1630e-05 -4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0312e-05 -4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8242e-05 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.1178e-06 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1360e-01 -4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2513e-01 -4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7343e-01 -4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0060e-02 -4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4198e-02 -4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6148e-02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7336e-02 -4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1964e-02 -4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3866e-03 -4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5629e-03 -4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6478e-03 -4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3167e-03 -4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4039e-03 -4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5456e-04 -4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1292e-04 -4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1255e-04 -4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6910e-04 -4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8259e-05 -4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1545e-05 -4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8927e-05 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6596e-06 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3881e-01 -4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4536e-01 -4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6506e-01 -4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3369e-02 -4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2604e-02 -4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8132e-02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7707e-02 -4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2625e-02 -4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6916e-03 -4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7739e-03 -4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6180e-03 -4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3450e-03 -4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5289e-03 -4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7712e-04 -4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2648e-04 -4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1215e-04 -4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6580e-04 -4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2875e-05 -4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0799e-05 -4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0021e-05 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.8948e-06 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1183e-01 -4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3201e-01 -4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6702e-01 -4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0231e-02 -4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4480e-02 -4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7620e-02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7645e-02 -4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2219e-02 -4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2609e-03 -4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8976e-03 -4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7391e-03 -4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4462e-03 -4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4669e-03 -4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1690e-04 -4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0152e-04 -4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9940e-04 -4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6344e-04 -4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0110e-05 -4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0404e-05 -4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8825e-05 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2847e-06 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9480e-01 -4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1738e-01 -4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7423e-01 -4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3877e-02 -4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3422e-02 -4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8180e-02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8565e-02 -4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1763e-02 -4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8205e-03 -4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7181e-03 -4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5557e-03 -4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2865e-03 -4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4342e-03 -4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1913e-04 -4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4155e-04 -4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1063e-04 -4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6142e-04 -4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.4611e-05 -4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4490e-05 -4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0218e-05 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4800e-06 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3240e-01 -4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3961e-01 -4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7325e-01 -4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4210e-02 -4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.7215e-02 -4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8710e-02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8594e-02 -4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2192e-02 -4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0442e-03 -4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6420e-03 -4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6662e-03 -4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2281e-03 -4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4885e-03 -4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9320e-04 -4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1191e-04 -4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0269e-04 -4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6548e-04 -4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5683e-05 -4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3158e-05 -4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9142e-05 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4798e-06 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2408e-01 -4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2707e-01 -4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6359e-01 -4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0738e-02 -4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6917e-02 -4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8550e-02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8351e-02 -4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2779e-02 -4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6297e-03 -4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6451e-03 -4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5880e-03 -4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2434e-03 -4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5271e-03 -4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.4803e-04 -4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0615e-04 -4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8533e-04 -4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6847e-04 -4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8547e-05 -4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1510e-05 -4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9269e-05 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2599e-06 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2710e-01 -4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2614e-01 -4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6044e-01 -4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4764e-02 -4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3866e-02 -4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7790e-02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8368e-02 -4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2945e-02 -4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5410e-03 -4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8761e-03 -4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5063e-03 -4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3662e-03 -4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4139e-03 -4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.3766e-04 -4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1462e-04 -4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8410e-04 -4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6031e-04 -4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8817e-05 -4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2500e-05 -4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1228e-05 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7116e-06 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4616e-01 -4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3842e-01 -4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7249e-01 -4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9790e-02 -4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6236e-02 -4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6652e-02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8289e-02 -4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1975e-02 -4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8111e-03 -4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5466e-03 -4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5083e-03 -4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2429e-03 -4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5148e-03 -4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.4327e-04 -4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0880e-04 -4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0281e-04 -4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7141e-04 -4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.1178e-05 -4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4852e-05 -4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9826e-05 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7199e-06 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3787e-01 -4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4006e-01 -4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6553e-01 -4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3490e-02 -4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4679e-02 -4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6529e-02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7790e-02 -4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2462e-02 -4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3475e-03 -4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4048e-03 -4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6359e-03 -4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3952e-03 -4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4746e-03 -4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0155e-04 -4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9777e-04 -4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8677e-04 -4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6098e-04 -4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5928e-05 -4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3755e-05 -4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0572e-05 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.1049e-06 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0010e-01 -5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1817e-01 -5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7310e-01 -5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9295e-02 -5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3309e-02 -5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8360e-02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7481e-02 -5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2223e-02 -5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4746e-03 -5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4490e-03 -5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5344e-03 -5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3026e-03 -5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4795e-03 -5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1790e-04 -5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1145e-04 -5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9732e-04 -5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5820e-04 -5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8502e-05 -5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4149e-05 -5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0708e-05 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4316e-06 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -5.9677e-01 +5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -3.3710e-01 +5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -1.6410e-01 +5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -8.4719e-02 +5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -4.6491e-02 +5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -2.8097e-02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -1.7903e-02 +5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.3370e-02 +5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -9.5990e-03 +5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -6.4854e-03 +5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -4.5834e-03 +5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -2.8495e-03 +5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -1.5455e-03 +5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -8.9385e-04 +5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -4.1372e-04 +5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.0264e-04 +5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -9.1959e-05 +5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -3.9671e-05 +5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -1.7107e-05 +5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -7.6064e-06 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -3.1513e-06 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.3138e-01 +1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4128e-01 +1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5832e-01 +1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0269e-02 +1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4326e-02 +1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7087e-02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8149e-02 +1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3383e-02 +1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.0513e-03 +1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.6580e-03 +1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.4653e-03 +1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7234e-03 +1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6499e-03 +1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.8933e-04 +1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.4171e-04 +1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0800e-04 +1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.5496e-05 +1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -3.9387e-05 +1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.7700e-05 +1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.6202e-06 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.1242e-06 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1020e-01 +2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3048e-01 +2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7241e-01 +2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0747e-02 +2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4220e-02 +2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7584e-02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9280e-02 +2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3478e-02 +2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.1828e-03 +2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4789e-03 +2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3907e-03 +2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6427e-03 +2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5560e-03 +2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.3047e-04 +2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.1348e-04 +2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0250e-04 +2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.7600e-05 +2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.0964e-05 +2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.7147e-05 +2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.5062e-06 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.2576e-06 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.2650e-01 +3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4345e-01 +3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5883e-01 +3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -7.8494e-02 +3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5998e-02 +3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6268e-02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7296e-02 +3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2369e-02 +3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.3398e-03 +3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3069e-03 +3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.1289e-03 +3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8537e-03 +3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.7168e-03 +3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.6699e-04 +3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.7085e-04 +3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3236e-04 +3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0924e-04 +3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.9656e-05 +3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.9856e-05 +3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.8094e-06 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.6906e-06 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1166e-01 +4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3520e-01 +4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6499e-01 +4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.2862e-02 +4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5634e-02 +4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7919e-02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8279e-02 +4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3070e-02 +4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.4768e-03 +4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.8962e-03 +4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3683e-03 +4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6343e-03 +4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5743e-03 +4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.0510e-04 +4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.6743e-04 +4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4148e-04 +4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0625e-04 +4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.6839e-05 +4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1724e-05 +4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.6993e-06 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.4864e-06 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9715e-01 +5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3926e-01 +5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6180e-01 +5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6149e-02 +5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4803e-02 +5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6800e-02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8157e-02 +5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2784e-02 +5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.7855e-03 +5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.0147e-03 +5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3054e-03 +5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8597e-03 +5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.7050e-03 +5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7625e-04 +5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9257e-04 +5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3026e-04 +5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0975e-04 +5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.6664e-05 +5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0779e-05 +5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.0354e-06 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.5142e-06 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9418e-01 +6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3814e-01 +6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6314e-01 +6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.3341e-02 +6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4616e-02 +6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6967e-02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9014e-02 +6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2518e-02 +6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6030e-03 +6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3943e-03 +6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2920e-03 +6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7665e-03 +6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6351e-03 +6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.4758e-04 +6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.8820e-04 +6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3443e-04 +6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1555e-04 +6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0174e-05 +6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1801e-05 +6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.5800e-06 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.6246e-06 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4181e-01 +7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2324e-01 +7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6244e-01 +7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.4532e-02 +7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.6775e-02 +7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6441e-02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7541e-02 +7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1880e-02 +7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.0809e-03 +7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.6233e-03 +7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.9259e-03 +7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7270e-03 +7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6579e-03 +7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7247e-04 +7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.5061e-04 +7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6044e-04 +7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3105e-04 +7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.3474e-05 +7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3560e-05 +7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.5798e-06 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.1418e-06 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.0607e-01 +8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4213e-01 +8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6163e-01 +8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0064e-02 +8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4598e-02 +8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8049e-02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7663e-02 +8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1848e-02 +8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6804e-03 +8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.8570e-03 +8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2221e-03 +8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5639e-03 +8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6118e-03 +8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.2480e-04 +8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0966e-04 +8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.7510e-04 +8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2572e-04 +8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.5017e-05 +8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3803e-05 +8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0286e-05 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.2224e-06 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9087e-01 +9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.1595e-01 +9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6993e-01 +9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.1277e-02 +9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5031e-02 +9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8886e-02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7851e-02 +9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3012e-02 +9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.1170e-03 +9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.9905e-03 +9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.8949e-03 +9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7024e-03 +9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6967e-03 +9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.3300e-04 +9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.2279e-04 +9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6538e-04 +9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2617e-04 +9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.8543e-05 +9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3346e-05 +9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.8151e-06 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9419e-06 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.8996e-01 +1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2697e-01 +1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6969e-01 +1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4268e-02 +1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3203e-02 +1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7388e-02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8509e-02 +1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3008e-02 +1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8943e-03 +1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8639e-03 +1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0729e-03 +1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5174e-03 +1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5820e-03 +1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.9586e-04 +1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1456e-04 +1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.5064e-04 +1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.1816e-04 +1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.4993e-05 +1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.3608e-05 +1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0048e-05 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.3456e-06 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2480e-01 +1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4318e-01 +1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6593e-01 +1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1547e-02 +1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6419e-02 +1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8365e-02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9121e-02 +1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2779e-02 +1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3010e-03 +1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4549e-03 +1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6653e-03 +1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6724e-03 +1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6739e-03 +1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5424e-04 +1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5862e-04 +1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8516e-04 +1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3754e-04 +1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.5067e-05 +1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.5956e-05 +1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1987e-05 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.8424e-06 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0737e-01 +1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3559e-01 +1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6009e-01 +1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8825e-02 +1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4150e-02 +1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7759e-02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8965e-02 +1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2691e-02 +1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1331e-03 +1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7833e-03 +1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7803e-03 +1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5510e-03 +1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5743e-03 +1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4542e-04 +1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6381e-04 +1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9612e-04 +1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4154e-04 +1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.4627e-05 +1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.8228e-05 +1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1035e-05 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.6235e-06 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9640e-01 +1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4756e-01 +1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5815e-01 +1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1131e-02 +1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4596e-02 +1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6445e-02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7587e-02 +1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3041e-02 +1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1181e-03 +1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7564e-03 +1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7619e-03 +1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4844e-03 +1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6930e-03 +1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0164e-03 +1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6500e-04 +1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7065e-04 +1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3925e-04 +1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.3247e-05 +1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7789e-05 +1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2012e-05 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.5883e-06 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1396e-01 +1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2608e-01 +1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6164e-01 +1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4122e-02 +1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3058e-02 +1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6240e-02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8849e-02 +1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2801e-02 +1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1610e-03 +1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6165e-03 +1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7185e-03 +1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5847e-03 +1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6814e-03 +1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4354e-04 +1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4363e-04 +1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8087e-04 +1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4071e-04 +1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.2952e-05 +1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7929e-05 +1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1114e-05 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.4991e-06 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3299e-01 +1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3120e-01 +1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6505e-01 +1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9861e-02 +1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5499e-02 +1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7707e-02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7635e-02 +1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2597e-02 +1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4357e-03 +1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5841e-03 +1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6580e-03 +1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5231e-03 +1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5614e-03 +1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4690e-04 +1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5378e-04 +1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8965e-04 +1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5489e-04 +1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1322e-05 +1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1276e-05 +1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3023e-05 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.1946e-06 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2507e-01 +1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4000e-01 +1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7437e-01 +1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9584e-02 +1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3117e-02 +1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7828e-02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7246e-02 +1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2988e-02 +1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3791e-03 +1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5805e-03 +1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5719e-03 +1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5210e-03 +1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5927e-03 +1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0110e-03 +1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.8218e-04 +1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1117e-04 +1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5102e-04 +1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.8417e-05 +1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1675e-05 +1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2481e-05 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.0496e-06 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3625e-01 +1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4240e-01 +1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6615e-01 +1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6155e-02 +1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2653e-02 +1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8371e-02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8165e-02 +1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2181e-02 +1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0477e-03 +1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6543e-03 +1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5850e-03 +1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5207e-03 +1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5028e-03 +1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8488e-04 +1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6223e-04 +1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9204e-04 +1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4423e-04 +1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.8580e-05 +1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1947e-05 +1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3567e-05 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4643e-06 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2263e-01 +1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1851e-01 +1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6510e-01 +1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8475e-02 +1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3944e-02 +1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6899e-02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8436e-02 +1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2192e-02 +1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7080e-03 +1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5338e-03 +1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.9255e-03 +1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4693e-03 +1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6268e-03 +1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5149e-04 +1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5054e-04 +1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0100e-04 +1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4090e-04 +1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.9049e-05 +1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1088e-05 +1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3002e-05 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.2897e-06 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1216e-01 +1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4915e-01 +1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5959e-01 +1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1936e-02 +1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5827e-02 +1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8286e-02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8919e-02 +1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2573e-02 +1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2398e-03 +1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5217e-03 +1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5624e-03 +1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3607e-03 +1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6516e-03 +1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2971e-04 +1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3666e-04 +1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0231e-04 +1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4460e-04 +1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1486e-05 +1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.0811e-05 +1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3189e-05 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.2583e-06 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4638e-01 +2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2332e-01 +2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6749e-01 +2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4414e-02 +2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4207e-02 +2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6427e-02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8072e-02 +2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2767e-02 +2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4336e-03 +2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6107e-03 +2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8445e-03 +2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3069e-03 +2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5862e-03 +2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7268e-04 +2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4737e-04 +2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9526e-04 +2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5381e-04 +2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6054e-05 +2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2323e-05 +2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5019e-05 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6408e-06 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3798e-01 +2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2986e-01 +2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6456e-01 +2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1212e-02 +2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6799e-02 +2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7555e-02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8785e-02 +2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1956e-02 +2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5821e-03 +2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3670e-03 +2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6936e-03 +2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3227e-03 +2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5960e-03 +2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8698e-04 +2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3738e-04 +2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0467e-04 +2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6127e-04 +2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5995e-05 +2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4853e-05 +2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4070e-05 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6549e-06 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3279e-01 +2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1910e-01 +2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6110e-01 +2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0369e-02 +2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3825e-02 +2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6544e-02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9035e-02 +2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2634e-02 +2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2898e-03 +2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6380e-03 +2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8733e-03 +2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4261e-03 +2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5796e-03 +2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7013e-04 +2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3047e-04 +2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9920e-04 +2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5725e-04 +2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.2829e-05 +2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5196e-05 +2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4623e-05 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.0556e-06 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1013e-01 +2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2442e-01 +2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6137e-01 +2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.7063e-02 +2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5470e-02 +2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6186e-02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7679e-02 +2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2764e-02 +2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -7.9900e-03 +2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7596e-03 +2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8574e-03 +2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5218e-03 +2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5236e-03 +2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1869e-04 +2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2861e-04 +2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0038e-04 +2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5392e-04 +2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7998e-05 +2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2630e-05 +2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4409e-05 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7348e-06 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1585e-01 +2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2607e-01 +2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7116e-01 +2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9604e-02 +2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6158e-02 +2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8019e-02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8589e-02 +2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2254e-02 +2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8129e-03 +2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3960e-03 +2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8419e-03 +2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2706e-03 +2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5242e-03 +2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9195e-04 +2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6417e-04 +2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9305e-04 +2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6137e-04 +2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7019e-05 +2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6907e-05 +2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5772e-05 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4437e-06 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2653e-01 +2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2477e-01 +2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6951e-01 +2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3468e-02 +2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4883e-02 +2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8240e-02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8195e-02 +2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2576e-02 +2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7362e-03 +2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8723e-03 +2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6385e-03 +2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3968e-03 +2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4189e-03 +2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8139e-04 +2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4580e-04 +2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.2064e-04 +2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6114e-04 +2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5274e-05 +2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7151e-05 +2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6370e-05 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3564e-06 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2568e-01 +2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2052e-01 +2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5940e-01 +2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8994e-02 +2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5083e-02 +2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8046e-02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8589e-02 +2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2732e-02 +2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6111e-03 +2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3576e-03 +2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7142e-03 +2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2764e-03 +2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4265e-03 +2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5998e-04 +2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3379e-04 +2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1119e-04 +2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5926e-04 +2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.8381e-05 +2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7810e-05 +2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6525e-05 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7023e-06 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3722e-01 +2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2962e-01 +2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7410e-01 +2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3233e-02 +2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4995e-02 +2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8779e-02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7967e-02 +2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2232e-02 +2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7948e-03 +2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8798e-03 +2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6461e-03 +2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3756e-03 +2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4773e-03 +2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3503e-04 +2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2629e-04 +2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.2070e-04 +2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5841e-04 +2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2299e-05 +2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8259e-05 +2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6171e-05 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7669e-06 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3666e-01 +2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1871e-01 +2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7309e-01 +2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1430e-02 +2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2960e-02 +2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8454e-02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9094e-02 +2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2325e-02 +2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5673e-03 +2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3880e-03 +2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6521e-03 +2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2479e-03 +2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4239e-03 +2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3921e-04 +2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7741e-04 +2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1144e-04 +2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5812e-04 +2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6060e-05 +2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7371e-05 +2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5316e-05 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4334e-06 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9683e-01 +3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2134e-01 +3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6944e-01 +3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8854e-02 +3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6040e-02 +3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6160e-02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7870e-02 +3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3034e-02 +3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3215e-03 +3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3671e-03 +3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6387e-03 +3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4256e-03 +3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4394e-03 +3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0359e-04 +3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3692e-04 +3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0864e-04 +3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6491e-04 +3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6550e-05 +3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0266e-05 +3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6621e-05 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.9313e-06 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0296e-01 +3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3871e-01 +3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6889e-01 +3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1810e-02 +3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4120e-02 +3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7055e-02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8422e-02 +3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2772e-02 +3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5254e-03 +3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5011e-03 +3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5247e-03 +3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4062e-03 +3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3961e-03 +3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8319e-04 +3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2676e-04 +3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9610e-04 +3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7330e-04 +3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7107e-05 +3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7266e-05 +3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6899e-05 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1977e-06 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4156e-01 +3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4264e-01 +3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6394e-01 +3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3177e-02 +3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4908e-02 +3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6120e-02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8274e-02 +3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1764e-02 +3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4849e-03 +3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7908e-03 +3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5990e-03 +3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3025e-03 +3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5121e-03 +3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9340e-04 +3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4233e-04 +3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0140e-04 +3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5807e-04 +3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5387e-05 +3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0573e-05 +3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7946e-05 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.3565e-06 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1509e-01 +3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4744e-01 +3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7339e-01 +3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0812e-02 +3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6101e-02 +3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8420e-02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9088e-02 +3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2847e-02 +3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8417e-03 +3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4872e-03 +3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5054e-03 +3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4444e-03 +3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4109e-03 +3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8561e-04 +3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3830e-04 +3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0903e-04 +3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6713e-04 +3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.0246e-05 +3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9895e-05 +3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7016e-05 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2803e-06 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3927e-01 +3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4356e-01 +3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6570e-01 +3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6212e-02 +3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2601e-02 +3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7798e-02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8952e-02 +3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3003e-02 +3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1168e-03 +3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4447e-03 +3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6079e-03 +3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3683e-03 +3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4544e-03 +3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0639e-04 +3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2254e-04 +3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0353e-04 +3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6120e-04 +3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9244e-05 +3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7709e-05 +3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7738e-05 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2509e-06 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1699e-01 +3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1593e-01 +3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7218e-01 +3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6817e-02 +3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5514e-02 +3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8588e-02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8276e-02 +3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2600e-02 +3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5854e-03 +3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7736e-03 +3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5915e-03 +3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3196e-03 +3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4951e-03 +3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6897e-04 +3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1733e-04 +3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0109e-04 +3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6319e-04 +3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6870e-05 +3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6881e-05 +3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7939e-05 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4982e-06 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2867e-01 +3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2451e-01 +3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6194e-01 +3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2938e-02 +3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6146e-02 +3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7539e-02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7536e-02 +3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2716e-02 +3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1014e-03 +3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7393e-03 +3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6165e-03 +3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4686e-03 +3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3854e-03 +3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8834e-04 +3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2457e-04 +3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9415e-04 +3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7090e-04 +3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5786e-05 +3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1727e-05 +3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8136e-05 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0032e-06 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4285e-01 +3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1777e-01 +3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6295e-01 +3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8778e-02 +3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6304e-02 +3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8373e-02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7489e-02 +3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2553e-02 +3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8225e-03 +3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9172e-03 +3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5694e-03 +3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2840e-03 +3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4893e-03 +3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7300e-04 +3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0623e-04 +3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0473e-04 +3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6048e-04 +3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.9648e-05 +3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2731e-05 +3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9175e-05 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0917e-06 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2713e-01 +3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4752e-01 +3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7326e-01 +3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6427e-02 +3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3053e-02 +3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7489e-02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7981e-02 +3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2258e-02 +3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1490e-03 +3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3426e-03 +3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8628e-03 +3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4668e-03 +3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4049e-03 +3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9293e-04 +3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3742e-04 +3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0087e-04 +3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7238e-04 +3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2255e-05 +3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9021e-05 +3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8065e-05 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.9785e-06 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1990e-01 +3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4166e-01 +3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7153e-01 +3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2773e-02 +3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4197e-02 +3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7076e-02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8206e-02 +3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2142e-02 +3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5024e-03 +3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5206e-03 +3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6687e-03 +3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3500e-03 +3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4318e-03 +3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6173e-04 +3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2780e-04 +3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0218e-04 +3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6938e-04 +3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2634e-05 +3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9028e-05 +3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8086e-05 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4662e-06 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5289e-01 +4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2297e-01 +4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7141e-01 +4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4030e-02 +4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6563e-02 +4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6739e-02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8352e-02 +4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1930e-02 +4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0437e-03 +4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8451e-03 +4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8557e-03 +4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3797e-03 +4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4475e-03 +4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1948e-04 +4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0375e-04 +4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9575e-04 +4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6027e-04 +4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2659e-05 +4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2162e-05 +4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8407e-05 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0785e-06 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0855e-01 +4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2139e-01 +4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6384e-01 +4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4960e-02 +4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4736e-02 +4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8154e-02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7360e-02 +4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2490e-02 +4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5315e-03 +4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4766e-03 +4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7599e-03 +4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4647e-03 +4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4328e-03 +4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2178e-04 +4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9408e-04 +4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0672e-04 +4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7102e-04 +4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2658e-05 +4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2841e-05 +4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0152e-05 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5566e-06 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1517e-01 +4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1701e-01 +4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6599e-01 +4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3100e-02 +4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5649e-02 +4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7037e-02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8359e-02 +4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2678e-02 +4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5392e-03 +4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4312e-03 +4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6749e-03 +4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4506e-03 +4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5069e-03 +4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0667e-04 +4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4094e-04 +4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9040e-04 +4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5860e-04 +4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0290e-05 +4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2824e-05 +4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0022e-05 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4306e-06 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2685e-01 +4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2714e-01 +4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5900e-01 +4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4697e-02 +4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3118e-02 +4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6505e-02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7259e-02 +4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2599e-02 +4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8427e-03 +4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7039e-03 +4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6398e-03 +4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2380e-03 +4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5121e-03 +4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6107e-04 +4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2124e-04 +4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9600e-04 +4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5659e-04 +4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2684e-05 +4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2182e-05 +4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0062e-05 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5198e-06 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9657e-01 +4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1982e-01 +4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6593e-01 +4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2285e-02 +4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6444e-02 +4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6985e-02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8740e-02 +4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1973e-02 +4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5460e-03 +4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3916e-03 +4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8464e-03 +4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2781e-03 +4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4919e-03 +4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8135e-04 +4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2242e-04 +4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9782e-04 +4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6979e-04 +4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6709e-05 +4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3982e-05 +4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9895e-05 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6701e-06 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4918e-01 +4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2948e-01 +4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7068e-01 +4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1994e-02 +4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4979e-02 +4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7646e-02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8943e-02 +4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2339e-02 +4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8491e-03 +4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5178e-03 +4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8720e-03 +4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2944e-03 +4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5267e-03 +4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9759e-04 +4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1619e-04 +4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8600e-04 +4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6141e-04 +4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8426e-05 +4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3432e-05 +4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0006e-05 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2398e-06 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3259e-01 +4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3900e-01 +4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6477e-01 +4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1297e-02 +4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2888e-02 +4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8629e-02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8940e-02 +4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1997e-02 +4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2313e-03 +4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9108e-03 +4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6586e-03 +4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4083e-03 +4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4558e-03 +4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5625e-04 +4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1863e-04 +4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8313e-04 +4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6125e-04 +4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2927e-05 +4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2660e-05 +4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9648e-05 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5753e-06 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5439e-01 +4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1962e-01 +4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5848e-01 +4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3612e-02 +4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6800e-02 +4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6259e-02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8573e-02 +4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2998e-02 +4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5899e-03 +4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6356e-03 +4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7818e-03 +4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3214e-03 +4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4705e-03 +4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0392e-04 +4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2763e-04 +4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8894e-04 +4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5672e-04 +4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5881e-05 +4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.5690e-05 +4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0054e-05 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4398e-06 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5355e-01 +4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2321e-01 +4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6137e-01 +4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6584e-02 +4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3213e-02 +4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7531e-02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7464e-02 +4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2147e-02 +4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5622e-03 +4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7000e-03 +4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6379e-03 +4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2544e-03 +4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4159e-03 +4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5206e-04 +4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.8483e-04 +4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9676e-04 +4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6253e-04 +4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.9346e-05 +4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1523e-05 +4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0422e-05 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7211e-06 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2352e-01 +4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2343e-01 +4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7009e-01 +4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1013e-02 +4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5408e-02 +4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7972e-02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8417e-02 +4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1762e-02 +4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3572e-03 +4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8895e-03 +4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6520e-03 +4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3978e-03 +4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4631e-03 +4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6745e-04 +4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9236e-04 +4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7926e-04 +4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6259e-04 +4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6441e-05 +4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.5008e-05 +4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0195e-05 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5783e-06 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0676e-01 +5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4153e-01 +5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6745e-01 +5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3541e-02 +5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3242e-02 +5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8808e-02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8830e-02 +5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2855e-02 +5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2219e-03 +5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4925e-03 +5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6488e-03 +5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3715e-03 +5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3973e-03 +5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8298e-04 +5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9090e-04 +5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8587e-04 +5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6406e-04 +5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0527e-05 +5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3760e-05 +5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0758e-05 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.3609e-06 diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index 0899663..7152824 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -20,10 +20,10 @@ from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.utils import plotLayer plt.rcParams.update({'font.size': 16}) -save_file = True +save_file = False ##################################################################### # Create Survey diff --git a/tutorials/plot_1_fdem_fwd_chargeable.py b/tutorials/plot_1_fdem_fwd_chargeable.py index f1e38a8..67ba671 100644 --- a/tutorials/plot_1_fdem_fwd_chargeable.py +++ b/tutorials/plot_1_fdem_fwd_chargeable.py @@ -114,8 +114,8 @@ ) ####################################################################### -# Define the Forward Simulation and Predic Data -# ---------------------------------------------- +# Define the Forward Simulation and Predict Data +# ----------------------------------------------- # diff --git a/tutorials/plot_1_fdem_inv.py b/tutorials/plot_1_fdem_inv.py index 98ece64..5cbc252 100644 --- a/tutorials/plot_1_fdem_inv.py +++ b/tutorials/plot_1_fdem_inv.py @@ -19,8 +19,7 @@ from discretize import TensorMesh import simpegEM1D as em1d -from simpegEM1D.EM1DSimulation import get_vertical_discretization_frequency -from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.utils import get_vertical_discretization_frequency, plotLayer from SimPEG.utils import mkvc from SimPEG import ( maps, data, data_misfit, inverse_problem, regularization, optimization, diff --git a/tutorials/plot_1_tdem_fwd.py b/tutorials/plot_1_tdem_fwd.py index c353fe2..c87647d 100644 --- a/tutorials/plot_1_tdem_fwd.py +++ b/tutorials/plot_1_tdem_fwd.py @@ -20,7 +20,7 @@ from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.utils import plotLayer save_file = True plt.rcParams.update({'font.size': 16}) diff --git a/tutorials/plot_1_tdem_inv.py b/tutorials/plot_1_tdem_inv.py index e6b2626..e18348e 100644 --- a/tutorials/plot_1_tdem_inv.py +++ b/tutorials/plot_1_tdem_inv.py @@ -19,8 +19,7 @@ from discretize import TensorMesh import simpegEM1D as em1d -from simpegEM1D.EM1DSimulation import get_vertical_discretization_time -from simpegEM1D.Utils1D import plotLayer +from simpegEM1D.utils import get_vertical_discretization_time, plotLayer from SimPEG.utils import mkvc from SimPEG import ( maps, data, data_misfit, inverse_problem, regularization, optimization, diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index f3c023c..38108a0 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -24,8 +24,7 @@ from SimPEG import maps from SimPEG.utils import mkvc import simpegEM1D as em1d -from simpegEM1D.Utils1D import plotLayer -from simpegEM1D.EM1DSimulation import get_vertical_discretization_frequency +from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency plt.rcParams.update({'font.size': 16}) save_file = True diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index c8b09cc..405b1a0 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -27,12 +27,10 @@ directives, inversion, utils ) - from SimPEG.utils import mkvc import simpegEM1D as em1d from simpegEM1D import get_2d_mesh, LateralConstraint -from simpegEM1D.Utils1D import plotLayer -from simpegEM1D.EM1DSimulation import * #get_vertical_discretization_frequency +from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency save_file = True diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 2128790..7b2eadf 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -24,8 +24,7 @@ from SimPEG import maps from SimPEG.utils import mkvc import simpegEM1D as em1d -from simpegEM1D.Utils1D import plotLayer -from simpegEM1D.EM1DSimulation import get_vertical_discretization_time +from simpegEM1D.utils import plotLayer, get_vertical_discretization_time plt.rcParams.update({'font.size': 16}) save_file = True diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index fd99bf0..3aaf7ae 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -27,12 +27,10 @@ directives, inversion, utils ) - from SimPEG.utils import mkvc import simpegEM1D as em1d from simpegEM1D import get_2d_mesh, LateralConstraint -from simpegEM1D.Utils1D import plotLayer -from simpegEM1D.EM1DSimulation import * #get_vertical_discretization_frequency +from simpegEM1D.utils import plotLayer, get_vertical_discretization_time save_file = True From f72fa494fb96300d3a902b88ccb29320ceea62be Mon Sep 17 00:00:00 2001 From: dccowan Date: Thu, 20 Aug 2020 12:55:54 -0700 Subject: [PATCH 22/54] edits to forward test --- tests/testEM1D_TD_general_fwd.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/testEM1D_TD_general_fwd.py b/tests/testEM1D_TD_general_fwd.py index 8f6e221..ee9462a 100644 --- a/tests/testEM1D_TD_general_fwd.py +++ b/tests/testEM1D_TD_general_fwd.py @@ -132,14 +132,14 @@ def test_em1dtd_circular_loop_single_pulse(self): ) m_1D = np.log(np.ones(self.nlayers)*self.sigma) - f = sim.compute_integral(m_1D) - d = sim.dpred(m_1D, f=f) +# f = sim.compute_integral(m_1D) + d = sim.dpred(m_1D) bz = d[0:len(self.times)] dbdt = d[len(self.times):] - def step_func_Bzt(time): + def step_func_Bzt(times): return BzAnalCircT( - self.a, self.times, self.sigma + self.a, times, self.sigma ) bz_analytic = piecewise_ramp( @@ -158,13 +158,15 @@ def step_func_Bzt(time): ) plt.show() + print(np.c_[bz, bz_analytic]) + err = np.linalg.norm(bz-bz_analytic)/np.linalg.norm(bz_analytic) print ('Bz error = ', err) self.assertTrue(err < 6e-2) - def step_func_dBzdt(): + def step_func_dBzdt(times): return dBzdtAnalCircT( - self.a, self.times, self.sigma + self.a, times, self.sigma ) dbdt_analytic = piecewise_ramp( @@ -173,6 +175,8 @@ def step_func_dBzdt(): sim.survey.source_list[0].input_currents ) + print(np.c_[dbdt, dbdt_analytic]) + if self.showIt: plt.subplot(121) plt.loglog(self.times, abs(dbdt), 'b*') From c3476a7d683dcce9691e9d80f188b5522e3c45a0 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 15 Sep 2020 11:02:39 -0700 Subject: [PATCH 23/54] Update tests. Height sensitivity tests still failing. --- simpegEM1D/KnownWaveforms.py | 6 +- simpegEM1D/simulation.py | 2 +- simpegEM1D/simulation_stitched1d.py | 5 +- tests/testEM1D_TD_general_fwd.py | 76 +- tests/testEM1D_TD_general_jac_layers.py | 151 +- tests/testEM1D_TD_off_jac_layers.py | 138 +- tests/testGlobalEM1D_FD_jac_layers.py | 323 +++- tests/testGlobalEM1D_TD_jac_layers.py | 415 ++-- tutorials/assets/em1dtm_stitched_data.obs | 2100 ++++++++++----------- 9 files changed, 1681 insertions(+), 1535 deletions(-) diff --git a/simpegEM1D/KnownWaveforms.py b/simpegEM1D/KnownWaveforms.py index 4ebf353..c3efab5 100644 --- a/simpegEM1D/KnownWaveforms.py +++ b/simpegEM1D/KnownWaveforms.py @@ -10,7 +10,8 @@ import numpy as np from scipy.integrate import fixed_quad -from scipy.integrate.quadrature import _cached_roots_legendre +# from scipy.integrate.quadrature import _cached_roots_legendre +from scipy.special import roots_legendre # from scipy.signal import butter, freqz @@ -401,7 +402,8 @@ def piecewise_pulse_fast( assert (n_pulse == 1 or n_pulse == 2), NotImplementedError("n_pulse must be either 1 or 2") # Get gauss-legendre points and weights early since n never changes inside here - x, w = _cached_roots_legendre(n) + # x, w = _cached_roots_legendre(n) + x, w = roots_legendre(n) if n_pulse == 1: response = piecewise_ramp_fast( diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 88cd7ff..3be659f 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -689,7 +689,7 @@ def projectFields(self, u): else: if src.moment_type == "single": resp = np.zeros( - (rx.n_time, self.survey.n_layer), dtype=np.float64, order='F' + (rx.n_time, self.n_layer), dtype=np.float64, order='F' ) else: # For dual moment diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index 43bf533..49f5683 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -14,6 +14,7 @@ from SimPEG.survey import BaseSurvey from .survey import * from .simulation import * +from simpegEM1D.utils.utils1D import set_mesh_1d import properties import warnings @@ -71,7 +72,7 @@ def run_simulation_FD(args): sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, Map=wires.h, + sigmaMap=sigmaMap, hMap=wires.h, chi=chi, eta=eta, tau=tau, c=c, half_switch=half_switch, hankel_filter='key_101_2009' ) @@ -135,7 +136,7 @@ def run_simulation_TD(args): sigmaMap = expmap * wires.sigma sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, Map=wires.h, + sigmaMap=sigmaMap, hMap=wires.h, chi=chi, eta=eta, tau=tau, c=c, half_switch=half_switch, hankel_filter='key_101_2009' ) diff --git a/tests/testEM1D_TD_general_fwd.py b/tests/testEM1D_TD_general_fwd.py index ee9462a..cf16459 100644 --- a/tests/testEM1D_TD_general_fwd.py +++ b/tests/testEM1D_TD_general_fwd.py @@ -22,17 +22,26 @@ def setUp(self): a = 20. src_location = np.array([0., 0., 100.+1e-5]) - rx_location = np.array([10., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) receiver_orientation = "z" # "x", "y" or "z" times = np.logspace(-5, -2, 31) # Receiver list - receiver_list = [ + receiver_list = [] + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="b" + ) + ) + + receiver_list.append( em1d.receivers.TimeDomainPointReceiver( rx_location, times, orientation=receiver_orientation, component="dbdt" ) - ] + ) time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) @@ -65,63 +74,6 @@ def setUp(self): self.nlayers = len(thicknesses)+1 self.a = a - - - - - - - - -# nearthick = np.logspace(-1, 1, 5) -# deepthick = np.logspace(1, 2, 10) -# hx = np.r_[nearthick, deepthick] -# mesh1D = Mesh.TensorMesh([hx], [0.]) -# depth = -mesh1D.gridN[:-1] -# LocSigZ = -mesh1D.gridCC -# -# # Triangular waveform -# time_input_currents = np.r_[0., 5.5*1e-4, 1.1*1e-3] -# input_currents = np.r_[0., 1., 0.] -# -# TDsurvey = EM1DSurveyTD( -# rx_location=np.array([0., 0., 100.+1e-5]), -# src_location=np.array([0., 0., 100.+1e-5]), -# topo=np.r_[0., 0., 100.], -# depth=depth, -# field_type='secondary', -# rx_type='Bz', -# wave_type='general', -# time_input_currents=time_input_currents, -# input_currents=input_currents, -# n_pulse=2, -# base_frequency=25., -# time=np.logspace(-5, -2, 31), -# src_type='CircularLoop', -# I=1e0, -# a=2e1 -# ) -# -# sig_half = 1e-4 -# chi_half = 0. -# -# expmap = Maps.ExpMap(mesh1D) -# m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) -# chi = np.zeros(TDsurvey.n_layer) -# -# prob = EM1D( -# mesh1D, sigmaMap=expmap, chi=chi -# ) -# prob.pair(TDsurvey) -# -# self.survey = TDsurvey -# self.prob = prob -# self.mesh1D = mesh1D -# self.showIt = True -# self.chi = chi -# self.m_1D = m_1D -# self.sig_half = sig_half -# self.expmap = expmap def test_em1dtd_circular_loop_single_pulse(self): @@ -157,8 +109,6 @@ def step_func_Bzt(times): self.times, abs((bz-bz_analytic)/bz_analytic), 'r:' ) plt.show() - - print(np.c_[bz, bz_analytic]) err = np.linalg.norm(bz-bz_analytic)/np.linalg.norm(bz_analytic) print ('Bz error = ', err) @@ -175,8 +125,6 @@ def step_func_dBzdt(times): sim.survey.source_list[0].input_currents ) - print(np.c_[dbdt, dbdt_analytic]) - if self.showIt: plt.subplot(121) plt.loglog(self.times, abs(dbdt), 'b*') diff --git a/tests/testEM1D_TD_general_jac_layers.py b/tests/testEM1D_TD_general_jac_layers.py index 4e2cc60..d699816 100644 --- a/tests/testEM1D_TD_general_jac_layers.py +++ b/tests/testEM1D_TD_general_jac_layers.py @@ -2,79 +2,95 @@ from SimPEG import * import numpy as np import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DSurveyTD -from simpegEM1D.Waveform import TriangleFun, TriangleFunDeriv +import simpegEM1D as em1d +from simpegEM1D.waveforms import TriangleFun, TriangleFunDeriv class EM1D_TD_general_Jac_layers_ProblemTests(unittest.TestCase): - def setUp(self): + def setUp(self): nearthick = np.logspace(-1, 1, 5) deepthick = np.logspace(1, 2, 10) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - LocSigZ = -mesh1D.gridCC - - # Triangular waveform - time_input_currents = np.r_[0., 5.5*1e-4, 1.1*1e-3] - input_currents = np.r_[0., 1., 0.] - - TDsurvey = EM1DSurveyTD( - rx_location=np.array([0., 0., 100.+1e-5]), - src_location=np.array([0., 0., 100.+1e-5]), - topo=np.r_[0., 0., 100.], - depth=depth, - field_type='secondary', - rx_type='Bz', - wave_type='general', - time_input_currents=time_input_currents, - input_currents=input_currents, - n_pulse=2, - base_frequency=25., - time=np.logspace(-5, -2, 31), - src_type='CircularLoop', - I=1e0, - a=2e1 + thicknesses = np.r_[nearthick, deepthick] + topo = np.r_[0., 0., 100.] + a = 20. + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + times = np.logspace(-5, -2, 31) + + # Receiver list + receiver_list = [] + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="b" + ) ) - - sig_half = 1e-4 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) - m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) - chi = np.zeros(TDsurvey.n_layer) - - prob = EM1D( - mesh1D, sigmaMap=expmap, chi=chi + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="dbdt" + ) ) - prob.pair(TDsurvey) - - self.survey = TDsurvey - self.prob = prob - self.mesh1D = mesh1D + + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] + input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) + source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, + location=src_location, + a=a, I=1., + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) + ] + + # Survey + survey = em1d.survey.EM1DSurveyTD(source_list) + + sigma = 1e-2 + + self.topo = topo + self.survey = survey self.showIt = False - self.chi = chi - self.m_1D = m_1D - self.sig_half = sig_half - self.expmap = expmap + self.sigma = sigma + self.times = times + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 + self.a = a - def test_EM1DTDJvec_Layers(self): - sig = np.ones(self.prob.survey.n_layer)*self.sig_half - m_1D = np.log(sig) + def test_EM1DTDJvec_Layers(self): + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + def fwdfun(m): - resp = self.prob.survey.dpred(m) + resp = sim.dpred(m) return resp def jacfun(m, dm): - Jvec = self.prob.Jvec(m, dm) + Jvec = sim.Jvec(m, dm) return Jvec dm = m_1D*0.5 derChk = lambda m: [fwdfun(m), lambda mx: jacfun(m, mx)] - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_1D, num=4, dx=dm, plotIt=False, eps=1e-15 ) @@ -83,24 +99,31 @@ def jacfun(m, dm): def test_EM1DTDJtvec_Layers(self): - sig_blk = 0.1 - sig = np.ones(self.prob.survey.n_layer)*self.sig_half - sig[3] = sig_blk - - m_true = np.log(sig) - dobs = self.prob.survey.dpred(m_true) - m_ini = np.log(np.ones(self.prob.survey.n_layer)*self.sig_half) - resp_ini = self.prob.survey.dpred(m_ini) + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + sigma_layer = 0.1 + sigma = np.ones(self.nlayers)*self.sigma + sigma[3] = sigma_layer + m_true = np.log(sigma) + + dobs = sim.dpred(m_true) + + m_ini = np.log(np.ones(self.nlayers)*self.sigma) + resp_ini = sim.dpred(m_ini) dr = resp_ini-dobs def misfit(m, dobs): - dpred = self.survey.dpred(m) + dpred = sim.dpred(m) misfit = 0.5*np.linalg.norm(dpred-dobs)**2 - dmisfit = self.prob.Jtvec(m, dr) + dmisfit = sim.Jtvec(m, dr) return misfit, dmisfit derChk = lambda m: misfit(m, dobs) - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_ini, num=4, plotIt=False, eps=1e-26 ) self.assertTrue(passed) diff --git a/tests/testEM1D_TD_off_jac_layers.py b/tests/testEM1D_TD_off_jac_layers.py index dd7d4f8..d529a2f 100644 --- a/tests/testEM1D_TD_off_jac_layers.py +++ b/tests/testEM1D_TD_off_jac_layers.py @@ -1,7 +1,7 @@ import unittest -from SimPEG import Mesh, Utils, Maps, Tests +from SimPEG import * import matplotlib.pyplot as plt -from simpegEM1D import EM1D, EM1DSurveyTD +import simpegEM1D as em1d import numpy as np @@ -11,88 +11,114 @@ def setUp(self): nearthick = np.logspace(-1, 1, 5) deepthick = np.logspace(1, 2, 10) - hx = np.r_[nearthick, deepthick] - mesh1D = Mesh.TensorMesh([hx], [0.]) - depth = -mesh1D.gridN[:-1] - LocSigZ = -mesh1D.gridCC - - TDsurvey = EM1DSurveyTD( - rx_location=np.array([0., 0., 100.+50.]), - src_location=np.array([0., 0., 100.+50.]), - topo=np.r_[0., 0., 100.], - depth=depth, - field_type='secondary', - rx_type='dBzdt', - wave_type='stepoff', - time=np.logspace(-5, -2, 64), - src_type='CircularLoop', - I=1e0, - a=1e1 + thicknesses = np.r_[nearthick, deepthick] + topo = np.r_[0., 0., 100.] + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([0., 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + times = np.logspace(-5, -2, 31) + a = 20. + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="b" + ) ) - - sig_half = 1e-2 - chi_half = 0. - - expmap = Maps.ExpMap(mesh1D) - tau = 1e-3 * np.ones(TDsurvey.n_layer) - eta = 2e-1 * np.ones(TDsurvey.n_layer) - c = 1. * np.ones(TDsurvey.n_layer) - m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) - chi = np.zeros(TDsurvey.n_layer) - - prob = EM1D( - mesh1D, sigmaMap=expmap, chi=chi + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="dbdt" + ) ) - prob.pair(TDsurvey) + + source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, + a=a, I=1., wave_type="stepoff" + ) + ] + # Survey + survey = em1d.survey.EM1DSurveyTD(source_list) + + sigma = 1e-2 + chi = 0. + tau = 1e-3 + eta = 2e-1 + c = 1. + + self.topo = topo + self.survey = survey + self.showIt = False + self.sigma = sigma + self.tau = tau + self.eta = eta + self.c = c + self.chi = chi + self.times = times + self.thicknesses = thicknesses + self.nlayers = len(thicknesses)+1 + self.a = a - self.survey = TDsurvey - self.prob = prob - self.mesh1D = mesh1D - self.showIt = True - self.m_1D = m_1D - self.sig_half = sig_half def test_EM1DTDJvec_Layers(self): - sig = np.ones(self.prob.survey.n_layer)*self.sig_half - m_1D = np.log(sig) - + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + def fwdfun(m): - resp = self.prob.survey.dpred(m) + resp = sim.dpred(m) return resp def jacfun(m, dm): - Jvec = self.prob.Jvec(m, dm) + Jvec = sim.Jvec(m, dm) return Jvec dm = m_1D*0.5 derChk = lambda m: [fwdfun(m), lambda mx: jacfun(m, mx)] - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_1D, num=4, dx=dm, plotIt=False, eps=1e-15 ) if passed: print ("EM1DTD-layers Jvec works") - def test_EM1DTDJtvec_Layers(self): - sig_blk = 0.1 - sig = np.ones(self.prob.survey.n_layer)*self.sig_half - sig[3] = sig_blk + def test_EM1DTDJtvec_Layers(self): - m_true = np.log(sig) - dobs = self.prob.survey.dpred(m_true) - m_ini = np.log(np.ones(self.prob.survey.n_layer)*self.sig_half) - resp_ini = self.prob.survey.dpred(m_ini) + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + sigma_layer = 0.1 + sigma = np.ones(self.nlayers)*self.sigma + sigma[3] = sigma_layer + m_true = np.log(sigma) + + dobs = sim.dpred(m_true) + + m_ini = np.log(np.ones(self.nlayers)*self.sigma) + resp_ini = sim.dpred(m_ini) dr = resp_ini-dobs def misfit(m, dobs): - dpred = self.survey.dpred(m) + dpred = sim.dpred(m) misfit = 0.5*np.linalg.norm(dpred-dobs)**2 - dmisfit = self.prob.Jtvec(m, dr) + dmisfit = sim.Jtvec(m, dr) return misfit, dmisfit derChk = lambda m: misfit(m, dobs) - passed = Tests.checkDerivative( + passed = tests.checkDerivative( derChk, m_ini, num=4, plotIt=False, eps=1e-26 ) self.assertTrue(passed) diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index 30c3572..eda2e5f 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -1,15 +1,11 @@ from __future__ import print_function import unittest import numpy as np -from simpegEM1D import ( - GlobalEM1DProblemFD, GlobalEM1DSurveyFD, - get_vertical_discretization_frequency -) -from SimPEG import ( - regularization, Inversion, InvProblem, - DataMisfit, Utils, Mesh, Maps, Optimization, - Tests -) +import simpegEM1D as em1d +from simpegEM1D.utils import get_vertical_discretization_frequency +from SimPEG import * +from discretize import TensorMesh +from pymatsolver import PardisoSolver np.random.seed(41) @@ -17,14 +13,17 @@ class GlobalEM1DFD(unittest.TestCase): def setUp(self, parallel=True): - frequency = np.array([900, 7200, 56000], dtype=float) + + frequencies = np.array([900, 7200, 56000], dtype=float) hz = get_vertical_discretization_frequency( - frequency, sigma_background=1./10. + frequencies, sigma_background=0.1 ) + n_sounding = 10 dx = 20. hx = np.ones(n_sounding) * dx - mesh = Mesh.TensorMesh([hx, hz], x0='00') + + mesh = TensorMesh([hx, hz], x0='00') inds = mesh.gridCC[:, 1] < 25 inds_1 = mesh.gridCC[:, 1] < 50 sigma = np.ones(mesh.nC) * 1./100. @@ -36,51 +35,85 @@ def setUp(self, parallel=True): x = mesh.vectorCCx y = np.zeros_like(x) z = np.ones_like(x) * 30. - rx_locations = np.c_[x, y, z] - src_locations = np.c_[x, y, z] + receiver_locations = np.c_[x+8., y, z] + source_locations = np.c_[x, y, z] topo = np.c_[x, y, z-30.].astype(float) - mapping = Maps.ExpMap(mesh) - survey = GlobalEM1DSurveyFD( - rx_locations=rx_locations, - src_locations=src_locations, - frequency=frequency, - offset=np.ones_like(frequency) * 8., - src_type="VMD", - rx_type="Hz", - field_type='secondary', - topo=topo - ) + + sigma_map = maps.ExpMap(mesh) + + source_list = [] - problem = GlobalEM1DProblemFD( - [], sigmaMap=mapping, hz=hz, - parallel=parallel, n_cpu=2 + for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation="z", + field_type="secondary", component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation="z", + field_type="secondary", component="imag" + ) + ) + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, + orientation="z", I=1. + ) + ) + + survey = em1d.survey.EM1DSurveyFD(source_list) + + simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=sigma_map, hz=hz, topo=topo, + parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) - problem.pair(survey) - survey.makeSyntheticData(mSynth) - - # Now set up the problem to do some minimization - dmis = DataMisfit.l2_DataMisfit(survey) + + + + + dpred = simulation.dpred(mSynth) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) + dobs = dpred + noise + data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) + dmis.W = 1./uncertainties + reg = regularization.Tikhonov(mesh) - opt = Optimization.InexactGaussNewton( + + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - - invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) - inv = Inversion.BaseInversion(invProb) + + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) + inv = inversion.BaseInversion(invProb) + + self.data = data_object + self.dmis = dmis self.inv = inv self.reg = reg - self.p = problem + self.sim = simulation self.mesh = mesh self.m0 = mSynth self.survey = survey - self.dmis = dmis + def test_misfit(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: ( - self.survey.dpred(m), - lambda mx: self.p.Jvec(self.m0, mx) + self.sim.dpred(m), + lambda mx: self.sim.Jvec(self.m0, mx) ), self.m0, plotIt=False, @@ -92,15 +125,15 @@ def test_adjoint(self): # Adjoint Test # u = np.random.rand(self.mesh.nC * self.survey.nSrc) v = np.random.rand(self.mesh.nC) - w = np.random.rand(self.survey.dobs.shape[0]) - wtJv = w.dot(self.p.Jvec(self.m0, v)) - vtJtw = v.dot(self.p.Jtvec(self.m0, w)) + w = np.random.rand(self.data.dobs.shape[0]) + wtJv = w.dot(self.sim.Jvec(self.m0, v)) + vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) passed = np.abs(wtJv - vtJtw) < 1e-10 print('Adjoint Test', np.abs(wtJv - vtJtw), passed) self.assertTrue(passed) def test_dataObj(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: [self.dmis(m), self.dmis.deriv(m)], self.m0, plotIt=False, @@ -111,68 +144,176 @@ def test_dataObj(self): class GlobalEM1DFD_Height(unittest.TestCase): def setUp(self, parallel=True): - frequency = np.array([900, 7200, 56000], dtype=float) + + frequencies = np.array([900, 7200, 56000], dtype=float) hz = np.r_[1.] n_sounding = 10 dx = 20. hx = np.ones(n_sounding) * dx e = np.ones(n_sounding) - mSynth = np.r_[e*np.log(1./100.), e*20] - - x = np.arange(n_sounding) + mSynth = np.r_[e*np.log(1./100.), e*20.] + mesh = TensorMesh([hx, hz], x0='00') + + x = mesh.vectorCCx y = np.zeros_like(x) z = np.ones_like(x) * 30. - rx_locations = np.c_[x, y, z] - src_locations = np.c_[x, y, z] + receiver_locations = np.c_[x+8., y, z] + source_locations = np.c_[x, y, z] topo = np.c_[x, y, z-30.].astype(float) - wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) - expmap = Maps.ExpMap(nP=n_sounding) - sigmaMap = expmap * wires.sigma - - survey = GlobalEM1DSurveyFD( - rx_locations=rx_locations, - src_locations=src_locations, - frequency=frequency, - offset=np.ones_like(frequency) * 8., - src_type="VMD", - rx_type="ppm", - field_type='secondary', - topo=topo, - half_switch=True - ) + wires = maps.Wires(('sigma', n_sounding),('h', n_sounding)) + expmap = maps.ExpMap(nP=n_sounding) + sigma_map = expmap * wires.sigma + + source_list = [] - problem = GlobalEM1DProblemFD( - [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, - parallel=parallel, n_cpu=2 + for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation="z", + field_type="secondary", component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation="z", + field_type="secondary", component="imag" + ) + ) + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, + orientation="z", I=1. + ) + ) + + survey = em1d.survey.EM1DSurveyFD(source_list) + + simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=sigma_map, hz=hz, hMap=wires.h, topo=topo, + parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) - problem.pair(survey) - survey.makeSyntheticData(mSynth) - - # Now set up the problem to do some minimization - mesh = Mesh.TensorMesh([int(n_sounding * 2)]) - dmis = DataMisfit.l2_DataMisfit(survey) - reg = regularization.Tikhonov(mesh) - opt = Optimization.InexactGaussNewton( + + dpred = simulation.dpred(mSynth) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) + dobs = dpred + noise + data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) + dmis.W = 1./uncertainties + + reg_mesh = TensorMesh([int(n_sounding * 2)]) + reg = regularization.Tikhonov(reg_mesh) + + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - - invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) - inv = Inversion.BaseInversion(invProb) + + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) + inv = inversion.BaseInversion(invProb) + + self.data = data_object + self.dmis = dmis self.inv = inv self.reg = reg - self.p = problem - self.mesh = mesh + self.sim = simulation + self.mesh = reg_mesh self.m0 = mSynth * 1.2 self.survey = survey - self.dmis = dmis + + + + + + + + + + + + + + + + + + + + + + +# # frequency = np.array([900, 7200, 56000], dtype=float) +# # hz = np.r_[1.] +# # n_sounding = 10 +# # dx = 20. +# # hx = np.ones(n_sounding) * dx +# # e = np.ones(n_sounding) +# # mSynth = np.r_[e*np.log(1./100.), e*20] + +# # x = np.arange(n_sounding) +# # y = np.zeros_like(x) +# # z = np.ones_like(x) * 30. +# # rx_locations = np.c_[x, y, z] +# # src_locations = np.c_[x, y, z] +# # topo = np.c_[x, y, z-30.].astype(float) + +# # wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) +# # expmap = Maps.ExpMap(nP=n_sounding) +# # sigmaMap = expmap * wires.sigma + +# # survey = GlobalEM1DSurveyFD( +# # rx_locations=rx_locations, +# # src_locations=src_locations, +# # frequency=frequency, +# # offset=np.ones_like(frequency) * 8., +# # src_type="VMD", +# # rx_type="ppm", +# # field_type='secondary', +# # topo=topo, +# # half_switch=True +# # ) +# # +# # problem = GlobalEM1DProblemFD( +# # [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, +# # parallel=parallel, n_cpu=2 +# # ) +# # problem.pair(survey) +# # survey.makeSyntheticData(mSynth) + +# # # Now set up the problem to do some minimization +# # mesh = Mesh.TensorMesh([int(n_sounding * 2)]) +# # dmis = DataMisfit.l2_DataMisfit(survey) +# # reg = regularization.Tikhonov(mesh) +# # opt = Optimization.InexactGaussNewton( +# # maxIterLS=20, maxIter=10, tolF=1e-6, +# # tolX=1e-6, tolG=1e-6, maxIterCG=6 +# # ) + +# # invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) +# # inv = Inversion.BaseInversion(invProb) +# # self.inv = inv +# # self.reg = reg +# # self.p = problem +# # self.mesh = mesh +# # self.m0 = mSynth * 1.2 +# # self.survey = survey +# # self.dmis = dmis def test_misfit(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: ( - self.survey.dpred(m), - lambda mx: self.p.Jvec(self.m0, mx) + self.sim.dpred(m), + lambda mx: self.sim.Jvec(self.m0, mx) ), self.m0, plotIt=False, @@ -184,15 +325,15 @@ def test_adjoint(self): # Adjoint Test # u = np.random.rand(self.mesh.nC * self.survey.nSrc) v = np.random.rand(self.mesh.nC) - w = np.random.rand(self.survey.dobs.shape[0]) - wtJv = w.dot(self.p.Jvec(self.m0, v)) - vtJtw = v.dot(self.p.Jtvec(self.m0, w)) + w = np.random.rand(self.data.dobs.shape[0]) + wtJv = w.dot(self.sim.Jvec(self.m0, v)) + vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) passed = np.abs(wtJv - vtJtw) < 1e-10 print('Adjoint Test', np.abs(wtJv - vtJtw), passed) self.assertTrue(passed) def test_dataObj(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: [self.dmis(m), self.dmis.deriv(m)], self.m0, plotIt=False, diff --git a/tests/testGlobalEM1D_TD_jac_layers.py b/tests/testGlobalEM1D_TD_jac_layers.py index 45df8f2..8059621 100644 --- a/tests/testGlobalEM1D_TD_jac_layers.py +++ b/tests/testGlobalEM1D_TD_jac_layers.py @@ -1,18 +1,12 @@ from __future__ import print_function import unittest import numpy as np -from simpegEM1D import ( - GlobalEM1DProblemTD, GlobalEM1DSurveyTD, - get_vertical_discretization_time -) -from SimPEG import ( - regularization, Inversion, InvProblem, - DataMisfit, Utils, Mesh, Maps, Optimization, - Tests -) - -from simpegEM1D import skytem_HM_2015 -wave = skytem_HM_2015() +import simpegEM1D as em1d +from simpegEM1D.utils import get_vertical_discretization_time +from simpegEM1D.waveforms import TriangleFun +from SimPEG import * +from discretize import TensorMesh +from pymatsolver import PardisoSolver np.random.seed(41) @@ -21,17 +15,16 @@ class GlobalEM1DTD(unittest.TestCase): def setUp(self, parallel=True): - time = np.logspace(-6, -3, 21) + + times = np.logspace(-5, -2, 31) hz = get_vertical_discretization_time( - time, facter_tmax=0.5, factor_tmin=10. + times, facter_tmax=0.5, factor_tmin=10. ) - time_input_currents = wave.current_times[-7:] - input_currents = wave.currents[-7:] - + n_sounding = 5 dx = 20. hx = np.ones(n_sounding) * dx - mesh = Mesh.TensorMesh([hx, hz], x0='00') + mesh = TensorMesh([hx, hz], x0='00') inds = mesh.gridCC[:, 1] < 25 inds_1 = mesh.gridCC[:, 1] < 50 sigma = np.ones(mesh.nC) * 1./100. @@ -43,206 +36,94 @@ def setUp(self, parallel=True): x = mesh.vectorCCx y = np.zeros_like(x) z = np.ones_like(x) * 30. - rx_locations = np.c_[x, y, z] - src_locations = np.c_[x, y, z] + receiver_locations = np.c_[x, y, z] + source_locations = np.c_[x, y, z] topo = np.c_[x, y, z-30.].astype(float) - n_sounding = rx_locations.shape[0] - - rx_type_global = np.array( - ["dBzdt"], dtype=str - ).repeat(n_sounding, axis=0) - field_type_global = np.array( - ['secondary'], dtype=str - ).repeat(n_sounding, axis=0) - wave_type_global = np.array( - ['general'], dtype=str - ).repeat(n_sounding, axis=0) - - time_global = [time for i in range(n_sounding)] - - src_type_global = np.array( - ["CircularLoop"], dtype=str - ).repeat(n_sounding, axis=0) - a_global = np.array( - [13.], dtype=float - ).repeat(n_sounding, axis=0) - input_currents_global = [ - input_currents for i in range(n_sounding) - ] - time_input_currents_global = [ - time_input_currents for i in range(n_sounding) - ] - - mapping = Maps.ExpMap(mesh) - - survey = GlobalEM1DSurveyTD( - rx_locations=rx_locations, - src_locations=src_locations, - topo=topo, - time=time_global, - src_type=src_type_global, - rx_type=rx_type_global, - field_type=field_type_global, - wave_type=wave_type_global, - a=a_global, - input_currents=input_currents_global, - time_input_currents=time_input_currents_global - ) - - problem = GlobalEM1DProblemTD( - mesh, sigmaMap=mapping, hz=hz, parallel=parallel, n_cpu=2 + sigma_map = maps.ExpMap(mesh) + + source_list = [] + + for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation="z", + component="b" + ) + ) + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation="z", + component="dbdt" + ) + ) + + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] + input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) + + source_list.append( + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, + location=source_location, + a=5., I=1., + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) + ) + + survey = em1d.survey.EM1DSurveyTD(source_list) + + simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( + mesh, survey=survey, sigmaMap=sigma_map, hz=hz, topo=topo, parallel=False, + n_cpu=2, verbose=True, Solver=PardisoSolver ) - problem.pair(survey) - survey.makeSyntheticData(mSynth) - - # Now set up the problem to do some minimization - dmis = DataMisfit.l2_DataMisfit(survey) + dpred = simulation.dpred(mSynth) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) + dobs = dpred + noise + data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) + dmis.W = 1./uncertainties + reg = regularization.Tikhonov(mesh) - opt = Optimization.InexactGaussNewton( + + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) - inv = Inversion.BaseInversion(invProb) - self.inv = inv - self.reg = reg - self.p = problem - self.mesh = mesh - self.m0 = mSynth - self.survey = survey + + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) + inv = inversion.BaseInversion(invProb) + + self.data = data_object self.dmis = dmis - - def test_misfit(self): - passed = Tests.checkDerivative( - lambda m: ( - self.survey.dpred(m), - lambda mx: self.p.Jvec(self.m0, mx) - ), - self.m0, - plotIt=False, - num=3 - ) - self.assertTrue(passed) - - def test_adjoint(self): - # Adjoint Test - v = np.random.rand(self.mesh.nC) - w = np.random.rand(self.survey.dobs.shape[0]) - wtJv = w.dot(self.p.Jvec(self.m0, v)) - vtJtw = v.dot(self.p.Jtvec(self.m0, w)) - passed = np.abs(wtJv - vtJtw) < 1e-10 - print('Adjoint Test', np.abs(wtJv - vtJtw), passed) - self.assertTrue(passed) - - def test_dataObj(self): - passed = Tests.checkDerivative( - lambda m: [self.dmis(m), self.dmis.deriv(m)], - self.m0, - plotIt=False, - num=3 - ) - self.assertTrue(passed) - -class GlobalEM1DTD_Height(unittest.TestCase): - - def setUp(self, parallel=True): - time = np.logspace(-6, -3, 21) - time_input_currents = wave.current_times[-7:] - input_currents = wave.currents[-7:] - hz = get_vertical_discretization_time( - time, facter_tmax=0.5, factor_tmin=10. - ) - - hz = np.r_[1.] - n_sounding = 10 - dx = 20. - hx = np.ones(n_sounding) * dx - e = np.ones(n_sounding) - mSynth = np.r_[e*np.log(1./100.), e*20] - - x = np.arange(n_sounding) - y = np.zeros_like(x) - z = np.ones_like(x) * 30. - rx_locations = np.c_[x, y, z] - src_locations = np.c_[x, y, z] - topo = np.c_[x, y, z-30.].astype(float) - - rx_type_global = np.array( - ["dBzdt"], dtype=str - ).repeat(n_sounding, axis=0) - field_type_global = np.array( - ['secondary'], dtype=str - ).repeat(n_sounding, axis=0) - wave_type_global = np.array( - ['general'], dtype=str - ).repeat(n_sounding, axis=0) - - time_global = [time for i in range(n_sounding)] - - src_type_global = np.array( - ["CircularLoop"], dtype=str - ).repeat(n_sounding, axis=0) - a_global = np.array( - [13.], dtype=float - ).repeat(n_sounding, axis=0) - input_currents_global = [ - input_currents for i in range(n_sounding) - ] - time_input_currents_global = [ - time_input_currents for i in range(n_sounding) - ] - - wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) - expmap = Maps.ExpMap(nP=n_sounding) - sigmaMap = expmap * wires.sigma - - survey = GlobalEM1DSurveyTD( - rx_locations=rx_locations, - src_locations=src_locations, - topo=topo, - time=time_global, - src_type=src_type_global, - rx_type=rx_type_global, - field_type=field_type_global, - wave_type=wave_type_global, - a=a_global, - input_currents=input_currents_global, - time_input_currents=time_input_currents_global, - half_switch=True - ) - - problem = GlobalEM1DProblemTD( - [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, parallel=parallel, n_cpu=2 - ) - problem.pair(survey) - - survey.makeSyntheticData(mSynth) - - # Now set up the problem to do some minimization - mesh = Mesh.TensorMesh([int(n_sounding * 2)]) - dmis = DataMisfit.l2_DataMisfit(survey) - reg = regularization.Tikhonov(mesh) - opt = Optimization.InexactGaussNewton( - maxIterLS=20, maxIter=10, tolF=1e-6, - tolX=1e-6, tolG=1e-6, maxIterCG=6 - ) - invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) - inv = Inversion.BaseInversion(invProb) self.inv = inv self.reg = reg - self.p = problem + self.sim = simulation self.mesh = mesh self.m0 = mSynth self.survey = survey - self.dmis = dmis + def test_misfit(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: ( - self.survey.dpred(m), - lambda mx: self.p.Jvec(self.m0, mx) + self.sim.dpred(m), + lambda mx: self.sim.Jvec(self.m0, mx) ), self.m0, plotIt=False, @@ -253,15 +134,15 @@ def test_misfit(self): def test_adjoint(self): # Adjoint Test v = np.random.rand(self.mesh.nC) - w = np.random.rand(self.survey.dobs.shape[0]) - wtJv = w.dot(self.p.Jvec(self.m0, v)) - vtJtw = v.dot(self.p.Jtvec(self.m0, w)) + w = np.random.rand(self.data.dobs.shape[0]) + wtJv = w.dot(self.sim.Jvec(self.m0, v)) + vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) passed = np.abs(wtJv - vtJtw) < 1e-10 print('Adjoint Test', np.abs(wtJv - vtJtw), passed) self.assertTrue(passed) def test_dataObj(self): - passed = Tests.checkDerivative( + passed = tests.checkDerivative( lambda m: [self.dmis(m), self.dmis.deriv(m)], self.m0, plotIt=False, @@ -269,5 +150,129 @@ def test_dataObj(self): ) self.assertTrue(passed) +# class GlobalEM1DTD_Height(unittest.TestCase): + +# def setUp(self, parallel=True): +# time = np.logspace(-6, -3, 21) +# time_input_currents = wave.current_times[-7:] +# input_currents = wave.currents[-7:] +# hz = get_vertical_discretization_time( +# time, facter_tmax=0.5, factor_tmin=10. +# ) + +# hz = np.r_[1.] +# n_sounding = 10 +# dx = 20. +# hx = np.ones(n_sounding) * dx +# e = np.ones(n_sounding) +# mSynth = np.r_[e*np.log(1./100.), e*20] + +# x = np.arange(n_sounding) +# y = np.zeros_like(x) +# z = np.ones_like(x) * 30. +# rx_locations = np.c_[x, y, z] +# src_locations = np.c_[x, y, z] +# topo = np.c_[x, y, z-30.].astype(float) + +# rx_type_global = np.array( +# ["dBzdt"], dtype=str +# ).repeat(n_sounding, axis=0) +# field_type_global = np.array( +# ['secondary'], dtype=str +# ).repeat(n_sounding, axis=0) +# wave_type_global = np.array( +# ['general'], dtype=str +# ).repeat(n_sounding, axis=0) + +# time_global = [time for i in range(n_sounding)] + +# src_type_global = np.array( +# ["CircularLoop"], dtype=str +# ).repeat(n_sounding, axis=0) +# a_global = np.array( +# [13.], dtype=float +# ).repeat(n_sounding, axis=0) +# input_currents_global = [ +# input_currents for i in range(n_sounding) +# ] +# time_input_currents_global = [ +# time_input_currents for i in range(n_sounding) +# ] + +# wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) +# expmap = Maps.ExpMap(nP=n_sounding) +# sigmaMap = expmap * wires.sigma + +# survey = GlobalEM1DSurveyTD( +# rx_locations=rx_locations, +# src_locations=src_locations, +# topo=topo, +# time=time_global, +# src_type=src_type_global, +# rx_type=rx_type_global, +# field_type=field_type_global, +# wave_type=wave_type_global, +# a=a_global, +# input_currents=input_currents_global, +# time_input_currents=time_input_currents_global, +# half_switch=True +# ) + +# problem = GlobalEM1DProblemTD( +# [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, parallel=parallel, n_cpu=2 +# ) +# problem.pair(survey) + +# survey.makeSyntheticData(mSynth) + +# # Now set up the problem to do some minimization +# mesh = Mesh.TensorMesh([int(n_sounding * 2)]) +# dmis = DataMisfit.l2_DataMisfit(survey) +# reg = regularization.Tikhonov(mesh) +# opt = Optimization.InexactGaussNewton( +# maxIterLS=20, maxIter=10, tolF=1e-6, +# tolX=1e-6, tolG=1e-6, maxIterCG=6 +# ) +# invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) +# inv = Inversion.BaseInversion(invProb) +# self.inv = inv +# self.reg = reg +# self.p = problem +# self.mesh = mesh +# self.m0 = mSynth +# self.survey = survey +# self.dmis = dmis + +# def test_misfit(self): +# passed = Tests.checkDerivative( +# lambda m: ( +# self.survey.dpred(m), +# lambda mx: self.p.Jvec(self.m0, mx) +# ), +# self.m0, +# plotIt=False, +# num=3 +# ) +# self.assertTrue(passed) + +# def test_adjoint(self): +# # Adjoint Test +# v = np.random.rand(self.mesh.nC) +# w = np.random.rand(self.survey.dobs.shape[0]) +# wtJv = w.dot(self.p.Jvec(self.m0, v)) +# vtJtw = v.dot(self.p.Jtvec(self.m0, w)) +# passed = np.abs(wtJv - vtJtw) < 1e-10 +# print('Adjoint Test', np.abs(wtJv - vtJtw), passed) +# self.assertTrue(passed) + +# def test_dataObj(self): +# passed = Tests.checkDerivative( +# lambda m: [self.dmis(m), self.dmis.deriv(m)], +# self.m0, +# plotIt=False, +# num=3 +# ) +# self.assertTrue(passed) + if __name__ == '__main__': unittest.main() diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index 68c6f5e..6047bd8 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -5.9677e-01 -5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -3.3710e-01 -5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -1.6410e-01 -5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -8.4719e-02 -5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -4.6491e-02 -5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -2.8097e-02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -1.7903e-02 -5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.3370e-02 -5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -9.5990e-03 -5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -6.4854e-03 -5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -4.5834e-03 -5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -2.8495e-03 -5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -1.5455e-03 -5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -8.9385e-04 -5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -4.1372e-04 -5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.0264e-04 -5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -9.1959e-05 -5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -3.9671e-05 -5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -1.7107e-05 -5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -7.6064e-06 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -3.1513e-06 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.3138e-01 -1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4128e-01 -1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5832e-01 -1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0269e-02 -1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4326e-02 -1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7087e-02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8149e-02 -1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3383e-02 -1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.0513e-03 -1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.6580e-03 -1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.4653e-03 -1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7234e-03 -1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6499e-03 -1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.8933e-04 -1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.4171e-04 -1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0800e-04 -1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.5496e-05 -1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -3.9387e-05 -1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.7700e-05 -1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.6202e-06 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.1242e-06 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1020e-01 -2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3048e-01 -2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.7241e-01 -2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0747e-02 -2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4220e-02 -2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7584e-02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9280e-02 -2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3478e-02 -2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -9.1828e-03 -2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.4789e-03 -2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3907e-03 -2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6427e-03 -2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5560e-03 -2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -8.3047e-04 -2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.1348e-04 -2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.0250e-04 -2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -9.7600e-05 -2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.0964e-05 -2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.7147e-05 -2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -7.5062e-06 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.2576e-06 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.2650e-01 -3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4345e-01 -3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.5883e-01 -3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -7.8494e-02 -3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5998e-02 -3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6268e-02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7296e-02 -3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2369e-02 -3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.3398e-03 -3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3069e-03 -3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.1289e-03 -3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8537e-03 -3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.7168e-03 -3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.6699e-04 -3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.7085e-04 -3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3236e-04 -3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0924e-04 -3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.9656e-05 -3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -1.9856e-05 -3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.8094e-06 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.6906e-06 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.1166e-01 -4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3520e-01 -4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6499e-01 -4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.2862e-02 -4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5634e-02 -4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.7919e-02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8279e-02 -4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3070e-02 -4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.4768e-03 -4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.8962e-03 -4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3683e-03 -4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.6343e-03 -4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.5743e-03 -4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.0510e-04 -4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.6743e-04 -4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.4148e-04 -4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0625e-04 -4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.6839e-05 -4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1724e-05 -4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.6993e-06 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.4864e-06 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9715e-01 -5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3926e-01 -5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6180e-01 -5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.6149e-02 -5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4803e-02 -5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6800e-02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.8157e-02 -5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2784e-02 -5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.7855e-03 -5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.0147e-03 -5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.3054e-03 -5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.8597e-03 -5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.7050e-03 -5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7625e-04 -5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.9257e-04 -5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3026e-04 -5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.0975e-04 -5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -4.6664e-05 -5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.0779e-05 -5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.0354e-06 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.5142e-06 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9418e-01 -6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.3814e-01 -6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6314e-01 -6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.3341e-02 -6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4616e-02 -6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6967e-02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.9014e-02 -6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.2518e-02 -6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6030e-03 -6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -6.3943e-03 -6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2920e-03 -6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7665e-03 -6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6351e-03 -6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.4758e-04 -6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -4.8820e-04 -6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.3443e-04 -6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1555e-04 -6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0174e-05 -6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.1801e-05 -6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -8.5800e-06 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.6246e-06 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.4181e-01 -7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.2324e-01 -7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6244e-01 -7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.4532e-02 -7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.6775e-02 -7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.6441e-02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7541e-02 -7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1880e-02 -7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.0809e-03 -7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.6233e-03 -7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.9259e-03 -7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7270e-03 -7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6579e-03 -7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.7247e-04 -7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.5061e-04 -7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6044e-04 -7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3105e-04 -7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.3474e-05 -7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3560e-05 -7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.5798e-06 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.1418e-06 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -6.0607e-01 -8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.4213e-01 -8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6163e-01 -8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.0064e-02 -8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.4598e-02 -8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8049e-02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7663e-02 -8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.1848e-02 -8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.6804e-03 -8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.8570e-03 -8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.2221e-03 -8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.5639e-03 -8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6118e-03 -8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.2480e-04 -8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.0966e-04 -8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.7510e-04 -8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2572e-04 -8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.5017e-05 -8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3803e-05 -8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0286e-05 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.2224e-06 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -5.9087e-01 -9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.1595e-01 -9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -1.6993e-01 -9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -8.1277e-02 -9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -4.5031e-02 -9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -2.8886e-02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -1.7851e-02 -9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.3012e-02 -9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -8.1170e-03 -9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -5.9905e-03 -9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -3.8949e-03 -9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -2.7024e-03 -9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.6967e-03 -9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -9.3300e-04 -9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.2279e-04 -9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6538e-04 -9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2617e-04 -9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.8543e-05 -9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3346e-05 -9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.8151e-06 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9419e-06 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.8996e-01 -1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2697e-01 -1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6969e-01 -1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4268e-02 -1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3203e-02 -1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7388e-02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8509e-02 -1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3008e-02 -1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8943e-03 -1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8639e-03 -1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.0729e-03 -1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5174e-03 -1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5820e-03 -1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.9586e-04 -1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1456e-04 -1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.5064e-04 -1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.1816e-04 -1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -5.4993e-05 -1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.3608e-05 -1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.0048e-05 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.3456e-06 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2480e-01 -1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4318e-01 -1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6593e-01 -1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1547e-02 -1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6419e-02 -1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8365e-02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9121e-02 -1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2779e-02 -1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3010e-03 -1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4549e-03 -1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6653e-03 -1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.6724e-03 -1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6739e-03 -1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5424e-04 -1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5862e-04 -1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8516e-04 -1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3754e-04 -1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.5067e-05 -1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.5956e-05 -1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1987e-05 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.8424e-06 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0737e-01 -1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3559e-01 -1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6009e-01 -1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8825e-02 -1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4150e-02 -1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7759e-02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8965e-02 -1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2691e-02 -1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1331e-03 -1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7833e-03 -1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7803e-03 -1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5510e-03 -1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5743e-03 -1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4542e-04 -1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6381e-04 -1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9612e-04 -1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4154e-04 -1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.4627e-05 -1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.8228e-05 -1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1035e-05 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.6235e-06 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9640e-01 -1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4756e-01 -1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5815e-01 -1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1131e-02 -1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4596e-02 -1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6445e-02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7587e-02 -1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3041e-02 -1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1181e-03 -1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7564e-03 -1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7619e-03 -1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4844e-03 -1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6930e-03 -1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0164e-03 -1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6500e-04 -1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7065e-04 -1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.3925e-04 -1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.3247e-05 -1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7789e-05 -1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2012e-05 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.5883e-06 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1396e-01 -1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2608e-01 -1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6164e-01 -1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4122e-02 -1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3058e-02 -1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6240e-02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8849e-02 -1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2801e-02 -1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1610e-03 -1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6165e-03 -1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7185e-03 -1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5847e-03 -1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6814e-03 -1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4354e-04 -1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4363e-04 -1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8087e-04 -1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4071e-04 -1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.2952e-05 -1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -2.7929e-05 -1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.1114e-05 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -4.4991e-06 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3299e-01 -1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3120e-01 -1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6505e-01 -1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9861e-02 -1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5499e-02 -1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7707e-02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7635e-02 -1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2597e-02 -1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4357e-03 -1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5841e-03 -1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6580e-03 -1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5231e-03 -1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5614e-03 -1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.4690e-04 -1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5378e-04 -1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8965e-04 -1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5489e-04 -1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1322e-05 -1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1276e-05 -1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3023e-05 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.1946e-06 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2507e-01 -1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4000e-01 -1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7437e-01 -1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9584e-02 -1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3117e-02 -1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7828e-02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7246e-02 -1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2988e-02 -1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3791e-03 -1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5805e-03 -1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5719e-03 -1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5210e-03 -1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5927e-03 -1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0110e-03 -1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.8218e-04 -1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1117e-04 -1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5102e-04 -1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.8417e-05 -1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1675e-05 -1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.2481e-05 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.0496e-06 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3625e-01 -1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4240e-01 -1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6615e-01 -1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6155e-02 -1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2653e-02 -1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8371e-02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8165e-02 -1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2181e-02 -1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0477e-03 -1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6543e-03 -1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5850e-03 -1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5207e-03 -1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5028e-03 -1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8488e-04 -1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6223e-04 -1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9204e-04 -1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4423e-04 -1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.8580e-05 -1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1947e-05 -1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3567e-05 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.4643e-06 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2263e-01 -1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1851e-01 -1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6510e-01 -1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8475e-02 -1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3944e-02 -1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6899e-02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8436e-02 -1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2192e-02 -1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7080e-03 -1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5338e-03 -1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.9255e-03 -1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4693e-03 -1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6268e-03 -1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5149e-04 -1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.5054e-04 -1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0100e-04 -1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4090e-04 -1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.9049e-05 -1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1088e-05 -1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3002e-05 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.2897e-06 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1216e-01 -1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4915e-01 -1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5959e-01 -1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1936e-02 -1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5827e-02 -1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8286e-02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8919e-02 -1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2573e-02 -1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2398e-03 -1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5217e-03 -1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5624e-03 -1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3607e-03 -1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.6516e-03 -1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2971e-04 -1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3666e-04 -1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0231e-04 -1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.4460e-04 -1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.1486e-05 -1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.0811e-05 -1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3189e-05 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.2583e-06 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4638e-01 -2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2332e-01 -2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6749e-01 -2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4414e-02 -2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4207e-02 -2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6427e-02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8072e-02 -2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2767e-02 -2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4336e-03 -2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6107e-03 -2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8445e-03 -2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3069e-03 -2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5862e-03 -2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7268e-04 -2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4737e-04 -2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9526e-04 -2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5381e-04 -2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6054e-05 -2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2323e-05 -2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5019e-05 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6408e-06 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3798e-01 -2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2986e-01 -2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6456e-01 -2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1212e-02 -2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6799e-02 -2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7555e-02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8785e-02 -2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1956e-02 -2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5821e-03 -2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3670e-03 -2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6936e-03 -2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3227e-03 -2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5960e-03 -2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.8698e-04 -2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3738e-04 -2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0467e-04 -2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6127e-04 -2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5995e-05 -2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4853e-05 -2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4070e-05 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.6549e-06 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3279e-01 -2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1910e-01 -2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6110e-01 -2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0369e-02 -2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3825e-02 -2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6544e-02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9035e-02 -2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2634e-02 -2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2898e-03 -2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6380e-03 -2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8733e-03 -2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4261e-03 -2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5796e-03 -2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.7013e-04 -2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3047e-04 -2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9920e-04 -2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5725e-04 -2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.2829e-05 -2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5196e-05 -2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4623e-05 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.0556e-06 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1013e-01 -2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2442e-01 -2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6137e-01 -2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.7063e-02 -2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5470e-02 -2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6186e-02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7679e-02 -2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2764e-02 -2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -7.9900e-03 -2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7596e-03 -2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8574e-03 -2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.5218e-03 -2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5236e-03 -2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1869e-04 -2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2861e-04 -2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0038e-04 -2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5392e-04 -2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7998e-05 -2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.2630e-05 -2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4409e-05 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7348e-06 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1585e-01 -2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2607e-01 -2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7116e-01 -2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.9604e-02 -2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6158e-02 -2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8019e-02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8589e-02 -2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2254e-02 -2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8129e-03 -2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3960e-03 -2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8419e-03 -2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2706e-03 -2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5242e-03 -2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9195e-04 -2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.6417e-04 -2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9305e-04 -2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6137e-04 -2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.7019e-05 -2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6907e-05 -2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5772e-05 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4437e-06 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2653e-01 -2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2477e-01 -2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6951e-01 -2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3468e-02 -2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4883e-02 -2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8240e-02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8195e-02 -2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2576e-02 -2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7362e-03 -2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8723e-03 -2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6385e-03 -2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3968e-03 -2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4189e-03 -2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8139e-04 -2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4580e-04 -2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.2064e-04 -2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6114e-04 -2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.5274e-05 -2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7151e-05 -2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6370e-05 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3564e-06 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2568e-01 -2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2052e-01 -2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5940e-01 -2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8994e-02 -2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5083e-02 -2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8046e-02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8589e-02 -2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2732e-02 -2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.6111e-03 -2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3576e-03 -2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7142e-03 -2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2764e-03 -2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4265e-03 -2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.5998e-04 -2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3379e-04 -2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1119e-04 -2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5926e-04 -2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.8381e-05 -2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7810e-05 -2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6525e-05 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7023e-06 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3722e-01 -2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2962e-01 -2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7410e-01 -2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3233e-02 -2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4995e-02 -2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8779e-02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7967e-02 -2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2232e-02 -2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.7948e-03 -2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8798e-03 -2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6461e-03 -2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3756e-03 -2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4773e-03 -2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3503e-04 -2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2629e-04 -2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.2070e-04 -2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5841e-04 -2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2299e-05 -2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.8259e-05 -2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6171e-05 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7669e-06 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3666e-01 -2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1871e-01 -2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7309e-01 -2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1430e-02 -2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2960e-02 -2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8454e-02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9094e-02 -2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2325e-02 -2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5673e-03 -2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3880e-03 -2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6521e-03 -2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2479e-03 -2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4239e-03 -2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.3921e-04 -2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.7741e-04 -2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.1144e-04 -2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5812e-04 -2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6060e-05 -2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7371e-05 -2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5316e-05 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.4334e-06 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9683e-01 -3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2134e-01 -3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6944e-01 -3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8854e-02 -3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6040e-02 -3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6160e-02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7870e-02 -3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3034e-02 -3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3215e-03 -3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3671e-03 -3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6387e-03 -3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4256e-03 -3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4394e-03 -3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0359e-04 -3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3692e-04 -3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0864e-04 -3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6491e-04 -3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6550e-05 -3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0266e-05 -3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6621e-05 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.9313e-06 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0296e-01 -3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3871e-01 -3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6889e-01 -3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1810e-02 -3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4120e-02 -3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7055e-02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8422e-02 -3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2772e-02 -3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5254e-03 -3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5011e-03 -3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5247e-03 -3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4062e-03 -3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3961e-03 -3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8319e-04 -3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2676e-04 -3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9610e-04 -3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7330e-04 -3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.7107e-05 -3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7266e-05 -3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6899e-05 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.1977e-06 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4156e-01 -3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4264e-01 -3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6394e-01 -3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3177e-02 -3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4908e-02 -3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6120e-02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8274e-02 -3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1764e-02 -3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.4849e-03 -3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7908e-03 -3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5990e-03 -3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3025e-03 -3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5121e-03 -3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9340e-04 -3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4233e-04 -3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0140e-04 -3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5807e-04 -3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5387e-05 -3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0573e-05 -3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7946e-05 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.3565e-06 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1509e-01 -3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4744e-01 -3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7339e-01 -3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.0812e-02 -3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6101e-02 -3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8420e-02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.9088e-02 -3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2847e-02 -3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8417e-03 -3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4872e-03 -3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5054e-03 -3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4444e-03 -3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4109e-03 -3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8561e-04 -3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3830e-04 -3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0903e-04 -3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6713e-04 -3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.0246e-05 -3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9895e-05 -3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7016e-05 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2803e-06 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3927e-01 -3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4356e-01 -3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6570e-01 -3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6212e-02 -3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2601e-02 -3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7798e-02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8952e-02 -3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.3003e-02 -3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1168e-03 -3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4447e-03 -3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6079e-03 -3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3683e-03 -3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4544e-03 -3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0639e-04 -3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2254e-04 -3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0353e-04 -3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6120e-04 -3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.9244e-05 -3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7709e-05 -3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7738e-05 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.2509e-06 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1699e-01 -3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1593e-01 -3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7218e-01 -3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6817e-02 -3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5514e-02 -3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8588e-02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8276e-02 -3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2600e-02 -3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5854e-03 -3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7736e-03 -3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5915e-03 -3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3196e-03 -3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4951e-03 -3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6897e-04 -3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1733e-04 -3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0109e-04 -3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6319e-04 -3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6870e-05 -3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.6881e-05 -3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7939e-05 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4982e-06 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2867e-01 -3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2451e-01 -3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6194e-01 -3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2938e-02 -3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6146e-02 -3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7539e-02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7536e-02 -3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2716e-02 -3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1014e-03 -3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7393e-03 -3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6165e-03 -3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4686e-03 -3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3854e-03 -3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8834e-04 -3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2457e-04 -3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9415e-04 -3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7090e-04 -3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5786e-05 -3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1727e-05 -3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8136e-05 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0032e-06 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4285e-01 -3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1777e-01 -3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6295e-01 -3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -7.8778e-02 -3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6304e-02 -3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8373e-02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7489e-02 -3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2553e-02 -3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8225e-03 -3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9172e-03 -3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.5694e-03 -3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2840e-03 -3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4893e-03 -3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.7300e-04 -3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0623e-04 -3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0473e-04 -3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6048e-04 -3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.9648e-05 -3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2731e-05 -3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9175e-05 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0917e-06 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2713e-01 -3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4752e-01 -3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7326e-01 -3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6427e-02 -3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3053e-02 -3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7489e-02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7981e-02 -3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2258e-02 -3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.1490e-03 -3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3426e-03 -3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8628e-03 -3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4668e-03 -3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4049e-03 -3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9293e-04 -3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.3742e-04 -3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0087e-04 -3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7238e-04 -3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2255e-05 -3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9021e-05 -3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8065e-05 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.9785e-06 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1990e-01 -3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4166e-01 -3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7153e-01 -3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2773e-02 -3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4197e-02 -3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7076e-02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8206e-02 -3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2142e-02 -3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5024e-03 -3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5206e-03 -3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6687e-03 -3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3500e-03 -3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4318e-03 -3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6173e-04 -3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2780e-04 -3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0218e-04 -3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6938e-04 -3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2634e-05 -3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9028e-05 -3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8086e-05 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4662e-06 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5289e-01 -4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2297e-01 -4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7141e-01 -4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4030e-02 -4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6563e-02 -4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6739e-02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8352e-02 -4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1930e-02 -4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.0437e-03 -4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8451e-03 -4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8557e-03 -4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3797e-03 -4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4475e-03 -4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.1948e-04 -4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.0375e-04 -4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9575e-04 -4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6027e-04 -4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2659e-05 -4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2162e-05 -4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8407e-05 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0785e-06 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0855e-01 -4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2139e-01 -4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6384e-01 -4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4960e-02 -4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4736e-02 -4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8154e-02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7360e-02 -4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2490e-02 -4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5315e-03 -4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4766e-03 -4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7599e-03 -4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4647e-03 -4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4328e-03 -4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.2178e-04 -4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9408e-04 -4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.0672e-04 -4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7102e-04 -4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2658e-05 -4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2841e-05 -4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0152e-05 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5566e-06 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.1517e-01 -4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1701e-01 -4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6599e-01 -4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3100e-02 -4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5649e-02 -4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7037e-02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8359e-02 -4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2678e-02 -4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5392e-03 -4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4312e-03 -4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6749e-03 -4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4506e-03 -4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5069e-03 -4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0667e-04 -4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.4094e-04 -4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9040e-04 -4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5860e-04 -4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0290e-05 -4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2824e-05 -4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0022e-05 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4306e-06 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2685e-01 -4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2714e-01 -4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5900e-01 -4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.4697e-02 -4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3118e-02 -4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6505e-02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7259e-02 -4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2599e-02 -4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8427e-03 -4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7039e-03 -4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6398e-03 -4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2380e-03 -4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5121e-03 -4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6107e-04 -4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2124e-04 -4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9600e-04 -4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5659e-04 -4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2684e-05 -4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2182e-05 -4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0062e-05 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5198e-06 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -5.9657e-01 -4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1982e-01 -4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6593e-01 -4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.2285e-02 -4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6444e-02 -4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6985e-02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8740e-02 -4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1973e-02 -4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5460e-03 -4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.3916e-03 -4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8464e-03 -4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2781e-03 -4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4919e-03 -4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8135e-04 -4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2242e-04 -4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9782e-04 -4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6979e-04 -4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6709e-05 -4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3982e-05 -4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9895e-05 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6701e-06 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.4918e-01 -4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2948e-01 -4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7068e-01 -4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1994e-02 -4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.4979e-02 -4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7646e-02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8943e-02 -4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2339e-02 -4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.8491e-03 -4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.5178e-03 -4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.8720e-03 -4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2944e-03 -4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.5267e-03 -4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.9759e-04 -4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1619e-04 -4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8600e-04 -4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6141e-04 -4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8426e-05 -4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3432e-05 -4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0006e-05 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.2398e-06 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.3259e-01 -4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.3900e-01 -4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6477e-01 -4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1297e-02 -4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.2888e-02 -4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8629e-02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8940e-02 -4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1997e-02 -4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2313e-03 -4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.9108e-03 -4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6586e-03 -4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.4083e-03 -4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4558e-03 -4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5625e-04 -4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.1863e-04 -4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8313e-04 -4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6125e-04 -4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2927e-05 -4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2660e-05 -4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9648e-05 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5753e-06 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5439e-01 -4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.1962e-01 -4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.5848e-01 -4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3612e-02 -4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.6800e-02 -4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.6259e-02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8573e-02 -4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2998e-02 -4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5899e-03 -4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.6356e-03 -4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.7818e-03 -4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3214e-03 -4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4705e-03 -4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -9.0392e-04 -4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -5.2763e-04 -4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8894e-04 -4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.5672e-04 -4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5881e-05 -4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.5690e-05 -4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0054e-05 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4398e-06 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.5355e-01 -4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2321e-01 -4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6137e-01 -4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.6584e-02 -4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3213e-02 -4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7531e-02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.7464e-02 -4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2147e-02 -4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.5622e-03 -4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.7000e-03 -4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6379e-03 -4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.2544e-03 -4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4159e-03 -4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.5206e-04 -4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.8483e-04 -4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.9676e-04 -4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6253e-04 -4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.9346e-05 -4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1523e-05 -4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0422e-05 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7211e-06 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.2352e-01 -4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.2343e-01 -4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.7009e-01 -4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.1013e-02 -4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.5408e-02 -4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.7972e-02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8417e-02 -4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.1762e-02 -4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.3572e-03 -4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.8895e-03 -4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6520e-03 -4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3978e-03 -4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.4631e-03 -4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.6745e-04 -4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9236e-04 -4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.7926e-04 -4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6259e-04 -4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6441e-05 -4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.5008e-05 -4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0195e-05 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.5783e-06 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -6.0676e-01 -5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.4153e-01 -5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.6745e-01 -5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -8.3541e-02 -5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -4.3242e-02 -5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -2.8808e-02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -1.8830e-02 -5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.2855e-02 -5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -8.2219e-03 -5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -5.4925e-03 -5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -3.6488e-03 -5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.3715e-03 -5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.3973e-03 -5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -8.8298e-04 -5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -4.9090e-04 -5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -2.8587e-04 -5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6406e-04 -5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0527e-05 -5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3760e-05 -5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0758e-05 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.3609e-06 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -7.5535e-07 +5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -4.2545e-07 +5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -2.2004e-07 +5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -1.0658e-07 +5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -5.8978e-08 +5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -3.3961e-08 +5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -2.2225e-08 +5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.6143e-08 +5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -1.1198e-08 +5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -8.6968e-09 +5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -5.3181e-09 +5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -3.3703e-09 +5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -2.0159e-09 +5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -1.0336e-09 +5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -5.7184e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.4982e-10 +5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -1.2314e-10 +5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -5.0930e-11 +5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -2.1704e-11 +5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -9.5376e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -4.1902e-12 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.5670e-07 +1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.0692e-07 +1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1247e-07 +1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0911e-07 +1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.5938e-08 +1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3856e-08 +1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3298e-08 +1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.6452e-08 +1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1594e-08 +1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.1662e-09 +1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.5970e-09 +1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4137e-09 +1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9132e-09 +1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.0989e-09 +1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.7268e-10 +1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.5376e-10 +1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1733e-10 +1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.1696e-11 +1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.2383e-11 +1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.7208e-12 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.8919e-12 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4995e-07 +2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.3072e-07 +2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0875e-07 +2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0666e-07 +2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8253e-08 +2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4316e-08 +2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2478e-08 +2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5769e-08 +2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1380e-08 +2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.2684e-09 +2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.4364e-09 +2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3096e-09 +2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9615e-09 +2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1151e-09 +2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.5358e-10 +2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6831e-10 +2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2343e-10 +2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0544e-11 +2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3452e-11 +2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1055e-12 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9942e-12 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4672e-07 +3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.0634e-07 +3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0004e-07 +3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0630e-07 +3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.7625e-08 +3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4896e-08 +3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3302e-08 +3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5815e-08 +3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1041e-08 +3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.7102e-09 +3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.2637e-09 +3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3105e-09 +3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.1684e-09 +3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2176e-09 +3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.9944e-10 +3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.0948e-10 +3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3538e-10 +3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.1040e-11 +3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6934e-11 +3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1100e-11 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.4789e-12 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.9653e-07 +4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.2370e-07 +4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1233e-07 +4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0260e-07 +4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.4668e-08 +4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3467e-08 +4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2531e-08 +4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5053e-08 +4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0949e-08 +4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.0281e-09 +4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.4043e-09 +4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4386e-09 +4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0353e-09 +4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1213e-09 +4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.0046e-10 +4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.0342e-10 +4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3935e-10 +4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.1593e-11 +4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.7431e-11 +4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1330e-11 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.6476e-12 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.9584e-07 +5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.3755e-07 +5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0599e-07 +5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0358e-07 +5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8048e-08 +5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3834e-08 +5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2294e-08 +5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.6062e-08 +5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0951e-08 +5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.8547e-09 +5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.3100e-09 +5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4963e-09 +5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9823e-09 +5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2148e-09 +5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2038e-10 +5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.8999e-10 +5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.4209e-10 +5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.4317e-11 +5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6700e-11 +5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1447e-11 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.3572e-12 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.7093e-07 +6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.9959e-07 +6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0518e-07 +6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0560e-07 +6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8234e-08 +6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4807e-08 +6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3765e-08 +6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5014e-08 +6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0498e-08 +6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.1621e-09 +6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.3849e-09 +6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.5300e-09 +6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.1473e-09 +6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1514e-09 +6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.8203e-10 +6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1275e-10 +6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3773e-10 +6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.9702e-11 +6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6596e-11 +6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0573e-11 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.6125e-12 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -8.0823e-07 +7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.9798e-07 +7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0961e-07 +7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0664e-07 +7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.3476e-08 +7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.2955e-08 +7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2148e-08 +7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5755e-08 +7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0911e-08 +7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.2877e-09 +7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.2275e-09 +7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.2521e-09 +7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0199e-09 +7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2166e-09 +7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.3892e-10 +7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1747e-10 +7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.5534e-10 +7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -7.2577e-11 +7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.0201e-11 +7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.3242e-11 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.2415e-12 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -8.0059e-07 +8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.1142e-07 +8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0778e-07 +8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -9.9228e-08 +8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.6420e-08 +8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3730e-08 +8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3698e-08 +8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5628e-08 +8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1072e-08 +8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.6227e-09 +8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.9057e-09 +8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3766e-09 +8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0640e-09 +8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1833e-09 +8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2303e-10 +8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.3363e-10 +8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.5960e-10 +8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.7766e-11 +8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.1796e-11 +8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.2155e-11 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.4259e-12 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4410e-07 +9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.1745e-07 +9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1849e-07 +9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0454e-07 +9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.3535e-08 +9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3404e-08 +9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.4070e-08 +9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5077e-08 +9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0297e-08 +9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.1727e-09 +9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.9334e-09 +9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.2980e-09 +9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0061e-09 +9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2468e-09 +9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2709e-10 +9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1851e-10 +9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.6369e-10 +9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -7.1572e-11 +9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.0284e-11 +9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.2546e-11 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.2172e-12 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1308e-07 +1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0626e-07 +1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0130e-07 +1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0682e-07 +1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9190e-08 +1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5519e-08 +1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2115e-08 +1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6386e-08 +1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0490e-08 +1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4699e-09 +1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8478e-09 +1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.5072e-09 +1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0334e-09 +1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1574e-09 +1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6617e-10 +1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.4517e-10 +1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6020e-10 +1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.7418e-11 +1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1144e-11 +1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3225e-11 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.1623e-12 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1426e-07 +1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0996e-07 +1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1675e-07 +1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0736e-07 +1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3899e-08 +1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3101e-08 +1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3958e-08 +1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5237e-08 +1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0475e-08 +1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.5221e-09 +1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6109e-09 +1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2018e-09 +1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.1463e-09 +1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1783e-09 +1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8048e-10 +1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5143e-10 +1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7372e-10 +1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.8025e-11 +1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.3970e-11 +1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3702e-11 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7396e-12 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9514e-07 +1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2747e-07 +1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1724e-07 +1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0741e-07 +1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8071e-08 +1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4854e-08 +1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2527e-08 +1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5939e-08 +1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0929e-08 +1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4155e-09 +1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -5.0599e-09 +1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2736e-09 +1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0499e-09 +1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2372e-09 +1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6921e-10 +1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.4074e-10 +1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7253e-10 +1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2978e-11 +1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5433e-11 +1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3816e-11 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1119e-12 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8744e-07 +1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2208e-07 +1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0365e-07 +1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0203e-07 +1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6440e-08 +1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5426e-08 +1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3320e-08 +1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4965e-08 +1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0265e-08 +1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8924e-09 +1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9109e-09 +1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1691e-09 +1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.1508e-09 +1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2527e-09 +1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7650e-10 +1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6174e-10 +1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7837e-10 +1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.1881e-11 +1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4524e-11 +1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4820e-11 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7119e-12 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.4915e-07 +1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0927e-07 +1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0606e-07 +1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0341e-07 +1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.7220e-08 +1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3485e-08 +1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3922e-08 +1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5088e-08 +1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1097e-08 +1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1244e-09 +1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9445e-09 +1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2970e-09 +1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0352e-09 +1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1650e-09 +1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7979e-10 +1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6146e-10 +1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6978e-10 +1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6356e-11 +1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4788e-11 +1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3902e-11 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.0631e-12 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9479e-07 +1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0342e-07 +1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1337e-07 +1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0731e-07 +1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3983e-08 +1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3008e-08 +1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3696e-08 +1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5464e-08 +1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0375e-08 +1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0889e-09 +1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5793e-09 +1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2530e-09 +1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0215e-09 +1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1860e-09 +1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1424e-10 +1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7013e-10 +1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7731e-10 +1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6858e-11 +1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9152e-11 +1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6594e-11 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5469e-12 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0671e-07 +1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0884e-07 +1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0111e-07 +1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0296e-07 +1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8219e-08 +1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5335e-08 +1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3785e-08 +1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6218e-08 +1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0812e-08 +1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4356e-09 +1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5654e-09 +1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0454e-09 +1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0790e-09 +1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2781e-09 +1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1149e-10 +1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8273e-10 +1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.8300e-10 +1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8894e-11 +1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7261e-11 +1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6828e-11 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5530e-12 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8617e-07 +1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3576e-07 +1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1566e-07 +1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8715e-08 +1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8927e-08 +1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5147e-08 +1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1727e-08 +1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5801e-08 +1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0385e-08 +1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1091e-09 +1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9341e-09 +1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9796e-09 +1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0109e-09 +1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2796e-09 +1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1204e-10 +1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6283e-10 +1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9610e-10 +1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5795e-11 +1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0093e-11 +1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6469e-11 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.8775e-12 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8469e-07 +1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1724e-07 +1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9882e-07 +1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0232e-07 +1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6813e-08 +1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3096e-08 +1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2102e-08 +1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5537e-08 +1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0199e-08 +1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9526e-09 +1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5527e-09 +1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2020e-09 +1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9493e-09 +1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2235e-09 +1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.9924e-10 +1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9293e-10 +1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9412e-10 +1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.1565e-11 +1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9354e-11 +1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6604e-11 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7266e-12 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0889e-07 +1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0477e-07 +1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1579e-07 +1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0307e-07 +1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5316e-08 +1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4529e-08 +1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3592e-08 +1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5604e-08 +1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1045e-08 +1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4695e-09 +1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8139e-09 +1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0450e-09 +1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0447e-09 +1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2677e-09 +1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8369e-10 +1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8333e-10 +1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.8336e-10 +1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3256e-11 +1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7546e-11 +1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5804e-11 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3937e-12 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7865e-07 +2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0947e-07 +2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1996e-07 +2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.9345e-08 +2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8241e-08 +2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4324e-08 +2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2540e-08 +2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6106e-08 +2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0491e-08 +2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4598e-09 +2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6809e-09 +2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1030e-09 +2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9120e-09 +2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1542e-09 +2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0248e-10 +2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7303e-10 +2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9694e-10 +2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.5831e-11 +2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2955e-11 +2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8775e-11 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7758e-12 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5636e-07 +2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0367e-07 +2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0282e-07 +2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0034e-07 +2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4389e-08 +2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3443e-08 +2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.4028e-08 +2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5848e-08 +2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0978e-08 +2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9783e-09 +2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6064e-09 +2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9311e-09 +2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0053e-09 +2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2125e-09 +2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1969e-10 +2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8772e-10 +2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0032e-10 +2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.8478e-11 +2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2105e-11 +2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8102e-11 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4942e-12 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0037e-07 +2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0710e-07 +2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9962e-07 +2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0471e-07 +2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8844e-08 +2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3519e-08 +2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3075e-08 +2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4930e-08 +2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0371e-08 +2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1253e-09 +2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7401e-09 +2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0156e-09 +2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9643e-09 +2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1323e-09 +2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7065e-10 +2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7338e-10 +2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0357e-10 +2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.5229e-11 +2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1598e-11 +2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7213e-11 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5840e-12 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8518e-07 +2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1458e-07 +2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1762e-07 +2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0853e-07 +2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4191e-08 +2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5615e-08 +2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3579e-08 +2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4881e-08 +2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0107e-08 +2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7240e-09 +2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5934e-09 +2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8839e-09 +2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8258e-09 +2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1737e-09 +2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1718e-10 +2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7442e-10 +2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9267e-10 +2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0481e-11 +2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3862e-11 +2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7271e-11 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7987e-12 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9788e-07 +2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.9738e-07 +2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1707e-07 +2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0174e-07 +2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4353e-08 +2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5543e-08 +2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3359e-08 +2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5240e-08 +2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0340e-08 +2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4493e-09 +2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4290e-09 +2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9715e-09 +2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9315e-09 +2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1625e-09 +2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0420e-10 +2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7362e-10 +2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9814e-10 +2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9252e-11 +2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6690e-11 +2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9681e-11 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0898e-12 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7964e-07 +2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3202e-07 +2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0224e-07 +2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0840e-07 +2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4947e-08 +2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5580e-08 +2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3833e-08 +2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5383e-08 +2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0875e-08 +2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1878e-09 +2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6786e-09 +2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0048e-09 +2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8255e-09 +2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1622e-09 +2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.2632e-10 +2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8157e-10 +2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0364e-10 +2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9768e-11 +2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4684e-11 +2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9799e-11 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.3309e-12 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6243e-07 +2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1060e-07 +2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1324e-07 +2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0942e-07 +2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9062e-08 +2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.6328e-08 +2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2274e-08 +2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5112e-08 +2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0263e-08 +2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2048e-09 +2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6684e-09 +2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9842e-09 +2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8204e-09 +2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1176e-09 +2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7621e-10 +2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9003e-10 +2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9497e-10 +2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9834e-11 +2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4172e-11 +2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9217e-11 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4894e-12 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1068e-07 +2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0121e-07 +2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9936e-07 +2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0894e-07 +2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8701e-08 +2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5981e-08 +2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1805e-08 +2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6007e-08 +2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0151e-08 +2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0929e-09 +2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7936e-09 +2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0196e-09 +2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8200e-09 +2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1990e-09 +2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7057e-10 +2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9331e-10 +2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9662e-10 +2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.6306e-11 +2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6910e-11 +2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9048e-11 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6814e-12 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5095e-07 +2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0147e-07 +2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1320e-07 +2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0507e-07 +2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8583e-08 +2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3936e-08 +2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2902e-08 +2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4834e-08 +2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0958e-08 +2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7358e-09 +2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5729e-09 +2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0986e-09 +2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8102e-09 +2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1190e-09 +2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8130e-10 +2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0230e-10 +2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1365e-10 +2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.4959e-11 +2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.7765e-11 +2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0443e-11 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.9447e-12 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0120e-07 +3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1121e-07 +3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1676e-07 +3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.9068e-08 +3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3956e-08 +3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4102e-08 +3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1691e-08 +3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4961e-08 +3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0971e-08 +3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2874e-09 +3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6146e-09 +3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9599e-09 +3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7668e-09 +3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0907e-09 +3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0209e-10 +3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0439e-10 +3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0569e-10 +3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0902e-10 +3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6718e-11 +3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1757e-11 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7591e-12 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.2245e-07 +3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1766e-07 +3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1276e-07 +3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8659e-08 +3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5917e-08 +3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4905e-08 +3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3406e-08 +3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5803e-08 +3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0432e-08 +3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9072e-09 +3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4913e-09 +3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0441e-09 +3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8513e-09 +3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1571e-09 +3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4323e-10 +3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8172e-10 +3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0710e-10 +3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0920e-10 +3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0652e-11 +3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2441e-11 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.3953e-12 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5914e-07 +3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0590e-07 +3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1026e-07 +3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0580e-07 +3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3696e-08 +3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4335e-08 +3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1938e-08 +3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6248e-08 +3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1037e-08 +3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9424e-09 +3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6290e-09 +3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8612e-09 +3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8146e-09 +3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0958e-09 +3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5014e-10 +3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9776e-10 +3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9752e-10 +3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0123e-10 +3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.7497e-11 +3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1936e-11 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.0226e-12 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8002e-07 +3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0309e-07 +3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1243e-07 +3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8722e-08 +3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8407e-08 +3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2865e-08 +3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3290e-08 +3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6267e-08 +3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1107e-08 +3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2966e-09 +3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8511e-09 +3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0559e-09 +3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8681e-09 +3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1339e-09 +3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0902e-10 +3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8086e-10 +3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1520e-10 +3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0942e-10 +3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1007e-11 +3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2274e-11 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.1406e-12 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8631e-07 +3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2292e-07 +3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1957e-07 +3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0677e-07 +3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8359e-08 +3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4952e-08 +3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2145e-08 +3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5461e-08 +3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0076e-08 +3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8610e-09 +3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4808e-09 +3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8063e-09 +3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8463e-09 +3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1697e-09 +3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5633e-10 +3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6830e-10 +3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0343e-10 +3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9875e-11 +3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8208e-11 +3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1345e-11 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4973e-12 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1754e-07 +3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2258e-07 +3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1868e-07 +3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0875e-07 +3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6308e-08 +3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5161e-08 +3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1910e-08 +3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6170e-08 +3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0216e-08 +3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2281e-09 +3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8523e-09 +3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9813e-09 +3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8265e-09 +3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1756e-09 +3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6912e-10 +3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0579e-10 +3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1234e-10 +3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0146e-10 +3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8273e-11 +3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2667e-11 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.8514e-12 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1137e-07 +3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3330e-07 +3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1955e-07 +3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0082e-07 +3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3509e-08 +3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3227e-08 +3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.4072e-08 +3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5802e-08 +3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0957e-08 +3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8520e-09 +3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8483e-09 +3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0816e-09 +3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8304e-09 +3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1487e-09 +3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4942e-10 +3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7241e-10 +3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0259e-10 +3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0360e-10 +3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0515e-11 +3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3943e-11 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4434e-12 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8382e-07 +3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1045e-07 +3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9811e-07 +3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0675e-07 +3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4555e-08 +3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4607e-08 +3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2780e-08 +3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5688e-08 +3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0862e-08 +3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0250e-09 +3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6643e-09 +3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8800e-09 +3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8455e-09 +3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1609e-09 +3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8082e-10 +3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9151e-10 +3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0135e-10 +3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0627e-10 +3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2394e-11 +3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2716e-11 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.5431e-12 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8065e-07 +3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.9920e-07 +3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1539e-07 +3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0074e-07 +3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8904e-08 +3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5244e-08 +3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2287e-08 +3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5303e-08 +3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0297e-08 +3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2752e-09 +3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7374e-09 +3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1084e-09 +3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8884e-09 +3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1194e-09 +3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5203e-10 +3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7139e-10 +3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1821e-10 +3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1248e-10 +3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8691e-11 +3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3969e-11 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0387e-11 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9100e-07 +3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1514e-07 +3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0024e-07 +3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8926e-08 +3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6318e-08 +3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3583e-08 +3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2280e-08 +3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5750e-08 +3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0918e-08 +3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2567e-09 +3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5328e-09 +3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0641e-09 +3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9220e-09 +3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1496e-09 +3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3147e-10 +3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6579e-10 +3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0295e-10 +3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1168e-10 +3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1829e-11 +3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2118e-11 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.6094e-12 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9192e-07 +4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0951e-07 +4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1232e-07 +4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0128e-07 +4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5474e-08 +4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2808e-08 +4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2668e-08 +4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5196e-08 +4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0922e-08 +4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8719e-09 +4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5137e-09 +4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0286e-09 +4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7682e-09 +4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0904e-09 +4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.2798e-10 +4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8549e-10 +4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0007e-10 +4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1126e-10 +4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.3551e-11 +4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3614e-11 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.9045e-12 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6116e-07 +4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3783e-07 +4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1220e-07 +4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0522e-07 +4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9069e-08 +4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5995e-08 +4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3023e-08 +4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5878e-08 +4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0787e-08 +4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0719e-09 +4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7253e-09 +4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9834e-09 +4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8300e-09 +4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1563e-09 +4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3329e-10 +4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9258e-10 +4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0450e-10 +4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0420e-10 +4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0685e-11 +4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5597e-11 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0463e-11 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8814e-07 +4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1448e-07 +4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1069e-07 +4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0251e-07 +4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6326e-08 +4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4765e-08 +4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2583e-08 +4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6107e-08 +4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0239e-08 +4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7747e-09 +4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5231e-09 +4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9761e-09 +4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9233e-09 +4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1438e-09 +4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3965e-10 +4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8052e-10 +4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9967e-10 +4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1069e-10 +4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.4493e-11 +4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4908e-11 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0293e-11 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1357e-07 +4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3788e-07 +4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1568e-07 +4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8570e-08 +4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8573e-08 +4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2885e-08 +4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3873e-08 +4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6043e-08 +4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0580e-08 +4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2266e-09 +4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4413e-09 +4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9617e-09 +4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8576e-09 +4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1199e-09 +4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7703e-10 +4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8676e-10 +4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9964e-10 +4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0343e-10 +4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2798e-11 +4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3589e-11 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0990e-11 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7032e-07 +4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2674e-07 +4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1514e-07 +4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0125e-07 +4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.7696e-08 +4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3317e-08 +4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2294e-08 +4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5323e-08 +4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0291e-08 +4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4315e-09 +4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5666e-09 +4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9490e-09 +4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7452e-09 +4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1382e-09 +4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4188e-10 +4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7318e-10 +4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0430e-10 +4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0299e-10 +4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.5270e-11 +4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4977e-11 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0796e-11 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8496e-07 +4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3988e-07 +4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1497e-07 +4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0118e-07 +4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5557e-08 +4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3897e-08 +4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2305e-08 +4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4874e-08 +4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0624e-08 +4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7726e-09 +4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6823e-09 +4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0955e-09 +4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7855e-09 +4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0667e-09 +4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4703e-10 +4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9444e-10 +4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0946e-10 +4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1284e-10 +4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.3428e-11 +4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4079e-11 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1138e-11 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5207e-07 +4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3077e-07 +4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1474e-07 +4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0290e-07 +4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5168e-08 +4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4309e-08 +4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1966e-08 +4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6112e-08 +4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0518e-08 +4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1542e-09 +4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5872e-09 +4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9128e-09 +4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8474e-09 +4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1194e-09 +4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5059e-10 +4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7275e-10 +4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0510e-10 +4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0994e-10 +4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2387e-11 +4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4324e-11 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0479e-11 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.4490e-07 +4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1798e-07 +4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0216e-07 +4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0455e-07 +4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6842e-08 +4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3039e-08 +4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2369e-08 +4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5151e-08 +4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0363e-08 +4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7402e-09 +4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4977e-09 +4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9794e-09 +4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7380e-09 +4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0720e-09 +4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5658e-10 +4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6088e-10 +4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9536e-10 +4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1364e-10 +4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1748e-11 +4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5813e-11 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1181e-11 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7036e-07 +4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2440e-07 +4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1315e-07 +4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0759e-07 +4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6370e-08 +4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4273e-08 +4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3083e-08 +4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5439e-08 +4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0881e-08 +4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2692e-09 +4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5033e-09 +4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0971e-09 +4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8441e-09 +4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0731e-09 +4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4843e-10 +4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7600e-10 +4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1382e-10 +4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1043e-10 +4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.6514e-11 +4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5235e-11 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1839e-11 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1332e-07 +4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0359e-07 +4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0437e-07 +4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0797e-07 +4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4215e-08 +4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5073e-08 +4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2827e-08 +4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4798e-08 +4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0607e-08 +4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1498e-09 +4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4001e-09 +4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9405e-09 +4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7516e-09 +4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1079e-09 +4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5714e-10 +4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5429e-10 +4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0384e-10 +4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0346e-10 +4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.7344e-11 +4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4381e-11 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1649e-11 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6372e-07 +5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2459e-07 +5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9994e-07 +5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0741e-07 +5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3795e-08 +5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5725e-08 +5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3787e-08 +5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5964e-08 +5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0825e-08 +5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9153e-09 +5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7755e-09 +5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9212e-09 +5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7959e-09 +5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0505e-09 +5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6785e-10 +5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5385e-10 +5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1325e-10 +5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0502e-10 +5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.5700e-11 +5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4573e-11 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1504e-11 From 8cbfac94fee879154e355735a9026206337f8869 Mon Sep 17 00:00:00 2001 From: "Devin C. Cowan" Date: Tue, 15 Sep 2020 11:24:00 -0700 Subject: [PATCH 24/54] Rename KnownSystems.py to known_systems.py --- simpegEM1D/{KnownSystems.py => known_systems.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpegEM1D/{KnownSystems.py => known_systems.py} (100%) diff --git a/simpegEM1D/KnownSystems.py b/simpegEM1D/known_systems.py similarity index 100% rename from simpegEM1D/KnownSystems.py rename to simpegEM1D/known_systems.py From 1246979fbfa4c4a2b6bd28ac28646c82e0ffc589 Mon Sep 17 00:00:00 2001 From: "Devin C. Cowan" Date: Tue, 15 Sep 2020 11:24:24 -0700 Subject: [PATCH 25/54] Rename KnownWaveforms.py to known_waveforms.py --- simpegEM1D/{KnownWaveforms.py => known_waveforms.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpegEM1D/{KnownWaveforms.py => known_waveforms.py} (100%) diff --git a/simpegEM1D/KnownWaveforms.py b/simpegEM1D/known_waveforms.py similarity index 100% rename from simpegEM1D/KnownWaveforms.py rename to simpegEM1D/known_waveforms.py From e027b1fbe052883097cf13f8c3a7e384b902ca33 Mon Sep 17 00:00:00 2001 From: "Devin C. Cowan" Date: Tue, 15 Sep 2020 11:24:47 -0700 Subject: [PATCH 26/54] Rename Regularization.py to regularization.py --- simpegEM1D/{Regularization.py => regularization.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpegEM1D/{Regularization.py => regularization.py} (100%) diff --git a/simpegEM1D/Regularization.py b/simpegEM1D/regularization.py similarity index 100% rename from simpegEM1D/Regularization.py rename to simpegEM1D/regularization.py From 79d5e767a689bbb304f27547d27abff13d96a5db Mon Sep 17 00:00:00 2001 From: "Devin C. Cowan" Date: Tue, 15 Sep 2020 11:25:06 -0700 Subject: [PATCH 27/54] Rename Survey.py to survey.py --- simpegEM1D/{Survey.py => survey.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpegEM1D/{Survey.py => survey.py} (100%) diff --git a/simpegEM1D/Survey.py b/simpegEM1D/survey.py similarity index 100% rename from simpegEM1D/Survey.py rename to simpegEM1D/survey.py From 52b51565d92405897d1051b2c2213d9a3af17f9c Mon Sep 17 00:00:00 2001 From: "Devin C. Cowan" Date: Tue, 15 Sep 2020 11:25:20 -0700 Subject: [PATCH 28/54] Rename Waveforms.py to waveforms.py --- simpegEM1D/{Waveforms.py => waveforms.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename simpegEM1D/{Waveforms.py => waveforms.py} (100%) diff --git a/simpegEM1D/Waveforms.py b/simpegEM1D/waveforms.py similarity index 100% rename from simpegEM1D/Waveforms.py rename to simpegEM1D/waveforms.py From 6c9ca5dff0015320f71f5be0c1d29e9e1c6139e2 Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 16 Sep 2020 16:16:32 -0700 Subject: [PATCH 29/54] At source-receiver offset to forward modeling --- ...KEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll | Bin 0 -> 66515 bytes simpegEM1D/__init__.py | 4 +- simpegEM1D/receivers.py | 19 +- simpegEM1D/simulation.py | 27 +- simpegEM1D/sources.py | 20 +- simpegEM1D/survey.py | 2 +- tutorials/assets/em1dfm_stitched_data.obs | 600 +++++++++--------- tutorials/plot_1_fdem_fwd_height.py | 166 +++++ tutorials/plot_2_fdem_fwd_stitched_height.py | 262 ++++++++ 9 files changed, 780 insertions(+), 320 deletions(-) create mode 100644 simpegEM1D/.libs/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll create mode 100644 tutorials/plot_1_fdem_fwd_height.py create mode 100644 tutorials/plot_2_fdem_fwd_stitched_height.py diff --git a/simpegEM1D/.libs/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll b/simpegEM1D/.libs/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll new file mode 100644 index 0000000000000000000000000000000000000000..1b5b93e93539604adf3e2f919c4a7339b839e3c5 GIT binary patch literal 66515 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 literal 0 HcmV?d00001 diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index 56f7856..5acaae9 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -28,13 +28,13 @@ # from .receivers import HarmonicPointReceiver, TimeDomainPointReceiver # from .RTEfun import rTEfunfwd, rTEfunjac -from .KnownWaveforms import ( +from .known_waveforms import ( skytem_HM_2015, skytem_LM_2015, butter_lowpass_filter, butterworth_type_filter, piecewise_pulse, get_geotem_wave, get_nanotem_wave, get_flight_direction_from_fiducial, get_rx_locations_from_flight_direction ) -from .KnownSystems import( +from .known_systems import( vtem_plus, skytem_hm, skytem_lm, diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 3b8819f..18c2e1c 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -30,7 +30,13 @@ class HarmonicPointReceiver(BaseRx): } ) - def __init__(self, locations=None, frequencies=None, orientation=None, field_type=None, component=None, **kwargs): + use_source_receiver_offset = properties.Bool( + "Use source-receiver offset", + default=False + ) + + + def __init__(self, locations=None, frequencies=None, orientation=None, field_type=None, component=None, use_source_receiver_offset=None, **kwargs): super(HarmonicPointReceiver, self).__init__(locations, **kwargs) if frequencies is not None: @@ -41,6 +47,8 @@ def __init__(self, locations=None, frequencies=None, orientation=None, field_typ self.component = component if field_type is not None: self.field_type = field_type + if use_source_receiver_offset is not None: + self.use_source_receiver_offset = use_source_receiver_offset @@ -70,9 +78,14 @@ class TimeDomainPointReceiver(BaseTimeRx): "Full time interval", dtype=float, shape=("*",) ) + use_source_receiver_offset = properties.Bool( + "Use source-receiver offset", + default=False + ) + - def __init__(self, locations=None, times=None, orientation=None, component=None, **kwargs): + def __init__(self, locations=None, times=None, orientation=None, component=None, use_source_receiver_offset=None, **kwargs): super(TimeDomainPointReceiver, self).__init__(locations, times, **kwargs) @@ -80,6 +93,8 @@ def __init__(self, locations=None, times=None, orientation=None, component=None, self.orientation = orientation if component is not None: self.component = component + if use_source_receiver_offset is not None: + self.use_source_receiver_offset = use_source_receiver_offset # Required static property self.field_type = "secondary" diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 3be659f..3afdbb0 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -14,7 +14,7 @@ from empymod.transform import dlf, fourier_dlf, get_dlf_points from empymod.utils import check_hankel -from .KnownWaveforms import ( +from .known_waveforms import ( piecewise_pulse_fast, butterworth_type_filter, butter_lowpass_filter ) @@ -216,7 +216,7 @@ def compute_integral(self, m, output_type='response'): n_layer = self.n_layer - # Source heights + # Source height above topography if self.hMap is not None: h_vector = self.h else: @@ -248,16 +248,21 @@ def compute_integral(self, m, output_type='response'): # Compute receiver height h = h_vector[ii] - z = h + src.location[2] - rx.locations[2] + if rx.use_source_receiver_offset: + z = h + rx.locations[2] + else: + z = h + rx.locations[2] - src.location[2] + if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): # Radial distance - r = src.location[0:2] - rx.locations[0:2] - r = np.sqrt(np.sum(r**2)) - -# if r > 0.01: + if rx.use_source_receiver_offset: + r = rx.locations[0:2] + else: + r = rx.locations[0:2] - src.location[0:2] + r = np.sqrt(np.sum(r**2)) r_vec = r * np.ones(n_frequency) # Use function from empymod @@ -307,7 +312,11 @@ def compute_integral(self, m, output_type='response'): elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): # radial distance and loop radius - r = src.location[0:2] - rx.locations[0:2] + if rx.use_source_receiver_offset: + r = rx.locations[0:2] + else: + r = rx.locations[0:2] - src.location[0:2] + r_vec = np.sqrt(np.sum(r**2)) * np.ones(n_frequency) a_vec = src.a * np.ones(n_frequency) @@ -511,7 +520,7 @@ def projectFields(self, u): if rx.field_type != "secondary": - u_primary = src.PrimaryField(rx.locations) + u_primary = src.PrimaryField(rx.locations, rx.use_source_receiver_offset) if rx.field_type == "ppm": k = [comp == rx.orientation for comp in ["x", "y", "z"]] diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index b1b36d5..b18e8ad 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -66,12 +66,16 @@ def __init__(self, receiver_list=None, **kwargs): super(HarmonicMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) - def PrimaryField(self, xyz): + def PrimaryField(self, xyz, is_offset=False): - # Could be generalizable in future + # xyz is np.array(N, 3) with receiver locations + # is_offet defines whether rx positions or absolute of source-receiver offset I = self.I - r0 = self.location + if is_offset: + r0 = np.zeros(3) + else: + r0 = self.location if self.orientation == "x": m = np.r_[1., 0., 0.] @@ -98,13 +102,17 @@ def __init__(self, receiver_list=None, **kwargs): super(HarmonicHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) - def PrimaryField(self, xyz): + def PrimaryField(self, is_offset=False): - # Could be generalizable in the future + # xyz is np.array(N, 3) with receiver locations + # is_offet defines whether rx positions or absolute of source-receiver offset - r0 = self.location a = self.a I = self.I + if is_offset: + r0 = np.zeros(3) + else: + r0 = self.location theta = 0. # Azimuthal alpha = 0. # Declination diff --git a/simpegEM1D/survey.py b/simpegEM1D/survey.py index 742d089..5ddc631 100644 --- a/simpegEM1D/survey.py +++ b/simpegEM1D/survey.py @@ -14,7 +14,7 @@ from empymod import filters from empymod.utils import check_time from empymod.transform import fourier_dlf -from .KnownWaveforms import ( +from .known_waveforms import ( piecewise_pulse_fast, butterworth_type_filter, butter_lowpass_filter ) diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index 3861fe6..a45efcf 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.4883e+01 9.0662e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.7760e+02 9.0433e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5491e+03 3.3352e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3279e+01 2.2137e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.4508e+02 6.5579e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2059e+03 2.3090e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6272e+01 9.1811e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5813e+02 8.9487e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4235e+03 3.3411e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.0041e+01 2.1258e+02 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4005e+02 6.4878e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2682e+03 2.3369e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5178e+01 9.5565e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5361e+02 9.0483e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5459e+03 3.3759e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2516e+01 2.2384e+02 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3412e+02 6.6794e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2835e+03 2.2897e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7760e+01 1.0614e+02 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9004e+02 8.4099e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4703e+03 3.2712e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2170e+01 2.3232e+02 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2691e+02 6.5291e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2225e+03 2.3297e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7519e+01 1.0783e+02 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1081e+02 8.4845e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4927e+03 3.3456e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.8739e+01 2.3768e+02 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3495e+02 6.5965e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2370e+03 2.1819e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7823e+01 1.0657e+02 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0382e+02 8.7518e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4224e+03 3.5382e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7388e+01 2.2228e+02 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5173e+02 6.1839e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2897e+03 2.2212e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7557e+01 1.1045e+02 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1386e+02 8.7563e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4700e+03 3.4434e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5876e+01 2.3780e+02 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1605e+02 6.0047e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2539e+03 2.2317e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0285e+01 1.2636e+02 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2806e+02 8.3777e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4852e+03 3.3489e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0055e+01 2.4164e+02 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4139e+02 6.2375e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2599e+03 2.3216e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1156e+01 1.1554e+02 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0317e+02 8.2337e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4998e+03 3.2845e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.6365e+01 2.2433e+02 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2949e+02 6.0521e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2728e+03 2.3245e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0265e+01 1.1908e+02 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0896e+02 8.4735e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4349e+03 3.2739e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2644e+01 2.2546e+02 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1537e+02 6.5346e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2493e+03 2.2925e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0860e+01 1.1818e+02 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1924e+02 8.6293e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5024e+03 3.2995e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6772e+01 2.4197e+02 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0594e+02 6.3674e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2970e+03 2.1843e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0460e+01 1.2196e+02 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1491e+02 8.6673e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4665e+03 3.5096e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6998e+01 2.2431e+02 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3539e+02 6.2736e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2770e+03 2.1648e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2993e+01 1.2947e+02 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0479e+02 8.7089e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4696e+03 3.2397e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8177e+01 2.3519e+02 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2205e+02 6.3680e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1975e+03 2.2252e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1941e+01 1.3399e+02 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0230e+02 8.4806e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5547e+03 3.4937e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7600e+01 2.3774e+02 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0417e+02 6.2266e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2657e+03 2.1819e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3460e+01 1.2813e+02 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2711e+02 8.7336e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5356e+03 3.2903e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8160e+01 2.4571e+02 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1158e+02 6.2126e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2031e+03 2.2077e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3257e+01 1.3776e+02 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0059e+02 8.3858e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4643e+03 3.2507e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9571e+01 2.3834e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9635e+02 6.6082e+02 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2538e+03 2.3491e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3186e+01 1.3139e+02 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2860e+02 8.3999e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4405e+03 3.2325e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7847e+01 2.3056e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2950e+02 6.1413e+02 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2962e+03 2.1526e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3088e+01 1.2604e+02 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3227e+02 8.5369e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4671e+03 3.2667e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6477e+01 2.3512e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2540e+02 6.3369e+02 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2389e+03 2.2225e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6695e+01 1.3967e+02 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0226e+02 8.4436e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4150e+03 3.3708e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3167e+01 2.4106e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8917e+02 6.2684e+02 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2558e+03 2.1517e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4725e+01 1.4385e+02 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0114e+02 8.3905e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4643e+03 3.2939e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1749e+01 2.4010e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0233e+02 6.3512e+02 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1964e+03 2.2116e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4599e+01 1.3878e+02 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3226e+02 8.4864e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4981e+03 3.5218e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9347e+01 2.2895e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9765e+02 6.0502e+02 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2054e+03 2.1975e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6720e+01 1.4071e+02 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0178e+02 8.4236e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4469e+03 3.4476e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1929e+01 2.3633e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1969e+02 6.1908e+02 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2256e+03 2.2015e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5665e+01 1.4030e+02 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1729e+02 8.7013e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4933e+03 3.2447e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3177e+01 2.4966e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9069e+02 6.4490e+02 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2060e+03 2.3472e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5420e+01 1.3453e+02 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3030e+02 8.2484e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4421e+03 3.4446e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3039e+01 2.4811e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0290e+02 6.5678e+02 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2122e+03 2.3515e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8923e+01 1.4341e+02 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3558e+02 8.2123e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4281e+03 3.3192e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6041e+01 2.4529e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9075e+02 6.2591e+02 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2983e+03 2.2861e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7628e+01 1.5261e+02 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0308e+02 8.3668e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5399e+03 3.3671e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8456e+01 2.2751e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8771e+02 6.1118e+02 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2115e+03 2.2521e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7337e+01 1.5074e+02 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1052e+02 8.4690e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5481e+03 3.2633e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5655e+01 2.3204e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9775e+02 6.4243e+02 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2689e+03 2.3261e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7211e+01 1.4931e+02 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0308e+02 8.2068e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5123e+03 3.3121e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6956e+01 2.4010e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1702e+02 6.2913e+02 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2840e+03 2.3207e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7767e+01 1.4581e+02 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3014e+02 8.5517e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4875e+03 3.3759e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8491e+01 2.3194e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0824e+02 6.0743e+02 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2908e+03 2.2593e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7973e+01 1.4321e+02 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2019e+02 8.9672e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4259e+03 3.4974e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8246e+01 2.2737e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9083e+02 6.4974e+02 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2669e+03 2.3456e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9005e+01 1.4175e+02 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3313e+02 8.2459e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4691e+03 3.3508e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2254e+01 2.4954e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8263e+02 6.3961e+02 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2647e+03 2.1773e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1021e+01 1.5623e+02 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9972e+02 8.6357e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4336e+03 3.3847e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3517e+01 2.3505e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0398e+02 6.5857e+02 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2468e+03 2.2417e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0153e+01 1.4523e+02 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3223e+02 8.7956e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5346e+03 3.5027e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8212e+01 2.4634e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0694e+02 6.5026e+02 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2707e+03 2.2491e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2088e+01 1.4820e+02 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1530e+02 8.2893e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4993e+03 3.4551e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7853e+01 2.4435e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0968e+02 6.5830e+02 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2526e+03 2.2769e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9637e+01 1.5084e+02 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9698e+02 8.2281e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4271e+03 3.4166e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9025e+01 2.4421e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0547e+02 6.2047e+02 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.2076e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1229e+01 1.5631e+02 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1561e+02 8.3811e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4432e+03 3.4392e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3441e+01 2.3833e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1428e+02 6.2494e+02 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1906e+03 2.2297e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1567e+01 1.5808e+02 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2893e+02 8.9693e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4539e+03 3.4814e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8454e+01 2.4544e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1331e+02 6.4513e+02 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2572e+03 2.2889e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9449e+01 1.5875e+02 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9791e+02 8.2605e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5196e+03 3.5059e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6010e+01 2.3121e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9493e+02 6.3546e+02 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2134e+03 2.3236e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2841e+01 1.5399e+02 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2308e+02 8.8214e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4670e+03 3.4918e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4701e+01 2.4507e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8406e+02 6.0366e+02 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2019e+03 2.2127e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1545e+01 1.6181e+02 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1434e+02 8.5339e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5417e+03 3.4677e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0213e+02 2.4060e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1001e+02 6.1629e+02 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2653e+03 2.2573e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2700e+01 1.5937e+02 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0850e+02 8.2275e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5254e+03 3.3493e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0157e+02 2.2468e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8413e+02 6.5237e+02 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2675e+03 2.3366e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1493e+01 1.5038e+02 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2426e+02 8.3839e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5066e+03 3.3265e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4505e+01 2.2697e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8740e+02 6.4272e+02 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2934e+03 2.2363e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3489e+01 1.5967e+02 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2428e+02 8.3389e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5205e+03 3.4209e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3741e+01 2.3517e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8074e+02 6.5899e+02 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2221e+03 2.3103e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2242e+01 1.5333e+02 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0882e+02 8.4274e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4188e+03 3.2871e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9256e+01 2.4489e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0115e+02 6.3698e+02 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2302e+03 2.2096e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3312e+01 1.5115e+02 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9417e+02 8.8120e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4250e+03 3.3576e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7712e+01 2.2484e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8340e+02 6.1584e+02 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2914e+03 2.2966e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2623e+01 1.5099e+02 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1105e+02 8.6265e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4232e+03 3.2622e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5715e+01 2.4483e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1283e+02 6.4122e+02 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2480e+03 2.1525e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3648e+01 1.5163e+02 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9479e+02 8.6925e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4591e+03 3.5030e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6671e+01 2.3184e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1201e+02 6.5691e+02 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2742e+03 2.2032e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5835e+01 1.5367e+02 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9406e+02 8.3811e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4626e+03 3.4658e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6252e+01 2.3411e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9632e+02 6.2239e+02 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2080e+03 2.2142e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5984e+01 1.5969e+02 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2378e+02 8.6915e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5474e+03 3.4472e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0035e+02 2.2575e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0974e+02 6.5704e+02 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2278e+03 2.3173e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3608e+01 1.6083e+02 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0022e+02 8.3101e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4357e+03 3.2730e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4979e+01 2.4048e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8398e+02 6.0641e+02 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2005e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6397e+00 1.1226e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 5.7521e+01 3.6094e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.3370e+03 3.4142e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 1.8810e+01 7.2122e+01 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.1721e+02 7.3964e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5327e+03 2.2304e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5767e+00 1.1174e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0454e+01 3.5843e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2917e+03 3.6264e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9335e+01 6.8391e+01 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2360e+02 7.4173e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6449e+03 2.2171e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7047e+00 1.0939e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8629e+01 3.5626e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3613e+03 3.5162e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9035e+01 7.2684e+01 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2658e+02 7.2560e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5502e+03 2.2217e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6946e+00 1.1144e+01 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0648e+01 3.4977e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4044e+03 3.5310e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8676e+01 7.2297e+01 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2958e+02 6.9815e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5961e+03 2.3062e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5704e+00 1.0739e+01 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9007e+01 3.6268e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3721e+03 3.3380e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9531e+01 7.1795e+01 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2908e+02 7.3460e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5884e+03 2.2185e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6379e+00 1.0528e+01 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0582e+01 3.5681e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2978e+03 3.3085e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9496e+01 6.7050e+01 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2169e+02 7.0162e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6228e+03 2.2502e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6711e+00 1.0606e+01 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.2378e+01 3.4490e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4020e+03 3.5840e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8569e+01 6.8460e+01 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1616e+02 7.5065e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5506e+03 2.3117e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6337e+00 1.1146e+01 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.2124e+01 3.3657e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3572e+03 3.3029e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8915e+01 6.8559e+01 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1736e+02 7.1702e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6512e+03 2.3080e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6406e+00 1.1321e+01 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0192e+01 3.4103e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3149e+03 3.5796e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9659e+01 7.1649e+01 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2541e+02 7.4539e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6483e+03 2.1695e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6111e+00 1.0735e+01 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.7285e+01 3.3483e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3453e+03 3.3192e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 2.0077e+01 7.0383e+01 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1641e+02 7.4489e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5401e+03 2.2154e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6404e+00 1.1129e+01 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0291e+01 3.5581e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4086e+03 3.5346e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9484e+01 7.2966e+01 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1730e+02 7.2237e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6328e+03 2.3411e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7153e+00 1.0663e+01 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0431e+01 3.5300e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3742e+03 3.3894e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8727e+01 7.2310e+01 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1786e+02 7.4536e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5224e+03 2.2505e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5792e+00 1.1159e+01 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.7883e+01 3.4601e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3264e+03 3.4805e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9063e+01 7.0914e+01 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2779e+02 7.1971e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6052e+03 2.3236e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6246e+00 1.0311e+01 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.1819e+01 3.4197e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3328e+03 3.3128e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0124e+01 6.8624e+01 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2504e+02 7.4962e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5819e+03 2.3222e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7128e+00 1.1253e+01 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0556e+01 3.4277e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3423e+03 3.5423e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9619e+01 7.1467e+01 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2998e+02 7.0678e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6260e+03 2.1378e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.0681e+01 3.1437e+02 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1312e+03 3.0565e+03 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4723e+03 6.8701e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3793e+02 6.2911e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3622e+03 2.1620e+03 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0259e+03 1.2928e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2519e+01 2.9319e+02 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0476e+03 3.0319e+03 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3286e+03 7.0824e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2383e+02 6.5118e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3851e+03 2.0958e+03 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0034e+03 1.3525e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1474e+01 3.1179e+02 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0482e+03 3.0610e+03 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4286e+03 7.4707e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2379e+02 6.7163e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3823e+03 2.1963e+03 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0951e+03 1.3803e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2727e+01 3.1126e+02 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1148e+03 3.0280e+03 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.2666e+03 7.3532e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2383e+02 6.3915e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4178e+03 2.2884e+03 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0901e+03 1.3059e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2956e+01 2.9546e+02 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0593e+03 2.9909e+03 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4474e+03 7.3071e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3017e+02 6.4662e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4347e+03 2.1289e+03 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1096e+03 1.3882e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.5601e+01 3.1844e+02 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1326e+03 3.1494e+03 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4047e+03 6.8836e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2360e+02 6.3168e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4389e+03 2.0975e+03 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0235e+03 1.3440e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.9116e+01 3.1303e+02 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1056e+03 3.2218e+03 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6613e+03 7.0136e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.4237e+02 6.4783e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4203e+03 2.1216e+03 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.9949e+03 1.3515e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.3209e+01 2.9558e+02 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1125e+03 3.2252e+03 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4579e+03 7.3786e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3728e+02 6.4602e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3534e+03 2.1932e+03 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0629e+03 1.3753e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4751e+01 2.2090e+02 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8977e+02 3.1430e+03 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4235e+03 7.1916e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0174e+02 6.2351e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.5306e+03 2.2028e+03 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0009e+03 1.3938e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.3988e+01 3.0429e+02 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0674e+03 3.1060e+03 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3587e+03 6.8930e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2672e+02 6.3615e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3608e+03 2.2137e+03 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1109e+03 1.4067e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8817e+01 1.3627e+02 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0124e+02 1.2672e+03 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1383e+03 5.8903e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0081e+02 2.7815e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 5.7990e+02 1.4979e+03 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2023e+03 1.9836e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6048e+01 3.2081e+02 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0425e+03 3.0738e+03 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6859e+03 6.8903e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2490e+02 6.7030e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3566e+03 2.2579e+03 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0614e+03 1.3879e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.6355e+01 1.8706e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.5833e+02 1.4915e+03 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2164e+03 5.4555e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.3745e+02 3.3582e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 7.0255e+02 1.3916e+03 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2401e+03 2.0943e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9034e+01 2.1746e+02 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0587e+03 3.1127e+03 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7349e+03 7.2602e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9514e+02 6.4843e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.5089e+03 2.2272e+03 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1360e+03 1.3383e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.3786e+01 2.5179e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2349e+02 2.1327e+03 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.6225e+03 5.7243e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8205e+02 4.8548e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 9.2811e+02 1.3863e+03 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6584e+03 1.8632e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0331e+01 6.3833e+01 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7841e+02 1.2803e+03 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2831e+03 5.6870e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1147e+01 2.3509e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1116e+02 1.5916e+03 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2886e+03 1.9426e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.2621e+01 3.0004e+02 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8635e+02 2.9229e+03 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 4.6977e+03 6.4597e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.1052e+02 6.0314e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3257e+03 1.9800e+03 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.8627e+03 1.2587e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.2182e+01 6.5351e+01 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0138e+02 1.2543e+03 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2267e+03 5.4063e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1700e+01 2.2785e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4708e+02 1.4840e+03 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1878e+03 2.0619e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6779e+01 2.1047e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0200e+03 3.2417e+03 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4669e+03 7.5118e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9101e+02 6.5248e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4897e+03 2.2799e+03 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0186e+03 1.3288e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.3769e+01 6.2439e+01 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7983e+02 1.2556e+03 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2089e+03 5.8666e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1299e+01 2.2064e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6772e+02 1.4960e+03 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2010e+03 2.0912e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1025e+01 6.3816e+01 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7886e+02 1.2715e+03 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3734e+03 5.6691e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7386e+01 2.2459e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3318e+02 1.4749e+03 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2398e+03 1.9643e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0890e+01 6.3781e+01 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9116e+02 1.2440e+03 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1519e+03 5.4766e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1125e+01 2.3997e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2788e+02 1.5486e+03 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2918e+03 2.0112e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0499e+01 6.4864e+01 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0478e+02 1.2465e+03 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3677e+03 5.8922e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8304e+01 2.3412e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2213e+02 1.4975e+03 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1377e+03 1.9633e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0930e+01 6.1255e+01 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0398e+02 1.2149e+03 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3696e+03 5.6958e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9102e+01 2.3032e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5755e+02 1.5095e+03 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2547e+03 2.0110e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0312e+01 6.1988e+01 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0052e+02 1.2397e+03 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3868e+03 5.6474e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7277e+01 2.2834e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4378e+02 1.5144e+03 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1168e+03 1.9951e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0392e+01 6.0466e+01 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8475e+02 1.2147e+03 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4096e+03 5.7755e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7942e+01 2.4027e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6488e+02 1.5050e+03 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1728e+03 2.0545e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1082e+01 6.0318e+01 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8160e+02 1.2117e+03 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1688e+03 5.5160e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1434e+01 2.4289e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4225e+02 1.5223e+03 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1476e+03 2.0491e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1129e+01 6.5816e+01 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9122e+02 1.2457e+03 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4160e+03 5.7764e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0102e+01 2.2621e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.0874e+02 1.5326e+03 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2144e+03 2.0466e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0850e+01 6.1881e+01 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9259e+02 1.2823e+03 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1287e+03 5.6770e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9228e+01 2.4047e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4178e+02 1.5165e+03 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1904e+03 1.9390e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0897e+01 6.0940e+01 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9521e+02 1.2905e+03 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2360e+03 5.5233e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1819e+01 2.3971e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4847e+02 1.5564e+03 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1472e+03 1.9514e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1279e+01 6.0477e+01 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8035e+02 1.2727e+03 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3047e+03 5.4251e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6629e+01 2.4084e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1080e+02 1.4936e+03 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2296e+03 1.9380e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0929e+01 6.1619e+01 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0069e+02 1.2116e+03 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4125e+03 5.4874e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0076e+01 2.3601e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3995e+02 1.5742e+03 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2864e+03 1.9622e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0558e+01 6.0617e+01 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0293e+02 1.2342e+03 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1257e+03 5.9097e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0594e+01 2.3027e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2548e+02 1.5758e+03 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1155e+03 1.9795e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0716e+01 6.1329e+01 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8254e+02 1.2687e+03 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3143e+03 5.9279e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8381e+01 2.2745e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3308e+02 1.5917e+03 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1512e+03 2.0109e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0705e+01 6.0644e+01 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8241e+02 1.2614e+03 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1259e+03 5.6166e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7375e+01 2.3703e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3295e+02 1.4960e+03 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1718e+03 1.9227e+03 diff --git a/tutorials/plot_1_fdem_fwd_height.py b/tutorials/plot_1_fdem_fwd_height.py new file mode 100644 index 0000000..f9f67a6 --- /dev/null +++ b/tutorials/plot_1_fdem_fwd_height.py @@ -0,0 +1,166 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +from matplotlib import pyplot as plt +from discretize import TensorMesh + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D.utils import plotLayer + +plt.rcParams.update({'font.size': 16}) +save_file = False + +##################################################################### +# Create Survey +# ------------- +# +# + +h = 30. # source +source_location = np.array([0., 0., 30.]) # Third entry will be redundant +source_current = 1. +source_radius = 5. + +source_receiver_offset = np.array([10., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "ppm" # "secondary", "total" or "ppm" + +frequencies = np.array([382, 1822, 7970, 35920, 130100], dtype=float) + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + source_receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real", use_source_receiver_offset=True + ) +) +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + source_receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag", use_source_receiver_offset=True + ) +) + +source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) +] + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Physical properties +background_conductivity = 1e-1 +layer_conductivity = 1e0 + +# Layer thicknesses +thicknesses = np.array([20., 40.]) +n_layer = len(thicknesses) + 1 + +# physical property models +model = background_conductivity*np.ones(n_layer) +model[1] = layer_conductivity + +# add source heigh to model +model = np.r_[model, h] + +# Define a mapping for conductivities +wires = maps.Wires(('sigma', n_layer),('h', 1)) +sigma_map = wires.sigma +h_map = wires.h + +# Plot conductivity model +plotting_mesh = TensorMesh([np.r_[thicknesses, 40.]]) +plotLayer(model[0:-1], plotting_mesh, showlayers=False) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, hMap=h_map, +) + +dpred = simulation.dpred(model) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dpred[0:len(frequencies)]), 'k-o', lw=3, ms=10) +ax.loglog(frequencies, np.abs(dpred[len(frequencies):]), 'k:o', lw=3, ms=10) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["Real", "Imaginary"]) + +if save_file == True: + + noise = 0.05*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_data.obs' + np.savetxt( + fname, + np.c_[frequencies, dpred[0:len(frequencies)], dpred[len(frequencies):]], + fmt='%.4e' + ) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_2_fdem_fwd_stitched_height.py b/tutorials/plot_2_fdem_fwd_stitched_height.py new file mode 100644 index 0000000..56b980b --- /dev/null +++ b/tutorials/plot_2_fdem_fwd_stitched_height.py @@ -0,0 +1,262 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG import maps +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency + +plt.rcParams.update({'font.size': 16}) +save_file = True + + +##################################################################### +# topography +# ------------- +# +# +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +##################################################################### +# Create Survey +# ------------- +# +# +x = np.linspace(50,5050,50) +#x = np.linspace(50,250,3) +n_sounding = len(x) + +source_heights = 30.*np.ones(n_sounding) +source_locations = np.c_[x, np.zeros(n_sounding), 30 *np.ones(n_sounding)] +source_current = 1. +source_radius = 5. + +source_receiver_offsets = np.c_[10.*np.ones(n_sounding), np.zeros(n_sounding), np.zeros(n_sounding)] +receiver_orientation = "z" # "x", "y" or "z" +field_type = "ppm" # "secondary", "total" or "ppm" + +frequencies = np.array([25., 100., 382, 1822, 7970, 35920], dtype=float) + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(source_receiver_offsets[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real", use_source_receiver_offset=True + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag", use_source_receiver_offset=True + ) + ) + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + +############################################### +# Defining a Model +# ---------------------- +# + +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +model = np.ones(mesh.nC) * background_conductivity + +layer_ind = mesh.gridCC[:, -1] < 30. +model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 130.] +x3 = np.r_[0., 50.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh, pts) +model[poly_inds] = slope_conductivity + +# model = model.reshape(mesh.vnC, order='F').flatten() +chi = np.zeros_like(model) + +fig = plt.figure(figsize=(9, 3)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod = np.log10(model) + +mesh.plotImage( + log_mod, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + +ax1.set_title("Conductivity Model") +ax1.set_xlabel("x (m)") +ax1.set_ylabel("z (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + +model = np.r_[np.log(model), source_heights] + +wires = maps.Wires(('sigma', mesh.nC),('h', n_sounding)) +sigma_map = maps.ExpMap(mesh) * wires.sigma +h_map = wires.h + + +####################################################################### +# Define the Forward Simulation and Predict Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=sigma_map, hMap=h_map, chi=chi, hz=hz, topo=topo, + parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver +) + +dpred = simulation.dpred(model) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +d = np.reshape(dpred, (n_sounding, 2*len(frequencies))).T + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, n_sounding): + ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) + ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) + +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["real", "imaginary"]) + +# +#d = np.reshape(dpred, (n_sounding, 2*len(frequencies))) +#fig = plt.figure(figsize = (10, 5)) +#ax1 = fig.add_subplot(121) +#ax2 = fig.add_subplot(122) +# +#for ii in range(0, n_sounding): +# ax1.semilogy(x, np.abs(d[:, 0:len(frequencies)]), 'k-', lw=2) +# ax2.semilogy(x, np.abs(d[:, len(frequencies):]), 'k--', lw=2) + + + +if save_file == True: + + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' + + loc = np.repeat(source_locations, len(frequencies), axis=0) + fvec = np.kron(np.ones(n_sounding), frequencies) + dout = np.c_[dpred[0::2], dpred[1::2]] + + np.savetxt( + fname, + np.c_[loc, fvec, dout], + fmt='%.4e' + ) + + + + + + + + + + + + + + + + + + + + + + + From b4227cbf9c991c2857408d00d51a0c22e6931281 Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 18 Sep 2020 15:20:30 -0700 Subject: [PATCH 30/54] Fix bugs for half space case. Add horizontal component of VMD source to tests. --- simpegEM1D/analytics.py | 45 +- simpegEM1D/simulation.py | 13 +- simpegEM1D/simulation_stitched1d.py | 32 +- simpegEM1D/supporting_functions/kernels.py | 35 +- tests/testEM1D_FD_fwd.py | 96 ++- tests/testGlobalEM1D_FD_jac_layers.py | 34 +- tutorials/assets/em1dfm_stitched_data.obs | 600 +++++++++---------- tutorials/plot_1_fdem_fwd.py | 2 +- tutorials/plot_1_fdem_inv_height.py | 390 ++++++++++++ tutorials/plot_2_fdem_inv_stitched_height.py | 472 +++++++++++++++ 10 files changed, 1358 insertions(+), 361 deletions(-) create mode 100644 tutorials/plot_1_fdem_inv_height.py create mode 100644 tutorials/plot_2_fdem_inv_stitched_height.py diff --git a/simpegEM1D/analytics.py b/simpegEM1D/analytics.py index 9b89204..563d01d 100644 --- a/simpegEM1D/analytics.py +++ b/simpegEM1D/analytics.py @@ -1,7 +1,7 @@ import numpy as np from SimPEG import utils from scipy.constants import mu_0, pi -from scipy.special import erf +import scipy.special as spec import matplotlib.pyplot as plt from .supporting_functions.digital_filter import transFiltImpulse, transFilt, setFrequency @@ -38,6 +38,43 @@ def Hzanal(sig, f, r, flag): return Hz +def Hranal(sig, f, r): + + """ + + Hz component of analytic solution for half-space (VMD source) + Src and Rx are on the surface + + .. math:: + + H_z = \\frac{-mk^2}{4\pi \\rho} \ + \\Bigg [ I_1 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) K_1 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) + - I_2 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) K_2 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) \\Bigg ] + + * r: Src-Rx offset + * m: magnetic dipole moment + * k: propagation constant + * :math:`I_n`: modified Bessel function of the 1st kind of order *n* + * :math:`K_n`: modified Bessel function of the 2nd kind of order *n* + + .. math:: + + k = \omega^2\epsilon\mu - \imath\omega\mu\sigma \\ + + + """ + mu0 = 4*np.pi*1e-7 + w = 2*np.pi*f + k = np.sqrt(-1j*w*mu0*sig) + alpha = 1j*k*r/2. + + IK1 = spec.iv(1, alpha)*spec.kv(1, alpha) + IK2 = spec.iv(2, alpha)*spec.kv(2, alpha) + + Hr = (-k**2/(4*np.pi*r))*(IK1 - IK2) + return Hr + + def HzanalCirc(sig, f, I, a, flag): """ @@ -117,7 +154,7 @@ def BzAnalT(r, t, sigma): theta = np.sqrt((sigma*mu_0)/(4*t)) tr = theta*r - etr = erf(tr) + etr = spec.erf(tr) t1 = (9/(2*tr**2) - 1)*etr t2 = (1/np.sqrt(pi))*(9/tr + 4*tr)*np.exp(-tr**2) hz = (t1 - t2)/(4*pi*r**3) @@ -143,7 +180,7 @@ def BzAnalCircT(a, t, sigma): theta = np.sqrt((sigma*mu_0)/(4*t)) ta = theta*a - eta = erf(ta) + eta = spec.erf(ta) t1 = (3/(np.sqrt(pi)*ta))*np.exp(-ta**2) t2 = (1 - (3/(2*ta**2)))*eta hz = (t1 + t2)/(2*a) @@ -168,7 +205,7 @@ def dBzdtAnalCircT(a, t, sigma): theta = np.sqrt((sigma*mu_0)/(4*t)) const = -1/(mu_0*sigma*a**3) ta = theta*a - eta = erf(ta) + eta = spec.erf(ta) t1 = 3*eta t2 = -2/(np.pi**0.5)*ta*(3+2*ta**2)*np.exp(-ta**2) dhzdt = const*(t1+t2) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 3afdbb0..46ff2ea 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -78,12 +78,13 @@ class BaseEM1DSimulation(BaseSimulation): topo = properties.Array("Topography (x, y, z)", dtype=float) - half_switch = properties.Bool("Switch for half-space", default=False) + half_switch = properties.Bool("Switch for half-space") # depth = properties.Array("Depth of the layers", dtype=float, required=True) # Add layer thickness as invertible property thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( - "thicknesses of the layers" + "thicknesses of the layers", + default=np.array([]) ) def __init__(self, **kwargs): @@ -200,6 +201,12 @@ def compute_integral(self, m, output_type='response'): """ + # Assign flag if halfspace + if self.half_switch is None: + if len(self.thicknesses)==0: + self.half_switch=True + else: + self.half_switch=False # Set evaluation frequencies for time domain if isinstance(self.survey, EM1DSurveyTD): @@ -218,7 +225,7 @@ def compute_integral(self, m, output_type='response'): # Source height above topography if self.hMap is not None: - h_vector = self.h + h_vector = np.array(self.h) else: if self.topo is None: h_vector = np.array([src.location[2] for src in self.survey.source_list]) diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index 49f5683..d7ec768 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -45,6 +45,7 @@ def run_simulation_FD(args): local_survey = EM1DSurveyFD([src]) expmap = maps.ExpMap(nP=len(hz)) + thicknesses = hz[0:-1] if not invert_height: @@ -53,7 +54,7 @@ def run_simulation_FD(args): sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, half_switch=half_switch, hankel_filter='key_101_2009' ) @@ -72,7 +73,7 @@ def run_simulation_FD(args): sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, + sigmaMap=sigmaMap, hMap=wires.h, topo=topo, chi=chi, eta=eta, tau=tau, c=c, half_switch=half_switch, hankel_filter='key_101_2009' ) @@ -206,6 +207,9 @@ class GlobalEM1DSimulation(BaseSimulation): def __init__(self, mesh, **kwargs): utils.setKwargs(self, **kwargs) self.mesh = mesh + if self.n_layer == 1: + self.half_switch = True + if PARALLEL: if self.parallel: print(">> Use multiprocessing for parallelization") @@ -224,6 +228,13 @@ def __init__(self, mesh, **kwargs): self.invert_height = True # ------------- For survey ------------- # + @property + def dz(self): + if self.mesh.dim==2: + return self.mesh.dy + elif self.mesh.dim==3: + return self.mesh.dz + @property def n_layer(self): return self.hz.size @@ -308,12 +319,6 @@ def H(self): else: return self.h - @property - def Sigma(self): - if getattr(self, '_Sigma', None) is None: - # Ordering: first z then x - self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) - return self._Sigma # ------------- Etcetra .... ------------- # @property @@ -372,6 +377,10 @@ def forward(self, m): if self.verbose: print(">> Compute response") + # Set flat topo at zero + if self.topo is None: + self.set_null_topography() + if self.survey.__class__ == EM1DSurveyFD: print("Correct Run Simulation") run_simulation = run_simulation_FD @@ -395,6 +404,13 @@ def forward(self, m): ] return np.hstack(result) + + def set_null_topography(self): + self.topo = np.vstack( + [np.c_[src.location[0], src.location[1], 0.] for i, src in enumerate(self.survey.source_list)] + ) + + def set_ij_n_layer(self, n_layer=None): """ Compute (I, J) indicies to form sparse sensitivity matrix diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 1be4f5d..adfa5f5 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -615,40 +615,45 @@ def magnetic_dipole_kernel( temp *= -2*lamda # COMPUTE KERNEL FUNCTIONS FOR HANKEL TRANSFORM + if rx.use_source_receiver_offset: + v_dist = rx.locations + else: + v_dist = rx.locations - src.location + if src.orientation == "z": if rx.orientation == "z": kernels = [C * lamda**2 * temp, None, None] elif rx.orientation == "x": - C *= -rx.locations[0]/np.sqrt(np.sum(rx.locations[0:-1])) + C *= -v_dist[0]/np.sqrt(np.sum(v_dist[0:-1]**2)) kernels = [None, C * lamda**2 * temp, None] elif rx.orientation == "y": - C *= -rx.locations[1]/np.sqrt(np.sum(rx.locations[0:-1])) + C *= -v_dist[1]/np.sqrt(np.sum(v_dist[0:-1]**2)) kernels = [None, C * lamda**2 * temp, None] elif src.orientation == "x": - rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + rho = np.sqrt(np.sum(v_dist[0:-1]**2)) if rx.orientation == "z": - C *= rx.locations[0]/rho + C *= v_dist[0]/rho kernels = [None, C * lamda**2 * temp, None] elif rx.orientation == "x": - C0 = C * rx.locations[0]**2/rho**2 - C1 = C * (1/rho - 2*rx.locations[0]**2/rho**3) + C0 = C * v_dist[0]**2/rho**2 + C1 = C * (1/rho - 2*v_dist[0]**2/rho**3) kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] elif rx.orientation == "y": - C0 = C * rx.locations[0]*rx.locations[1]/rho**2 - C1 = C * -2*rx.locations[0]*rx.locations[1]/rho**3 + C0 = C * v_dist[0]*v_dist[1]/rho**2 + C1 = C * -2*v_dist[0]*v_dist[1]/rho**3 kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] - elif src.orientation == "z": - rho = np.sqrt(np.sum(rx.locations[0:-1]**2)) + elif src.orientation == "y": + rho = np.sqrt(np.sum(v_dist[0:-1]**2)) if rx.orientation == "z": - C *= rx.locations[1]/rho + C *= v_dist[1]/rho kernels = [None, C * lamda**2 * temp, None] elif rx.orientation == "x": - C0 = C * -rx.locations[0]*rx.locations[1]/rho**2 - C1 = C * 2*rx.locations[0]*rx.locations[1]/rho**3 + C0 = C * -v_dist[0]*v_dist[1]/rho**2 + C1 = C * 2*v_dist[0]*v_dist[1]/rho**3 kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] elif rx.orientation == "y": - C0 = C * rx.locations[1]**2/rho**2 - C1 = C * (1/rho - 2*rx.locations[1]**2/rho**3) + C0 = C * v_dist[1]**2/rho**2 + C1 = C * (1/rho - 2*v_dist[1]**2/rho**3) kernels = [C0 * lamda**2 * temp, C1 * lamda *temp, None] diff --git a/tests/testEM1D_FD_fwd.py b/tests/testEM1D_FD_fwd.py index ca51481..7613481 100644 --- a/tests/testEM1D_FD_fwd.py +++ b/tests/testEM1D_FD_fwd.py @@ -18,23 +18,35 @@ def setUp(self): thicknesses = np.r_[nearthick, deepthick] topo = np.r_[0., 0., 100.] + offset = 10. src_location = np.array([0., 0., 100.+1e-5]) - rx_location = np.array([10., 0., 100.+1e-5]) - receiver_orientation = "z" # "x", "y" or "z" + rx_location = np.array([offset, 0., 100.+1e-5]) field_type = "secondary" # "secondary", "total" or "ppm" - frequencies = np.logspace(1, 8, 61) + frequencies = np.logspace(-1, 5, 61) # Receiver list receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - rx_location, frequencies, orientation=receiver_orientation, + rx_location, frequencies, orientation="z", field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - rx_location, frequencies, orientation=receiver_orientation, + rx_location, frequencies, orientation="z", + field_type=field_type, component="imag" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="x", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="x", field_type=field_type, component="imag" ) ) @@ -62,11 +74,47 @@ def setUp(self): self.eta = eta self.c = c self.chi = chi - self.offset = 10. + self.offset = offset self.frequencies = frequencies self.thicknesses = thicknesses self.nlayers = len(thicknesses)+1 + + def test_EM1DFDfwd_VMD_Halfspace(self): + + sigma_map = maps.ExpMap(nP=1) + sim = em1d.simulation.EM1DFMSimulation( + survey=self.survey, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.array([np.log(self.sigma)]) + H = sim.dpred(m_1D) + + soln_anal_z = Hzanal( + self.sigma, self.frequencies, self.offset, 'secondary' + ) + soln_anal_r = Hranal( + self.sigma, self.frequencies, self.offset + ) + + if self.showIt is True: + N=int(len(H)/4) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal_z.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:2*N]), 'r') + plt.loglog(self.frequencies, abs(soln_anal_z.imag), 'r*') + plt.show() + + soln_anal = np.r_[ + np.real(soln_anal_z), np.imag(soln_anal_z), + np.real(soln_anal_r), np.imag(soln_anal_r) + ] + + err = np.linalg.norm(H-soln_anal)/np.linalg.norm(soln_anal) + self.assertTrue(err < 1e-5) + print ("EM1DFD-VMD for halfspace works") + def test_EM1DFDfwd_VMD_RealCond(self): sigma_map = maps.ExpMap(nP=self.nlayers) @@ -76,11 +124,14 @@ def test_EM1DFDfwd_VMD_RealCond(self): ) m_1D = np.log(np.ones(self.nlayers)*self.sigma) - Hz = sim.dpred(m_1D) + H = sim.dpred(m_1D) - soln_anal = Hzanal( + soln_anal_z = Hzanal( self.sigma, self.frequencies, self.offset, 'secondary' ) + soln_anal_r = Hranal( + self.sigma, self.frequencies, self.offset + ) if self.showIt is True: N=int(len(Hz)/2) @@ -90,9 +141,12 @@ def test_EM1DFDfwd_VMD_RealCond(self): plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() - soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] - - err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) + soln_anal = np.r_[ + np.real(soln_anal_z), np.imag(soln_anal_z), + np.real(soln_anal_r), np.imag(soln_anal_r) + ] + + err = np.linalg.norm(H-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-VMD for real conductivity works") @@ -110,15 +164,18 @@ def test_EM1DFDfwd_VMD_ComplexCond(self): ) m_1D = self.sigma*np.ones(self.nlayers) - Hz = sim.dpred(m_1D) + H = sim.dpred(m_1D) sigma_colecole = ColeCole( self.frequencies, self.sigma, self.eta, self.tau, self.c ) - soln_anal = Hzanal( + soln_anal_z = Hzanal( sigma_colecole, self.frequencies, self.offset, 'secondary' ) + soln_anal_r = Hranal( + sigma_colecole, self.frequencies, self.offset + ) if self.showIt is True: N=int(len(Hz)/2) @@ -128,9 +185,12 @@ def test_EM1DFDfwd_VMD_ComplexCond(self): plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') plt.show() - soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] - - err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) + soln_anal = np.r_[ + np.real(soln_anal_z), np.imag(soln_anal_z), + np.real(soln_anal_r), np.imag(soln_anal_r) + ] + + err = np.linalg.norm(H-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) print ("EM1DFD-VMD for complex conductivity works") @@ -140,7 +200,7 @@ def test_EM1DFDfwd_CircularLoop_RealCond(self): rx_location = np.array([0., 0., 100.+1e-5]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" - frequencies = np.logspace(1, 8, 61) + frequencies = np.logspace(-1, 5, 61) # Receiver list receiver_list = [] @@ -198,7 +258,7 @@ def test_EM1DFDfwd_CircularLoop_ComplexCond(self): rx_location = np.array([0., 0., 100.+1e-5]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" - frequencies = np.logspace(1, 8, 61) + frequencies = np.logspace(-1, 5, 61) # Receiver list receiver_list = [] diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index eda2e5f..897c40c 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -157,11 +157,16 @@ def setUp(self, parallel=True): x = mesh.vectorCCx y = np.zeros_like(x) z = np.ones_like(x) * 30. - receiver_locations = np.c_[x+8., y, z] source_locations = np.c_[x, y, z] - topo = np.c_[x, y, z-30.].astype(float) + receiver_offsets = np.c_[ + np.zeros(n_sounding)+8., + np.zeros(n_sounding), + np.zeros(n_sounding) + ] + + # topo = np.c_[x, y, z-30.].astype(float) - wires = maps.Wires(('sigma', n_sounding),('h', n_sounding)) + wires = maps.Wires(('sigma', n_sounding),('height', n_sounding)) expmap = maps.ExpMap(nP=n_sounding) sigma_map = expmap * wires.sigma @@ -170,20 +175,22 @@ def setUp(self, parallel=True): for ii in range(0, n_sounding): source_location = mkvc(source_locations[ii, :]) - receiver_location = mkvc(receiver_locations[ii, :]) + receiver_offset = receiver_offsets[ii, :] receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation="z", - field_type="secondary", component="real" + receiver_offset, frequencies, orientation="z", + field_type="secondary", component="real", + use_source_receiver_offset=True ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation="z", - field_type="secondary", component="imag" + receiver_offset, frequencies, orientation="z", + field_type="secondary", component="imag", + use_source_receiver_offset=True ) ) @@ -197,7 +204,7 @@ def setUp(self, parallel=True): survey = em1d.survey.EM1DSurveyFD(source_list) simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=sigma_map, hz=hz, hMap=wires.h, topo=topo, + mesh, survey=survey, sigmaMap=sigma_map, hz=hz, hMap=wires.height, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) @@ -211,8 +218,11 @@ def setUp(self, parallel=True): dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) dmis.W = 1./uncertainties - reg_mesh = TensorMesh([int(n_sounding * 2)]) - reg = regularization.Tikhonov(reg_mesh) + reg_mesh = TensorMesh([int(n_sounding)]) + reg_sigma = regularization.Tikhonov(reg_mesh, mapping=wires.sigma) + reg_height = regularization.Tikhonov(reg_mesh, mapping=wires.height) + + reg = reg_sigma + reg_height opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, @@ -324,7 +334,7 @@ def test_misfit(self): def test_adjoint(self): # Adjoint Test # u = np.random.rand(self.mesh.nC * self.survey.nSrc) - v = np.random.rand(self.mesh.nC) + v = np.random.rand(2*self.mesh.nC) w = np.random.rand(self.data.dobs.shape[0]) wtJv = w.dot(self.sim.Jvec(self.m0, v)) vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index a45efcf..98386b3 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6397e+00 1.1226e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 5.7521e+01 3.6094e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.3370e+03 3.4142e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 1.8810e+01 7.2122e+01 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.1721e+02 7.3964e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5327e+03 2.2304e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5767e+00 1.1174e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0454e+01 3.5843e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2917e+03 3.6264e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9335e+01 6.8391e+01 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2360e+02 7.4173e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6449e+03 2.2171e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7047e+00 1.0939e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8629e+01 3.5626e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3613e+03 3.5162e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9035e+01 7.2684e+01 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2658e+02 7.2560e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5502e+03 2.2217e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6946e+00 1.1144e+01 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0648e+01 3.4977e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4044e+03 3.5310e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8676e+01 7.2297e+01 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2958e+02 6.9815e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5961e+03 2.3062e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5704e+00 1.0739e+01 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9007e+01 3.6268e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3721e+03 3.3380e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9531e+01 7.1795e+01 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2908e+02 7.3460e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5884e+03 2.2185e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6379e+00 1.0528e+01 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0582e+01 3.5681e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2978e+03 3.3085e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9496e+01 6.7050e+01 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2169e+02 7.0162e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6228e+03 2.2502e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6711e+00 1.0606e+01 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.2378e+01 3.4490e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4020e+03 3.5840e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8569e+01 6.8460e+01 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1616e+02 7.5065e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5506e+03 2.3117e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6337e+00 1.1146e+01 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.2124e+01 3.3657e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3572e+03 3.3029e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8915e+01 6.8559e+01 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1736e+02 7.1702e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6512e+03 2.3080e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6406e+00 1.1321e+01 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0192e+01 3.4103e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3149e+03 3.5796e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9659e+01 7.1649e+01 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2541e+02 7.4539e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6483e+03 2.1695e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6111e+00 1.0735e+01 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.7285e+01 3.3483e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3453e+03 3.3192e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 2.0077e+01 7.0383e+01 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1641e+02 7.4489e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5401e+03 2.2154e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6404e+00 1.1129e+01 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0291e+01 3.5581e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4086e+03 3.5346e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9484e+01 7.2966e+01 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1730e+02 7.2237e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6328e+03 2.3411e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7153e+00 1.0663e+01 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0431e+01 3.5300e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3742e+03 3.3894e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8727e+01 7.2310e+01 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1786e+02 7.4536e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5224e+03 2.2505e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.5792e+00 1.1159e+01 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.7883e+01 3.4601e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3264e+03 3.4805e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9063e+01 7.0914e+01 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2779e+02 7.1971e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6052e+03 2.3236e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6246e+00 1.0311e+01 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.1819e+01 3.4197e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3328e+03 3.3128e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0124e+01 6.8624e+01 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2504e+02 7.4962e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5819e+03 2.3222e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7128e+00 1.1253e+01 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0556e+01 3.4277e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3423e+03 3.5423e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9619e+01 7.1467e+01 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2998e+02 7.0678e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6260e+03 2.1378e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.0681e+01 3.1437e+02 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1312e+03 3.0565e+03 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4723e+03 6.8701e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3793e+02 6.2911e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3622e+03 2.1620e+03 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0259e+03 1.2928e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2519e+01 2.9319e+02 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0476e+03 3.0319e+03 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3286e+03 7.0824e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2383e+02 6.5118e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3851e+03 2.0958e+03 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0034e+03 1.3525e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1474e+01 3.1179e+02 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0482e+03 3.0610e+03 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4286e+03 7.4707e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2379e+02 6.7163e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3823e+03 2.1963e+03 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0951e+03 1.3803e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2727e+01 3.1126e+02 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1148e+03 3.0280e+03 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.2666e+03 7.3532e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2383e+02 6.3915e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4178e+03 2.2884e+03 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0901e+03 1.3059e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2956e+01 2.9546e+02 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0593e+03 2.9909e+03 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4474e+03 7.3071e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3017e+02 6.4662e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4347e+03 2.1289e+03 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1096e+03 1.3882e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.5601e+01 3.1844e+02 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1326e+03 3.1494e+03 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4047e+03 6.8836e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2360e+02 6.3168e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4389e+03 2.0975e+03 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0235e+03 1.3440e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.9116e+01 3.1303e+02 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1056e+03 3.2218e+03 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6613e+03 7.0136e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.4237e+02 6.4783e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4203e+03 2.1216e+03 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.9949e+03 1.3515e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.3209e+01 2.9558e+02 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1125e+03 3.2252e+03 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4579e+03 7.3786e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3728e+02 6.4602e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3534e+03 2.1932e+03 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0629e+03 1.3753e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4751e+01 2.2090e+02 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8977e+02 3.1430e+03 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4235e+03 7.1916e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0174e+02 6.2351e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.5306e+03 2.2028e+03 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0009e+03 1.3938e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.3988e+01 3.0429e+02 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0674e+03 3.1060e+03 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3587e+03 6.8930e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2672e+02 6.3615e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3608e+03 2.2137e+03 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1109e+03 1.4067e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.8817e+01 1.3627e+02 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0124e+02 1.2672e+03 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1383e+03 5.8903e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0081e+02 2.7815e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 5.7990e+02 1.4979e+03 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2023e+03 1.9836e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6048e+01 3.2081e+02 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0425e+03 3.0738e+03 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6859e+03 6.8903e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2490e+02 6.7030e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3566e+03 2.2579e+03 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0614e+03 1.3879e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.6355e+01 1.8706e+02 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.5833e+02 1.4915e+03 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2164e+03 5.4555e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.3745e+02 3.3582e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 7.0255e+02 1.3916e+03 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2401e+03 2.0943e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9034e+01 2.1746e+02 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0587e+03 3.1127e+03 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7349e+03 7.2602e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9514e+02 6.4843e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.5089e+03 2.2272e+03 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1360e+03 1.3383e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.3786e+01 2.5179e+02 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 8.2349e+02 2.1327e+03 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.6225e+03 5.7243e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8205e+02 4.8548e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 9.2811e+02 1.3863e+03 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6584e+03 1.8632e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0331e+01 6.3833e+01 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7841e+02 1.2803e+03 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2831e+03 5.6870e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1147e+01 2.3509e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1116e+02 1.5916e+03 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2886e+03 1.9426e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.2621e+01 3.0004e+02 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8635e+02 2.9229e+03 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 4.6977e+03 6.4597e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.1052e+02 6.0314e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3257e+03 1.9800e+03 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.8627e+03 1.2587e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.2182e+01 6.5351e+01 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0138e+02 1.2543e+03 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2267e+03 5.4063e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1700e+01 2.2785e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4708e+02 1.4840e+03 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1878e+03 2.0619e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6779e+01 2.1047e+02 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0200e+03 3.2417e+03 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4669e+03 7.5118e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9101e+02 6.5248e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4897e+03 2.2799e+03 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0186e+03 1.3288e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.3769e+01 6.2439e+01 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7983e+02 1.2556e+03 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2089e+03 5.8666e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1299e+01 2.2064e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6772e+02 1.4960e+03 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2010e+03 2.0912e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1025e+01 6.3816e+01 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.7886e+02 1.2715e+03 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3734e+03 5.6691e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7386e+01 2.2459e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3318e+02 1.4749e+03 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2398e+03 1.9643e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0890e+01 6.3781e+01 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9116e+02 1.2440e+03 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1519e+03 5.4766e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1125e+01 2.3997e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2788e+02 1.5486e+03 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2918e+03 2.0112e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0499e+01 6.4864e+01 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0478e+02 1.2465e+03 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3677e+03 5.8922e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8304e+01 2.3412e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2213e+02 1.4975e+03 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1377e+03 1.9633e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0930e+01 6.1255e+01 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0398e+02 1.2149e+03 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3696e+03 5.6958e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9102e+01 2.3032e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5755e+02 1.5095e+03 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2547e+03 2.0110e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0312e+01 6.1988e+01 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0052e+02 1.2397e+03 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3868e+03 5.6474e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7277e+01 2.2834e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4378e+02 1.5144e+03 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1168e+03 1.9951e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0392e+01 6.0466e+01 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8475e+02 1.2147e+03 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4096e+03 5.7755e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7942e+01 2.4027e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6488e+02 1.5050e+03 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1728e+03 2.0545e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1082e+01 6.0318e+01 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8160e+02 1.2117e+03 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1688e+03 5.5160e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1434e+01 2.4289e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4225e+02 1.5223e+03 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1476e+03 2.0491e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1129e+01 6.5816e+01 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9122e+02 1.2457e+03 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4160e+03 5.7764e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0102e+01 2.2621e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.0874e+02 1.5326e+03 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2144e+03 2.0466e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0850e+01 6.1881e+01 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9259e+02 1.2823e+03 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1287e+03 5.6770e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9228e+01 2.4047e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4178e+02 1.5165e+03 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1904e+03 1.9390e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0897e+01 6.0940e+01 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9521e+02 1.2905e+03 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2360e+03 5.5233e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1819e+01 2.3971e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.4847e+02 1.5564e+03 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1472e+03 1.9514e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1279e+01 6.0477e+01 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8035e+02 1.2727e+03 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3047e+03 5.4251e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6629e+01 2.4084e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1080e+02 1.4936e+03 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2296e+03 1.9380e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0929e+01 6.1619e+01 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0069e+02 1.2116e+03 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4125e+03 5.4874e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0076e+01 2.3601e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3995e+02 1.5742e+03 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2864e+03 1.9622e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0558e+01 6.0617e+01 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0293e+02 1.2342e+03 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1257e+03 5.9097e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0594e+01 2.3027e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2548e+02 1.5758e+03 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1155e+03 1.9795e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0716e+01 6.1329e+01 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8254e+02 1.2687e+03 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3143e+03 5.9279e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8381e+01 2.2745e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3308e+02 1.5917e+03 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1512e+03 2.0109e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0705e+01 6.0644e+01 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8241e+02 1.2614e+03 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1259e+03 5.6166e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7375e+01 2.3703e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3295e+02 1.4960e+03 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1718e+03 1.9227e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6076e+00 1.0329e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 6.1388e+01 3.4822e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.3074e+03 3.3752e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 1.8433e+01 7.0935e+01 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.3180e+02 7.2498e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5965e+03 2.2826e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6778e+00 1.0501e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0569e+01 3.4310e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2868e+03 3.3307e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9817e+01 6.9812e+01 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1348e+02 7.4803e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6179e+03 2.2921e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6674e+00 1.0875e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9786e+01 3.5485e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3804e+03 3.4015e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9850e+01 7.2684e+01 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1826e+02 7.4950e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6097e+03 2.1379e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5635e+00 1.0878e+01 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8404e+01 3.4808e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3420e+03 3.6292e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8782e+01 7.2956e+01 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2563e+02 7.0495e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6517e+03 2.1562e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6934e+00 1.1123e+01 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0463e+01 3.4120e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4013e+03 3.3945e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9872e+01 7.2532e+01 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.3392e+02 7.1855e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5149e+03 2.2103e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6639e+00 1.0630e+01 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8396e+01 3.5877e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3571e+03 3.5083e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 2.0157e+01 6.8911e+01 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2173e+02 6.9815e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6412e+03 2.1657e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5601e+00 1.0949e+01 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9236e+01 3.3800e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2960e+03 3.4085e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9509e+01 7.2528e+01 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2892e+02 7.5013e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5448e+03 2.2231e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5888e+00 1.0331e+01 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0080e+01 3.4711e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3467e+03 3.4168e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8791e+01 7.1125e+01 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2194e+02 7.0627e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6181e+03 2.3102e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5979e+00 1.0813e+01 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0187e+01 3.5346e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4005e+03 3.4923e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9173e+01 7.0497e+01 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1809e+02 6.9843e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5474e+03 2.3166e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6580e+00 1.0880e+01 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.7263e+01 3.3506e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3332e+03 3.5507e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8848e+01 7.1875e+01 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2607e+02 7.3072e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5631e+03 2.2538e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7029e+00 1.0690e+01 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0957e+01 3.4459e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3712e+03 3.4460e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9042e+01 6.7514e+01 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1651e+02 7.2219e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5689e+03 2.2271e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6232e+00 1.0663e+01 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.1889e+01 3.6687e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3022e+03 3.3396e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0132e+01 7.2719e+01 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1488e+02 6.9672e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6371e+03 2.1374e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6023e+00 1.0627e+01 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.7229e+01 3.5343e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3270e+03 3.3969e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8569e+01 6.7933e+01 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2544e+02 7.3122e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5150e+03 2.1420e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7136e+00 1.0875e+01 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.8962e+01 3.3711e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3427e+03 3.3989e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9722e+01 6.7677e+01 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2938e+02 7.2808e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5777e+03 2.2606e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6359e+00 1.0301e+01 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.9092e+01 3.4364e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2853e+03 3.6291e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8932e+01 7.2889e+01 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.3095e+02 7.2399e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6479e+03 2.2788e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2552e+01 2.9694e+02 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1075e+03 2.9982e+03 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5342e+03 7.1794e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2421e+02 6.5817e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3830e+03 2.2148e+03 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0477e+03 1.3220e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1423e+01 3.1570e+02 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0554e+03 3.0706e+03 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4599e+03 7.0457e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3834e+02 6.2929e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3826e+03 2.2742e+03 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0697e+03 1.2974e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4644e+01 3.0583e+02 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0808e+03 3.0447e+03 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.2989e+03 7.4627e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3647e+02 6.7898e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4220e+03 2.1172e+03 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1217e+03 1.3289e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4955e+01 2.9733e+02 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0603e+03 3.2539e+03 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6786e+03 6.9575e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3865e+02 6.5494e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4236e+03 2.1135e+03 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0904e+03 1.3329e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4587e+01 3.0448e+02 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0378e+03 3.0949e+03 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5459e+03 6.9977e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3728e+02 6.8341e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4013e+03 2.2814e+03 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0124e+03 1.3710e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4332e+01 3.0556e+02 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0565e+03 3.0782e+03 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4444e+03 6.9978e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2174e+02 6.7765e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3799e+03 2.1141e+03 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0570e+03 1.3045e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1719e+01 3.0571e+02 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1041e+03 3.1493e+03 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3611e+03 6.9012e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3196e+02 6.6560e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4108e+03 2.1636e+03 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0843e+03 1.4063e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4308e+01 3.1187e+02 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1130e+03 2.9786e+03 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6263e+03 7.4103e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3897e+02 6.7107e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4401e+03 2.1378e+03 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0645e+03 1.3750e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4105e+01 2.3495e+02 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8042e+02 3.2183e+03 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7130e+03 7.3488e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0281e+02 6.2004e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4940e+03 2.0962e+03 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0290e+03 1.3574e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2309e+01 2.9839e+02 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1336e+03 3.0220e+03 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7081e+03 7.0986e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3513e+02 6.2751e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4169e+03 2.1496e+03 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0476e+03 1.3484e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.6463e+01 1.3445e+02 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1413e+02 1.2620e+03 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1466e+03 5.7221e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0130e+02 2.8059e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 5.9358e+02 1.3964e+03 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3156e+03 1.9719e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.8730e+01 3.2247e+02 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0990e+03 3.0426e+03 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3116e+03 7.0363e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3953e+02 6.5710e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4517e+03 2.2419e+03 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1006e+03 1.3518e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.5288e+01 2.0120e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.8946e+02 1.3870e+03 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.0810e+03 5.7896e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.3825e+02 3.5506e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.8807e+02 1.3274e+03 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0797e+03 2.0701e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7668e+01 2.1926e+02 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8813e+02 3.0870e+03 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7068e+03 7.3260e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0001e+02 6.4030e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4906e+03 2.2608e+03 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1322e+03 1.4045e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6533e+01 2.5470e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 7.9097e+02 2.0080e+03 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.5421e+03 5.5807e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.6919e+02 4.8401e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 9.6805e+02 1.4844e+03 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.7425e+03 1.9882e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0675e+01 6.3266e+01 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8844e+02 1.2121e+03 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2284e+03 5.5365e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7739e+01 2.4158e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1055e+02 1.4678e+03 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2054e+03 2.0956e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6201e+01 2.8185e+02 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8960e+02 2.8753e+03 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.0864e+03 6.1204e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2045e+02 6.0937e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.2930e+03 1.9440e+03 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.7886e+03 1.3033e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.2111e+01 6.5182e+01 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0338e+02 1.2318e+03 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1782e+03 5.4266e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6075e+01 2.3543e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6019e+02 1.4563e+03 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2402e+03 1.9689e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9194e+01 2.0372e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0282e+03 3.1797e+03 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5160e+03 6.8781e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9743e+02 6.4642e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4507e+03 2.2589e+03 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0935e+03 1.3043e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.3581e+01 6.2136e+01 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0167e+02 1.2907e+03 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1649e+03 5.4044e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7832e+01 2.2009e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5586e+02 1.5508e+03 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1432e+03 2.0749e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0670e+01 6.1730e+01 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9772e+02 1.2092e+03 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1642e+03 5.9044e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.2760e+01 2.2672e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3752e+02 1.5661e+03 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2952e+03 2.0442e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1059e+01 6.3481e+01 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9069e+02 1.2970e+03 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4163e+03 5.4406e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1793e+01 2.4096e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1379e+02 1.5078e+03 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3140e+03 2.1084e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0429e+01 6.0804e+01 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9320e+02 1.2792e+03 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1772e+03 5.6345e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8208e+01 2.4306e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5987e+02 1.5451e+03 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1911e+03 2.0194e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1095e+01 6.3888e+01 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0309e+02 1.3082e+03 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2185e+03 5.7737e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1183e+01 2.4309e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5553e+02 1.4587e+03 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2938e+03 2.0621e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0634e+01 6.1505e+01 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0506e+02 1.2850e+03 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1882e+03 5.4495e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0341e+01 2.4302e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1060e+02 1.4811e+03 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3040e+03 2.0094e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1287e+01 6.4550e+01 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0489e+02 1.2075e+03 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2221e+03 5.8241e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1480e+01 2.3708e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1932e+02 1.4821e+03 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2424e+03 2.0445e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1181e+01 6.1431e+01 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8830e+02 1.2112e+03 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3379e+03 5.4215e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9821e+01 2.2620e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.0838e+02 1.5530e+03 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2938e+03 2.0950e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0574e+01 6.5600e+01 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9585e+02 1.2359e+03 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2011e+03 5.6082e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.3168e+01 2.2506e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2537e+02 1.5127e+03 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2183e+03 2.0814e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1267e+01 6.2467e+01 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9327e+02 1.2316e+03 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3748e+03 5.4518e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1042e+01 2.2324e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5078e+02 1.4929e+03 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2466e+03 2.0444e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1090e+01 6.5031e+01 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0093e+02 1.2026e+03 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1984e+03 5.6551e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9375e+01 2.4322e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2965e+02 1.5876e+03 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2184e+03 2.0340e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1003e+01 6.1125e+01 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0169e+02 1.2914e+03 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1618e+03 5.7522e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0832e+01 2.4189e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2478e+02 1.5743e+03 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2030e+03 2.0425e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0330e+01 6.0396e+01 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9490e+02 1.2423e+03 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3115e+03 5.6750e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1925e+01 2.2353e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3204e+02 1.4794e+03 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1797e+03 2.0424e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0780e+01 6.1606e+01 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8483e+02 1.2677e+03 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1763e+03 5.4412e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8341e+01 2.2909e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3485e+02 1.5512e+03 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2604e+03 1.9876e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0825e+01 6.1022e+01 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8278e+02 1.2071e+03 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3582e+03 5.8441e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7754e+01 2.3929e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3541e+02 1.5874e+03 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2293e+03 2.0848e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0996e+01 6.3409e+01 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9452e+02 1.3118e+03 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3392e+03 5.4512e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6677e+01 2.2884e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3317e+02 1.5873e+03 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1436e+03 2.0850e+03 diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index 7152824..6a81e10 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -105,7 +105,7 @@ plotLayer(model, plotting_mesh, showlayers=False) ####################################################################### -# Define the Forward Simulation and Predic Data +# Define the Forward Simulation and Predict Data # ---------------------------------------------- # diff --git a/tutorials/plot_1_fdem_inv_height.py b/tutorials/plot_1_fdem_inv_height.py new file mode 100644 index 0000000..7077de7 --- /dev/null +++ b/tutorials/plot_1_fdem_inv_height.py @@ -0,0 +1,390 @@ +""" +Inversion of 1D Frequency-Domain Data +============================================== + + +""" + + +######################################################################### +# Import modules +# -------------- +# + +import os, shutil +import numpy as np +import matplotlib as mpl +import matplotlib.pyplot as plt + +from discretize import TensorMesh + +import simpegEM1D as em1d +from simpegEM1D.utils import get_vertical_discretization_frequency, plotLayer +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + +# sphinx_gallery_thumbnail_number = 3 + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_data.obs' + + + +############################################# +# Load Data and Plot +# ------------------ +# +# Here we load and plot synthetic gravity anomaly data. Topography is generally +# defined as an (N, 3) array. Gravity data is generally defined with 4 columns: +# x, y, z and data. +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + +# Define receiver locations and observed data +frequencies = dobs[:, 0] +dobs = mkvc(dobs[:, 1:]) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +ax.loglog(frequencies, np.abs(dobs[0:len(frequencies)]), 'k-o', lw=3) +ax.loglog(frequencies, np.abs(dobs[len(frequencies):]), 'k:o', lw=3) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["Real", "Imaginary"]) + + + +############################################# +# Defining the Survey +# ------------------- + +source_location = np.array([0., 0., 30.]) +source_current = 1. +source_radius = 5. + +source_receiver_offset = np.array([10., 0., 0.]) +receiver_orientation = "z" +field_type = "ppm" + +# Receiver list +receiver_list = [] +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + source_receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real", use_source_receiver_offset=True + ) +) +receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + source_receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag", use_source_receiver_offset=True + ) +) + +source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) +] + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.05*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + +############################################################### +# Defining a 1D Layered Earth (1D Tensor Mesh) +# -------------------------------------------- +# +# Here, we define the layer thicknesses for our 1D simulation. To do this, we use +# the TensorMesh class. +# + +# Based on estimate of background conductivity, make layers + +#inv_thicknesses = get_vertical_discretization_frequency( +# frequencies, sigma_background=0.1, +# factor_fmax=20, factor_fmin=1., n_layer=50, +#) + +inv_thicknesses = np.logspace(0,1.5,25) + +# Define a mesh for plotting and regularization. +mesh = TensorMesh([(np.r_[inv_thicknesses, inv_thicknesses[-1]])], '0') + +print(mesh) + + +######################################################## +# Define a Starting and Reference Model +# ------------------------------------- +# +# Here, we create starting and/or reference models for the inversion as +# well as the mapping from the model space to the active cells. Starting and +# reference models can be a constant background value or contain a-priori +# structures. Here, the starting model is log(0.001) S/m. +# +# Define log-conductivity values for each layer since our model is the +# log-conductivity. Don't make the values 0! +# Otherwise the gradient for the 1st iteration is zero and the inversion will +# not converge. + +# Define model. A resistivity (Ohm meters) or conductivity (S/m) for each layer. +starting_conductivity = np.log(0.1*np.ones(mesh.nC)) +starting_height = 25. +starting_model = np.r_[starting_conductivity, starting_height] + +# Define mapping from model to active cells. +wires = maps.Wires(('sigma', mesh.nC),('h', 1)) +sigma_map = maps.ExpMap() * wires.sigma +h_map = wires.h + + + +####################################################################### +# Define the Physics +# ------------------ +# + +simulation = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=inv_thicknesses, sigmaMap=sigma_map, hMap=h_map +) + + +####################################################################### +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + + + +# Define the regularization (model objective function) +reg_sigma = regularization.Sparse( + mesh, mapping=wires.sigma, +# alpha_s=1, +) + +# Define sparse and blocky norms p, q +p = 0. +q = 0. +reg_sigma.norms = np.c_[p, q] + +#reg.eps_p = 1e-3 +#reg.eps_q = 1e-3 + +reg_height = regularization.Sparse( + TensorMesh([1]), mapping=wires.h, +) + +p = 0. +reg_sigma.p = p + +reg = reg_sigma + reg_height +reg.mref = starting_model + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.ProjectedGNCG(maxIter=100, maxIterLS=20, maxIterCG=20, tolCG=1e-3) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1e1) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + +# The directives are defined as a list. +#directives_list = [ +# IRLS, +# starting_beta, +# save_iteration, +#] + + + + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=30, minGNiter=1, + coolEpsFact=1.5, update_beta=True +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + save_iteration, + update_IRLS, + update_jacobi, +] + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + +##################################################################### +# Plotting Results +# --------------------- + + +# Load the true model and layer thicknesses +true_model = np.array([0.1, 1., 0.1]) +hz = np.r_[20., 40., 160.] +true_layers = TensorMesh([hz]) + +# Extract Least-Squares model +l2_model = inv_prob.l2model + +# Plot true model and recovered model +fig = plt.figure(figsize=(8, 9)) +x_min = np.min(np.r_[sigma_map * recovered_model, sigma_map * l2_model, true_model]) +x_max = np.max(np.r_[sigma_map * recovered_model, sigma_map * l2_model, true_model]) + +ax1 = fig.add_axes([0.2, 0.15, 0.7, 0.7]) +plotLayer(true_model, true_layers, ax=ax1, showlayers=False, color="k") +plotLayer(sigma_map * l2_model, mesh, ax=ax1, showlayers=False, color="b") +plotLayer(sigma_map * recovered_model, mesh, ax=ax1, showlayers=False, color="r") +ax1.set_xlim(0.01, 10) +ax1.legend(["True Model", "L2-Model", "Sparse Model"]) + +# Plot the true and apparent resistivities on a sounding curve +dpred_l2 = simulation.dpred(l2_model) +dpred_final = simulation.dpred(recovered_model) + +fig = plt.figure(figsize=(11, 6)) +ax1 = fig.add_axes([0.2, 0.1, 0.6, 0.8]) +ax1.loglog(frequencies, np.abs(dobs[0:len(frequencies)]), "k-o") +ax1.loglog(frequencies, np.abs(dobs[len(frequencies):]), "k:o") +ax1.loglog(frequencies, np.abs(dpred_l2[0:len(frequencies)]), "b-o") +ax1.loglog(frequencies, np.abs(dpred_l2[len(frequencies):]), "b:o") +ax1.loglog(frequencies, np.abs(dpred_final[0:len(frequencies)]), "r-o") +ax1.loglog(frequencies, np.abs(dpred_final[len(frequencies):]), "r:o") +ax1.set_xlabel("Frequencies (Hz)") +ax1.set_ylabel("|Hs/Hp| (ppm)") +ax1.legend([ + "Observed (real)", "Observed (imag)", + "L2-Model (real)", "L2-Model (imag)", + "Sparse (real)", "Sparse (imag)"], + loc="upper left" +) +plt.show() + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_2_fdem_inv_stitched_height.py b/tutorials/plot_2_fdem_inv_stitched_height.py new file mode 100644 index 0000000..79d2ef0 --- /dev/null +++ b/tutorials/plot_2_fdem_inv_stitched_height.py @@ -0,0 +1,472 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D import get_2d_mesh, LateralConstraint +from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency + +save_file = True + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' + + + +##################################################################### +# topography +# ------------- +# +# + +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +############################################# +# Load Data and Plot +# ------------------ +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) + + +source_locations = np.unique(dobs[:, 0:3], axis=0) +frequencies = np.unique(dobs[:, 3]) +dobs = mkvc(dobs[:, 4:].T) + +n_sounding = np.shape(source_locations)[0] + +dobs_plotting = np.reshape(dobs, (n_sounding, 2*len(frequencies))).T + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, n_sounding): + ax.loglog(frequencies, np.abs(dobs_plotting[0:len(frequencies), ii]), '-', lw=2) + ax.loglog(frequencies, np.abs(dobs_plotting[len(frequencies):, ii]), '--', lw=2) + +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("|Hs/Hp| (ppm)") +ax.set_title("Magnetic Field as a Function of Frequency") +ax.legend(["real", "imaginary"]) + + + +###################################################### +# Create Survey +# ------------- +# + + +source_current = 1. +source_radius = 5. + +source_heights = mkvc(source_locations[:, -1]) +receiver_offsets = np.c_[source_locations[:, 0]+10., source_locations[:, 1], np.zeros(np.size(source_heights))] +receiver_orientation = "z" # "x", "y" or "z" +field_type = "ppm" # "secondary", "total" or "ppm" + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_offset = mkvc(receiver_offsets[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="real", use_source_receiver_offset=True + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + receiver_offset, frequencies, orientation=receiver_orientation, + field_type=field_type, component="imag", use_source_receiver_offset=True + ) + ) + + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + I=source_current + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.1*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +dx = 100. +hz = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=30 +) +hx = np.ones(n_sounding) * dx +mesh = TensorMesh([hx, hz], x0='00') + + +############################################### +# Defining a Model +# ---------------------- +# + +conductivity = np.ones(mesh.nC) * 0.1 + +wires = maps.Wires(('sigma', mesh.nC),('height', n_sounding)) +sigma_map = maps.ExpMap(mesh) * wires.sigma +height_map = wires.height + +starting_model = np.r_[ + np.log(conductivity.reshape(mesh.vnC, order='F').flatten()), + 25*np.ones(n_sounding) +] + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( + mesh, survey=survey, sigmaMap=sigma_map, hMap=height_map, hz=hz, topo=topo, + parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver +) + + + + +######################################################################## +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + +# Define the regularization (model objective function) +mesh_reg = get_2d_mesh(n_sounding, hz) +reg_lateral = LateralConstraint( + mesh_reg, mapping=maps.IdentityMap(nP=mesh.nC), + alpha_s = 0.1, + alpha_x = 0.0001, + alpha_y = 1., +) +xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) +reg_lateral.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +reg_map = maps.IdentityMap(nP=mesh.nC) +reg_sigma = regularization.Sparse( + mesh, mapping=wires.sigma, +) +ps, px, py = 1, 1, 1 +reg_sigma.norms = np.c_[ps, px, py, 0] + + +mesh_height = TensorMesh([dx*np.ones(n_sounding)]) +reg_height = regularization.Sparse(mesh_height, mapping=wires.height) + + +reg = reg_sigma + reg_height + +reg.mref = starting_model +reg.mrefInSmooth = True + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + + + + + + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) + + +beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=20, minGNiter=1, + fix_Jmatrix=True, + f_min_change = 1e-3, + coolingRate=3 +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +#target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +target = directives.TargetMisfit() + +# The directives are defined as a list. +directives_list = [ + sensitivity_weights, + starting_beta, + beta_schedule, + save_iteration, + update_IRLS, + update_jacobi, +] + + +opt.LSshorten = 0.5 +opt.remember('xc') + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +# True model +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +true_model = np.ones(mesh.nC) * background_conductivity + +layer_ind = mesh.gridCC[:, -1] < 30. +true_model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., 30.] +x1 = np.r_[dx*n_sounding, 30.] +x2 = np.r_[dx*n_sounding, 120.] +x3 = np.r_[0., 50.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh, pts) +true_model[poly_inds] = slope_conductivity + +l2_model = inv_prob.l2model +dpred_l2 = simulation.dpred(l2_model) +l2_model = np.exp(l2_model) +l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) +l2_model = mkvc(l2_model) + +dpred = simulation.dpred(recovered_model) +recovered_model = np.exp(recovered_model) +recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) +recovered_model = mkvc(recovered_model) + +models_list = [true_model, l2_model, simulation.Sigma] + +for ii, mod in enumerate(models_list): + + fig = plt.figure(figsize=(9, 3)) + ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) + log_mod = np.log10(mod) + + mesh.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(true_model.min()), np.log10(true_model.max())), +# clim=(np.log10(0.1), np.log10(1)), + pcolorOpts={"cmap": "viridis"}, + ) + ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + + ax1.set_title("Conductivity Model") + ax1.set_xlabel("x (m)") + ax1.set_ylabel("depth (m)") + + ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) + norm = mpl.colors.Normalize( + vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) +# vmin=np.log10(0.1), vmax=np.log10(1) + ) + cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" + ) + cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + + + +data_list = [dobs, dpred_l2, dpred] +color_list = ['k', 'b', 'r'] + +fig = plt.figure(figsize = (12, 6)) +ax1 = fig.add_axes([0.05, 0.1, 0.4, 0.8]) +ax2 = fig.add_axes([0.55, 0.1, 0.4, 0.8]) + +for ii in range(0, len(data_list)): + d1 = np.reshape(data_list[ii][0::2], (n_sounding, len(frequencies))) + d2 = np.reshape(data_list[ii][1::2], (n_sounding, len(frequencies))) + ax1.semilogy(x, np.abs(d1), color_list[ii], lw=1) + ax2.semilogy(x, np.abs(d2), color_list[ii], lw=1) + +ax.set_xlabel("Frequencies (s)") +ax.set_ylabel("Re[H] (A/m)") + + + + + + + + + + + + + + + + + + + + + + + From 134c009d514aa6c0634c7c059bc2f98035097b7c Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 18 Sep 2020 20:05:00 -0700 Subject: [PATCH 31/54] Add test for HMD and other components of VMD --- simpegEM1D/analytics.py | 43 ++++++++++++++++++++++++ tests/testEM1D_FD_fwd.py | 59 +++++++++++++++++++++++++++++++++ tests/testEM1D_FD_jac_layers.py | 29 ++++++++++++++-- 3 files changed, 128 insertions(+), 3 deletions(-) diff --git a/simpegEM1D/analytics.py b/simpegEM1D/analytics.py index 563d01d..55d4a96 100644 --- a/simpegEM1D/analytics.py +++ b/simpegEM1D/analytics.py @@ -75,6 +75,49 @@ def Hranal(sig, f, r): return Hr + + +def Hzanal_hmd(sig, f, r, x): + + """ + + Hz component of analytic solution for half-space (HMD source) + Src and Rx are on the surface + + .. math:: + + H_z = \\frac{mxk^2}{4\pi \\rho^2} \ + \\Bigg [ I_1 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) K_1 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) + - I_2 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) K_2 \\Bigg ( \\frac{\i k \\rho }{2} \\Bigg ) \\Bigg ] + + * x: Src-Rx x offset + * r: Src-Rx offset + * m: magnetic dipole moment + * k: propagation constant + * :math:`I_n`: modified Bessel function of the 1st kind of order *n* + * :math:`K_n`: modified Bessel function of the 2nd kind of order *n* + + .. math:: + + k = \omega^2\epsilon\mu - \imath\omega\mu\sigma \\ + + + """ + mu0 = 4*np.pi*1e-7 + w = 2*np.pi*f + k = np.sqrt(-1j*w*mu0*sig) + alpha = 1j*k*r/2. + + IK1 = spec.iv(1, alpha)*spec.kv(1, alpha) + IK2 = spec.iv(2, alpha)*spec.kv(2, alpha) + + Hr = (x*k**2/(4*np.pi*r**2))*(IK1 - IK2) + return Hr + + + + + def HzanalCirc(sig, f, I, a, flag): """ diff --git a/tests/testEM1D_FD_fwd.py b/tests/testEM1D_FD_fwd.py index 7613481..a1610ef 100644 --- a/tests/testEM1D_FD_fwd.py +++ b/tests/testEM1D_FD_fwd.py @@ -194,6 +194,65 @@ def test_EM1DFDfwd_VMD_ComplexCond(self): self.assertTrue(err < 1e-5) print ("EM1DFD-VMD for complex conductivity works") + def test_EM1DFDfwd_HMD_RealCond(self): + + src_location = np.array([0., 0., 100.+1e-5]) + rx_location = np.array([self.offset, 0., 100.+1e-5]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(-1, 5, 61) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", + field_type=field_type, component="imag" + ) + ) + + source_list = [ + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=src_location, orientation="x" + ) + ] + + survey = em1d.survey.EM1DSurveyFD(source_list) + + sigma_map = maps.ExpMap(nP=self.nlayers) + sim = em1d.simulation.EM1DFMSimulation( + survey=survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo + ) + + m_1D = np.log(np.ones(self.nlayers)*self.sigma) + Hz = sim.dpred(m_1D) + + soln_anal = Hzanal_hmd( + self.sigma, self.frequencies, self.offset, self.offset + ) + + if self.showIt is True: + N=int(len(Hz)/2) + plt.loglog(self.frequencies, abs(Hz[0:N]), 'b') + plt.loglog(self.frequencies, abs(soln_anal.real), 'b*') + plt.loglog(self.frequencies, abs(Hz[N:]), 'r') + plt.loglog(self.frequencies, abs(soln_anal.imag), 'r*') + plt.show() + + soln_anal = np.r_[np.real(soln_anal), np.imag(soln_anal)] + + err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) + self.assertTrue(err < 1e-5) + print ("EM1DFD-HMD for complex conductivity works") + + def test_EM1DFDfwd_CircularLoop_RealCond(self): src_location = np.array([0., 0., 100.+1e-5]) diff --git a/tests/testEM1D_FD_jac_layers.py b/tests/testEM1D_FD_jac_layers.py index 555860a..7b28b2e 100644 --- a/tests/testEM1D_FD_jac_layers.py +++ b/tests/testEM1D_FD_jac_layers.py @@ -17,7 +17,6 @@ def setUp(self): src_location = np.array([0., 0., 100.+1e-5]) rx_location = np.array([10., 0., 100.+1e-5]) - receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" frequencies = np.logspace(1, 8, 61) @@ -25,13 +24,37 @@ def setUp(self): receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( - rx_location, frequencies, orientation=receiver_orientation, + rx_location, frequencies, orientation="x", field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - rx_location, frequencies, orientation=receiver_orientation, + rx_location, frequencies, orientation="x", + field_type=field_type, component="imag" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="y", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="y", + field_type=field_type, component="imag" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", field_type=field_type, component="imag" ) ) From 18106a4f031ba75e1fac5275a0c40540d677fdda Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 21 Sep 2020 14:00:25 -0700 Subject: [PATCH 32/54] Small changes --- simpegEM1D/simulation_stitched1d.py | 6 +- tests/testEM1D_TD_general_fwd.py | 2 +- tutorials/assets/em1dtm_data.obs | 62 +- tutorials/assets/em1dtm_stitched_data.obs | 2100 +++++++++--------- tutorials/plot_1_tdem_inv.py | 25 +- tutorials/plot_2_fdem_inv_stitched.py | 24 +- tutorials/plot_2_fdem_inv_stitched_height.py | 2 +- tutorials/plot_2_tdem_fwd_stitched.py | 20 +- tutorials/plot_2_tdem_inv_stitched.py | 50 +- 9 files changed, 1143 insertions(+), 1148 deletions(-) diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py index d7ec768..eee9c4d 100644 --- a/simpegEM1D/simulation_stitched1d.py +++ b/simpegEM1D/simulation_stitched1d.py @@ -45,7 +45,6 @@ def run_simulation_FD(args): local_survey = EM1DSurveyFD([src]) expmap = maps.ExpMap(nP=len(hz)) - thicknesses = hz[0:-1] if not invert_height: @@ -61,7 +60,6 @@ def run_simulation_FD(args): if jac_switch == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(np.log(sigma)) return utils.mkvc(drespdsig * sim.sigmaDeriv) - # return utils.mkvc(drespdsig) else: resp = sim.dpred(np.log(sigma)) return resp @@ -120,7 +118,7 @@ def run_simulation_TD(args): # This is hard-wired at the moment sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, half_switch=half_switch, hankel_filter='key_101_2009' ) @@ -137,7 +135,7 @@ def run_simulation_TD(args): sigmaMap = expmap * wires.sigma sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, + sigmaMap=sigmaMap, hMap=wires.h, topo=topo, chi=chi, eta=eta, tau=tau, c=c, half_switch=half_switch, hankel_filter='key_101_2009' ) diff --git a/tests/testEM1D_TD_general_fwd.py b/tests/testEM1D_TD_general_fwd.py index cf16459..f547fbb 100644 --- a/tests/testEM1D_TD_general_fwd.py +++ b/tests/testEM1D_TD_general_fwd.py @@ -3,7 +3,7 @@ from SimPEG.utils import mkvc import matplotlib.pyplot as plt import simpegEM1D as em1d -from simpegEM1D.KnownWaveforms import piecewise_ramp +from simpegEM1D.known_waveforms import piecewise_ramp from simpegEM1D.analytics import * from simpegEM1D.waveforms import TriangleFun import numpy as np diff --git a/tutorials/assets/em1dtm_data.obs b/tutorials/assets/em1dtm_data.obs index 3098c36..3450ddb 100644 --- a/tutorials/assets/em1dtm_data.obs +++ b/tutorials/assets/em1dtm_data.obs @@ -1,31 +1,31 @@ -1.0000e-05 7.3102e-05 -1.2589e-05 6.1993e-05 -1.5849e-05 5.4940e-05 -1.9953e-05 4.6413e-05 -2.5119e-05 3.9683e-05 -3.1623e-05 3.2801e-05 -3.9811e-05 2.6515e-05 -5.0119e-05 2.2078e-05 -6.3096e-05 1.7474e-05 -7.9433e-05 1.4549e-05 -1.0000e-04 1.1931e-05 -1.2589e-04 1.0031e-05 -1.5849e-04 8.7759e-06 -1.9953e-04 7.4916e-06 -2.5119e-04 6.6940e-06 -3.1623e-04 5.9304e-06 -3.9811e-04 5.2050e-06 -5.0119e-04 4.5807e-06 -6.3096e-04 3.8969e-06 -7.9433e-04 3.4024e-06 -1.0000e-03 2.9312e-06 -1.2589e-03 2.4097e-06 -1.5849e-03 2.0154e-06 -1.9953e-03 1.6079e-06 -2.5119e-03 1.2174e-06 -3.1623e-03 9.4721e-07 -3.9811e-03 6.9441e-07 -5.0119e-03 4.8236e-07 -6.3096e-03 3.3284e-07 -7.9433e-03 2.3610e-07 -1.0000e-02 1.5219e-07 +1.0000e-05 9.0158e-11 +1.2589e-05 8.0479e-11 +1.5849e-05 6.8170e-11 +1.9953e-05 5.7555e-11 +2.5119e-05 4.9883e-11 +3.1623e-05 4.0871e-11 +3.9811e-05 3.2908e-11 +5.0119e-05 2.7785e-11 +6.3096e-05 2.2333e-11 +7.9433e-05 1.8236e-11 +1.0000e-04 1.4945e-11 +1.2589e-04 1.2650e-11 +1.5849e-04 1.0859e-11 +1.9953e-04 9.5498e-12 +2.5119e-04 8.2613e-12 +3.1623e-04 7.2103e-12 +3.9811e-04 6.3823e-12 +5.0119e-04 5.6965e-12 +6.3096e-04 4.9735e-12 +7.9433e-04 4.2812e-12 +1.0000e-03 3.7500e-12 +1.2589e-03 3.0255e-12 +1.5849e-03 2.5082e-12 +1.9953e-03 1.9741e-12 +2.5119e-03 1.5232e-12 +3.1623e-03 1.1415e-12 +3.9811e-03 8.5775e-13 +5.0119e-03 6.1457e-13 +6.3096e-03 4.2825e-13 +7.9433e-03 2.8916e-13 +1.0000e-02 1.9264e-13 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index 6047bd8..a147265 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-05 -7.5535e-07 -5.0000e+01 0.0000e+00 3.0000e+01 1.4125e-05 -4.2545e-07 -5.0000e+01 0.0000e+00 3.0000e+01 1.9953e-05 -2.2004e-07 -5.0000e+01 0.0000e+00 3.0000e+01 2.8184e-05 -1.0658e-07 -5.0000e+01 0.0000e+00 3.0000e+01 3.9811e-05 -5.8978e-08 -5.0000e+01 0.0000e+00 3.0000e+01 5.6234e-05 -3.3961e-08 -5.0000e+01 0.0000e+00 3.0000e+01 7.9433e-05 -2.2225e-08 -5.0000e+01 0.0000e+00 3.0000e+01 1.1220e-04 -1.6143e-08 -5.0000e+01 0.0000e+00 3.0000e+01 1.5849e-04 -1.1198e-08 -5.0000e+01 0.0000e+00 3.0000e+01 2.2387e-04 -8.6968e-09 -5.0000e+01 0.0000e+00 3.0000e+01 3.1623e-04 -5.3181e-09 -5.0000e+01 0.0000e+00 3.0000e+01 4.4668e-04 -3.3703e-09 -5.0000e+01 0.0000e+00 3.0000e+01 6.3096e-04 -2.0159e-09 -5.0000e+01 0.0000e+00 3.0000e+01 8.9125e-04 -1.0336e-09 -5.0000e+01 0.0000e+00 3.0000e+01 1.2589e-03 -5.7184e-10 -5.0000e+01 0.0000e+00 3.0000e+01 1.7783e-03 -2.4982e-10 -5.0000e+01 0.0000e+00 3.0000e+01 2.5119e-03 -1.2314e-10 -5.0000e+01 0.0000e+00 3.0000e+01 3.5481e-03 -5.0930e-11 -5.0000e+01 0.0000e+00 3.0000e+01 5.0119e-03 -2.1704e-11 -5.0000e+01 0.0000e+00 3.0000e+01 7.0795e-03 -9.5376e-12 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e-02 -4.1902e-12 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.5670e-07 -1.5204e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.0692e-07 -1.5204e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1247e-07 -1.5204e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0911e-07 -1.5204e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.5938e-08 -1.5204e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3856e-08 -1.5204e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3298e-08 -1.5204e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.6452e-08 -1.5204e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1594e-08 -1.5204e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.1662e-09 -1.5204e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.5970e-09 -1.5204e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4137e-09 -1.5204e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9132e-09 -1.5204e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.0989e-09 -1.5204e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.7268e-10 -1.5204e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.5376e-10 -1.5204e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.1733e-10 -1.5204e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.1696e-11 -1.5204e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.2383e-11 -1.5204e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.7208e-12 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.8919e-12 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4995e-07 -2.5408e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.3072e-07 -2.5408e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0875e-07 -2.5408e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0666e-07 -2.5408e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8253e-08 -2.5408e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4316e-08 -2.5408e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2478e-08 -2.5408e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5769e-08 -2.5408e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1380e-08 -2.5408e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.2684e-09 -2.5408e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.4364e-09 -2.5408e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3096e-09 -2.5408e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9615e-09 -2.5408e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1151e-09 -2.5408e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.5358e-10 -2.5408e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.6831e-10 -2.5408e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.2343e-10 -2.5408e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.0544e-11 -2.5408e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.3452e-11 -2.5408e+02 0.0000e+00 3.0000e+01 7.0795e-03 -9.1055e-12 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e-02 -3.9942e-12 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4672e-07 -3.5612e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.0634e-07 -3.5612e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0004e-07 -3.5612e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0630e-07 -3.5612e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.7625e-08 -3.5612e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4896e-08 -3.5612e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3302e-08 -3.5612e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5815e-08 -3.5612e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1041e-08 -3.5612e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.7102e-09 -3.5612e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.2637e-09 -3.5612e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3105e-09 -3.5612e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.1684e-09 -3.5612e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2176e-09 -3.5612e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.9944e-10 -3.5612e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.0948e-10 -3.5612e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3538e-10 -3.5612e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.1040e-11 -3.5612e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6934e-11 -3.5612e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1100e-11 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.4789e-12 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.9653e-07 -4.5816e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.2370e-07 -4.5816e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1233e-07 -4.5816e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0260e-07 -4.5816e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.4668e-08 -4.5816e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3467e-08 -4.5816e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2531e-08 -4.5816e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5053e-08 -4.5816e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0949e-08 -4.5816e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.0281e-09 -4.5816e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.4043e-09 -4.5816e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4386e-09 -4.5816e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0353e-09 -4.5816e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1213e-09 -4.5816e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.0046e-10 -4.5816e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.0342e-10 -4.5816e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3935e-10 -4.5816e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.1593e-11 -4.5816e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.7431e-11 -4.5816e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1330e-11 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.6476e-12 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.9584e-07 -5.6020e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.3755e-07 -5.6020e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0599e-07 -5.6020e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0358e-07 -5.6020e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8048e-08 -5.6020e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3834e-08 -5.6020e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2294e-08 -5.6020e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.6062e-08 -5.6020e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0951e-08 -5.6020e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.8547e-09 -5.6020e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.3100e-09 -5.6020e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.4963e-09 -5.6020e+02 0.0000e+00 3.0000e+01 6.3096e-04 -1.9823e-09 -5.6020e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2148e-09 -5.6020e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2038e-10 -5.6020e+02 0.0000e+00 3.0000e+01 1.7783e-03 -2.8999e-10 -5.6020e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.4209e-10 -5.6020e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.4317e-11 -5.6020e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6700e-11 -5.6020e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.1447e-11 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.3572e-12 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.7093e-07 -6.6224e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.9959e-07 -6.6224e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0518e-07 -6.6224e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0560e-07 -6.6224e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.8234e-08 -6.6224e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.4807e-08 -6.6224e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3765e-08 -6.6224e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5014e-08 -6.6224e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0498e-08 -6.6224e+02 0.0000e+00 3.0000e+01 2.2387e-04 -8.1621e-09 -6.6224e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.3849e-09 -6.6224e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.5300e-09 -6.6224e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.1473e-09 -6.6224e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1514e-09 -6.6224e+02 0.0000e+00 3.0000e+01 1.2589e-03 -5.8203e-10 -6.6224e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1275e-10 -6.6224e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.3773e-10 -6.6224e+02 0.0000e+00 3.0000e+01 3.5481e-03 -5.9702e-11 -6.6224e+02 0.0000e+00 3.0000e+01 5.0119e-03 -2.6596e-11 -6.6224e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.0573e-11 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e-02 -4.6125e-12 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-05 -8.0823e-07 -7.6429e+02 0.0000e+00 3.0000e+01 1.4125e-05 -3.9798e-07 -7.6429e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0961e-07 -7.6429e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0664e-07 -7.6429e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.3476e-08 -7.6429e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.2955e-08 -7.6429e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.2148e-08 -7.6429e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5755e-08 -7.6429e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0911e-08 -7.6429e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.2877e-09 -7.6429e+02 0.0000e+00 3.0000e+01 3.1623e-04 -5.2275e-09 -7.6429e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.2521e-09 -7.6429e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0199e-09 -7.6429e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2166e-09 -7.6429e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.3892e-10 -7.6429e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1747e-10 -7.6429e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.5534e-10 -7.6429e+02 0.0000e+00 3.0000e+01 3.5481e-03 -7.2577e-11 -7.6429e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.0201e-11 -7.6429e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.3242e-11 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.2415e-12 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-05 -8.0059e-07 -8.6633e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.1142e-07 -8.6633e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.0778e-07 -8.6633e+02 0.0000e+00 3.0000e+01 2.8184e-05 -9.9228e-08 -8.6633e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.6420e-08 -8.6633e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3730e-08 -8.6633e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.3698e-08 -8.6633e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5628e-08 -8.6633e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.1072e-08 -8.6633e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.6227e-09 -8.6633e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.9057e-09 -8.6633e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.3766e-09 -8.6633e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0640e-09 -8.6633e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.1833e-09 -8.6633e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2303e-10 -8.6633e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.3363e-10 -8.6633e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.5960e-10 -8.6633e+02 0.0000e+00 3.0000e+01 3.5481e-03 -6.7766e-11 -8.6633e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.1796e-11 -8.6633e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.2155e-11 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.4259e-12 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-05 -7.4410e-07 -9.6837e+02 0.0000e+00 3.0000e+01 1.4125e-05 -4.1745e-07 -9.6837e+02 0.0000e+00 3.0000e+01 1.9953e-05 -2.1849e-07 -9.6837e+02 0.0000e+00 3.0000e+01 2.8184e-05 -1.0454e-07 -9.6837e+02 0.0000e+00 3.0000e+01 3.9811e-05 -5.3535e-08 -9.6837e+02 0.0000e+00 3.0000e+01 5.6234e-05 -3.3404e-08 -9.6837e+02 0.0000e+00 3.0000e+01 7.9433e-05 -2.4070e-08 -9.6837e+02 0.0000e+00 3.0000e+01 1.1220e-04 -1.5077e-08 -9.6837e+02 0.0000e+00 3.0000e+01 1.5849e-04 -1.0297e-08 -9.6837e+02 0.0000e+00 3.0000e+01 2.2387e-04 -7.1727e-09 -9.6837e+02 0.0000e+00 3.0000e+01 3.1623e-04 -4.9334e-09 -9.6837e+02 0.0000e+00 3.0000e+01 4.4668e-04 -3.2980e-09 -9.6837e+02 0.0000e+00 3.0000e+01 6.3096e-04 -2.0061e-09 -9.6837e+02 0.0000e+00 3.0000e+01 8.9125e-04 -1.2468e-09 -9.6837e+02 0.0000e+00 3.0000e+01 1.2589e-03 -6.2709e-10 -9.6837e+02 0.0000e+00 3.0000e+01 1.7783e-03 -3.1851e-10 -9.6837e+02 0.0000e+00 3.0000e+01 2.5119e-03 -1.6369e-10 -9.6837e+02 0.0000e+00 3.0000e+01 3.5481e-03 -7.1572e-11 -9.6837e+02 0.0000e+00 3.0000e+01 5.0119e-03 -3.0284e-11 -9.6837e+02 0.0000e+00 3.0000e+01 7.0795e-03 -1.2546e-11 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e-02 -5.2172e-12 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1308e-07 -1.0704e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0626e-07 -1.0704e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0130e-07 -1.0704e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0682e-07 -1.0704e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9190e-08 -1.0704e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5519e-08 -1.0704e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2115e-08 -1.0704e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6386e-08 -1.0704e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0490e-08 -1.0704e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4699e-09 -1.0704e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8478e-09 -1.0704e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.5072e-09 -1.0704e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0334e-09 -1.0704e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1574e-09 -1.0704e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6617e-10 -1.0704e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.4517e-10 -1.0704e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6020e-10 -1.0704e+03 0.0000e+00 3.0000e+01 3.5481e-03 -6.7418e-11 -1.0704e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.1144e-11 -1.0704e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3225e-11 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.1623e-12 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1426e-07 -1.1724e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0996e-07 -1.1724e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1675e-07 -1.1724e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0736e-07 -1.1724e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3899e-08 -1.1724e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3101e-08 -1.1724e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3958e-08 -1.1724e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5237e-08 -1.1724e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0475e-08 -1.1724e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.5221e-09 -1.1724e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6109e-09 -1.1724e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2018e-09 -1.1724e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.1463e-09 -1.1724e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1783e-09 -1.1724e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8048e-10 -1.1724e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5143e-10 -1.1724e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7372e-10 -1.1724e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.8025e-11 -1.1724e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.3970e-11 -1.1724e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3702e-11 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7396e-12 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9514e-07 -1.2745e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2747e-07 -1.2745e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1724e-07 -1.2745e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0741e-07 -1.2745e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8071e-08 -1.2745e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4854e-08 -1.2745e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2527e-08 -1.2745e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5939e-08 -1.2745e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0929e-08 -1.2745e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4155e-09 -1.2745e+03 0.0000e+00 3.0000e+01 3.1623e-04 -5.0599e-09 -1.2745e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2736e-09 -1.2745e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0499e-09 -1.2745e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2372e-09 -1.2745e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6921e-10 -1.2745e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.4074e-10 -1.2745e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7253e-10 -1.2745e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.2978e-11 -1.2745e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.5433e-11 -1.2745e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3816e-11 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.1119e-12 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8744e-07 -1.3765e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2208e-07 -1.3765e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0365e-07 -1.3765e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0203e-07 -1.3765e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6440e-08 -1.3765e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5426e-08 -1.3765e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3320e-08 -1.3765e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4965e-08 -1.3765e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0265e-08 -1.3765e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8924e-09 -1.3765e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9109e-09 -1.3765e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1691e-09 -1.3765e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.1508e-09 -1.3765e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2527e-09 -1.3765e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7650e-10 -1.3765e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6174e-10 -1.3765e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7837e-10 -1.3765e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.1881e-11 -1.3765e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4524e-11 -1.3765e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.4820e-11 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e-02 -5.7119e-12 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.4915e-07 -1.4786e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0927e-07 -1.4786e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0606e-07 -1.4786e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0341e-07 -1.4786e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.7220e-08 -1.4786e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3485e-08 -1.4786e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3922e-08 -1.4786e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5088e-08 -1.4786e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1097e-08 -1.4786e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1244e-09 -1.4786e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9445e-09 -1.4786e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2970e-09 -1.4786e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0352e-09 -1.4786e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1650e-09 -1.4786e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7979e-10 -1.4786e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6146e-10 -1.4786e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.6978e-10 -1.4786e+03 0.0000e+00 3.0000e+01 3.5481e-03 -7.6356e-11 -1.4786e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.4788e-11 -1.4786e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.3902e-11 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.0631e-12 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9479e-07 -1.5806e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0342e-07 -1.5806e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1337e-07 -1.5806e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0731e-07 -1.5806e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3983e-08 -1.5806e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3008e-08 -1.5806e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3696e-08 -1.5806e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5464e-08 -1.5806e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0375e-08 -1.5806e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0889e-09 -1.5806e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5793e-09 -1.5806e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2530e-09 -1.5806e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0215e-09 -1.5806e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1860e-09 -1.5806e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1424e-10 -1.5806e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7013e-10 -1.5806e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.7731e-10 -1.5806e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.6858e-11 -1.5806e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9152e-11 -1.5806e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6594e-11 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5469e-12 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0671e-07 -1.6827e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0884e-07 -1.6827e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0111e-07 -1.6827e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0296e-07 -1.6827e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8219e-08 -1.6827e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5335e-08 -1.6827e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3785e-08 -1.6827e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6218e-08 -1.6827e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0812e-08 -1.6827e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4356e-09 -1.6827e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5654e-09 -1.6827e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0454e-09 -1.6827e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0790e-09 -1.6827e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2781e-09 -1.6827e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1149e-10 -1.6827e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8273e-10 -1.6827e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.8300e-10 -1.6827e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.8894e-11 -1.6827e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7261e-11 -1.6827e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6828e-11 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.5530e-12 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8617e-07 -1.7847e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3576e-07 -1.7847e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1566e-07 -1.7847e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8715e-08 -1.7847e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8927e-08 -1.7847e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5147e-08 -1.7847e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1727e-08 -1.7847e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5801e-08 -1.7847e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0385e-08 -1.7847e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1091e-09 -1.7847e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.9341e-09 -1.7847e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9796e-09 -1.7847e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0109e-09 -1.7847e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2796e-09 -1.7847e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1204e-10 -1.7847e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6283e-10 -1.7847e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9610e-10 -1.7847e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.5795e-11 -1.7847e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.0093e-11 -1.7847e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6469e-11 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.8775e-12 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8469e-07 -1.8867e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1724e-07 -1.8867e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9882e-07 -1.8867e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0232e-07 -1.8867e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6813e-08 -1.8867e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3096e-08 -1.8867e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2102e-08 -1.8867e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5537e-08 -1.8867e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0199e-08 -1.8867e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9526e-09 -1.8867e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5527e-09 -1.8867e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.2020e-09 -1.8867e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9493e-09 -1.8867e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2235e-09 -1.8867e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.9924e-10 -1.8867e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9293e-10 -1.8867e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9412e-10 -1.8867e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.1565e-11 -1.8867e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.9354e-11 -1.8867e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.6604e-11 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.7266e-12 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0889e-07 -1.9888e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0477e-07 -1.9888e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1579e-07 -1.9888e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0307e-07 -1.9888e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5316e-08 -1.9888e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4529e-08 -1.9888e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3592e-08 -1.9888e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5604e-08 -1.9888e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1045e-08 -1.9888e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4695e-09 -1.9888e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8139e-09 -1.9888e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0450e-09 -1.9888e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0447e-09 -1.9888e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2677e-09 -1.9888e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8369e-10 -1.9888e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8333e-10 -1.9888e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.8336e-10 -1.9888e+03 0.0000e+00 3.0000e+01 3.5481e-03 -8.3256e-11 -1.9888e+03 0.0000e+00 3.0000e+01 5.0119e-03 -3.7546e-11 -1.9888e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.5804e-11 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e-02 -6.3937e-12 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7865e-07 -2.0908e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0947e-07 -2.0908e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1996e-07 -2.0908e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.9345e-08 -2.0908e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8241e-08 -2.0908e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4324e-08 -2.0908e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2540e-08 -2.0908e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6106e-08 -2.0908e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0491e-08 -2.0908e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4598e-09 -2.0908e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6809e-09 -2.0908e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1030e-09 -2.0908e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9120e-09 -2.0908e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1542e-09 -2.0908e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0248e-10 -2.0908e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7303e-10 -2.0908e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9694e-10 -2.0908e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.5831e-11 -2.0908e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2955e-11 -2.0908e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8775e-11 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7758e-12 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5636e-07 -2.1929e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0367e-07 -2.1929e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0282e-07 -2.1929e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0034e-07 -2.1929e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4389e-08 -2.1929e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3443e-08 -2.1929e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.4028e-08 -2.1929e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5848e-08 -2.1929e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0978e-08 -2.1929e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9783e-09 -2.1929e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6064e-09 -2.1929e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9311e-09 -2.1929e+03 0.0000e+00 3.0000e+01 6.3096e-04 -2.0053e-09 -2.1929e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.2125e-09 -2.1929e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1969e-10 -2.1929e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8772e-10 -2.1929e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0032e-10 -2.1929e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.8478e-11 -2.1929e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.2105e-11 -2.1929e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.8102e-11 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.4942e-12 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0037e-07 -2.2949e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0710e-07 -2.2949e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9962e-07 -2.2949e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0471e-07 -2.2949e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8844e-08 -2.2949e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3519e-08 -2.2949e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3075e-08 -2.2949e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4930e-08 -2.2949e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0371e-08 -2.2949e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1253e-09 -2.2949e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7401e-09 -2.2949e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0156e-09 -2.2949e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9643e-09 -2.2949e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1323e-09 -2.2949e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7065e-10 -2.2949e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7338e-10 -2.2949e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0357e-10 -2.2949e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.5229e-11 -2.2949e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.1598e-11 -2.2949e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7213e-11 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.5840e-12 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8518e-07 -2.3969e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1458e-07 -2.3969e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1762e-07 -2.3969e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0853e-07 -2.3969e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4191e-08 -2.3969e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5615e-08 -2.3969e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3579e-08 -2.3969e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4881e-08 -2.3969e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0107e-08 -2.3969e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7240e-09 -2.3969e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5934e-09 -2.3969e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8839e-09 -2.3969e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8258e-09 -2.3969e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1737e-09 -2.3969e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.1718e-10 -2.3969e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7442e-10 -2.3969e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9267e-10 -2.3969e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.0481e-11 -2.3969e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.3862e-11 -2.3969e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.7271e-11 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.7987e-12 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9788e-07 -2.4990e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.9738e-07 -2.4990e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1707e-07 -2.4990e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0174e-07 -2.4990e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4353e-08 -2.4990e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5543e-08 -2.4990e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3359e-08 -2.4990e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5240e-08 -2.4990e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0340e-08 -2.4990e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4493e-09 -2.4990e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4290e-09 -2.4990e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9715e-09 -2.4990e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9315e-09 -2.4990e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1625e-09 -2.4990e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0420e-10 -2.4990e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7362e-10 -2.4990e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9814e-10 -2.4990e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9252e-11 -2.4990e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6690e-11 -2.4990e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9681e-11 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.0898e-12 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7964e-07 -2.6010e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3202e-07 -2.6010e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0224e-07 -2.6010e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0840e-07 -2.6010e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4947e-08 -2.6010e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5580e-08 -2.6010e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3833e-08 -2.6010e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5383e-08 -2.6010e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0875e-08 -2.6010e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1878e-09 -2.6010e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6786e-09 -2.6010e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0048e-09 -2.6010e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8255e-09 -2.6010e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1622e-09 -2.6010e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.2632e-10 -2.6010e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8157e-10 -2.6010e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0364e-10 -2.6010e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9768e-11 -2.6010e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4684e-11 -2.6010e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9799e-11 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.3309e-12 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6243e-07 -2.7031e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1060e-07 -2.7031e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1324e-07 -2.7031e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0942e-07 -2.7031e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9062e-08 -2.7031e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.6328e-08 -2.7031e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2274e-08 -2.7031e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5112e-08 -2.7031e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0263e-08 -2.7031e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2048e-09 -2.7031e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6684e-09 -2.7031e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9842e-09 -2.7031e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8204e-09 -2.7031e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1176e-09 -2.7031e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7621e-10 -2.7031e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9003e-10 -2.7031e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9497e-10 -2.7031e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9834e-11 -2.7031e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.4172e-11 -2.7031e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9217e-11 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.4894e-12 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1068e-07 -2.8051e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0121e-07 -2.8051e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9936e-07 -2.8051e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0894e-07 -2.8051e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8701e-08 -2.8051e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5981e-08 -2.8051e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1805e-08 -2.8051e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6007e-08 -2.8051e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0151e-08 -2.8051e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0929e-09 -2.8051e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7936e-09 -2.8051e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0196e-09 -2.8051e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8200e-09 -2.8051e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1990e-09 -2.8051e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7057e-10 -2.8051e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9331e-10 -2.8051e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9662e-10 -2.8051e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.6306e-11 -2.8051e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6910e-11 -2.8051e+03 0.0000e+00 3.0000e+01 7.0795e-03 -1.9048e-11 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.6814e-12 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5095e-07 -2.9071e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0147e-07 -2.9071e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1320e-07 -2.9071e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0507e-07 -2.9071e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8583e-08 -2.9071e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3936e-08 -2.9071e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2902e-08 -2.9071e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4834e-08 -2.9071e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0958e-08 -2.9071e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7358e-09 -2.9071e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5729e-09 -2.9071e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0986e-09 -2.9071e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8102e-09 -2.9071e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1190e-09 -2.9071e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8130e-10 -2.9071e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0230e-10 -2.9071e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1365e-10 -2.9071e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.4959e-11 -2.9071e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.7765e-11 -2.9071e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.0443e-11 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e-02 -7.9447e-12 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.0120e-07 -3.0092e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1121e-07 -3.0092e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1676e-07 -3.0092e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.9068e-08 -3.0092e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3956e-08 -3.0092e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4102e-08 -3.0092e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1691e-08 -3.0092e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4961e-08 -3.0092e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0971e-08 -3.0092e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2874e-09 -3.0092e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6146e-09 -3.0092e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9599e-09 -3.0092e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7668e-09 -3.0092e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0907e-09 -3.0092e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0209e-10 -3.0092e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0439e-10 -3.0092e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0569e-10 -3.0092e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0902e-10 -3.0092e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.6718e-11 -3.0092e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1757e-11 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.7591e-12 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.2245e-07 -3.1112e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1766e-07 -3.1112e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1276e-07 -3.1112e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8659e-08 -3.1112e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5917e-08 -3.1112e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4905e-08 -3.1112e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3406e-08 -3.1112e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5803e-08 -3.1112e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0432e-08 -3.1112e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9072e-09 -3.1112e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4913e-09 -3.1112e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0441e-09 -3.1112e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8513e-09 -3.1112e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1571e-09 -3.1112e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4323e-10 -3.1112e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8172e-10 -3.1112e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0710e-10 -3.1112e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0920e-10 -3.1112e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0652e-11 -3.1112e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2441e-11 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.3953e-12 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5914e-07 -3.2133e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0590e-07 -3.2133e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1026e-07 -3.2133e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0580e-07 -3.2133e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3696e-08 -3.2133e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4335e-08 -3.2133e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1938e-08 -3.2133e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6248e-08 -3.2133e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1037e-08 -3.2133e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9424e-09 -3.2133e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6290e-09 -3.2133e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8612e-09 -3.2133e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8146e-09 -3.2133e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0958e-09 -3.2133e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5014e-10 -3.2133e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9776e-10 -3.2133e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9752e-10 -3.2133e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0123e-10 -3.2133e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.7497e-11 -3.2133e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1936e-11 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.0226e-12 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8002e-07 -3.3153e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0309e-07 -3.3153e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1243e-07 -3.3153e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8722e-08 -3.3153e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8407e-08 -3.3153e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2865e-08 -3.3153e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3290e-08 -3.3153e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6267e-08 -3.3153e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.1107e-08 -3.3153e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2966e-09 -3.3153e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8511e-09 -3.3153e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0559e-09 -3.3153e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8681e-09 -3.3153e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1339e-09 -3.3153e+03 0.0000e+00 3.0000e+01 1.2589e-03 -7.0902e-10 -3.3153e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8086e-10 -3.3153e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1520e-10 -3.3153e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0942e-10 -3.3153e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1007e-11 -3.3153e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2274e-11 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.1406e-12 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8631e-07 -3.4173e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2292e-07 -3.4173e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1957e-07 -3.4173e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0677e-07 -3.4173e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8359e-08 -3.4173e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4952e-08 -3.4173e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2145e-08 -3.4173e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5461e-08 -3.4173e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0076e-08 -3.4173e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8610e-09 -3.4173e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4808e-09 -3.4173e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8063e-09 -3.4173e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8463e-09 -3.4173e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1697e-09 -3.4173e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5633e-10 -3.4173e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6830e-10 -3.4173e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0343e-10 -3.4173e+03 0.0000e+00 3.0000e+01 3.5481e-03 -9.9875e-11 -3.4173e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8208e-11 -3.4173e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.1345e-11 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4973e-12 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1754e-07 -3.5194e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2258e-07 -3.5194e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1868e-07 -3.5194e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0875e-07 -3.5194e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6308e-08 -3.5194e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5161e-08 -3.5194e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1910e-08 -3.5194e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6170e-08 -3.5194e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0216e-08 -3.5194e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2281e-09 -3.5194e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8523e-09 -3.5194e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9813e-09 -3.5194e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8265e-09 -3.5194e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1756e-09 -3.5194e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6912e-10 -3.5194e+03 0.0000e+00 3.0000e+01 1.7783e-03 -4.0579e-10 -3.5194e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1234e-10 -3.5194e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0146e-10 -3.5194e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8273e-11 -3.5194e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2667e-11 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e-02 -8.8514e-12 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1137e-07 -3.6214e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3330e-07 -3.6214e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1955e-07 -3.6214e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0082e-07 -3.6214e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3509e-08 -3.6214e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3227e-08 -3.6214e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.4072e-08 -3.6214e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5802e-08 -3.6214e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0957e-08 -3.6214e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8520e-09 -3.6214e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.8483e-09 -3.6214e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0816e-09 -3.6214e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8304e-09 -3.6214e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1487e-09 -3.6214e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4942e-10 -3.6214e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7241e-10 -3.6214e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0259e-10 -3.6214e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0360e-10 -3.6214e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0515e-11 -3.6214e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3943e-11 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.4434e-12 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8382e-07 -3.7235e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1045e-07 -3.7235e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9811e-07 -3.7235e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0675e-07 -3.7235e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4555e-08 -3.7235e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4607e-08 -3.7235e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2780e-08 -3.7235e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5688e-08 -3.7235e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0862e-08 -3.7235e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0250e-09 -3.7235e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6643e-09 -3.7235e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.8800e-09 -3.7235e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8455e-09 -3.7235e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1609e-09 -3.7235e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.8082e-10 -3.7235e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9151e-10 -3.7235e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0135e-10 -3.7235e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0627e-10 -3.7235e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2394e-11 -3.7235e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2716e-11 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.5431e-12 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8065e-07 -3.8255e+03 0.0000e+00 3.0000e+01 1.4125e-05 -3.9920e-07 -3.8255e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1539e-07 -3.8255e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0074e-07 -3.8255e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8904e-08 -3.8255e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5244e-08 -3.8255e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2287e-08 -3.8255e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5303e-08 -3.8255e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0297e-08 -3.8255e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2752e-09 -3.8255e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7374e-09 -3.8255e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.1084e-09 -3.8255e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8884e-09 -3.8255e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1194e-09 -3.8255e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5203e-10 -3.8255e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7139e-10 -3.8255e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1821e-10 -3.8255e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1248e-10 -3.8255e+03 0.0000e+00 3.0000e+01 5.0119e-03 -4.8691e-11 -3.8255e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3969e-11 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0387e-11 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9100e-07 -3.9276e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1514e-07 -3.9276e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0024e-07 -3.9276e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8926e-08 -3.9276e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6318e-08 -3.9276e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3583e-08 -3.9276e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2280e-08 -3.9276e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5750e-08 -3.9276e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0918e-08 -3.9276e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2567e-09 -3.9276e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5328e-09 -3.9276e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0641e-09 -3.9276e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9220e-09 -3.9276e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1496e-09 -3.9276e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3147e-10 -3.9276e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6579e-10 -3.9276e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0295e-10 -3.9276e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1168e-10 -3.9276e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1829e-11 -3.9276e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.2118e-11 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.6094e-12 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.9192e-07 -4.0296e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0951e-07 -4.0296e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1232e-07 -4.0296e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0128e-07 -4.0296e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5474e-08 -4.0296e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2808e-08 -4.0296e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2668e-08 -4.0296e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5196e-08 -4.0296e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0922e-08 -4.0296e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.8719e-09 -4.0296e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5137e-09 -4.0296e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0286e-09 -4.0296e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7682e-09 -4.0296e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0904e-09 -4.0296e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.2798e-10 -4.0296e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8549e-10 -4.0296e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0007e-10 -4.0296e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1126e-10 -4.0296e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.3551e-11 -4.0296e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3614e-11 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e-02 -9.9045e-12 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6116e-07 -4.1316e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3783e-07 -4.1316e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1220e-07 -4.1316e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0522e-07 -4.1316e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.9069e-08 -4.1316e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5995e-08 -4.1316e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3023e-08 -4.1316e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5878e-08 -4.1316e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0787e-08 -4.1316e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.0719e-09 -4.1316e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7253e-09 -4.1316e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9834e-09 -4.1316e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8300e-09 -4.1316e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1563e-09 -4.1316e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3329e-10 -4.1316e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9258e-10 -4.1316e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0450e-10 -4.1316e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0420e-10 -4.1316e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.0685e-11 -4.1316e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5597e-11 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0463e-11 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8814e-07 -4.2337e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1448e-07 -4.2337e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1069e-07 -4.2337e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0251e-07 -4.2337e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6326e-08 -4.2337e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4765e-08 -4.2337e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2583e-08 -4.2337e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6107e-08 -4.2337e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0239e-08 -4.2337e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7747e-09 -4.2337e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5231e-09 -4.2337e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9761e-09 -4.2337e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.9233e-09 -4.2337e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1438e-09 -4.2337e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.3965e-10 -4.2337e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8052e-10 -4.2337e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9967e-10 -4.2337e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1069e-10 -4.2337e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.4493e-11 -4.2337e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4908e-11 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0293e-11 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1357e-07 -4.3357e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3788e-07 -4.3357e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1568e-07 -4.3357e+03 0.0000e+00 3.0000e+01 2.8184e-05 -9.8570e-08 -4.3357e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.8573e-08 -4.3357e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.2885e-08 -4.3357e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3873e-08 -4.3357e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6043e-08 -4.3357e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0580e-08 -4.3357e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2266e-09 -4.3357e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4413e-09 -4.3357e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9617e-09 -4.3357e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8576e-09 -4.3357e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1199e-09 -4.3357e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.7703e-10 -4.3357e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.8676e-10 -4.3357e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9964e-10 -4.3357e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0343e-10 -4.3357e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2798e-11 -4.3357e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.3589e-11 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0990e-11 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7032e-07 -4.4378e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2674e-07 -4.4378e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1514e-07 -4.4378e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0125e-07 -4.4378e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.7696e-08 -4.4378e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3317e-08 -4.4378e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2294e-08 -4.4378e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5323e-08 -4.4378e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0291e-08 -4.4378e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.4315e-09 -4.4378e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5666e-09 -4.4378e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9490e-09 -4.4378e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7452e-09 -4.4378e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1382e-09 -4.4378e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4188e-10 -4.4378e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7318e-10 -4.4378e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0430e-10 -4.4378e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0299e-10 -4.4378e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.5270e-11 -4.4378e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4977e-11 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0796e-11 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.8496e-07 -4.5398e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3988e-07 -4.5398e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1497e-07 -4.5398e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0118e-07 -4.5398e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5557e-08 -4.5398e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3897e-08 -4.5398e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2305e-08 -4.5398e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4874e-08 -4.5398e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0624e-08 -4.5398e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7726e-09 -4.5398e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.6823e-09 -4.5398e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0955e-09 -4.5398e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7855e-09 -4.5398e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0667e-09 -4.5398e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4703e-10 -4.5398e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.9444e-10 -4.5398e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0946e-10 -4.5398e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1284e-10 -4.5398e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.3428e-11 -4.5398e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4079e-11 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1138e-11 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.5207e-07 -4.6418e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.3077e-07 -4.6418e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1474e-07 -4.6418e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0290e-07 -4.6418e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.5168e-08 -4.6418e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4309e-08 -4.6418e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.1966e-08 -4.6418e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.6112e-08 -4.6418e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0518e-08 -4.6418e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1542e-09 -4.6418e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5872e-09 -4.6418e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9128e-09 -4.6418e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8474e-09 -4.6418e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1194e-09 -4.6418e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5059e-10 -4.6418e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7275e-10 -4.6418e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0510e-10 -4.6418e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0994e-10 -4.6418e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.2387e-11 -4.6418e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4324e-11 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.0479e-11 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.4490e-07 -4.7439e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.1798e-07 -4.7439e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0216e-07 -4.7439e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0455e-07 -4.7439e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6842e-08 -4.7439e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.3039e-08 -4.7439e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2369e-08 -4.7439e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5151e-08 -4.7439e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0363e-08 -4.7439e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.7402e-09 -4.7439e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4977e-09 -4.7439e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9794e-09 -4.7439e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7380e-09 -4.7439e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0720e-09 -4.7439e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5658e-10 -4.7439e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.6088e-10 -4.7439e+03 0.0000e+00 3.0000e+01 2.5119e-03 -1.9536e-10 -4.7439e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1364e-10 -4.7439e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.1748e-11 -4.7439e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5813e-11 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1181e-11 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.7036e-07 -4.8459e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2440e-07 -4.8459e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.1315e-07 -4.8459e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0759e-07 -4.8459e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.6370e-08 -4.8459e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.4273e-08 -4.8459e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3083e-08 -4.8459e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5439e-08 -4.8459e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0881e-08 -4.8459e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.2692e-09 -4.8459e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.5033e-09 -4.8459e+03 0.0000e+00 3.0000e+01 4.4668e-04 -3.0971e-09 -4.8459e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.8441e-09 -4.8459e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0731e-09 -4.8459e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.4843e-10 -4.8459e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.7600e-10 -4.8459e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1382e-10 -4.8459e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.1043e-10 -4.8459e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.6514e-11 -4.8459e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.5235e-11 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1839e-11 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-05 -8.1332e-07 -4.9480e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.0359e-07 -4.9480e+03 0.0000e+00 3.0000e+01 1.9953e-05 -2.0437e-07 -4.9480e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0797e-07 -4.9480e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.4215e-08 -4.9480e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5073e-08 -4.9480e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.2827e-08 -4.9480e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.4798e-08 -4.9480e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0607e-08 -4.9480e+03 0.0000e+00 3.0000e+01 2.2387e-04 -7.1498e-09 -4.9480e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.4001e-09 -4.9480e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9405e-09 -4.9480e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7516e-09 -4.9480e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.1079e-09 -4.9480e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.5714e-10 -4.9480e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5429e-10 -4.9480e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.0384e-10 -4.9480e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0346e-10 -4.9480e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.7344e-11 -4.9480e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4381e-11 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1649e-11 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-05 -7.6372e-07 -5.0500e+03 0.0000e+00 3.0000e+01 1.4125e-05 -4.2459e-07 -5.0500e+03 0.0000e+00 3.0000e+01 1.9953e-05 -1.9994e-07 -5.0500e+03 0.0000e+00 3.0000e+01 2.8184e-05 -1.0741e-07 -5.0500e+03 0.0000e+00 3.0000e+01 3.9811e-05 -5.3795e-08 -5.0500e+03 0.0000e+00 3.0000e+01 5.6234e-05 -3.5725e-08 -5.0500e+03 0.0000e+00 3.0000e+01 7.9433e-05 -2.3787e-08 -5.0500e+03 0.0000e+00 3.0000e+01 1.1220e-04 -1.5964e-08 -5.0500e+03 0.0000e+00 3.0000e+01 1.5849e-04 -1.0825e-08 -5.0500e+03 0.0000e+00 3.0000e+01 2.2387e-04 -6.9153e-09 -5.0500e+03 0.0000e+00 3.0000e+01 3.1623e-04 -4.7755e-09 -5.0500e+03 0.0000e+00 3.0000e+01 4.4668e-04 -2.9212e-09 -5.0500e+03 0.0000e+00 3.0000e+01 6.3096e-04 -1.7959e-09 -5.0500e+03 0.0000e+00 3.0000e+01 8.9125e-04 -1.0505e-09 -5.0500e+03 0.0000e+00 3.0000e+01 1.2589e-03 -6.6785e-10 -5.0500e+03 0.0000e+00 3.0000e+01 1.7783e-03 -3.5385e-10 -5.0500e+03 0.0000e+00 3.0000e+01 2.5119e-03 -2.1325e-10 -5.0500e+03 0.0000e+00 3.0000e+01 3.5481e-03 -1.0502e-10 -5.0500e+03 0.0000e+00 3.0000e+01 5.0119e-03 -5.5700e-11 -5.0500e+03 0.0000e+00 3.0000e+01 7.0795e-03 -2.4573e-11 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e-02 -1.1504e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.7470e-06 +5.0000e+01 0.0000e+00 2.0000e+01 1.4125e-05 -8.0873e-07 +5.0000e+01 0.0000e+00 2.0000e+01 1.9953e-05 -4.0210e-07 +5.0000e+01 0.0000e+00 2.0000e+01 2.8184e-05 -1.9095e-07 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0494e-07 +5.0000e+01 0.0000e+00 2.0000e+01 5.6234e-05 -5.9787e-08 +5.0000e+01 0.0000e+00 2.0000e+01 7.9433e-05 -4.1740e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.1220e-04 -2.9071e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -1.9342e-08 +5.0000e+01 0.0000e+00 2.0000e+01 2.2387e-04 -1.3797e-08 +5.0000e+01 0.0000e+00 2.0000e+01 3.1623e-04 -8.8620e-09 +5.0000e+01 0.0000e+00 2.0000e+01 4.4668e-04 -4.8850e-09 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.7258e-09 +5.0000e+01 0.0000e+00 2.0000e+01 8.9125e-04 -1.4265e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.2589e-03 -7.1502e-10 +5.0000e+01 0.0000e+00 2.0000e+01 1.7783e-03 -3.1520e-10 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.3865e-10 +5.0000e+01 0.0000e+00 2.0000e+01 3.5481e-03 -6.1342e-11 +5.0000e+01 0.0000e+00 2.0000e+01 5.0119e-03 -2.6485e-11 +5.0000e+01 0.0000e+00 2.0000e+01 7.0795e-03 -1.0119e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -4.3841e-12 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6592e-06 +1.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6851e-07 +1.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9355e-07 +1.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9223e-07 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0357e-07 +1.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4760e-08 +1.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2343e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.9725e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -2.0207e-08 +1.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3022e-08 +1.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.4164e-09 +1.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9727e-09 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9425e-09 +1.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4132e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -6.9594e-10 +1.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.2839e-10 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4551e-10 +1.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.2246e-11 +1.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4413e-11 +1.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0006e-11 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.1756e-12 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7341e-06 +2.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2161e-07 +2.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9543e-07 +2.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8445e-07 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0246e-07 +2.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.1558e-08 +2.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9374e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8460e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8540e-08 +2.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2804e-08 +2.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.1925e-09 +2.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8798e-09 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9903e-09 +2.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6020e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.6708e-10 +2.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6578e-10 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6754e-10 +2.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9684e-11 +2.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0008e-11 +2.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2683e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0088e-12 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7364e-06 +3.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7171e-07 +3.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7957e-07 +3.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8700e-07 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0122e-07 +3.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0533e-08 +3.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0422e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6734e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7769e-08 +3.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2144e-08 +3.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.5734e-09 +3.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2553e-09 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0903e-09 +3.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5044e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.1324e-10 +3.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6517e-10 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7284e-10 +3.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.3262e-11 +3.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.9699e-11 +3.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2723e-11 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0412e-12 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6998e-06 +4.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6091e-07 +4.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9504e-07 +4.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9007e-07 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 +4.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0863e-08 +4.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9839e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6772e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8492e-08 +4.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2814e-08 +4.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.1848e-09 +4.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8923e-09 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9268e-09 +4.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5042e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.9620e-10 +4.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6208e-10 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7375e-10 +4.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9116e-11 +4.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.9651e-11 +4.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2851e-11 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0997e-12 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7004e-06 +5.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2270e-07 +5.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.1607e-07 +5.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8982e-07 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9043e-08 +5.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.1161e-08 +5.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8682e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8204e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8452e-08 +5.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1498e-08 +5.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.7020e-09 +5.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9725e-09 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8962e-09 +5.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5998e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.2042e-10 +5.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.9518e-10 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9703e-10 +5.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.6067e-11 +5.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.6017e-11 +5.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4813e-11 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4051e-12 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7794e-06 +6.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.1612e-07 +6.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8963e-07 +6.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9105e-07 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0393e-07 +6.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3097e-08 +6.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1572e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.5827e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7600e-08 +6.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2629e-08 +6.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.9551e-09 +6.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1409e-09 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1502e-09 +6.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6018e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.3875e-10 +6.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.2455e-10 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8391e-10 +6.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3864e-11 +6.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.5166e-11 +6.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.3458e-11 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4021e-12 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7024e-06 +7.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.0630e-07 +7.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8115e-07 +7.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9044e-07 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0365e-07 +7.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0763e-08 +7.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0711e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6696e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7098e-08 +7.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1682e-08 +7.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0612e-09 +7.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2427e-09 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1010e-09 +7.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6647e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.7091e-10 +7.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0387e-10 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8118e-10 +7.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.5136e-11 +7.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.3163e-11 +7.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.3415e-11 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4125e-12 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7897e-06 +8.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.8600e-07 +8.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.1805e-07 +8.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9457e-07 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0707e-07 +8.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3488e-08 +8.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1136e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.5706e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8072e-08 +8.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2310e-08 +8.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.9205e-09 +8.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9494e-09 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1242e-09 +8.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6241e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.3139e-10 +8.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0196e-10 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8203e-10 +8.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3368e-11 +8.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.4673e-11 +8.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4685e-11 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8518e-12 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6220e-06 +9.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6577e-07 +9.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8034e-07 +9.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8296e-07 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.7735e-08 +9.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4388e-08 +9.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8898e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6570e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8385e-08 +9.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1896e-08 +9.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.8857e-09 +9.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8833e-09 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0967e-09 +9.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.7633e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -9.3978e-10 +9.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.4448e-10 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -2.1000e-10 +9.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.9723e-11 +9.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -4.0497e-11 +9.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.5916e-11 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -6.7920e-12 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7037e-06 +1.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1421e-07 +1.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7713e-07 +1.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0065e-07 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0494e-07 +1.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3946e-08 +1.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2447e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8334e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7860e-08 +1.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2265e-08 +1.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.7908e-09 +1.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7833e-09 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0308e-09 +1.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7446e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0207e-10 +1.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5930e-10 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0713e-10 +1.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3431e-11 +1.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.8884e-11 +1.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6386e-11 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.6199e-12 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7725e-06 +1.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0763e-07 +1.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8463e-07 +1.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8201e-07 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0567e-07 +1.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9306e-08 +1.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8659e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7559e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8265e-08 +1.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1642e-08 +1.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.8654e-09 +1.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8845e-09 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0650e-09 +1.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6231e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1134e-10 +1.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.3145e-10 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0841e-10 +1.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3547e-11 +1.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.7495e-11 +1.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6743e-11 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.3845e-12 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6776e-06 +1.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5247e-07 +1.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1581e-07 +1.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9095e-07 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0266e-07 +1.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0133e-08 +1.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1555e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7248e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8290e-08 +1.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1355e-08 +1.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0411e-09 +1.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8531e-09 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7936e-09 +1.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7463e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7865e-10 +1.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9819e-10 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1949e-10 +1.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.9447e-11 +1.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.5390e-11 +1.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7425e-11 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0625e-12 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7184e-06 +1.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4942e-07 +1.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9195e-07 +1.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9767e-07 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0751e-07 +1.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3673e-08 +1.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2584e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6445e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7707e-08 +1.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1800e-08 +1.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2049e-09 +1.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8687e-09 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9691e-09 +1.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7353e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6507e-10 +1.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0076e-10 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2107e-10 +1.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0818e-10 +1.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3546e-11 +1.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.9017e-11 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.7103e-12 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6964e-06 +1.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1030e-07 +1.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8230e-07 +1.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9405e-07 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0737e-07 +1.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0171e-08 +1.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9212e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5895e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7485e-08 +1.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1207e-08 +1.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1133e-09 +1.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7165e-09 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8738e-09 +1.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6971e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1624e-10 +1.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7070e-10 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2954e-10 +1.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0010e-10 +1.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4378e-11 +1.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7661e-11 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5010e-12 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7644e-06 +1.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0471e-07 +1.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8726e-07 +1.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9563e-07 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0141e-07 +1.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9161e-08 +1.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2305e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8121e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7580e-08 +1.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1918e-08 +1.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2167e-09 +1.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6600e-09 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8409e-09 +1.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7683e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7606e-10 +1.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7362e-10 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3222e-10 +1.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0819e-10 +1.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.5008e-11 +1.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7955e-11 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5722e-12 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6356e-06 +1.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0649e-07 +1.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7807e-07 +1.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8618e-07 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0329e-07 +1.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0545e-08 +1.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1421e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7466e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7600e-08 +1.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1434e-08 +1.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0455e-09 +1.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6999e-09 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7315e-09 +1.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5916e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.8994e-10 +1.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9747e-10 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4033e-10 +1.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0870e-10 +1.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0806e-11 +1.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.9708e-11 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3616e-12 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6362e-06 +1.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8866e-07 +1.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1472e-07 +1.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8114e-07 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0110e-07 +1.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2678e-08 +1.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1928e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6515e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8666e-08 +1.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1778e-08 +1.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4743e-09 +1.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5298e-09 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7656e-09 +1.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6083e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9821e-10 +1.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8784e-10 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4236e-10 +1.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1397e-10 +1.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.6754e-11 +1.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1221e-11 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.9010e-12 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7406e-06 +1.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4226e-07 +1.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8976e-07 +1.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9610e-07 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0586e-07 +1.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2084e-08 +1.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9272e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6394e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8512e-08 +1.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1062e-08 +1.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3536e-09 +1.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3662e-09 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7944e-09 +1.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7421e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7000e-10 +1.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7772e-10 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3907e-10 +1.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0808e-10 +1.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0054e-11 +1.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0415e-11 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.1133e-12 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6897e-06 +1.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7051e-07 +1.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0044e-07 +1.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9586e-07 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8563e-08 +1.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.8956e-08 +1.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2365e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6333e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8116e-08 +1.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1391e-08 +1.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4950e-09 +1.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4493e-09 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7826e-09 +1.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6663e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9196e-10 +1.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8005e-10 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5142e-10 +1.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2394e-10 +1.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1068e-11 +1.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2032e-11 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9435e-12 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7584e-06 +2.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1716e-07 +2.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0825e-07 +2.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8816e-07 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0001e-07 +2.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0554e-08 +2.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0985e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6203e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7043e-08 +2.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1437e-08 +2.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6240e-09 +2.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6978e-09 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8595e-09 +2.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6872e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6904e-10 +2.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8876e-10 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6680e-10 +2.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2360e-10 +2.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1408e-11 +2.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1500e-11 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0844e-12 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6211e-06 +2.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8726e-07 +2.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7861e-07 +2.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9459e-07 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9065e-08 +2.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0107e-08 +2.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8982e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7057e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6991e-08 +2.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1837e-08 +2.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9746e-09 +2.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4645e-09 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6051e-09 +2.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7113e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1027e-10 +2.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0003e-10 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5466e-10 +2.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2338e-10 +2.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.4520e-11 +2.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3225e-11 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.4578e-12 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6528e-06 +2.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4636e-07 +2.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1481e-07 +2.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8524e-07 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0192e-07 +2.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0573e-08 +2.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0451e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7224e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6887e-08 +2.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2117e-08 +2.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9759e-09 +2.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3161e-09 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7769e-09 +2.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6801e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2067e-10 +2.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2057e-10 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4634e-10 +2.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2345e-10 +2.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.4723e-11 +2.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1638e-11 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.7967e-12 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7003e-06 +2.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1424e-07 +2.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0355e-07 +2.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8080e-07 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0300e-07 +2.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3481e-08 +2.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2472e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5551e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7864e-08 +2.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1258e-08 +2.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1934e-09 +2.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3902e-09 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8320e-09 +2.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5251e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7554e-10 +2.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0081e-10 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4776e-10 +2.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2909e-10 +2.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6763e-11 +2.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4943e-11 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.9980e-12 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7425e-06 +2.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1812e-07 +2.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1537e-07 +2.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0001e-07 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0714e-07 +2.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4426e-08 +2.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0963e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5649e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8527e-08 +2.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1363e-08 +2.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2804e-09 +2.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5652e-09 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7902e-09 +2.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6426e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6075e-10 +2.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9227e-10 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5626e-10 +2.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2692e-10 +2.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6058e-11 +2.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5687e-11 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.6665e-12 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6442e-06 +2.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3241e-07 +2.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0245e-07 +2.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9248e-07 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0248e-07 +2.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9292e-08 +2.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8966e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7003e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7696e-08 +2.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1086e-08 +2.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9564e-09 +2.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4299e-09 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6335e-09 +2.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6206e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7639e-10 +2.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8572e-10 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5905e-10 +2.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2129e-10 +2.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.5267e-11 +2.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3873e-11 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0529e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7002e-06 +2.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1086e-07 +2.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8605e-07 +2.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9240e-07 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7139e-08 +2.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3769e-08 +2.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1227e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5652e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7219e-08 +2.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1056e-08 +2.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6771e-09 +2.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5527e-09 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7796e-09 +2.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6300e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9376e-10 +2.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9169e-10 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6152e-10 +2.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2797e-10 +2.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6869e-11 +2.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4586e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0081e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6859e-06 +2.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5588e-07 +2.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8601e-07 +2.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9580e-07 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0061e-07 +2.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9128e-08 +2.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2634e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6306e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8530e-08 +2.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1489e-08 +2.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2041e-09 +2.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6174e-09 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5865e-09 +2.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5752e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.4262e-10 +2.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8925e-10 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7129e-10 +2.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2544e-10 +2.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9827e-11 +2.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4464e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0398e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6798e-06 +2.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2734e-07 +2.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9637e-07 +2.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8764e-07 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8911e-08 +2.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0128e-08 +2.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0006e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7079e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7970e-08 +2.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1087e-08 +2.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1444e-09 +2.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6363e-09 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6646e-09 +2.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5019e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3230e-10 +2.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8053e-10 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5403e-10 +2.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3028e-10 +2.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3518e-11 +2.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7532e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0570e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7885e-06 +2.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5794e-07 +2.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9240e-07 +2.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9689e-07 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7104e-08 +2.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4390e-08 +2.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0348e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6605e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8302e-08 +2.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1583e-08 +2.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3073e-09 +2.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3614e-09 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6452e-09 +2.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5748e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8344e-10 +2.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0112e-10 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6218e-10 +2.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2810e-10 +2.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2603e-11 +2.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5742e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0942e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6204e-06 +3.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7132e-07 +3.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9879e-07 +3.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8286e-07 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0119e-07 +3.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0661e-08 +3.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0885e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6417e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6962e-08 +3.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1907e-08 +3.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0642e-09 +3.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2657e-09 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8203e-09 +3.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6165e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3546e-10 +3.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8463e-10 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7449e-10 +3.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2344e-10 +3.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1274e-11 +3.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5415e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1424e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7173e-06 +3.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1585e-07 +3.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9339e-07 +3.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9156e-07 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0215e-07 +3.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1656e-08 +3.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0771e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7809e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8521e-08 +3.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1966e-08 +3.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6443e-09 +3.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4598e-09 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5850e-09 +3.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5927e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3944e-10 +3.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0257e-10 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6007e-10 +3.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3130e-10 +3.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8589e-11 +3.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5312e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0631e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6700e-06 +3.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4922e-07 +3.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8974e-07 +3.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0058e-07 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7089e-08 +3.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4284e-08 +3.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8784e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6069e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7236e-08 +3.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1823e-08 +3.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5160e-09 +3.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5190e-09 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5761e-09 +3.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5614e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4346e-10 +3.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9885e-10 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5916e-10 +3.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2599e-10 +3.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2101e-11 +3.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9543e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1988e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7363e-06 +3.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4371e-07 +3.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0638e-07 +3.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9839e-07 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0047e-07 +3.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0953e-08 +3.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8951e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7982e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7238e-08 +3.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1145e-08 +3.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1876e-09 +3.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6247e-09 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7416e-09 +3.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5666e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8008e-10 +3.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9240e-10 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6336e-10 +3.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2796e-10 +3.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0597e-11 +3.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7254e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1467e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6939e-06 +3.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0523e-07 +3.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9292e-07 +3.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8872e-07 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0423e-07 +3.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0954e-08 +3.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2428e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7976e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8491e-08 +3.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1354e-08 +3.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5497e-09 +3.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5604e-09 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8027e-09 +3.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5968e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4078e-10 +3.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9076e-10 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7210e-10 +3.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3238e-10 +3.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0109e-11 +3.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7109e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2078e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7455e-06 +3.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2325e-07 +3.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0823e-07 +3.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9574e-07 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0676e-07 +3.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9757e-08 +3.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0739e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6765e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7354e-08 +3.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1182e-08 +3.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3406e-09 +3.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6346e-09 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5819e-09 +3.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6300e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4240e-10 +3.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8726e-10 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5209e-10 +3.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3119e-10 +3.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4701e-11 +3.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8799e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1901e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6236e-06 +3.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7469e-07 +3.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9696e-07 +3.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9394e-07 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9380e-08 +3.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0158e-08 +3.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0839e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7779e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8609e-08 +3.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1909e-08 +3.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4751e-09 +3.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4388e-09 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5694e-09 +3.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6141e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4134e-10 +3.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8177e-10 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5578e-10 +3.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2596e-10 +3.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3610e-11 +3.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8101e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1717e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7043e-06 +3.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6448e-07 +3.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1388e-07 +3.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9512e-07 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9389e-08 +3.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1218e-08 +3.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9232e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6891e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8300e-08 +3.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1387e-08 +3.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4508e-09 +3.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7072e-09 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5581e-09 +3.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5580e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7966e-10 +3.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7113e-10 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4781e-10 +3.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3967e-10 +3.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.7048e-11 +3.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0129e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3089e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7075e-06 +3.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1766e-07 +3.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8257e-07 +3.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8888e-07 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0508e-07 +3.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4190e-08 +3.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9479e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7685e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7724e-08 +3.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1240e-08 +3.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5090e-09 +3.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6387e-09 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8010e-09 +3.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6024e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4058e-10 +3.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0353e-10 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6766e-10 +3.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.4023e-10 +3.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3612e-11 +3.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0411e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2867e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7714e-06 +3.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5752e-07 +3.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0054e-07 +3.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9135e-07 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0311e-07 +3.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4738e-08 +3.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9354e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7969e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7940e-08 +3.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1820e-08 +3.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4531e-09 +3.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4036e-09 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6665e-09 +3.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5955e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7571e-10 +3.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9158e-10 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5449e-10 +3.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3751e-10 +3.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2461e-11 +3.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9494e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2750e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7509e-06 +4.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7455e-07 +4.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9856e-07 +4.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8113e-07 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0624e-07 +4.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3556e-08 +4.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9235e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6473e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8212e-08 +4.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1768e-08 +4.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3617e-09 +4.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4365e-09 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6099e-09 +4.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4869e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5623e-10 +4.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9679e-10 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4844e-10 +4.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2970e-10 +4.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6129e-11 +4.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0183e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2240e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7738e-06 +4.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3468e-07 +4.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0668e-07 +4.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8423e-07 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0374e-07 +4.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0613e-08 +4.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1829e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6993e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7229e-08 +4.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1668e-08 +4.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5603e-09 +4.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4147e-09 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6003e-09 +4.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5808e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7734e-10 +4.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6303e-10 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4991e-10 +4.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3074e-10 +4.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4195e-11 +4.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8588e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2204e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7960e-06 +4.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5574e-07 +4.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9481e-07 +4.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8611e-07 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0673e-07 +4.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2795e-08 +4.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1457e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7157e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7802e-08 +4.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1348e-08 +4.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3031e-09 +4.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4281e-09 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6476e-09 +4.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5532e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1115e-10 +4.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9202e-10 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6160e-10 +4.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3840e-10 +4.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5202e-11 +4.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0308e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3469e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7388e-06 +4.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3292e-07 +4.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1033e-07 +4.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0073e-07 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9754e-08 +4.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2509e-08 +4.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9673e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7833e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8617e-08 +4.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1691e-08 +4.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1496e-09 +4.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6725e-09 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7563e-09 +4.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5490e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5498e-10 +4.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6414e-10 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6729e-10 +4.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3169e-10 +4.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6667e-11 +4.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0119e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3889e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7016e-06 +4.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7579e-07 +4.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1751e-07 +4.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9107e-07 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0568e-07 +4.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1234e-08 +4.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0361e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6160e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7998e-08 +4.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0948e-08 +4.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2885e-09 +4.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4950e-09 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6007e-09 +4.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5298e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7856e-10 +4.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7723e-10 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6514e-10 +4.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3494e-10 +4.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.9146e-11 +4.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0789e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3789e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7018e-06 +4.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8853e-07 +4.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9507e-07 +4.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9496e-07 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0145e-07 +4.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0617e-08 +4.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0771e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6477e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8287e-08 +4.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0937e-08 +4.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4978e-09 +4.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2769e-09 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7503e-09 +4.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5420e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.3675e-10 +4.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6582e-10 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5119e-10 +4.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3428e-10 +4.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4123e-11 +4.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9312e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3552e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7016e-06 +4.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8525e-07 +4.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0195e-07 +4.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9146e-07 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8030e-08 +4.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4687e-08 +4.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9531e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6811e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7598e-08 +4.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2114e-08 +4.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5717e-09 +4.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5870e-09 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8100e-09 +4.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5141e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.3227e-10 +4.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7433e-10 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5557e-10 +4.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3182e-10 +4.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.7258e-11 +4.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.1098e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3363e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6511e-06 +4.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7317e-07 +4.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0459e-07 +4.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8593e-07 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0400e-07 +4.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5098e-08 +4.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1983e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7808e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7807e-08 +4.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1378e-08 +4.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0080e-09 +4.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2950e-09 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7249e-09 +4.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4993e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8219e-10 +4.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7829e-10 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5878e-10 +4.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3362e-10 +4.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.8334e-11 +4.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.2062e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.4640e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6235e-06 +4.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4622e-07 +4.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7968e-07 +4.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8586e-07 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0274e-07 +4.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0474e-08 +4.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9971e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7496e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7757e-08 +4.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1285e-08 +4.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4498e-09 +4.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7151e-09 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7358e-09 +4.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4923e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.2340e-10 +4.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6554e-10 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6305e-10 +4.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2882e-10 +4.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6153e-11 +4.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0622e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3548e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6262e-06 +4.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3281e-07 +4.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8256e-07 +4.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8593e-07 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9839e-08 +4.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9792e-08 +4.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8713e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5800e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7993e-08 +4.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2048e-08 +4.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0470e-09 +4.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4666e-09 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6588e-09 +4.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4876e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0493e-10 +4.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5300e-10 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6566e-10 +4.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2972e-10 +4.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5730e-11 +4.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0993e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.4266e-11 diff --git a/tutorials/plot_1_tdem_inv.py b/tutorials/plot_1_tdem_inv.py index e18348e..965879e 100644 --- a/tutorials/plot_1_tdem_inv.py +++ b/tutorials/plot_1_tdem_inv.py @@ -76,7 +76,7 @@ source_current = 1. source_radius = 6. -receiver_location = np.array([10., 0., 20.]) +receiver_location = np.array([0., 0., 20.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -92,20 +92,20 @@ ) # Sources -#source_list = [ -# em1d.sources.TimeDomainHorizontalLoopSource( -# receiver_list=receiver_list, location=source_location, -# I=source_current, a=source_radius -# ) -#] - source_list = [ - em1d.sources.TimeDomainMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=source_location, + I=source_current, a=source_radius ) ] +# source_list = [ +# em1d.sources.TimeDomainMagneticDipoleSource( +# receiver_list=receiver_list, location=source_location, orientation="z", +# I=source_current +# ) +# ] + # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -150,8 +150,6 @@ # Define a mesh for plotting and regularization. mesh = TensorMesh([(np.r_[inv_thicknesses, inv_thicknesses[-1]])], '0') -print(mesh) - ######################################################## # Define a Starting and Reference Model @@ -325,6 +323,7 @@ # Extract Least-Squares model l2_model = inv_prob.l2model +print(np.shape(l2_model)) # Plot true model and recovered model fig = plt.figure(figsize=(8, 9)) diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 405b1a0..96d6ae1 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -257,15 +257,15 @@ # Define the regularization (model objective function) mesh_reg = get_2d_mesh(n_sounding, hz) -reg_map = maps.IdentityMap(mesh_reg) -reg = LateralConstraint( - mesh_reg, mapping=reg_map, - alpha_s = 0.1, - alpha_x = 0.0001, - alpha_y = 1., -) -xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) -reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) +# reg_map = maps.IdentityMap(mesh_reg) +# reg = LateralConstraint( +# mesh_reg, mapping=reg_map, +# alpha_s = 0.1, +# alpha_x = 0.0001, +# alpha_y = 1., +# ) +# xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) +# reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) reg_map = maps.IdentityMap(nP=mesh.nC) @@ -411,15 +411,11 @@ def PolygonInd(mesh, pts): l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) l2_model = np.exp(l2_model) -l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) -l2_model = mkvc(l2_model) dpred = simulation.dpred(recovered_model) recovered_model = np.exp(recovered_model) -recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) -recovered_model = mkvc(recovered_model) -models_list = [true_model, l2_model, simulation.Sigma] +models_list = [true_model, l2_model, recovered_model] for ii, mod in enumerate(models_list): diff --git a/tutorials/plot_2_fdem_inv_stitched_height.py b/tutorials/plot_2_fdem_inv_stitched_height.py index 79d2ef0..37eb697 100644 --- a/tutorials/plot_2_fdem_inv_stitched_height.py +++ b/tutorials/plot_2_fdem_inv_stitched_height.py @@ -294,7 +294,7 @@ # Defining a starting value for the trade-off parameter (beta) between the data # misfit and the regularization. -starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1e1) beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 7b2eadf..6bb6129 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -51,15 +51,15 @@ # ------------- # # -x = np.linspace(50,5050,50) +x = np.linspace(50,4950,50) #x = np.linspace(50,250,3) n_sounding = len(x) -source_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] +source_locations = np.c_[x, np.zeros(n_sounding), 20.*np.ones(n_sounding)] source_current = 1. source_radius = 5. -receiver_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] +receiver_locations = np.c_[x, np.zeros(n_sounding), 20.*np.ones(n_sounding)] receiver_orientation = "z" # "x", "y" or "z" times = np.logspace(-5, -2, 21) @@ -86,12 +86,12 @@ ) ) -# source_list.append( -# em1d.sources.TimeDomainMagneticDipoleSource( -# receiver_list=receiver_list, location=source_location, orientation="z", -# I=source_current -# ) -# ) + # source_list.append( + # em1d.sources.TimeDomainMagneticDipoleSource( + # receiver_list=receiver_list, location=source_location, orientation="z", + # I=source_current + # ) + # ) # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -131,7 +131,7 @@ def PolygonInd(mesh, pts): x0 = np.r_[0., 30.] x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 130.] +x2 = np.r_[dx*n_sounding, 150.] x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index 3aaf7ae..072e2b2 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -76,7 +76,7 @@ source_locations = np.unique(dobs[:, 0:3], axis=0) -times = np.unique(dobs[:, 3]) +times = mkvc(np.unique(dobs[:, 3])) dobs = mkvc(dobs[:, -1]) n_sounding = np.shape(source_locations)[0] @@ -119,7 +119,7 @@ ) ] -# Sources + # Sources source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=source_location, a=source_radius, @@ -127,12 +127,14 @@ ) ) -# source_list.append( -# em1d.sources.TimeDomainMagneticDipoleSource( -# receiver_list=receiver_list, location=source_location, orientation="z", -# I=source_current -# ) -# ) + # source_list.append( + # em1d.sources.TimeDomainMagneticDipoleSource( + # receiver_list=receiver_list, location=source_location, orientation="z", + # I=source_current + # ) + # ) + + # Survey survey = em1d.survey.EM1DSurveyTD(source_list) @@ -167,7 +169,7 @@ dx = 100. hz = get_vertical_discretization_time( - times, sigma_background=0.1, n_layer=30 + times, sigma_background=0.1, n_layer=25 ) hx = np.ones(n_sounding) * dx mesh = TensorMesh([hx, hz], x0='00') @@ -245,15 +247,15 @@ # Define the regularization (model objective function) mesh_reg = get_2d_mesh(n_sounding, hz) -reg_map = maps.IdentityMap(mesh_reg) -reg = LateralConstraint( - mesh_reg, mapping=reg_map, - alpha_s = 0.1, - alpha_x = 0.0001, - alpha_y = 1., -) -xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) -reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) +# reg_map = maps.IdentityMap(mesh_reg) +# reg = LateralConstraint( +# mesh_reg, mapping=reg_map, +# alpha_s = 0.1, +# alpha_x = 0.0001, +# alpha_y = 1., +# ) +# xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) +# reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) reg_map = maps.IdentityMap(nP=mesh.nC) @@ -390,7 +392,7 @@ def PolygonInd(mesh, pts): x0 = np.r_[0., 30.] x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 130.] +x2 = np.r_[dx*n_sounding, 150.] x3 = np.r_[0., 50.] pts = np.vstack((x0, x1, x2, x3, x0)) poly_inds = PolygonInd(mesh, pts) @@ -400,15 +402,15 @@ def PolygonInd(mesh, pts): l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) l2_model = np.exp(l2_model) -l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) -l2_model = mkvc(l2_model) +# l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) +# l2_model = mkvc(l2_model) dpred = simulation.dpred(recovered_model) recovered_model = np.exp(recovered_model) -recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) -recovered_model = mkvc(recovered_model) +# recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) +# recovered_model = mkvc(recovered_model) -models_list = [true_model, l2_model, simulation.Sigma] +models_list = [true_model, l2_model, recovered_model] for ii, mod in enumerate(models_list): From 79eda08f7835e95b68805148f08d257060805cab Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 22 Sep 2020 13:26:46 -0700 Subject: [PATCH 33/54] update tutorials --- tutorials/assets/em1dfm_stitched_data.obs | 600 +++--- tutorials/assets/em1dtm_stitched_data.obs | 2100 ++++++++++----------- tutorials/plot_2_fdem_fwd_stitched.py | 71 +- tutorials/plot_2_fdem_inv_stitched.py | 50 +- tutorials/plot_2_tdem_fwd_stitched.py | 68 +- tutorials/plot_2_tdem_inv_stitched.py | 37 +- 6 files changed, 1510 insertions(+), 1416 deletions(-) diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index 98386b3..b87ca6f 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6076e+00 1.0329e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 6.1388e+01 3.4822e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.3074e+03 3.3752e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 1.8433e+01 7.0935e+01 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 2.3180e+02 7.2498e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.5965e+03 2.2826e+03 -1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6778e+00 1.0501e+01 -1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0569e+01 3.4310e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2868e+03 3.3307e+03 -1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9817e+01 6.9812e+01 -1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1348e+02 7.4803e+02 -1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6179e+03 2.2921e+03 -2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6674e+00 1.0875e+01 -2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9786e+01 3.5485e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3804e+03 3.4015e+03 -2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9850e+01 7.2684e+01 -2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1826e+02 7.4950e+02 -2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6097e+03 2.1379e+03 -3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5635e+00 1.0878e+01 -3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8404e+01 3.4808e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3420e+03 3.6292e+03 -3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8782e+01 7.2956e+01 -3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2563e+02 7.0495e+02 -3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6517e+03 2.1562e+03 -4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6934e+00 1.1123e+01 -4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0463e+01 3.4120e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4013e+03 3.3945e+03 -4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9872e+01 7.2532e+01 -4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.3392e+02 7.1855e+02 -4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5149e+03 2.2103e+03 -5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6639e+00 1.0630e+01 -5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.8396e+01 3.5877e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3571e+03 3.5083e+03 -5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 2.0157e+01 6.8911e+01 -5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2173e+02 6.9815e+02 -5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6412e+03 2.1657e+03 -6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5601e+00 1.0949e+01 -6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.9236e+01 3.3800e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.2960e+03 3.4085e+03 -6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9509e+01 7.2528e+01 -6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2892e+02 7.5013e+02 -6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5448e+03 2.2231e+03 -7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5888e+00 1.0331e+01 -7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0080e+01 3.4711e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3467e+03 3.4168e+03 -7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8791e+01 7.1125e+01 -7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2194e+02 7.0627e+02 -7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.6181e+03 2.3102e+03 -8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5979e+00 1.0813e+01 -8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 6.0187e+01 3.5346e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4005e+03 3.4923e+03 -8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.9173e+01 7.0497e+01 -8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.1809e+02 6.9843e+02 -8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5474e+03 2.3166e+03 -9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6580e+00 1.0880e+01 -9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 5.7263e+01 3.3506e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.3332e+03 3.5507e+03 -9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 1.8848e+01 7.1875e+01 -9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 2.2607e+02 7.3072e+02 -9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.5631e+03 2.2538e+03 -1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7029e+00 1.0690e+01 -1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.0957e+01 3.4459e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3712e+03 3.4460e+03 -1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9042e+01 6.7514e+01 -1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1651e+02 7.2219e+02 -1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5689e+03 2.2271e+03 -1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6232e+00 1.0663e+01 -1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 6.1889e+01 3.6687e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3022e+03 3.3396e+03 -1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0132e+01 7.2719e+01 -1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.1488e+02 6.9672e+02 -1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6371e+03 2.1374e+03 -1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6023e+00 1.0627e+01 -1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.7229e+01 3.5343e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3270e+03 3.3969e+03 -1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8569e+01 6.7933e+01 -1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2544e+02 7.3122e+02 -1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5150e+03 2.1420e+03 -1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.7136e+00 1.0875e+01 -1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.8962e+01 3.3711e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.3427e+03 3.3989e+03 -1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9722e+01 6.7677e+01 -1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.2938e+02 7.2808e+02 -1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.5777e+03 2.2606e+03 -1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.6359e+00 1.0301e+01 -1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.9092e+01 3.4364e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.2853e+03 3.6291e+03 -1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.8932e+01 7.2889e+01 -1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 2.3095e+02 7.2399e+02 -1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.6479e+03 2.2788e+03 -1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2552e+01 2.9694e+02 -1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1075e+03 2.9982e+03 -1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5342e+03 7.1794e+03 -1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2421e+02 6.5817e+02 -1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3830e+03 2.2148e+03 -1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0477e+03 1.3220e+03 -1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1423e+01 3.1570e+02 -1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0554e+03 3.0706e+03 -1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4599e+03 7.0457e+03 -1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3834e+02 6.2929e+02 -1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3826e+03 2.2742e+03 -1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0697e+03 1.2974e+03 -1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4644e+01 3.0583e+02 -1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0808e+03 3.0447e+03 -1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.2989e+03 7.4627e+03 -1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3647e+02 6.7898e+02 -1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4220e+03 2.1172e+03 -1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1217e+03 1.3289e+03 -1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4955e+01 2.9733e+02 -1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0603e+03 3.2539e+03 -1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6786e+03 6.9575e+03 -1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3865e+02 6.5494e+02 -1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4236e+03 2.1135e+03 -1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0904e+03 1.3329e+03 -1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4587e+01 3.0448e+02 -1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0378e+03 3.0949e+03 -1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5459e+03 6.9977e+03 -1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3728e+02 6.8341e+02 -1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4013e+03 2.2814e+03 -1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0124e+03 1.3710e+03 -2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4332e+01 3.0556e+02 -2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0565e+03 3.0782e+03 -2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.4444e+03 6.9978e+03 -2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2174e+02 6.7765e+02 -2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.3799e+03 2.1141e+03 -2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0570e+03 1.3045e+03 -2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.1719e+01 3.0571e+02 -2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1041e+03 3.1493e+03 -2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3611e+03 6.9012e+03 -2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3196e+02 6.6560e+02 -2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4108e+03 2.1636e+03 -2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0843e+03 1.4063e+03 -2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.4308e+01 3.1187e+02 -2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1130e+03 2.9786e+03 -2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.6263e+03 7.4103e+03 -2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3897e+02 6.7107e+02 -2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4401e+03 2.1378e+03 -2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0645e+03 1.3750e+03 -2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.4105e+01 2.3495e+02 -2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8042e+02 3.2183e+03 -2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7130e+03 7.3488e+03 -2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0281e+02 6.2004e+02 -2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4940e+03 2.0962e+03 -2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0290e+03 1.3574e+03 -2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 6.2309e+01 2.9839e+02 -2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.1336e+03 3.0220e+03 -2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7081e+03 7.0986e+03 -2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3513e+02 6.2751e+02 -2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4169e+03 2.1496e+03 -2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0476e+03 1.3484e+03 -2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.6463e+01 1.3445e+02 -2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1413e+02 1.2620e+03 -2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1466e+03 5.7221e+03 -2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0130e+02 2.8059e+02 -2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 5.9358e+02 1.3964e+03 -2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3156e+03 1.9719e+03 -2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.8730e+01 3.2247e+02 -2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0990e+03 3.0426e+03 -2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.3116e+03 7.0363e+03 -2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.3953e+02 6.5710e+02 -2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4517e+03 2.2419e+03 -2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1006e+03 1.3518e+03 -2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 4.5288e+01 2.0120e+02 -2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 5.8946e+02 1.3870e+03 -2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.0810e+03 5.7896e+03 -2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.3825e+02 3.5506e+02 -2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.8807e+02 1.3274e+03 -2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0797e+03 2.0701e+03 -2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7668e+01 2.1926e+02 -2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8813e+02 3.0870e+03 -2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.7068e+03 7.3260e+03 -2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.0001e+02 6.4030e+02 -2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4906e+03 2.2608e+03 -2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1322e+03 1.4045e+03 -3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6533e+01 2.5470e+02 -3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 7.9097e+02 2.0080e+03 -3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.5421e+03 5.5807e+03 -3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.6919e+02 4.8401e+02 -3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 9.6805e+02 1.4844e+03 -3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.7425e+03 1.9882e+03 -3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0675e+01 6.3266e+01 -3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8844e+02 1.2121e+03 -3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2284e+03 5.5365e+03 -3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7739e+01 2.4158e+02 -3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1055e+02 1.4678e+03 -3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2054e+03 2.0956e+03 -3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 5.6201e+01 2.8185e+02 -3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 9.8960e+02 2.8753e+03 -3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.0864e+03 6.1204e+03 -3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 2.2045e+02 6.0937e+02 -3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.2930e+03 1.9440e+03 -3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.7886e+03 1.3033e+03 -3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.2111e+01 6.5182e+01 -3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0338e+02 1.2318e+03 -3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1782e+03 5.4266e+03 -3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6075e+01 2.3543e+02 -3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.6019e+02 1.4563e+03 -3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2402e+03 1.9689e+03 -3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9194e+01 2.0372e+02 -3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 1.0282e+03 3.1797e+03 -3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 5.5160e+03 6.8781e+03 -3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.9743e+02 6.4642e+02 -3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 1.4507e+03 2.2589e+03 -3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.0935e+03 1.3043e+03 -3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.3581e+01 6.2136e+01 -3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0167e+02 1.2907e+03 -3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1649e+03 5.4044e+03 -3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7832e+01 2.2009e+02 -3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5586e+02 1.5508e+03 -3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1432e+03 2.0749e+03 -3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0670e+01 6.1730e+01 -3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9772e+02 1.2092e+03 -3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1642e+03 5.9044e+03 -3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.2760e+01 2.2672e+02 -3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3752e+02 1.5661e+03 -3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2952e+03 2.0442e+03 -3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1059e+01 6.3481e+01 -3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9069e+02 1.2970e+03 -3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.4163e+03 5.4406e+03 -3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1793e+01 2.4096e+02 -3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1379e+02 1.5078e+03 -3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3140e+03 2.1084e+03 -3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0429e+01 6.0804e+01 -3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9320e+02 1.2792e+03 -3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1772e+03 5.6345e+03 -3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8208e+01 2.4306e+02 -3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5987e+02 1.5451e+03 -3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1911e+03 2.0194e+03 -3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1095e+01 6.3888e+01 -3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0309e+02 1.3082e+03 -3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2185e+03 5.7737e+03 -3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1183e+01 2.4309e+02 -3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5553e+02 1.4587e+03 -3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2938e+03 2.0621e+03 -4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0634e+01 6.1505e+01 -4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0506e+02 1.2850e+03 -4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1882e+03 5.4495e+03 -4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0341e+01 2.4302e+02 -4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1060e+02 1.4811e+03 -4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.3040e+03 2.0094e+03 -4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1287e+01 6.4550e+01 -4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0489e+02 1.2075e+03 -4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2221e+03 5.8241e+03 -4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1480e+01 2.3708e+02 -4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.1932e+02 1.4821e+03 -4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2424e+03 2.0445e+03 -4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1181e+01 6.1431e+01 -4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8830e+02 1.2112e+03 -4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3379e+03 5.4215e+03 -4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9821e+01 2.2620e+02 -4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.0838e+02 1.5530e+03 -4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2938e+03 2.0950e+03 -4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0574e+01 6.5600e+01 -4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9585e+02 1.2359e+03 -4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.2011e+03 5.6082e+03 -4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.3168e+01 2.2506e+02 -4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2537e+02 1.5127e+03 -4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2183e+03 2.0814e+03 -4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1267e+01 6.2467e+01 -4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9327e+02 1.2316e+03 -4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3748e+03 5.4518e+03 -4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1042e+01 2.2324e+02 -4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.5078e+02 1.4929e+03 -4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2466e+03 2.0444e+03 -4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1090e+01 6.5031e+01 -4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0093e+02 1.2026e+03 -4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1984e+03 5.6551e+03 -4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.9375e+01 2.4322e+02 -4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2965e+02 1.5876e+03 -4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2184e+03 2.0340e+03 -4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.1003e+01 6.1125e+01 -4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.0169e+02 1.2914e+03 -4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1618e+03 5.7522e+03 -4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.0832e+01 2.4189e+02 -4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.2478e+02 1.5743e+03 -4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2030e+03 2.0425e+03 -4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0330e+01 6.0396e+01 -4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9490e+02 1.2423e+03 -4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3115e+03 5.6750e+03 -4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 7.1925e+01 2.2353e+02 -4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3204e+02 1.4794e+03 -4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1797e+03 2.0424e+03 -4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0780e+01 6.1606e+01 -4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8483e+02 1.2677e+03 -4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.1763e+03 5.4412e+03 -4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.8341e+01 2.2909e+02 -4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3485e+02 1.5512e+03 -4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2604e+03 1.9876e+03 -4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0825e+01 6.1022e+01 -4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.8278e+02 1.2071e+03 -4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3582e+03 5.8441e+03 -4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.7754e+01 2.3929e+02 -4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3541e+02 1.5874e+03 -4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.2293e+03 2.0848e+03 -5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.0996e+01 6.3409e+01 -5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 2.9452e+02 1.3118e+03 -5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 3.3392e+03 5.4512e+03 -5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 6.6677e+01 2.2884e+02 -5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 6.3317e+02 1.5873e+03 -5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 2.1436e+03 2.0850e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.5089e+01 9.0883e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.5768e+02 8.7211e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5199e+03 3.5333e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3950e+01 2.1867e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.2271e+02 6.4920e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2130e+03 2.2325e+03 +1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6127e+01 9.8407e+01 +1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7897e+02 8.7853e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5201e+03 3.3759e+03 +1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2838e+01 2.0807e+02 +1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4553e+02 6.5225e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2293e+03 2.1676e+03 +2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5557e+01 9.8849e+01 +2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7193e+02 8.4585e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4380e+03 3.4950e+03 +2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3849e+01 2.2185e+02 +2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5632e+02 6.1390e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2412e+03 2.2504e+03 +3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7296e+01 1.1246e+02 +3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7784e+02 8.3196e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4419e+03 3.2711e+03 +3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9445e+01 2.3229e+02 +3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3731e+02 6.2433e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1860e+03 2.2500e+03 +4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7151e+01 1.0994e+02 +4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1020e+02 8.4070e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5548e+03 3.3779e+03 +4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.6862e+01 2.3270e+02 +4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4414e+02 6.0288e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1817e+03 2.3160e+03 +5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8377e+01 1.0387e+02 +5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9292e+02 8.8877e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5264e+03 3.4793e+03 +5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5948e+01 2.3377e+02 +5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4303e+02 6.0121e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2083e+03 2.2027e+03 +6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8396e+01 1.0552e+02 +6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0124e+02 8.6143e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4706e+03 3.2964e+03 +6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7937e+01 2.3305e+02 +6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3732e+02 6.5633e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2368e+03 2.1585e+03 +7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0224e+01 1.2328e+02 +7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2957e+02 8.8978e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4568e+03 3.4119e+03 +7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0513e+01 2.3687e+02 +7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0925e+02 6.0725e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2698e+03 2.1903e+03 +8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.9674e+01 1.1641e+02 +8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0090e+02 8.6990e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4974e+03 3.5125e+03 +8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4509e+01 2.2945e+02 +8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1642e+02 6.1358e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2066e+03 2.2744e+03 +9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0699e+01 1.2426e+02 +9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2752e+02 8.8416e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4282e+03 3.3706e+03 +9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2958e+01 2.3508e+02 +9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0431e+02 6.4622e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1974e+03 2.1659e+03 +1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1364e+01 1.1940e+02 +1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9836e+02 8.9676e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4760e+03 3.4438e+03 +1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.5334e+01 2.3465e+02 +1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3733e+02 6.0952e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2240e+03 2.2286e+03 +1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1205e+01 1.1542e+02 +1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9519e+02 8.6625e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4139e+03 3.3548e+03 +1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.2348e+01 2.3282e+02 +1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0214e+02 6.4465e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2768e+03 2.1971e+03 +1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3829e+01 1.3328e+02 +1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2714e+02 8.9798e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5025e+03 3.4312e+03 +1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9805e+01 2.3545e+02 +1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9344e+02 6.2027e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2538e+03 2.2199e+03 +1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2554e+01 1.3807e+02 +1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2019e+02 8.7610e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5005e+03 3.2910e+03 +1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2053e+01 2.3566e+02 +1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2160e+02 6.3596e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2031e+03 2.2482e+03 +1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2716e+01 1.3375e+02 +1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0280e+02 8.7924e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4884e+03 3.2511e+03 +1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8471e+01 2.3824e+02 +1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1484e+02 6.4779e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1901e+03 2.1941e+03 +1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2787e+01 1.3558e+02 +1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2646e+02 8.3932e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4878e+03 3.4841e+03 +1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6961e+01 2.4167e+02 +1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2458e+02 6.1468e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2640e+03 2.2548e+03 +1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2248e+01 1.2767e+02 +1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3301e+02 8.7036e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4873e+03 3.3285e+03 +1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7877e+01 2.3100e+02 +1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0565e+02 6.2560e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1995e+03 2.3292e+03 +1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2209e+01 1.3780e+02 +1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1341e+02 8.9096e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4359e+03 3.2962e+03 +1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1910e+01 2.3483e+02 +1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1744e+02 6.3134e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2239e+03 2.1939e+03 +1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5610e+01 1.3780e+02 +1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0743e+02 8.9827e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5415e+03 3.2693e+03 +1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4117e+01 2.4224e+02 +1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1366e+02 6.0623e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2109e+03 2.1930e+03 +1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5974e+01 1.4526e+02 +1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0968e+02 8.3695e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5368e+03 3.4556e+03 +1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2579e+01 2.3085e+02 +1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0295e+02 6.4283e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2103e+03 2.1586e+03 +2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5224e+01 1.4078e+02 +2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9849e+02 8.2198e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4143e+03 3.3205e+03 +2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9830e+01 2.3680e+02 +2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0197e+02 6.0860e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2689e+03 2.2571e+03 +2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4728e+01 1.3935e+02 +2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1184e+02 8.6536e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5318e+03 3.4877e+03 +2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2144e+01 2.3092e+02 +2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2144e+02 6.3825e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2876e+03 2.3488e+03 +2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4821e+01 1.4154e+02 +2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1558e+02 8.7233e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5023e+03 3.3389e+03 +2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4945e+01 2.3979e+02 +2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2299e+02 6.3905e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2623e+03 2.3318e+03 +2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6719e+01 1.4068e+02 +2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1919e+02 8.8284e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4604e+03 3.5270e+03 +2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9311e+01 2.5070e+02 +2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8595e+02 6.0812e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2917e+03 2.2444e+03 +2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7186e+01 1.4665e+02 +2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0571e+02 8.7847e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4762e+03 3.2481e+03 +2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9010e+01 2.3514e+02 +2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8286e+02 6.0819e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.1897e+03 +2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8853e+01 1.4909e+02 +2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1716e+02 8.3386e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4359e+03 3.2487e+03 +2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8940e+01 2.3200e+02 +2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0260e+02 6.1134e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2868e+03 2.2648e+03 +2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8420e+01 1.4756e+02 +2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9940e+02 8.8942e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5319e+03 3.2824e+03 +2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2637e+01 2.3033e+02 +2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8140e+02 6.3395e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2433e+03 2.2512e+03 +2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8500e+01 1.4369e+02 +2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3022e+02 8.5724e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4238e+03 3.3924e+03 +2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6289e+01 2.3300e+02 +2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9859e+02 6.2590e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1989e+03 2.1730e+03 +2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8063e+01 1.4849e+02 +2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2998e+02 8.7362e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4207e+03 3.4234e+03 +2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6273e+01 2.3642e+02 +2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9620e+02 6.2532e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2594e+03 2.2239e+03 +2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9440e+01 1.4894e+02 +2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2991e+02 8.2980e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4547e+03 3.4393e+03 +2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7431e+01 2.3305e+02 +2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9704e+02 6.1427e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.3224e+03 +3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8758e+01 1.4360e+02 +3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0581e+02 8.5947e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4718e+03 3.4237e+03 +3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3608e+01 2.2857e+02 +3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8546e+02 6.5173e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2177e+03 2.3364e+03 +3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2093e+01 1.4549e+02 +3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2191e+02 8.9500e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5166e+03 3.4408e+03 +3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9807e+01 2.3601e+02 +3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9075e+02 6.5713e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2168e+03 2.1919e+03 +3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0448e+01 1.5740e+02 +3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1798e+02 8.4386e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4621e+03 3.3462e+03 +3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0083e+02 2.3311e+02 +3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9029e+02 6.6051e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2315e+03 2.3061e+03 +3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0417e+01 1.4726e+02 +3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3380e+02 8.5685e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5519e+03 3.2266e+03 +3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5841e+01 2.4505e+02 +3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0275e+02 6.3148e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2736e+03 2.3208e+03 +3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0948e+01 1.5772e+02 +3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2288e+02 8.7588e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5538e+03 3.2269e+03 +3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3436e+01 2.4232e+02 +3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8797e+02 6.4075e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2943e+03 2.1721e+03 +3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0521e+01 1.4784e+02 +3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0807e+02 8.9223e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4233e+03 3.3571e+03 +3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1962e+01 2.2640e+02 +3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0595e+02 6.3575e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2555e+03 2.2341e+03 +3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0772e+01 1.5227e+02 +3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1915e+02 8.5690e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4768e+03 3.4711e+03 +3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6929e+01 2.3291e+02 +3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1333e+02 6.3696e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2125e+03 2.2401e+03 +3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1430e+01 1.5518e+02 +3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2258e+02 8.4817e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4799e+03 3.4665e+03 +3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9347e+01 2.4648e+02 +3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1369e+02 6.2059e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1938e+03 2.2297e+03 +3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2209e+01 1.5811e+02 +3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3010e+02 8.2174e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4157e+03 3.5182e+03 +3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5429e+01 2.2836e+02 +3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0088e+02 6.2062e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2050e+03 2.3232e+03 +3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2880e+01 1.5933e+02 +3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1865e+02 8.8370e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5168e+03 3.4569e+03 +3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4684e+01 2.4282e+02 +3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8980e+02 6.1103e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2338e+03 2.1662e+03 +4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1925e+01 1.4822e+02 +4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1118e+02 8.3925e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5455e+03 3.3145e+03 +4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0194e+02 2.4416e+02 +4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7989e+02 6.3635e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2503e+03 2.3113e+03 +4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2494e+01 1.4876e+02 +4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1042e+02 8.5077e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4912e+03 3.2446e+03 +4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0104e+02 2.3953e+02 +4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9856e+02 6.6230e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2808e+03 2.1837e+03 +4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2701e+01 1.5597e+02 +4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1565e+02 8.5543e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4663e+03 3.3849e+03 +4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0238e+02 2.3421e+02 +4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8877e+02 6.1219e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2216e+03 2.2482e+03 +4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2713e+01 1.5636e+02 +4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3199e+02 8.4176e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5077e+03 3.5434e+03 +4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9607e+01 2.2695e+02 +4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8479e+02 6.4399e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1847e+03 2.3470e+03 +4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4419e+01 1.5882e+02 +4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2342e+02 8.8020e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5179e+03 3.3299e+03 +4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6730e+01 2.2382e+02 +4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9740e+02 6.5111e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2276e+03 +4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3723e+01 1.5687e+02 +4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0562e+02 8.8844e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5091e+03 3.3549e+03 +4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3377e+01 2.2921e+02 +4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0388e+02 6.1903e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2693e+03 2.3124e+03 +4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5632e+01 1.5512e+02 +4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2495e+02 8.2055e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4226e+03 3.4566e+03 +4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7809e+01 2.2540e+02 +4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9538e+02 6.3200e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2274e+03 2.2477e+03 +4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4550e+01 1.6249e+02 +4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1138e+02 8.5563e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4362e+03 3.3036e+03 +4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5642e+01 2.4183e+02 +4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9924e+02 6.6232e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2221e+03 2.3440e+03 +4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5726e+01 1.6386e+02 +4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1111e+02 8.2437e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5104e+03 3.2364e+03 +4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6228e+01 2.4202e+02 +4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8611e+02 6.1909e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2326e+03 2.2139e+03 +4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5123e+01 1.6095e+02 +4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9795e+02 8.7344e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4351e+03 3.4742e+03 +4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0322e+02 2.2118e+02 +4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8263e+02 6.1661e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2326e+03 2.3137e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index a147265..db066a0 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,1050 @@ -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.7470e-06 -5.0000e+01 0.0000e+00 2.0000e+01 1.4125e-05 -8.0873e-07 -5.0000e+01 0.0000e+00 2.0000e+01 1.9953e-05 -4.0210e-07 -5.0000e+01 0.0000e+00 2.0000e+01 2.8184e-05 -1.9095e-07 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0494e-07 -5.0000e+01 0.0000e+00 2.0000e+01 5.6234e-05 -5.9787e-08 -5.0000e+01 0.0000e+00 2.0000e+01 7.9433e-05 -4.1740e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.1220e-04 -2.9071e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -1.9342e-08 -5.0000e+01 0.0000e+00 2.0000e+01 2.2387e-04 -1.3797e-08 -5.0000e+01 0.0000e+00 2.0000e+01 3.1623e-04 -8.8620e-09 -5.0000e+01 0.0000e+00 2.0000e+01 4.4668e-04 -4.8850e-09 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.7258e-09 -5.0000e+01 0.0000e+00 2.0000e+01 8.9125e-04 -1.4265e-09 -5.0000e+01 0.0000e+00 2.0000e+01 1.2589e-03 -7.1502e-10 -5.0000e+01 0.0000e+00 2.0000e+01 1.7783e-03 -3.1520e-10 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.3865e-10 -5.0000e+01 0.0000e+00 2.0000e+01 3.5481e-03 -6.1342e-11 -5.0000e+01 0.0000e+00 2.0000e+01 5.0119e-03 -2.6485e-11 -5.0000e+01 0.0000e+00 2.0000e+01 7.0795e-03 -1.0119e-11 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -4.3841e-12 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6592e-06 -1.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6851e-07 -1.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9355e-07 -1.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9223e-07 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0357e-07 -1.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4760e-08 -1.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2343e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.9725e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -2.0207e-08 -1.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3022e-08 -1.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.4164e-09 -1.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9727e-09 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9425e-09 -1.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4132e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -6.9594e-10 -1.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.2839e-10 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4551e-10 -1.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.2246e-11 -1.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4413e-11 -1.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0006e-11 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.1756e-12 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7341e-06 -2.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2161e-07 -2.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9543e-07 -2.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8445e-07 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0246e-07 -2.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.1558e-08 -2.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9374e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8460e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8540e-08 -2.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2804e-08 -2.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.1925e-09 -2.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8798e-09 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9903e-09 -2.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6020e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.6708e-10 -2.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6578e-10 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6754e-10 -2.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9684e-11 -2.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0008e-11 -2.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2683e-11 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0088e-12 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7364e-06 -3.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7171e-07 -3.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7957e-07 -3.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8700e-07 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0122e-07 -3.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0533e-08 -3.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0422e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6734e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7769e-08 -3.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2144e-08 -3.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.5734e-09 -3.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2553e-09 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0903e-09 -3.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5044e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.1324e-10 -3.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6517e-10 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7284e-10 -3.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.3262e-11 -3.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.9699e-11 -3.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2723e-11 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0412e-12 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6998e-06 -4.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6091e-07 -4.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.9504e-07 -4.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9007e-07 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 -4.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0863e-08 -4.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9839e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6772e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8492e-08 -4.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2814e-08 -4.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.1848e-09 -4.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8923e-09 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9268e-09 -4.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5042e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.9620e-10 -4.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6208e-10 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7375e-10 -4.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9116e-11 -4.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.9651e-11 -4.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2851e-11 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.0997e-12 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7004e-06 -5.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2270e-07 -5.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.1607e-07 -5.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8982e-07 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9043e-08 -5.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.1161e-08 -5.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8682e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8204e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8452e-08 -5.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1498e-08 -5.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.7020e-09 -5.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9725e-09 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8962e-09 -5.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5998e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.2042e-10 -5.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.9518e-10 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9703e-10 -5.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.6067e-11 -5.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.6017e-11 -5.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4813e-11 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4051e-12 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7794e-06 -6.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.1612e-07 -6.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8963e-07 -6.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9105e-07 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0393e-07 -6.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3097e-08 -6.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1572e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.5827e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7600e-08 -6.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2629e-08 -6.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.9551e-09 -6.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1409e-09 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1502e-09 -6.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6018e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.3875e-10 -6.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.2455e-10 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8391e-10 -6.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3864e-11 -6.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.5166e-11 -6.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.3458e-11 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4021e-12 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7024e-06 -7.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.0630e-07 -7.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8115e-07 -7.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9044e-07 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0365e-07 -7.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.0763e-08 -7.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0711e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6696e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7098e-08 -7.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1682e-08 -7.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0612e-09 -7.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2427e-09 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1010e-09 -7.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6647e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.7091e-10 -7.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0387e-10 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8118e-10 -7.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.5136e-11 -7.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.3163e-11 -7.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.3415e-11 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4125e-12 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7897e-06 -8.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.8600e-07 -8.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.1805e-07 -8.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9457e-07 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0707e-07 -8.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3488e-08 -8.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1136e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.5706e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8072e-08 -8.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2310e-08 -8.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.9205e-09 -8.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9494e-09 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1242e-09 -8.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6241e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.3139e-10 -8.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0196e-10 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8203e-10 -8.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3368e-11 -8.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.4673e-11 -8.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4685e-11 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8518e-12 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6220e-06 -9.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6577e-07 -9.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8034e-07 -9.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8296e-07 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.7735e-08 -9.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4388e-08 -9.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8898e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6570e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8385e-08 -9.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1896e-08 -9.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.8857e-09 -9.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8833e-09 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0967e-09 -9.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.7633e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -9.3978e-10 -9.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.4448e-10 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -2.1000e-10 -9.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.9723e-11 -9.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -4.0497e-11 -9.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.5916e-11 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -6.7920e-12 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7037e-06 -1.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1421e-07 -1.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7713e-07 -1.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0065e-07 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0494e-07 -1.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3946e-08 -1.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2447e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8334e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7860e-08 -1.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2265e-08 -1.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.7908e-09 -1.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7833e-09 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0308e-09 -1.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7446e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0207e-10 -1.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5930e-10 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0713e-10 -1.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3431e-11 -1.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.8884e-11 -1.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6386e-11 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.6199e-12 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7725e-06 -1.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0763e-07 -1.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8463e-07 -1.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8201e-07 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0567e-07 -1.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9306e-08 -1.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8659e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7559e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8265e-08 -1.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1642e-08 -1.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.8654e-09 -1.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8845e-09 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0650e-09 -1.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6231e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1134e-10 -1.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.3145e-10 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0841e-10 -1.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3547e-11 -1.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.7495e-11 -1.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6743e-11 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.3845e-12 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6776e-06 -1.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5247e-07 -1.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1581e-07 -1.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9095e-07 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0266e-07 -1.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0133e-08 -1.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1555e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7248e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8290e-08 -1.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1355e-08 -1.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0411e-09 -1.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8531e-09 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7936e-09 -1.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7463e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7865e-10 -1.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9819e-10 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1949e-10 -1.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.9447e-11 -1.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.5390e-11 -1.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7425e-11 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0625e-12 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7184e-06 -1.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4942e-07 -1.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9195e-07 -1.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9767e-07 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0751e-07 -1.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3673e-08 -1.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2584e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6445e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7707e-08 -1.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1800e-08 -1.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2049e-09 -1.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8687e-09 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9691e-09 -1.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7353e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6507e-10 -1.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0076e-10 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2107e-10 -1.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0818e-10 -1.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3546e-11 -1.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.9017e-11 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.7103e-12 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6964e-06 -1.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1030e-07 -1.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8230e-07 -1.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9405e-07 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0737e-07 -1.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0171e-08 -1.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9212e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5895e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7485e-08 -1.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1207e-08 -1.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1133e-09 -1.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7165e-09 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8738e-09 -1.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6971e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1624e-10 -1.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7070e-10 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2954e-10 -1.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0010e-10 -1.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4378e-11 -1.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7661e-11 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5010e-12 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7644e-06 -1.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0471e-07 -1.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8726e-07 -1.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9563e-07 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0141e-07 -1.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9161e-08 -1.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2305e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8121e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7580e-08 -1.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1918e-08 -1.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2167e-09 -1.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6600e-09 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8409e-09 -1.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7683e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7606e-10 -1.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7362e-10 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3222e-10 -1.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0819e-10 -1.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.5008e-11 -1.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7955e-11 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5722e-12 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6356e-06 -1.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0649e-07 -1.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7807e-07 -1.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8618e-07 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0329e-07 -1.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0545e-08 -1.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1421e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7466e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7600e-08 -1.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1434e-08 -1.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0455e-09 -1.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6999e-09 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7315e-09 -1.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5916e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.8994e-10 -1.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9747e-10 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4033e-10 -1.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0870e-10 -1.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0806e-11 -1.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.9708e-11 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3616e-12 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6362e-06 -1.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8866e-07 -1.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1472e-07 -1.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8114e-07 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0110e-07 -1.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2678e-08 -1.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1928e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6515e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8666e-08 -1.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1778e-08 -1.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4743e-09 -1.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5298e-09 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7656e-09 -1.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6083e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9821e-10 -1.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8784e-10 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4236e-10 -1.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1397e-10 -1.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.6754e-11 -1.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1221e-11 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.9010e-12 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7406e-06 -1.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4226e-07 -1.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8976e-07 -1.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9610e-07 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0586e-07 -1.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2084e-08 -1.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9272e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6394e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8512e-08 -1.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1062e-08 -1.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3536e-09 -1.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3662e-09 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7944e-09 -1.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7421e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7000e-10 -1.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7772e-10 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3907e-10 -1.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0808e-10 -1.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0054e-11 -1.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0415e-11 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.1133e-12 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6897e-06 -1.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7051e-07 -1.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0044e-07 -1.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9586e-07 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8563e-08 -1.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.8956e-08 -1.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2365e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6333e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8116e-08 -1.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1391e-08 -1.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4950e-09 -1.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4493e-09 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7826e-09 -1.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6663e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9196e-10 -1.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8005e-10 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5142e-10 -1.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2394e-10 -1.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1068e-11 -1.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2032e-11 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9435e-12 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7584e-06 -2.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1716e-07 -2.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0825e-07 -2.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8816e-07 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0001e-07 -2.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0554e-08 -2.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0985e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6203e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7043e-08 -2.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1437e-08 -2.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6240e-09 -2.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6978e-09 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8595e-09 -2.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6872e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6904e-10 -2.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8876e-10 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6680e-10 -2.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2360e-10 -2.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1408e-11 -2.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1500e-11 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0844e-12 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6211e-06 -2.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8726e-07 -2.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7861e-07 -2.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9459e-07 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9065e-08 -2.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0107e-08 -2.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8982e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7057e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6991e-08 -2.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1837e-08 -2.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9746e-09 -2.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4645e-09 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6051e-09 -2.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7113e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1027e-10 -2.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0003e-10 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5466e-10 -2.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2338e-10 -2.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.4520e-11 -2.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3225e-11 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.4578e-12 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6528e-06 -2.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4636e-07 -2.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1481e-07 -2.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8524e-07 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0192e-07 -2.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0573e-08 -2.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0451e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7224e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6887e-08 -2.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2117e-08 -2.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9759e-09 -2.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3161e-09 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7769e-09 -2.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6801e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2067e-10 -2.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2057e-10 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4634e-10 -2.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2345e-10 -2.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.4723e-11 -2.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1638e-11 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.7967e-12 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7003e-06 -2.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1424e-07 -2.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0355e-07 -2.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8080e-07 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0300e-07 -2.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3481e-08 -2.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2472e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5551e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7864e-08 -2.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1258e-08 -2.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1934e-09 -2.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3902e-09 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8320e-09 -2.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5251e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7554e-10 -2.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0081e-10 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4776e-10 -2.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2909e-10 -2.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6763e-11 -2.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4943e-11 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.9980e-12 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7425e-06 -2.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1812e-07 -2.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1537e-07 -2.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0001e-07 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0714e-07 -2.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4426e-08 -2.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0963e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5649e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8527e-08 -2.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1363e-08 -2.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2804e-09 -2.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5652e-09 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7902e-09 -2.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6426e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.6075e-10 -2.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9227e-10 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5626e-10 -2.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2692e-10 -2.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6058e-11 -2.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5687e-11 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.6665e-12 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6442e-06 -2.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3241e-07 -2.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0245e-07 -2.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9248e-07 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0248e-07 -2.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9292e-08 -2.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8966e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7003e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7696e-08 -2.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1086e-08 -2.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9564e-09 -2.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4299e-09 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6335e-09 -2.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6206e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7639e-10 -2.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8572e-10 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5905e-10 -2.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2129e-10 -2.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.5267e-11 -2.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3873e-11 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0529e-11 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7002e-06 -2.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1086e-07 -2.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8605e-07 -2.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9240e-07 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7139e-08 -2.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3769e-08 -2.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1227e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5652e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7219e-08 -2.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1056e-08 -2.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6771e-09 -2.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5527e-09 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7796e-09 -2.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6300e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9376e-10 -2.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9169e-10 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6152e-10 -2.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2797e-10 -2.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6869e-11 -2.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4586e-11 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0081e-11 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6859e-06 -2.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5588e-07 -2.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8601e-07 -2.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9580e-07 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0061e-07 -2.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9128e-08 -2.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2634e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6306e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8530e-08 -2.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1489e-08 -2.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2041e-09 -2.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6174e-09 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5865e-09 -2.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5752e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.4262e-10 -2.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8925e-10 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7129e-10 -2.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2544e-10 -2.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9827e-11 -2.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.4464e-11 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0398e-11 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6798e-06 -2.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2734e-07 -2.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9637e-07 -2.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8764e-07 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8911e-08 -2.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0128e-08 -2.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0006e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7079e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7970e-08 -2.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1087e-08 -2.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1444e-09 -2.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6363e-09 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6646e-09 -2.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5019e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3230e-10 -2.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8053e-10 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5403e-10 -2.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3028e-10 -2.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3518e-11 -2.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7532e-11 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0570e-11 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7885e-06 -2.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5794e-07 -2.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9240e-07 -2.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9689e-07 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7104e-08 -2.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4390e-08 -2.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0348e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6605e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8302e-08 -2.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1583e-08 -2.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3073e-09 -2.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3614e-09 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6452e-09 -2.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5748e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8344e-10 -2.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0112e-10 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6218e-10 -2.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2810e-10 -2.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2603e-11 -2.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5742e-11 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0942e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6204e-06 -3.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7132e-07 -3.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9879e-07 -3.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8286e-07 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0119e-07 -3.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0661e-08 -3.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0885e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6417e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6962e-08 -3.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1907e-08 -3.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0642e-09 -3.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2657e-09 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8203e-09 -3.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6165e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3546e-10 -3.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8463e-10 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7449e-10 -3.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2344e-10 -3.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1274e-11 -3.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5415e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1424e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7173e-06 -3.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1585e-07 -3.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9339e-07 -3.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9156e-07 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0215e-07 -3.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1656e-08 -3.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0771e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7809e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8521e-08 -3.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1966e-08 -3.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6443e-09 -3.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4598e-09 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5850e-09 -3.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5927e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3944e-10 -3.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0257e-10 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6007e-10 -3.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3130e-10 -3.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8589e-11 -3.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5312e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0631e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6700e-06 -3.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4922e-07 -3.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8974e-07 -3.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0058e-07 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7089e-08 -3.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4284e-08 -3.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8784e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6069e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7236e-08 -3.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1823e-08 -3.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5160e-09 -3.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5190e-09 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5761e-09 -3.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5614e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4346e-10 -3.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9885e-10 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5916e-10 -3.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2599e-10 -3.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2101e-11 -3.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9543e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1988e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7363e-06 -3.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4371e-07 -3.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0638e-07 -3.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9839e-07 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0047e-07 -3.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0953e-08 -3.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8951e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7982e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7238e-08 -3.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1145e-08 -3.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1876e-09 -3.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6247e-09 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7416e-09 -3.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5666e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8008e-10 -3.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9240e-10 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6336e-10 -3.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2796e-10 -3.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0597e-11 -3.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7254e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1467e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6939e-06 -3.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0523e-07 -3.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9292e-07 -3.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8872e-07 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0423e-07 -3.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0954e-08 -3.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2428e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7976e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8491e-08 -3.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1354e-08 -3.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5497e-09 -3.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5604e-09 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8027e-09 -3.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5968e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4078e-10 -3.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9076e-10 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7210e-10 -3.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3238e-10 -3.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0109e-11 -3.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7109e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2078e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7455e-06 -3.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2325e-07 -3.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0823e-07 -3.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9574e-07 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0676e-07 -3.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9757e-08 -3.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0739e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6765e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7354e-08 -3.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1182e-08 -3.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3406e-09 -3.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6346e-09 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5819e-09 -3.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6300e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4240e-10 -3.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8726e-10 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5209e-10 -3.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3119e-10 -3.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4701e-11 -3.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8799e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1901e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6236e-06 -3.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7469e-07 -3.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9696e-07 -3.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9394e-07 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9380e-08 -3.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0158e-08 -3.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0839e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7779e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8609e-08 -3.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1909e-08 -3.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4751e-09 -3.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4388e-09 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5694e-09 -3.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6141e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4134e-10 -3.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8177e-10 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5578e-10 -3.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2596e-10 -3.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3610e-11 -3.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8101e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1717e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7043e-06 -3.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6448e-07 -3.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1388e-07 -3.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9512e-07 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9389e-08 -3.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1218e-08 -3.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9232e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6891e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8300e-08 -3.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1387e-08 -3.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4508e-09 -3.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7072e-09 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5581e-09 -3.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5580e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7966e-10 -3.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7113e-10 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4781e-10 -3.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3967e-10 -3.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.7048e-11 -3.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0129e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3089e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7075e-06 -3.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1766e-07 -3.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8257e-07 -3.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8888e-07 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0508e-07 -3.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4190e-08 -3.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9479e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7685e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7724e-08 -3.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1240e-08 -3.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5090e-09 -3.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6387e-09 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8010e-09 -3.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6024e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4058e-10 -3.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0353e-10 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6766e-10 -3.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.4023e-10 -3.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3612e-11 -3.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0411e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2867e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7714e-06 -3.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5752e-07 -3.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0054e-07 -3.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9135e-07 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0311e-07 -3.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4738e-08 -3.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9354e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7969e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7940e-08 -3.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1820e-08 -3.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4531e-09 -3.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4036e-09 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6665e-09 -3.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5955e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7571e-10 -3.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9158e-10 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5449e-10 -3.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3751e-10 -3.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2461e-11 -3.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9494e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2750e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7509e-06 -4.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7455e-07 -4.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9856e-07 -4.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8113e-07 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0624e-07 -4.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3556e-08 -4.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9235e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6473e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8212e-08 -4.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1768e-08 -4.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3617e-09 -4.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4365e-09 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6099e-09 -4.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4869e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5623e-10 -4.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9679e-10 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4844e-10 -4.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2970e-10 -4.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6129e-11 -4.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0183e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2240e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7738e-06 -4.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3468e-07 -4.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0668e-07 -4.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8423e-07 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0374e-07 -4.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0613e-08 -4.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1829e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6993e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7229e-08 -4.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1668e-08 -4.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5603e-09 -4.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4147e-09 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6003e-09 -4.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5808e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7734e-10 -4.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6303e-10 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4991e-10 -4.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3074e-10 -4.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4195e-11 -4.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8588e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2204e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7960e-06 -4.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5574e-07 -4.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9481e-07 -4.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8611e-07 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0673e-07 -4.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2795e-08 -4.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1457e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7157e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7802e-08 -4.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1348e-08 -4.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3031e-09 -4.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4281e-09 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6476e-09 -4.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5532e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1115e-10 -4.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9202e-10 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6160e-10 -4.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3840e-10 -4.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5202e-11 -4.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0308e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3469e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7388e-06 -4.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3292e-07 -4.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1033e-07 -4.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0073e-07 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9754e-08 -4.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2509e-08 -4.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9673e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7833e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8617e-08 -4.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1691e-08 -4.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1496e-09 -4.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6725e-09 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7563e-09 -4.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5490e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5498e-10 -4.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6414e-10 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6729e-10 -4.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3169e-10 -4.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6667e-11 -4.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0119e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3889e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7016e-06 -4.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7579e-07 -4.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1751e-07 -4.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9107e-07 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0568e-07 -4.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1234e-08 -4.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0361e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6160e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7998e-08 -4.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0948e-08 -4.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2885e-09 -4.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4950e-09 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6007e-09 -4.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5298e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7856e-10 -4.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7723e-10 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6514e-10 -4.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3494e-10 -4.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.9146e-11 -4.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0789e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3789e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7018e-06 -4.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8853e-07 -4.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9507e-07 -4.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9496e-07 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0145e-07 -4.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0617e-08 -4.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0771e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6477e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8287e-08 -4.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0937e-08 -4.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4978e-09 -4.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2769e-09 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7503e-09 -4.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5420e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.3675e-10 -4.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6582e-10 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5119e-10 -4.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3428e-10 -4.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4123e-11 -4.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9312e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3552e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7016e-06 -4.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8525e-07 -4.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0195e-07 -4.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9146e-07 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8030e-08 -4.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4687e-08 -4.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9531e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6811e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7598e-08 -4.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2114e-08 -4.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5717e-09 -4.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5870e-09 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8100e-09 -4.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5141e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.3227e-10 -4.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7433e-10 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5557e-10 -4.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3182e-10 -4.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.7258e-11 -4.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.1098e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3363e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6511e-06 -4.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7317e-07 -4.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0459e-07 -4.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8593e-07 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0400e-07 -4.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5098e-08 -4.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1983e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7808e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7807e-08 -4.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1378e-08 -4.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0080e-09 -4.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2950e-09 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7249e-09 -4.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4993e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8219e-10 -4.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7829e-10 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5878e-10 -4.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3362e-10 -4.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.8334e-11 -4.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.2062e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.4640e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6235e-06 -4.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4622e-07 -4.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7968e-07 -4.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8586e-07 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0274e-07 -4.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0474e-08 -4.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9971e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7496e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7757e-08 -4.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1285e-08 -4.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4498e-09 -4.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7151e-09 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7358e-09 -4.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4923e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.2340e-10 -4.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6554e-10 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6305e-10 -4.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2882e-10 -4.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6153e-11 -4.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0622e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.3548e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6262e-06 -4.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3281e-07 -4.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8256e-07 -4.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8593e-07 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9839e-08 -4.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9792e-08 -4.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8713e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5800e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7993e-08 -4.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2048e-08 -4.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0470e-09 -4.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4666e-09 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6588e-09 -4.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4876e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0493e-10 -4.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5300e-10 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6566e-10 -4.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2972e-10 -4.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5730e-11 -4.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0993e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.4266e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6694e-06 +5.0000e+01 0.0000e+00 2.0000e+01 1.4125e-05 -8.4850e-07 +5.0000e+01 0.0000e+00 2.0000e+01 1.9953e-05 -3.7911e-07 +5.0000e+01 0.0000e+00 2.0000e+01 2.8184e-05 -1.9681e-07 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0548e-07 +5.0000e+01 0.0000e+00 2.0000e+01 5.6234e-05 -6.2491e-08 +5.0000e+01 0.0000e+00 2.0000e+01 7.9433e-05 -4.1022e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.1220e-04 -2.7179e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -2.0745e-08 +5.0000e+01 0.0000e+00 2.0000e+01 2.2387e-04 -1.3933e-08 +5.0000e+01 0.0000e+00 2.0000e+01 3.1623e-04 -8.1849e-09 +5.0000e+01 0.0000e+00 2.0000e+01 4.4668e-04 -4.8271e-09 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.9167e-09 +5.0000e+01 0.0000e+00 2.0000e+01 8.9125e-04 -1.3770e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.2589e-03 -7.0628e-10 +5.0000e+01 0.0000e+00 2.0000e+01 1.7783e-03 -3.1098e-10 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.4589e-10 +5.0000e+01 0.0000e+00 2.0000e+01 3.5481e-03 -5.9986e-11 +5.0000e+01 0.0000e+00 2.0000e+01 5.0119e-03 -2.5856e-11 +5.0000e+01 0.0000e+00 2.0000e+01 7.0795e-03 -1.0292e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -4.3884e-12 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7836e-06 +1.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2732e-07 +1.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7823e-07 +1.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8662e-07 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0023e-07 +1.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -5.9296e-08 +1.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1114e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.9302e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.9752e-08 +1.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3007e-08 +1.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.3285e-09 +1.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8623e-09 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8427e-09 +1.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4600e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.2659e-10 +1.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.1952e-10 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4055e-10 +1.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.2930e-11 +1.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4327e-11 +1.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0562e-11 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5877e-12 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7558e-06 +2.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.8475e-07 +2.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8003e-07 +2.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9084e-07 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0592e-07 +2.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3773e-08 +2.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0547e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8610e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -2.0015e-08 +2.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3238e-08 +2.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.8928e-09 +2.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1886e-09 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6722e-09 +2.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4344e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -6.9472e-10 +2.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.0841e-10 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.3420e-10 +2.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.1585e-11 +2.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4169e-11 +2.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0355e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5683e-12 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6350e-06 +3.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.0950e-07 +3.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0009e-07 +3.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9593e-07 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9984e-08 +3.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.2433e-08 +3.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8581e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7337e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8037e-08 +3.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2068e-08 +3.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.3168e-09 +3.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2595e-09 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8298e-09 +3.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5526e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.7989e-10 +3.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.5262e-10 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6530e-10 +3.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.8300e-11 +3.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0600e-11 +3.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2133e-11 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.9207e-12 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7129e-06 +4.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.3731e-07 +4.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7667e-07 +4.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9430e-07 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.6952e-08 +4.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4472e-08 +4.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1046e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6067e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8189e-08 +4.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2784e-08 +4.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.5045e-09 +4.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.3816e-09 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8692e-09 +4.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6193e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.7878e-10 +4.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6868e-10 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7156e-10 +4.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.2385e-11 +4.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0672e-11 +4.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2461e-11 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.1579e-12 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6786e-06 +5.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7194e-07 +5.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7708e-07 +5.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8477e-07 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0715e-07 +5.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -5.8962e-08 +5.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1748e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7217e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8686e-08 +5.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2115e-08 +5.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.6040e-09 +5.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.3771e-09 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8924e-09 +5.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6143e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.5683e-10 +5.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.8047e-10 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6593e-10 +5.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.0165e-11 +5.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.1148e-11 +5.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2189e-11 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8611e-12 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6777e-06 +6.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7769e-07 +6.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0164e-07 +6.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9292e-07 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9759e-08 +6.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3979e-08 +6.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0637e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8439e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.9351e-08 +6.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2823e-08 +6.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.2773e-09 +6.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.0665e-09 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0681e-09 +6.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5646e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.8499e-10 +6.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6424e-10 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6130e-10 +6.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9980e-11 +6.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0763e-11 +6.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2604e-11 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.9818e-12 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6337e-06 +7.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2939e-07 +7.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0579e-07 +7.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9966e-07 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0004e-07 +7.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.2788e-08 +7.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2061e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8169e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7954e-08 +7.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2245e-08 +7.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0139e-09 +7.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8654e-09 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1114e-09 +7.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5916e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.2369e-10 +7.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0129e-10 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9387e-10 +7.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.8803e-11 +7.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.6008e-11 +7.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4268e-11 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6323e-12 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6583e-06 +8.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6409e-07 +8.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8126e-07 +8.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9596e-07 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0010e-07 +8.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4463e-08 +8.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2015e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7078e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8474e-08 +8.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1538e-08 +8.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.6027e-09 +8.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1944e-09 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0480e-09 +8.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6955e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.7389e-10 +8.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.3428e-10 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8000e-10 +8.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3884e-11 +8.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.4882e-11 +8.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4066e-11 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6570e-12 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7716e-06 +9.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7234e-07 +9.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8210e-07 +9.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9504e-07 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0755e-07 +9.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3279e-08 +9.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9715e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8375e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8006e-08 +9.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2207e-08 +9.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0740e-09 +9.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9632e-09 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9341e-09 +9.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6198e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.6081e-10 +9.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.2546e-10 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9705e-10 +9.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.1576e-11 +9.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.2786e-11 +9.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4720e-11 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.9803e-12 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7306e-06 +1.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8342e-07 +1.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8237e-07 +1.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9622e-07 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8734e-08 +1.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0414e-08 +1.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8518e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6763e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7898e-08 +1.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1957e-08 +1.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -8.0719e-09 +1.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7724e-09 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8510e-09 +1.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7432e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.2835e-10 +1.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.0862e-10 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9337e-10 +1.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.0351e-11 +1.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.5885e-11 +1.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.4588e-11 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.8282e-12 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7139e-06 +1.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7778e-07 +1.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0551e-07 +1.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8674e-07 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0666e-07 +1.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2407e-08 +1.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2302e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6274e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7820e-08 +1.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1579e-08 +1.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4232e-09 +1.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6974e-09 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0593e-09 +1.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7656e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3134e-10 +1.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.4534e-10 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1336e-10 +1.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.9424e-11 +1.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.9714e-11 +1.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6515e-11 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.5694e-12 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7458e-06 +1.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5052e-07 +1.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8636e-07 +1.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9886e-07 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9777e-08 +1.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4089e-08 +1.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9640e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5584e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6957e-08 +1.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2251e-08 +1.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5453e-09 +1.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6213e-09 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0457e-09 +1.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7334e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9707e-10 +1.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6029e-10 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0978e-10 +1.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3179e-11 +1.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.0122e-11 +1.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.5972e-11 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.2178e-12 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6806e-06 +1.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3536e-07 +1.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7788e-07 +1.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8719e-07 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7801e-08 +1.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0120e-08 +1.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2503e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7005e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8110e-08 +1.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1544e-08 +1.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4911e-09 +1.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7705e-09 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8521e-09 +1.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6482e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5865e-10 +1.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.4181e-10 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0469e-10 +1.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.5285e-11 +1.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.7801e-11 +1.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6449e-11 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.1497e-12 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7813e-06 +1.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6509e-07 +1.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7871e-07 +1.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8821e-07 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0552e-07 +1.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.8885e-08 +1.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0191e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7443e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8053e-08 +1.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1610e-08 +1.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.8652e-09 +1.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.9116e-09 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8398e-09 +1.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7599e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6699e-10 +1.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7041e-10 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1541e-10 +1.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.8553e-11 +1.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.8365e-11 +1.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6741e-11 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7647e-12 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7081e-06 +1.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4246e-07 +1.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1327e-07 +1.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9870e-07 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0356e-07 +1.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1110e-08 +1.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8739e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5674e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7872e-08 +1.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1795e-08 +1.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2963e-09 +1.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6185e-09 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9931e-09 +1.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6698e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7659e-10 +1.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0409e-10 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3426e-10 +1.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0008e-10 +1.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.2920e-11 +1.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7532e-11 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3036e-12 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6247e-06 +1.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3149e-07 +1.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0446e-07 +1.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8893e-07 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9632e-08 +1.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2742e-08 +1.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1218e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5752e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6949e-08 +1.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1860e-08 +1.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5575e-09 +1.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8022e-09 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9833e-09 +1.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7579e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8731e-10 +1.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6512e-10 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4186e-10 +1.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.8248e-11 +1.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4501e-11 +1.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8434e-11 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3629e-12 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6543e-06 +1.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3116e-07 +1.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0379e-07 +1.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9104e-07 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0097e-07 +1.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1969e-08 +1.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9293e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5695e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7626e-08 +1.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1961e-08 +1.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5131e-09 +1.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5345e-09 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0110e-09 +1.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7349e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5951e-10 +1.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5963e-10 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2592e-10 +1.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0065e-10 +1.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3766e-11 +1.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7911e-11 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0976e-12 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7946e-06 +1.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6459e-07 +1.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9310e-07 +1.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8779e-07 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7347e-08 +1.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1739e-08 +1.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9311e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7358e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8248e-08 +1.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1157e-08 +1.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6136e-09 +1.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8911e-09 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7524e-09 +1.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6877e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1232e-10 +1.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9764e-10 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2529e-10 +1.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0802e-10 +1.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4779e-11 +1.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8523e-11 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5693e-12 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7232e-06 +1.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5244e-07 +1.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0842e-07 +1.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8339e-07 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0617e-07 +1.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1372e-08 +1.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0979e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5648e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7393e-08 +1.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1779e-08 +1.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6494e-09 +1.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7746e-09 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8141e-09 +1.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7182e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7065e-10 +1.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7207e-10 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1817e-10 +1.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0191e-10 +1.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3318e-11 +1.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8330e-11 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.9497e-12 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7040e-06 +2.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2783e-07 +2.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1761e-07 +2.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8897e-07 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0231e-07 +2.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1938e-08 +2.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2046e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7423e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8164e-08 +2.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1801e-08 +2.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3384e-09 +2.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3780e-09 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7063e-09 +2.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6882e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0608e-10 +2.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7154e-10 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4541e-10 +2.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1292e-10 +2.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.9125e-11 +2.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1474e-11 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2826e-12 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7041e-06 +2.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7113e-07 +2.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1162e-07 +2.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0013e-07 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0031e-07 +2.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1520e-08 +2.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1558e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7200e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7484e-08 +2.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1413e-08 +2.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5554e-09 +2.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3618e-09 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9487e-09 +2.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6151e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.8281e-10 +2.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1388e-10 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4200e-10 +2.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1701e-10 +2.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1160e-11 +2.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0438e-11 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.0105e-12 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7557e-06 +2.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2691e-07 +2.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1723e-07 +2.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8383e-07 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0186e-07 +2.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5114e-08 +2.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9393e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6911e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7762e-08 +2.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1184e-08 +2.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3814e-09 +2.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6487e-09 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7290e-09 +2.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7176e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1052e-10 +2.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9522e-10 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3941e-10 +2.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0901e-10 +2.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0692e-11 +2.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0327e-11 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2427e-12 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7618e-06 +2.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8568e-07 +2.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7979e-07 +2.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9978e-07 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0104e-07 +2.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4457e-08 +2.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2347e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7342e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7550e-08 +2.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1895e-08 +2.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5411e-09 +2.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4436e-09 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9106e-09 +2.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6097e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5040e-10 +2.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1116e-10 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3171e-10 +2.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0768e-10 +2.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.8136e-11 +2.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1056e-11 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.9403e-12 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6722e-06 +2.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0695e-07 +2.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8370e-07 +2.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8727e-07 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0534e-07 +2.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9454e-08 +2.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1280e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6094e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7196e-08 +2.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1637e-08 +2.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2659e-09 +2.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4459e-09 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8599e-09 +2.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6141e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3393e-10 +2.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2411e-10 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5505e-10 +2.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1983e-10 +2.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6152e-11 +2.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2041e-11 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.8402e-12 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6331e-06 +2.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3857e-07 +2.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8470e-07 +2.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9418e-07 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8084e-08 +2.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3266e-08 +2.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9958e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6216e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8559e-08 +2.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1447e-08 +2.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1249e-09 +2.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3152e-09 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6784e-09 +2.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7135e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9981e-10 +2.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2417e-10 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6137e-10 +2.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2625e-10 +2.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6198e-11 +2.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2224e-11 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0769e-12 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6500e-06 +2.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4388e-07 +2.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8623e-07 +2.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8401e-07 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9831e-08 +2.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0710e-08 +2.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2177e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8178e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8393e-08 +2.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2043e-08 +2.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0068e-09 +2.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6135e-09 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8217e-09 +2.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6225e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3471e-10 +2.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0142e-10 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4585e-10 +2.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1739e-10 +2.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1764e-11 +2.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2488e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.2042e-12 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6843e-06 +2.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3182e-07 +2.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1667e-07 +2.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8634e-07 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0712e-07 +2.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0150e-08 +2.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1249e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6204e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8649e-08 +2.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1799e-08 +2.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1930e-09 +2.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6829e-09 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7431e-09 +2.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6270e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.4888e-10 +2.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8401e-10 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4271e-10 +2.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1547e-10 +2.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0805e-11 +2.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2510e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.3318e-12 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6616e-06 +2.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6683e-07 +2.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7906e-07 +2.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8396e-07 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0372e-07 +2.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5203e-08 +2.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2037e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7485e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8066e-08 +2.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1128e-08 +2.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3845e-09 +2.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5327e-09 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6134e-09 +2.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6158e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8392e-10 +2.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8831e-10 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6771e-10 +2.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2597e-10 +2.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.3663e-11 +2.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3273e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9373e-12 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7009e-06 +2.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2103e-07 +2.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9219e-07 +2.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9861e-07 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0737e-07 +2.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1404e-08 +2.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0944e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6215e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7690e-08 +2.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1245e-08 +2.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4004e-09 +2.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3290e-09 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8380e-09 +2.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6071e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7289e-10 +2.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8875e-10 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6263e-10 +2.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2968e-10 +2.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.7710e-11 +2.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5148e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0543e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7625e-06 +3.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7581e-07 +3.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8880e-07 +3.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8749e-07 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0666e-07 +3.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0353e-08 +3.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1394e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8317e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7934e-08 +3.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1099e-08 +3.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5112e-09 +3.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7121e-09 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7979e-09 +3.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5431e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1817e-10 +3.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8889e-10 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6015e-10 +3.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2336e-10 +3.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9611e-11 +3.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3505e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0569e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6667e-06 +3.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7006e-07 +3.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1237e-07 +3.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8573e-07 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 +3.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2108e-08 +3.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1078e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8126e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6960e-08 +3.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1418e-08 +3.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9883e-09 +3.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7192e-09 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7314e-09 +3.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6330e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8322e-10 +3.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8165e-10 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6935e-10 +3.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1983e-10 +3.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9297e-11 +3.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5886e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0453e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6385e-06 +3.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3366e-07 +3.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1015e-07 +3.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9080e-07 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0589e-07 +3.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2502e-08 +3.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9344e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5531e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8180e-08 +3.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1103e-08 +3.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1797e-09 +3.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5207e-09 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6368e-09 +3.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5587e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7755e-10 +3.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0310e-10 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6898e-10 +3.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2899e-10 +3.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9664e-11 +3.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5602e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0134e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6198e-06 +3.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8494e-07 +3.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9182e-07 +3.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9686e-07 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9837e-08 +3.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9667e-08 +3.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0066e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5925e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7628e-08 +3.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1968e-08 +3.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2239e-09 +3.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5718e-09 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6961e-09 +3.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6016e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8500e-10 +3.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0820e-10 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5181e-10 +3.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3279e-10 +3.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6562e-11 +3.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3764e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0594e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7627e-06 +3.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7871e-07 +3.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9482e-07 +3.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8146e-07 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0309e-07 +3.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1136e-08 +3.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1479e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5754e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7608e-08 +3.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0979e-08 +3.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6858e-09 +3.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4857e-09 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6237e-09 +3.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5219e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8054e-10 +3.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0235e-10 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7246e-10 +3.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2830e-10 +3.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8624e-11 +3.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3867e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0494e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7710e-06 +3.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8471e-07 +3.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1602e-07 +3.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8716e-07 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8772e-08 +3.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9744e-08 +3.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2050e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8208e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7591e-08 +3.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1273e-08 +3.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3823e-09 +3.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4496e-09 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7048e-09 +3.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5925e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6336e-10 +3.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8325e-10 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5840e-10 +3.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3203e-10 +3.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8386e-11 +3.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6358e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0506e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6465e-06 +3.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2513e-07 +3.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1662e-07 +3.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8267e-07 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0176e-07 +3.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3896e-08 +3.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8799e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6996e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7332e-08 +3.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0983e-08 +3.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4680e-09 +3.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3866e-09 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6118e-09 +3.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5832e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9536e-10 +3.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1976e-10 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6462e-10 +3.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3224e-10 +3.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2371e-11 +3.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6242e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0574e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7427e-06 +3.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2410e-07 +3.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8065e-07 +3.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8300e-07 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0493e-07 +3.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9121e-08 +3.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1752e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5850e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7452e-08 +3.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1272e-08 +3.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4465e-09 +3.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4105e-09 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7673e-09 +3.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5629e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7448e-10 +3.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8171e-10 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7060e-10 +3.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2872e-10 +3.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3045e-11 +3.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7037e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1198e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7212e-06 +3.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4294e-07 +3.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1256e-07 +3.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8847e-07 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0540e-07 +3.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5030e-08 +3.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1564e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6755e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6925e-08 +3.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1899e-08 +3.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0204e-09 +3.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3649e-09 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5500e-09 +3.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5244e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8624e-10 +3.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7395e-10 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5304e-10 +3.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2505e-10 +3.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0346e-11 +3.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6429e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1502e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7284e-06 +3.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1058e-07 +3.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0033e-07 +3.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9117e-07 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0726e-07 +3.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5335e-08 +3.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0407e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8239e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7345e-08 +3.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1816e-08 +3.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0733e-09 +3.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3837e-09 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7655e-09 +3.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6467e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6146e-10 +3.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9254e-10 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5717e-10 +3.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2730e-10 +3.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9235e-11 +3.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7374e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1604e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6620e-06 +4.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1170e-07 +4.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9585e-07 +4.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8821e-07 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0056e-07 +4.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9783e-08 +4.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1338e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8355e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7967e-08 +4.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1251e-08 +4.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1196e-09 +4.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6947e-09 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6150e-09 +4.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4740e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1693e-10 +4.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0975e-10 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6113e-10 +4.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2808e-10 +4.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2146e-11 +4.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7215e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1746e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7334e-06 +4.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8114e-07 +4.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1341e-07 +4.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0070e-07 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0409e-07 +4.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4235e-08 +4.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8934e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5940e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7797e-08 +4.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1496e-08 +4.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4239e-09 +4.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3482e-09 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5422e-09 +4.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5430e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0577e-10 +4.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1076e-10 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5752e-10 +4.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2588e-10 +4.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4486e-11 +4.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7289e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2314e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7409e-06 +4.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6592e-07 +4.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7803e-07 +4.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9750e-07 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0380e-07 +4.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4151e-08 +4.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1678e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7974e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7937e-08 +4.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1491e-08 +4.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9392e-09 +4.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5780e-09 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6461e-09 +4.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6326e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2159e-10 +4.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1258e-10 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5222e-10 +4.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3472e-10 +4.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4945e-11 +4.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7378e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1813e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6612e-06 +4.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4481e-07 +4.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7904e-07 +4.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9299e-07 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0336e-07 +4.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1342e-08 +4.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0187e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6568e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7562e-08 +4.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0953e-08 +4.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6265e-09 +4.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6738e-09 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6049e-09 +4.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6168e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4129e-10 +4.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9806e-10 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6887e-10 +4.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3670e-10 +4.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4593e-11 +4.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9070e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2380e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6302e-06 +4.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6827e-07 +4.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8052e-07 +4.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9066e-07 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0702e-07 +4.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1079e-08 +4.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9570e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6609e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7709e-08 +4.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1916e-08 +4.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0210e-09 +4.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5552e-09 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5491e-09 +4.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6252e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2039e-10 +4.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7248e-10 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5488e-10 +4.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2665e-10 +4.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6071e-11 +4.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9224e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2270e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6282e-06 +4.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6401e-07 +4.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7833e-07 +4.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8839e-07 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0187e-07 +4.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0075e-08 +4.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8774e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6066e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8530e-08 +4.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1849e-08 +4.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3820e-09 +4.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2911e-09 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6311e-09 +4.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5582e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6182e-10 +4.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8107e-10 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5620e-10 +4.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2630e-10 +4.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5454e-11 +4.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6771e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1731e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6984e-06 +4.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8023e-07 +4.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1180e-07 +4.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0056e-07 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0043e-07 +4.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2319e-08 +4.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8464e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5746e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8436e-08 +4.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2000e-08 +4.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4145e-09 +4.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6134e-09 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6401e-09 +4.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5010e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5649e-10 +4.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9287e-10 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7227e-10 +4.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3094e-10 +4.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1471e-11 +4.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0002e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2186e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6680e-06 +4.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8968e-07 +4.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0864e-07 +4.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9325e-07 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9051e-08 +4.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4752e-08 +4.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9413e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7449e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8174e-08 +4.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1061e-08 +4.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9259e-09 +4.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3092e-09 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5677e-09 +4.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4810e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9849e-10 +4.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9708e-10 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6862e-10 +4.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3298e-10 +4.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1652e-11 +4.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0040e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2853e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7684e-06 +4.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7976e-07 +4.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0005e-07 +4.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8438e-07 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0571e-07 +4.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4909e-08 +4.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1871e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7463e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8046e-08 +4.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2069e-08 +4.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3170e-09 +4.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7006e-09 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7793e-09 +4.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5231e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5417e-10 +4.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7157e-10 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6284e-10 +4.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3175e-10 +4.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6764e-11 +4.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8238e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2748e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6411e-06 +4.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8647e-07 +4.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9145e-07 +4.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0048e-07 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8310e-08 +4.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4262e-08 +4.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9722e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7265e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7301e-08 +4.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1549e-08 +4.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3545e-09 +4.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2587e-09 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7191e-09 +4.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6263e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7917e-10 +4.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6731e-10 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6680e-10 +4.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3311e-10 +4.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5205e-11 +4.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9705e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2096e-11 diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index 38108a0..3e58d87 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -50,7 +50,7 @@ # ------------- # # -x = np.linspace(50,5050,50) +x = np.linspace(50,4950,50) #x = np.linspace(50,250,3) n_sounding = len(x) @@ -110,10 +110,12 @@ # ---------------------- # -dx = 100. hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) + +dx = 100. hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') ############################################### # Defining a Model @@ -131,22 +133,31 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -model = np.ones(mesh.nC) * background_conductivity +model = np.ones(mesh2D.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 30. +layer_ind = mesh2D.gridCC[:, -1] > -30. model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 130.] -x3 = np.r_[0., 50.] +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) +poly_inds = PolygonInd(mesh2D, pts) model[poly_inds] = slope_conductivity -mapping = maps.ExpMap(mesh) -sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) +mapping = maps.ExpMap(mesh2D) + +# MODEL TO SOUNDING MODELS METHOD 1 +# sounding_models = model.reshape(mesh2D.vnC, order='F') +# sounding_models = np.fliplr(sounding_models) +# sounding_models = mkvc(sounding_models.T) + +# MODEL TO SOUNDING MODELS METHOD 2 +sounding_models = model.reshape(mesh_soundings.vnC, order='C') +sounding_models = np.flipud(sounding_models) +sounding_models = mkvc(sounding_models) chi = np.zeros_like(sounding_models) @@ -159,12 +170,12 @@ def PolygonInd(mesh, pts): ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(model) -mesh.plotImage( +mesh2D.plotImage( log_mod, ax=ax1, grid=True, clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), pcolorOpts={"cmap": "viridis"}, ) -ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) +ax1.set_ylim(mesh2D.vectorNy.min(), mesh2D.vectorNy.max()) ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") @@ -179,6 +190,36 @@ def PolygonInd(mesh, pts): ) cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + +fig = plt.figure(figsize=(4, 8)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod_sounding = np.log10(sounding_models) +sounding_models = np.log(sounding_models) + +mesh_soundings.plotImage( + log_mod_sounding, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh_soundings.vectorNy.min(), mesh_soundings.vectorNy.max()) + +ax1.set_title("Ordered Sounding Models") +ax1.set_xlabel("hz (m)") +ax1.set_ylabel("Profile Distance (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + ####################################################################### # Define the Forward Simulation and Predic Data # ---------------------------------------------- @@ -188,7 +229,7 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, + mesh_soundings, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 96d6ae1..e90b5c9 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -173,8 +173,8 @@ ############################################### -# Defining a Global Mesh -# ---------------------- +# Defining Meshes +# --------------- # dx = 100. @@ -182,7 +182,8 @@ frequencies, sigma_background=0.1, n_layer=30 ) hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') ############################################### @@ -190,10 +191,10 @@ # ---------------------- # -conductivity = np.ones(mesh.nC) * 0.1 +conductivity = np.ones(mesh_soundings.nC) * 0.1 -mapping = maps.ExpMap(mesh) -starting_model = np.log(conductivity.reshape(mesh.vnC, order='F').flatten()) +mapping = maps.ExpMap(mesh_soundings) +starting_model = np.log(conductivity) ####################################################################### # Define the Forward Simulation and Predic Data @@ -204,7 +205,7 @@ # Simulate response for static conductivity simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, + mesh_soundings, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) @@ -268,9 +269,9 @@ # reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) -reg_map = maps.IdentityMap(nP=mesh.nC) +reg_map = maps.IdentityMap(nP=mesh_soundings.nC) reg = regularization.Sparse( - mesh, mapping=reg_map, + mesh_reg, mapping=reg_map, ) ps, px, py = 1, 1, 1 @@ -394,20 +395,27 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -true_model = np.ones(mesh.nC) * background_conductivity +true_model = np.ones(mesh2D.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 30. +layer_ind = mesh2D.gridCC[:, -1] > -30. true_model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 120.] -x3 = np.r_[0., 50.] +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) +poly_inds = PolygonInd(mesh2D, pts) true_model[poly_inds] = slope_conductivity +true_model = true_model.reshape(mesh_soundings.vnC, order='C') +true_model = np.flipud(true_model) +true_model = mkvc(true_model) + + + + l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) l2_model = np.exp(l2_model) @@ -423,17 +431,19 @@ def PolygonInd(mesh, pts): ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(mod) - mesh.plotImage( + mesh_soundings.plotImage( log_mod, ax=ax1, grid=False, clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) - ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + ax1.set_ylim(mesh_soundings.vectorNy.max(), mesh_soundings.vectorNy.min()) ax1.set_title("Conductivity Model") - ax1.set_xlabel("x (m)") - ax1.set_ylabel("depth (m)") + # ax1.set_xlabel("x (m)") + # ax1.set_ylabel("depth (m)") + ax1.set_xlabel("depth (m)") + ax1.set_ylabel("Sounding Distance (m)") ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) norm = mpl.colors.Normalize( diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 6bb6129..e435c60 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -105,7 +105,8 @@ dx = 100. hz = get_vertical_discretization_time(times, sigma_background=0.1, n_layer=40) hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') ############################################### # Defining a Model @@ -115,7 +116,7 @@ from scipy.spatial import Delaunay def PolygonInd(mesh, pts): hull = Delaunay(pts) - inds = hull.find_simplex(mesh.gridCC)>=0 + inds = hull.find_simplex(mesh2D.gridCC)>=0 return inds @@ -123,22 +124,31 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -model = np.ones(mesh.nC) * background_conductivity +model = np.ones(mesh2D.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 30. +layer_ind = mesh2D.gridCC[:, -1] > -30. model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 50.] +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) +poly_inds = PolygonInd(mesh2D, pts) model[poly_inds] = slope_conductivity -mapping = maps.ExpMap(mesh) -sounding_models = np.log(model.reshape(mesh.vnC, order='F').flatten()) +mapping = maps.ExpMap(mesh2D) + +# MODEL TO SOUNDING MODELS METHOD 1 +# sounding_models = model.reshape(mesh2D.vnC, order='F') +# sounding_models = np.fliplr(sounding_models) +# sounding_models = mkvc(sounding_models.T) + +# MODEL TO SOUNDING MODELS METHOD 2 +sounding_models = model.reshape(mesh_soundings.vnC, order='C') +sounding_models = np.flipud(sounding_models) +sounding_models = mkvc(sounding_models) chi = np.zeros_like(sounding_models) @@ -148,12 +158,12 @@ def PolygonInd(mesh, pts): ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(model) -mesh.plotImage( - log_mod, ax=ax1, grid=False, +mesh2D.plotImage( + log_mod, ax=ax1, grid=True, clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), pcolorOpts={"cmap": "viridis"}, ) -ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) +ax1.set_ylim(mesh2D.vectorNy.min(), mesh2D.vectorNy.max()) ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") @@ -170,6 +180,34 @@ def PolygonInd(mesh, pts): + +fig = plt.figure(figsize=(4, 8)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod_sounding = np.log10(sounding_models) +sounding_models = np.log(sounding_models) + +mesh_soundings.plotImage( + log_mod_sounding, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh_soundings.vectorNy.min(), mesh_soundings.vectorNy.max()) + +ax1.set_title("Ordered Sounding Models") +ax1.set_xlabel("hz (m)") +ax1.set_ylabel("Profile Distance (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + ####################################################################### # Define the Forward Simulation and Predic Data # ---------------------------------------------- @@ -179,7 +217,7 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( - mesh, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, + mesh_soundings, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index 072e2b2..bd213ca 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -172,7 +172,8 @@ times, sigma_background=0.1, n_layer=25 ) hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') ############################################### @@ -180,10 +181,10 @@ # ---------------------- # -conductivity = np.ones(mesh.nC) * 0.1 +conductivity = np.ones(mesh_soundings.nC) * 0.1 -mapping = maps.ExpMap(mesh) -starting_model = np.log(conductivity.reshape(mesh.vnC, order='F').flatten()) +mapping = maps.ExpMap(mesh_soundings) +starting_model = np.log(conductivity) ####################################################################### # Define the Forward Simulation and Predic Data @@ -194,7 +195,7 @@ # Simulate response for static conductivity simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( - mesh, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, + mesh_soundings, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) @@ -258,9 +259,9 @@ # reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) -reg_map = maps.IdentityMap(nP=mesh.nC) +reg_map = maps.IdentityMap(nP=mesh_soundings.nC) reg = regularization.Sparse( - mesh, mapping=reg_map, + mesh_reg, mapping=reg_map, ) ps, px, py = 1, 1, 1 @@ -384,20 +385,24 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -true_model = np.ones(mesh.nC) * background_conductivity +true_model = np.ones(mesh2D.nC) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 30. +layer_ind = mesh2D.gridCC[:, -1] > -30. true_model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 150.] -x3 = np.r_[0., 50.] +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) +poly_inds = PolygonInd(mesh2D, pts) true_model[poly_inds] = slope_conductivity +true_model = true_model.reshape(mesh_soundings.vnC, order='C') +true_model = np.flipud(true_model) +true_model = mkvc(true_model) + l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) @@ -418,13 +423,13 @@ def PolygonInd(mesh, pts): ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(mod) - mesh.plotImage( + mesh_soundings.plotImage( log_mod, ax=ax1, grid=False, clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) - ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) + ax1.set_ylim(mesh_soundings.vectorNy.max(), mesh_soundings.vectorNy.min()) ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") From 39b26676ef78a80318c89c50f1a08d74bea9a152 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 22 Sep 2020 15:50:00 -0700 Subject: [PATCH 34/54] Relocate all simulation classes to simulation.py and remove redundant mesh and thickness properties. --- simpegEM1D/__init__.py | 8 +- simpegEM1D/simulation.py | 804 ++++++++- simpegEM1D/simulation_stitched1d.py | 1057 ------------ simpegEM1D/survey_original.py | 548 ------ tests/testGlobalEM1D_FD_jac_layers.py | 18 +- tests/testGlobalEM1D_TD_jac_layers.py | 12 +- tutorials/assets/em1dfm_stitched_data.obs | 600 +++---- tutorials/assets/em1dtm_stitched_data.obs | 1850 +++++++++------------ tutorials/plot_2_fdem_fwd_stitched.py | 18 +- tutorials/plot_2_fdem_inv_stitched.py | 51 +- tutorials/plot_2_tdem_fwd_stitched.py | 24 +- tutorials/plot_2_tdem_inv_stitched.py | 21 +- 12 files changed, 1979 insertions(+), 3032 deletions(-) delete mode 100644 simpegEM1D/simulation_stitched1d.py delete mode 100644 simpegEM1D/survey_original.py diff --git a/simpegEM1D/__init__.py b/simpegEM1D/__init__.py index 5acaae9..208405f 100644 --- a/simpegEM1D/__init__.py +++ b/simpegEM1D/__init__.py @@ -1,6 +1,5 @@ # Surveys from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD -# from .survey_original import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD # Sources and receivers from . import sources @@ -8,11 +7,8 @@ # Simulations from .simulation import ( - BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation -) -from .simulation_stitched1d import ( - GlobalEM1DSimulation, GlobalEM1DSimulationFD, GlobalEM1DSimulationTD, - GlobalEM1DSurvey, GlobalEM1DSurveyFD, GlobalEM1DSurveyTD + BaseEM1DSimulation, EM1DFMSimulation, EM1DTMSimulation, + BaseStitchedEM1DSimulation, StitchedEM1DFMSimulation, StitchedEM1DTMSimulation ) # Other diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 46ff2ea..27e4583 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -2,8 +2,9 @@ from SimPEG.simulation import BaseSimulation import numpy as np from .sources import * -from .survey import BaseEM1DSurvey, EM1DSurveyTD +from .survey import BaseEM1DSurvey, EM1DSurveyFD, EM1DSurveyTD from .supporting_functions.kernels import * +from scipy import sparse as sp from scipy.constants import mu_0 from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline from scipy.linalg import block_diag @@ -19,8 +20,20 @@ butterworth_type_filter, butter_lowpass_filter ) +try: + from multiprocessing import Pool +except ImportError: + print("multiprocessing is not available") + PARALLEL = False +else: + PARALLEL = True + import multiprocessing +####################################################################### +# SIMULATION FOR A SINGLE SOUNDING +####################################################################### + class BaseEM1DSimulation(BaseSimulation): """ @@ -750,3 +763,792 @@ def projectFields(self, u): COUNT = COUNT + 1 return u + + + +####################################################################### +# STITCHED 1D SIMULATION CLASS +####################################################################### + +def dot(args): + return np.dot(args[0], args[1]) + + +def run_simulation_FD(args): + """ + args + + src: source object + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : + """ + + src, topo, thicknesses, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + n_layer = len(thicknesses) + 1 + local_survey = EM1DSurveyFD([src]) + expmap = maps.ExpMap(nP=n_layer) + + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + + sim = EM1DFMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + + wires = maps.Wires(('sigma', n_layer), ('h', 1)) + sigmaMap = expmap * wires.sigma + + sim = EM1DFMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, hMap=wires.h, topo=topo, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + # return utils.mkvc(drespdsig) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + + +def run_simulation_TD(args): + """ + args + + src: source object + topo: Topographic location (x, y, z) + hz: Thickeness of the vertical layers + sigma: conductivities + eta + tau + c + chi + h + jac_switch + invert_height + half_switch : + """ + + src, topo, thicknesses, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + + n_layer = len(thicknesses) + 1 + local_survey = EM1DSurveyTD([src]) + expmap = maps.ExpMap(nP=n_layer) + + if not invert_height: + # Use Exponential Map + # This is hard-wired at the moment + sim = EM1DTMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(np.log(sigma)) + return utils.mkvc(drespdsig * sim.sigmaDeriv) + else: + resp = sim.dpred(np.log(sigma)) + return resp + else: + + wires = maps.Wires(('sigma', n_layer), ('h', 1)) + sigmaMap = expmap * wires.sigma + sim = EM1DTMSimulation( + survey=local_survey, thicknesses=thicknesses, + sigmaMap=sigmaMap, hMap=wires.h, topo=topo, + chi=chi, eta=eta, tau=tau, c=c, + half_switch=half_switch, hankel_filter='key_101_2009' + ) + + m = np.r_[np.log(sigma), h] + if jac_switch == 'sensitivity_sigma': + drespdsig = sim.getJ_sigma(m) + return utils.mkvc(drespdsig * utils.sdiag(sigma)) + elif jac_switch == 'sensitivity_height': + drespdh = sim.getJ_height(m) + return utils.mkvc(drespdh) + else: + resp = sim.dpred(m) + return resp + + +class BaseStitchedEM1DSimulation(BaseSimulation): + """ + The GlobalProblem allows you to run a whole bunch of SubProblems, + potentially in parallel, potentially of different meshes. + This is handy for working with lots of sources, + """ + + _Jmatrix_sigma = None + _Jmatrix_height = None + run_simulation = None + n_cpu = None + parallel = False + parallel_jvec_jtvec = False + verbose = False + fix_Jmatrix = False + invert_height = None + + thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( + "thicknesses of the layers", + default=np.array([]) + ) + + sigma, sigmaMap, sigmaDeriv = props.Invertible( + "Electrical conductivity (S/m)" + ) + + h, hMap, hDeriv = props.Invertible( + "Receiver Height (m), h > 0", + ) + + chi = props.PhysicalProperty( + "Magnetic susceptibility (H/m)", + ) + + eta = props.PhysicalProperty( + "Electrical chargeability (V/V), 0 <= eta < 1" + ) + + tau = props.PhysicalProperty( + "Time constant (s)" + ) + + c = props.PhysicalProperty( + "Frequency Dependency, 0 < c < 1" + ) + + topo = properties.Array("Topography (x, y, z)", dtype=float, shape=('*', 3)) + + survey = properties.Instance( + "a survey object", BaseEM1DSurvey, required=True + ) + + half_switch = properties.Bool("Switch for half-space", default=False) + + def __init__(self, **kwargs): + utils.setKwargs(self, **kwargs) + + if PARALLEL: + if self.parallel: + print(">> Use multiprocessing for parallelization") + if self.n_cpu is None: + self.n_cpu = multiprocessing.cpu_count() + print((">> n_cpu: %i") % (self.n_cpu)) + else: + print(">> Serial version is used") + else: + print(">> Serial version is used") + + if self.hMap is None: + self.invert_height = False + else: + self.invert_height = True + + # ------------- For survey ------------- # + # @property + # def dz(self): + # if self.mesh.dim==2: + # return self.mesh.dy + # elif self.mesh.dim==3: + # return self.mesh.dz + + @property + def n_layer(self): + if self.thicknesses is None: + return 1 + else: + return len(self.thicknesses) + 1 + + @property + def n_sounding(self): + return len(self.survey.source_list) + + + @property + def data_index(self): + return self.survey.data_index + + + # ------------- For physical properties ------------- # + @property + def Sigma(self): + if getattr(self, '_Sigma', None) is None: + # Ordering: first z then x + self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) + return self._Sigma + + @property + def Chi(self): + if getattr(self, '_Chi', None) is None: + # Ordering: first z then x + if self.chi is None: + self._Chi = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) + return self._Chi + + @property + def Eta(self): + if getattr(self, '_Eta', None) is None: + # Ordering: first z then x + if self.eta is None: + self._Eta = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Eta = self.eta.reshape((self.n_sounding, self.n_layer)) + return self._Eta + + @property + def Tau(self): + if getattr(self, '_Tau', None) is None: + # Ordering: first z then x + if self.tau is None: + self._Tau = 1e-3*np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Tau = self.tau.reshape((self.n_sounding, self.n_layer)) + return self._Tau + + @property + def C(self): + if getattr(self, '_C', None) is None: + # Ordering: first z then x + if self.c is None: + self._C = np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._C = self.c.reshape((self.n_sounding, self.n_layer)) + return self._C + + @property + def JtJ_sigma(self): + return self._JtJ_sigma + + def JtJ_height(self): + return self._JtJ_height + + @property + def H(self): + if self.hMap is None: + return np.ones(self.n_sounding) + else: + return self.h + + + # ------------- Etcetra .... ------------- # + @property + def IJLayers(self): + if getattr(self, '_IJLayers', None) is None: + # Ordering: first z then x + self._IJLayers = self.set_ij_n_layer() + return self._IJLayers + + @property + def IJHeight(self): + if getattr(self, '_IJHeight', None) is None: + # Ordering: first z then x + self._IJHeight = self.set_ij_n_layer(n_layer=1) + return self._IJHeight + + # ------------- For physics ------------- # + + def input_args(self, i_sounding, jac_switch='forward'): + output = ( + self.survey.source_list[i_sounding], + self.topo[i_sounding, :], + self.thicknesses, + self.Sigma[i_sounding, :], + self.Eta[i_sounding, :], + self.Tau[i_sounding, :], + self.C[i_sounding, :], + self.Chi[i_sounding, :], + self.H[i_sounding], + jac_switch, + self.invert_height, + self.half_switch + ) + return output + + def fields(self, m): + if self.verbose: + print("Compute fields") + + return self.forward(m) + + def dpred(self, m, f=None): + """ + Return predicted data. + Predicted data, (`_pred`) are computed when + self.fields is called. + """ + if f is None: + f = self.fields(m) + + return f + + def forward(self, m): + self.model = m + + if self.verbose: + print(">> Compute response") + + # Set flat topo at zero + if self.topo is None: + self.set_null_topography() + + if self.survey.__class__ == EM1DSurveyFD: + print("Correct Run Simulation") + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + # This assumes the same # of layers for each of sounding + result = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch='forward') for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + else: + result = [ + run_simulation(self.input_args(i, jac_switch='forward')) for i in range(self.n_sounding) + ] + return np.hstack(result) + + + def set_null_topography(self): + self.topo = np.vstack( + [np.c_[src.location[0], src.location[1], 0.] for i, src in enumerate(self.survey.source_list)] + ) + + + def set_ij_n_layer(self, n_layer=None): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + if n_layer is None: + m = self.n_layer + else: + m = n_layer + + for i in range(self.n_sounding): + n = self.survey.vnD_by_sounding[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + def set_ij_height(self): + """ + Compute (I, J) indicies to form sparse sensitivity matrix + This will be used in GlobalEM1DSimulation when after sensitivity matrix + for each sounding is computed + """ + I = [] + J = [] + shift_for_J = 0 + shift_for_I = 0 + m = self.n_layer + for i in range(self.n_sounding): + n = self.survey.vnD[i] + J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J + I_temp = ( + np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + + shift_for_I + ) + J.append(utils.mkvc(J_temp)) + I.append(utils.mkvc(I_temp)) + shift_for_J += m + shift_for_I = I_temp[-1, -1] + 1 + J = np.hstack(J).astype(int) + I = np.hstack(I).astype(int) + return (I, J) + + + def getJ_sigma(self, m): + """ + Compute d F / d sigma + """ + if self._Jmatrix_sigma is not None: + return self._Jmatrix_sigma + if self.verbose: + print(">> Compute J sigma") + self.model = m + + if self.survey.__class__ == EM1DSurveyFD: + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + self._Jmatrix_sigma = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch='sensitivity_sigma') for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + if self.parallel_jvec_jtvec is False: + # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() + self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) + # self._JtJ_sigma_diag = + self._Jmatrix_sigma = sp.coo_matrix( + (self._Jmatrix_sigma, self.IJLayers), dtype=float + ).tocsr() + else: + # _Jmatrix_sigma is block diagnoal matrix (sparse) + # self._Jmatrix_sigma = sp.block_diag( + # [ + # run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + # ] + # ).tocsr() + self._Jmatrix_sigma = [ + run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + ] + self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) + self._Jmatrix_sigma = sp.coo_matrix( + (self._Jmatrix_sigma, self.IJLayers), dtype=float + ).tocsr() + + return self._Jmatrix_sigma + + def getJ_height(self, m): + """ + Compute d F / d height + """ + if self.hMap is None: + return utils.Zero() + + if self._Jmatrix_height is not None: + return self._Jmatrix_height + if self.verbose: + print(">> Compute J height") + + self.model = m + + if self.survey.__class__ == EM1DSurveyFD: + run_simulation = run_simulation_FD + else: + run_simulation = run_simulation_TD + + if self.parallel: + pool = Pool(self.n_cpu) + self._Jmatrix_height = pool.map( + run_simulation, + [ + self.input_args(i, jac_switch="sensitivity_height") for i in range(self.n_sounding) + ] + ) + pool.close() + pool.join() + if self.parallel_jvec_jtvec is False: + # self._Jmatrix_height = sp.block_diag(self._Jmatrix_height).tocsr() + self._Jmatrix_height = np.hstack(self._Jmatrix_height) + self._Jmatrix_height = sp.coo_matrix( + (self._Jmatrix_height, self.IJHeight), dtype=float + ).tocsr() + else: + # self._Jmatrix_height = sp.block_diag( + # [ + # run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + # ] + # ).tocsr() + self._Jmatrix_height = [ + run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + ] + self._Jmatrix_height = np.hstack(self._Jmatrix_height) + self._Jmatrix_height = sp.coo_matrix( + (self._Jmatrix_height, self.IJHeight), dtype=float + ).tocsr() + + return self._Jmatrix_height + + def Jvec(self, m, v, f=None): + J_sigma = self.getJ_sigma(m) + J_height = self.getJ_height(m) + # This is deprecated at the moment + # if self.parallel and self.parallel_jvec_jtvec: + # # Extra division of sigma is because: + # # J_sigma = dF/dlog(sigma) + # # And here sigmaMap also includes ExpMap + # v_sigma = utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) + # V_sigma = v_sigma.reshape((self.n_sounding, self.n_layer)) + + # pool = Pool(self.n_cpu) + # Jv = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i], V_sigma[i, :]) for i in range(self.n_sounding)] + # ) + # ) + # if self.hMap is not None: + # v_height = self.hMap.deriv(m, v) + # V_height = v_height.reshape((self.n_sounding, self.n_layer)) + # Jv += np.hstack( + # pool.map( + # dot, + # [(J_height[i], V_height[i, :]) for i in range(self.n_sounding)] + # ) + # ) + # pool.close() + # pool.join() + # else: + Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) + if self.hMap is not None: + Jv += J_height*(self.hDeriv * v) + return Jv + + def Jtvec(self, m, v, f=None): + J_sigma = self.getJ_sigma(m) + J_height = self.getJ_height(m) + # This is deprecated at the moment + # if self.parallel and self.parallel_jvec_jtvec: + # pool = Pool(self.n_cpu) + # Jtv = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] + # ) + # ) + # if self.hMap is not None: + # Jtv_height = np.hstack( + # pool.map( + # dot, + # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] + # ) + # ) + # # This assumes certain order for model, m = (sigma, height) + # Jtv = np.hstack((Jtv, Jtv_height)) + # pool.close() + # pool.join() + # return Jtv + # else: + # Extra division of sigma is because: + # J_sigma = dF/dlog(sigma) + # And here sigmaMap also includes ExpMap + Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) + if self.hMap is not None: + Jtv += self.hDeriv.T*(J_height.T*v) + return Jtv + + def getJtJdiag(self, m, W=None, threshold=1e-8): + """ + Compute diagonal component of JtJ or + trace of sensitivity matrix (J) + """ + J_sigma = self.getJ_sigma(m) + J_matrix = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) + + if self.hMap is not None: + J_height = self.getJ_height(m) + J_matrix += J_height*self.hDeriv + + if W is None: + W = utils.speye(J_matrix.shape[0]) + + J_matrix = W*J_matrix + JtJ_diag = (J_matrix.T*J_matrix).diagonal() + JtJ_diag /= JtJ_diag.max() + JtJ_diag += threshold + return JtJ_diag + + @property + def deleteTheseOnModelUpdate(self): + toDelete = [] + if self.sigmaMap is not None: + toDelete += ['_Sigma'] + if self.fix_Jmatrix is False: + if self._Jmatrix_sigma is not None: + toDelete += ['_Jmatrix_sigma'] + if self._Jmatrix_height is not None: + toDelete += ['_Jmatrix_height'] + return toDelete + + +class StitchedEM1DFMSimulation(BaseStitchedEM1DSimulation): + + def run_simulation(self, args): + if self.verbose: + print(">> Frequency-domain") + return run_simulation_FD(args) + + # @property + # def frequency(self): + # return self.survey.frequency + + # @property + # def switch_real_imag(self): + # return self.survey.switch_real_imag + + +class StitchedEM1DTMSimulation(BaseStitchedEM1DSimulation): + + # @property + # def wave_type(self): + # return self.survey.wave_type + + # @property + # def input_currents(self): + # return self.survey.input_currents + + # @property + # def time_input_currents(self): + # return self.survey.time_input_currents + + # @property + # def n_pulse(self): + # return self.survey.n_pulse + + # @property + # def base_frequency(self): + # return self.survey.base_frequency + + # @property + # def time(self): + # return self.survey.time + + # @property + # def use_lowpass_filter(self): + # return self.survey.use_lowpass_filter + + # @property + # def high_cut_frequency(self): + # return self.survey.high_cut_frequency + + # @property + # def moment_type(self): + # return self.survey.moment_type + + # @property + # def time_dual_moment(self): + # return self.survey.time_dual_moment + + # @property + # def time_input_currents_dual_moment(self): + # return self.survey.time_input_currents_dual_moment + + # @property + # def input_currents_dual_moment(self): + # return self.survey.input_currents_dual_moment + + # @property + # def base_frequency_dual_moment(self): + # return self.survey.base_frequency_dual_moment + + def run_simulation(self, args): + if self.verbose: + print(">> Time-domain") + return run_simulation_TD(args) + + # def forward(self, m, f=None): + # self.model = m + + # if self.parallel: + # pool = Pool(self.n_cpu) + # # This assumes the same # of layer for each of soundings + # result = pool.map( + # run_simulation_TD, + # [ + # self.input_args(i, jac_switch=False) for i in range(self.n_sounding) + # ] + # ) + # pool.close() + # pool.join() + # else: + # result = [ + # run_simulation_TD(self.input_args(i, jac_switch=False)) for i in range(self.n_sounding) + # ] + # return np.hstack(result) + + # def getJ(self, m): + # """ + # Compute d F / d sigma + # """ + # if self._Jmatrix is not None: + # return self._Jmatrix + # if self.verbose: + # print(">> Compute J") + # self.model = m + # if self.parallel: + # pool = Pool(self.n_cpu) + # self._Jmatrix = pool.map( + # run_simulation_TD, + # [ + # self.input_args(i, jac_switch=True) for i in range(self.n_sounding) + # ] + # ) + # pool.close() + # pool.join() + # if self.parallel_jvec_jtvec is False: + # self._Jmatrix = sp.block_diag(self._Jmatrix).tocsr() + # else: + # # _Jmatrix is block diagnoal matrix (sparse) + # self._Jmatrix = sp.block_diag( + # [ + # run_simulation_TD(self.input_args(i, jac_switch=True)) for i in range(self.n_sounding) + # ] + # ).tocsr() + # return self._Jmatrix + + + + + + + + diff --git a/simpegEM1D/simulation_stitched1d.py b/simpegEM1D/simulation_stitched1d.py deleted file mode 100644 index eee9c4d..0000000 --- a/simpegEM1D/simulation_stitched1d.py +++ /dev/null @@ -1,1057 +0,0 @@ -try: - from multiprocessing import Pool -except ImportError: - print("multiprocessing is not available") - PARALLEL = False -else: - PARALLEL = True - import multiprocessing - -import numpy as np -import scipy.sparse as sp -from SimPEG import props, utils, maps, survey -from SimPEG.simulation import BaseSimulation -from SimPEG.survey import BaseSurvey -from .survey import * -from .simulation import * -from simpegEM1D.utils.utils1D import set_mesh_1d -import properties -import warnings - - -def dot(args): - return np.dot(args[0], args[1]) - - -def run_simulation_FD(args): - """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : - """ - - src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - - local_survey = EM1DSurveyFD([src]) - expmap = maps.ExpMap(nP=len(hz)) - thicknesses = hz[0:-1] - - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - - sim = EM1DFMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - - mesh1D = set_mesh_1d(hz) - wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) - sigmaMap = expmap * wires.sigma - - sim = EM1DFMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, topo=topo, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - # return utils.mkvc(drespdsig) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - - -def run_simulation_TD(args): - """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : - """ - - src, topo, hz, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args - - local_survey = EM1DSurveyTD([src]) - expmap = maps.ExpMap(nP=len(hz)) - thicknesses = hz[0:-1] - - if not invert_height: - # Use Exponential Map - # This is hard-wired at the moment - sim = EM1DTMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(np.log(sigma)) - return utils.mkvc(drespdsig * sim.sigmaDeriv) - else: - resp = sim.dpred(np.log(sigma)) - return resp - else: - - mesh1D = set_mesh_1d(hz) - wires = maps.Wires(('sigma', mesh1D.nC), ('h', 1)) - sigmaMap = expmap * wires.sigma - sim = EM1DTMSimulation( - survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, topo=topo, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' - ) - - m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': - drespdsig = sim.getJ_sigma(m) - return utils.mkvc(drespdsig * utils.sdiag(sigma)) - elif jac_switch == 'sensitivity_height': - drespdh = sim.getJ_height(m) - return utils.mkvc(drespdh) - else: - resp = sim.dpred(m) - return resp - - -class GlobalEM1DSimulation(BaseSimulation): - """ - The GlobalProblem allows you to run a whole bunch of SubProblems, - potentially in parallel, potentially of different meshes. - This is handy for working with lots of sources, - """ - - _Jmatrix_sigma = None - _Jmatrix_height = None - run_simulation = None - n_cpu = None - hz = None - parallel = False - parallel_jvec_jtvec = False - verbose = False - fix_Jmatrix = False - invert_height = None - - sigma, sigmaMap, sigmaDeriv = props.Invertible( - "Electrical conductivity (S/m)" - ) - - h, hMap, hDeriv = props.Invertible( - "Receiver Height (m), h > 0", - ) - - chi = props.PhysicalProperty( - "Magnetic susceptibility (H/m)", - ) - - eta = props.PhysicalProperty( - "Electrical chargeability (V/V), 0 <= eta < 1" - ) - - tau = props.PhysicalProperty( - "Time constant (s)" - ) - - c = props.PhysicalProperty( - "Frequency Dependency, 0 < c < 1" - ) - - topo = properties.Array("Topography (x, y, z)", dtype=float, shape=('*', 3)) - - survey = properties.Instance( - "a survey object", BaseEM1DSurvey, required=True - ) - - half_switch = properties.Bool("Switch for half-space", default=False) - - def __init__(self, mesh, **kwargs): - utils.setKwargs(self, **kwargs) - self.mesh = mesh - if self.n_layer == 1: - self.half_switch = True - - if PARALLEL: - if self.parallel: - print(">> Use multiprocessing for parallelization") - if self.n_cpu is None: - self.n_cpu = multiprocessing.cpu_count() - print((">> n_cpu: %i") % (self.n_cpu)) - else: - print(">> Serial version is used") - else: - print(">> Serial version is used") - if self.hz is None: - raise Exception("Input vertical thickness hz !") - if self.hMap is None: - self.invert_height = False - else: - self.invert_height = True - - # ------------- For survey ------------- # - @property - def dz(self): - if self.mesh.dim==2: - return self.mesh.dy - elif self.mesh.dim==3: - return self.mesh.dz - - @property - def n_layer(self): - return self.hz.size - - @property - def n_sounding(self): - return len(self.survey.source_list) - - - @property - def data_index(self): - return self.survey.data_index - - - # ------------- For physical properties ------------- # - @property - def Sigma(self): - if getattr(self, '_Sigma', None) is None: - # Ordering: first z then x - self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) - return self._Sigma - - @property - def Chi(self): - if getattr(self, '_Chi', None) is None: - # Ordering: first z then x - if self.chi is None: - self._Chi = np.zeros( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) - return self._Chi - - @property - def Eta(self): - if getattr(self, '_Eta', None) is None: - # Ordering: first z then x - if self.eta is None: - self._Eta = np.zeros( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Eta = self.eta.reshape((self.n_sounding, self.n_layer)) - return self._Eta - - @property - def Tau(self): - if getattr(self, '_Tau', None) is None: - # Ordering: first z then x - if self.tau is None: - self._Tau = 1e-3*np.ones( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Tau = self.tau.reshape((self.n_sounding, self.n_layer)) - return self._Tau - - @property - def C(self): - if getattr(self, '_C', None) is None: - # Ordering: first z then x - if self.c is None: - self._C = np.ones( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._C = self.c.reshape((self.n_sounding, self.n_layer)) - return self._C - - @property - def JtJ_sigma(self): - return self._JtJ_sigma - - def JtJ_height(self): - return self._JtJ_height - - @property - def H(self): - if self.hMap is None: - return np.ones(self.n_sounding) - else: - return self.h - - - # ------------- Etcetra .... ------------- # - @property - def IJLayers(self): - if getattr(self, '_IJLayers', None) is None: - # Ordering: first z then x - self._IJLayers = self.set_ij_n_layer() - return self._IJLayers - - @property - def IJHeight(self): - if getattr(self, '_IJHeight', None) is None: - # Ordering: first z then x - self._IJHeight = self.set_ij_n_layer(n_layer=1) - return self._IJHeight - - # ------------- For physics ------------- # - - def input_args(self, i_sounding, jac_switch='forward'): - output = ( - self.survey.source_list[i_sounding], - self.topo[i_sounding, :], - self.hz, - self.Sigma[i_sounding, :], - self.Eta[i_sounding, :], - self.Tau[i_sounding, :], - self.C[i_sounding, :], - self.Chi[i_sounding, :], - self.H[i_sounding], - jac_switch, - self.invert_height, - self.half_switch - ) - return output - - def fields(self, m): - if self.verbose: - print("Compute fields") - - return self.forward(m) - - def dpred(self, m, f=None): - """ - Return predicted data. - Predicted data, (`_pred`) are computed when - self.fields is called. - """ - if f is None: - f = self.fields(m) - - return f - - def forward(self, m): - self.model = m - - if self.verbose: - print(">> Compute response") - - # Set flat topo at zero - if self.topo is None: - self.set_null_topography() - - if self.survey.__class__ == EM1DSurveyFD: - print("Correct Run Simulation") - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - # This assumes the same # of layers for each of sounding - result = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch='forward') for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - else: - result = [ - run_simulation(self.input_args(i, jac_switch='forward')) for i in range(self.n_sounding) - ] - return np.hstack(result) - - - def set_null_topography(self): - self.topo = np.vstack( - [np.c_[src.location[0], src.location[1], 0.] for i, src in enumerate(self.survey.source_list)] - ) - - - def set_ij_n_layer(self, n_layer=None): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DSimulation when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - if n_layer is None: - m = self.n_layer - else: - m = n_layer - - for i in range(self.n_sounding): - n = self.survey.vnD_by_sounding[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) - - def set_ij_height(self): - """ - Compute (I, J) indicies to form sparse sensitivity matrix - This will be used in GlobalEM1DSimulation when after sensitivity matrix - for each sounding is computed - """ - I = [] - J = [] - shift_for_J = 0 - shift_for_I = 0 - m = self.n_layer - for i in range(self.n_sounding): - n = self.survey.vnD[i] - J_temp = np.tile(np.arange(m), (n, 1)) + shift_for_J - I_temp = ( - np.tile(np.arange(n), (1, m)).reshape((n, m), order='F') + - shift_for_I - ) - J.append(utils.mkvc(J_temp)) - I.append(utils.mkvc(I_temp)) - shift_for_J += m - shift_for_I = I_temp[-1, -1] + 1 - J = np.hstack(J).astype(int) - I = np.hstack(I).astype(int) - return (I, J) - - - def getJ_sigma(self, m): - """ - Compute d F / d sigma - """ - if self._Jmatrix_sigma is not None: - return self._Jmatrix_sigma - if self.verbose: - print(">> Compute J sigma") - self.model = m - - if self.survey.__class__ == EM1DSurveyFD: - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - self._Jmatrix_sigma = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch='sensitivity_sigma') for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - if self.parallel_jvec_jtvec is False: - # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() - self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) - # self._JtJ_sigma_diag = - self._Jmatrix_sigma = sp.coo_matrix( - (self._Jmatrix_sigma, self.IJLayers), dtype=float - ).tocsr() - else: - # _Jmatrix_sigma is block diagnoal matrix (sparse) - # self._Jmatrix_sigma = sp.block_diag( - # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) - # ] - # ).tocsr() - self._Jmatrix_sigma = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) - ] - self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) - self._Jmatrix_sigma = sp.coo_matrix( - (self._Jmatrix_sigma, self.IJLayers), dtype=float - ).tocsr() - - return self._Jmatrix_sigma - - def getJ_height(self, m): - """ - Compute d F / d height - """ - if self.hMap is None: - return utils.Zero() - - if self._Jmatrix_height is not None: - return self._Jmatrix_height - if self.verbose: - print(">> Compute J height") - - self.model = m - - if self.survey.__class__ == EM1DSurveyFD: - run_simulation = run_simulation_FD - else: - run_simulation = run_simulation_TD - - if self.parallel: - pool = Pool(self.n_cpu) - self._Jmatrix_height = pool.map( - run_simulation, - [ - self.input_args(i, jac_switch="sensitivity_height") for i in range(self.n_sounding) - ] - ) - pool.close() - pool.join() - if self.parallel_jvec_jtvec is False: - # self._Jmatrix_height = sp.block_diag(self._Jmatrix_height).tocsr() - self._Jmatrix_height = np.hstack(self._Jmatrix_height) - self._Jmatrix_height = sp.coo_matrix( - (self._Jmatrix_height, self.IJHeight), dtype=float - ).tocsr() - else: - # self._Jmatrix_height = sp.block_diag( - # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) - # ] - # ).tocsr() - self._Jmatrix_height = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) - ] - self._Jmatrix_height = np.hstack(self._Jmatrix_height) - self._Jmatrix_height = sp.coo_matrix( - (self._Jmatrix_height, self.IJHeight), dtype=float - ).tocsr() - - return self._Jmatrix_height - - def Jvec(self, m, v, f=None): - J_sigma = self.getJ_sigma(m) - J_height = self.getJ_height(m) - # This is deprecated at the moment - # if self.parallel and self.parallel_jvec_jtvec: - # # Extra division of sigma is because: - # # J_sigma = dF/dlog(sigma) - # # And here sigmaMap also includes ExpMap - # v_sigma = utils.sdiag(1./self.sigma) * self.sigmaMap.deriv(m, v) - # V_sigma = v_sigma.reshape((self.n_sounding, self.n_layer)) - - # pool = Pool(self.n_cpu) - # Jv = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i], V_sigma[i, :]) for i in range(self.n_sounding)] - # ) - # ) - # if self.hMap is not None: - # v_height = self.hMap.deriv(m, v) - # V_height = v_height.reshape((self.n_sounding, self.n_layer)) - # Jv += np.hstack( - # pool.map( - # dot, - # [(J_height[i], V_height[i, :]) for i in range(self.n_sounding)] - # ) - # ) - # pool.close() - # pool.join() - # else: - Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) - if self.hMap is not None: - Jv += J_height*(self.hDeriv * v) - return Jv - - def Jtvec(self, m, v, f=None): - J_sigma = self.getJ_sigma(m) - J_height = self.getJ_height(m) - # This is deprecated at the moment - # if self.parallel and self.parallel_jvec_jtvec: - # pool = Pool(self.n_cpu) - # Jtv = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] - # ) - # ) - # if self.hMap is not None: - # Jtv_height = np.hstack( - # pool.map( - # dot, - # [(J_sigma[i].T, v[self.data_index[i]]) for i in range(self.n_sounding)] - # ) - # ) - # # This assumes certain order for model, m = (sigma, height) - # Jtv = np.hstack((Jtv, Jtv_height)) - # pool.close() - # pool.join() - # return Jtv - # else: - # Extra division of sigma is because: - # J_sigma = dF/dlog(sigma) - # And here sigmaMap also includes ExpMap - Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) - if self.hMap is not None: - Jtv += self.hDeriv.T*(J_height.T*v) - return Jtv - - def getJtJdiag(self, m, W=None, threshold=1e-8): - """ - Compute diagonal component of JtJ or - trace of sensitivity matrix (J) - """ - J_sigma = self.getJ_sigma(m) - J_matrix = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv)) - - if self.hMap is not None: - J_height = self.getJ_height(m) - J_matrix += J_height*self.hDeriv - - if W is None: - W = utils.speye(J_matrix.shape[0]) - - J_matrix = W*J_matrix - JtJ_diag = (J_matrix.T*J_matrix).diagonal() - JtJ_diag /= JtJ_diag.max() - JtJ_diag += threshold - return JtJ_diag - - @property - def deleteTheseOnModelUpdate(self): - toDelete = [] - if self.sigmaMap is not None: - toDelete += ['_Sigma'] - if self.fix_Jmatrix is False: - if self._Jmatrix_sigma is not None: - toDelete += ['_Jmatrix_sigma'] - if self._Jmatrix_height is not None: - toDelete += ['_Jmatrix_height'] - return toDelete - - -class GlobalEM1DSimulationFD(GlobalEM1DSimulation): - - def run_simulation(self, args): - if self.verbose: - print(">> Frequency-domain") - return run_simulation_FD(args) - - # @property - # def frequency(self): - # return self.survey.frequency - - # @property - # def switch_real_imag(self): - # return self.survey.switch_real_imag - - -class GlobalEM1DSimulationTD(GlobalEM1DSimulation): - - # @property - # def wave_type(self): - # return self.survey.wave_type - - # @property - # def input_currents(self): - # return self.survey.input_currents - - # @property - # def time_input_currents(self): - # return self.survey.time_input_currents - - # @property - # def n_pulse(self): - # return self.survey.n_pulse - - # @property - # def base_frequency(self): - # return self.survey.base_frequency - - # @property - # def time(self): - # return self.survey.time - - # @property - # def use_lowpass_filter(self): - # return self.survey.use_lowpass_filter - - # @property - # def high_cut_frequency(self): - # return self.survey.high_cut_frequency - - # @property - # def moment_type(self): - # return self.survey.moment_type - - # @property - # def time_dual_moment(self): - # return self.survey.time_dual_moment - - # @property - # def time_input_currents_dual_moment(self): - # return self.survey.time_input_currents_dual_moment - - # @property - # def input_currents_dual_moment(self): - # return self.survey.input_currents_dual_moment - - # @property - # def base_frequency_dual_moment(self): - # return self.survey.base_frequency_dual_moment - - def run_simulation(self, args): - if self.verbose: - print(">> Time-domain") - return run_simulation_TD(args) - - # def forward(self, m, f=None): - # self.model = m - - # if self.parallel: - # pool = Pool(self.n_cpu) - # # This assumes the same # of layer for each of soundings - # result = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, jac_switch=False) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # else: - # result = [ - # run_simulation_TD(self.input_args(i, jac_switch=False)) for i in range(self.n_sounding) - # ] - # return np.hstack(result) - - # def getJ(self, m): - # """ - # Compute d F / d sigma - # """ - # if self._Jmatrix is not None: - # return self._Jmatrix - # if self.verbose: - # print(">> Compute J") - # self.model = m - # if self.parallel: - # pool = Pool(self.n_cpu) - # self._Jmatrix = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, jac_switch=True) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # if self.parallel_jvec_jtvec is False: - # self._Jmatrix = sp.block_diag(self._Jmatrix).tocsr() - # else: - # # _Jmatrix is block diagnoal matrix (sparse) - # self._Jmatrix = sp.block_diag( - # [ - # run_simulation_TD(self.input_args(i, jac_switch=True)) for i in range(self.n_sounding) - # ] - # ).tocsr() - # return self._Jmatrix - - -class GlobalEM1DSurvey(BaseSurvey, properties.HasProperties): - - # This assumes a multiple sounding locations - # rx_locations = properties.Array( - # "Receiver locations ", dtype=float, shape=('*', 3) - # ) - # src_locations = properties.Array( - # "Source locations ", dtype=float, shape=('*', 3) - # ) - topo = properties.Array( - "Topography", dtype=float, shape=('*', 3) - ) - - half_switch = properties.Bool("Switch for half-space", default=False) - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Return predicted data. - # Predicted data, (`_pred`) are computed when - # self.prob.fields is called. - # """ - # if f is None: - # f = self.prob.fields(m) - - # return self._pred - - @property - def n_sounding(self): - """ - # of Receiver locations - """ - return self.rx_locations.shape[0] - - @property - def n_layer(self): - """ - # of Receiver locations - """ - return self.sim.n_layer - - def read_xyz_data(self, fname): - """ - Read csv file format - This is a place holder at this point - """ - pass - - @property - def nD(self): - # Need to generalize this for the dual moment data - if getattr(self, '_nD', None) is None: - self._nD = self.vnD.sum() - return self._nD - - - - -class GlobalEM1DSurveyFD(GlobalEM1DSurvey, EM1DSurveyFD): - - # @property - # def nD_vec(self): - # if getattr(self, '_nD_vec', None) is None: - # self._nD_vec = [] - # if self.switch_real_imag == "all": - # nD_for_sounding = int(self.n_frequency * 2) - # elif ( - # self.switch_real_imag == "imag" or self.switch_real_imag == "real" - # ): - # nD_for_sounding = int(self.n_frequency) - - # for ii in range(self.n_sounding): - # self._nD_vec.append(nD_for_sounding) - # self._nD_vec = np.array(self._nD_vec) - # return self._nD_vec - - # @property - # def nD(self): - # if self.switch_real_imag == "all": - # return int(self.n_frequency * 2) * self.n_sounding - # elif ( - # self.switch_real_imag == "imag" or self.switch_real_imag == "real" - # ): - # return int(self.n_frequency) * self.n_sounding - - def read_xyz_data(self, fname): - """ - Read csv file format - This is a place holder at this point - """ - pass - - -class GlobalEM1DSurveyTD(GlobalEM1DSurvey): - - # --------------- Essential inputs ---------------- # - src_type = None - - rx_type = None - - field_type = None - - time = [] - - wave_type = None - - moment_type = None - - time_input_currents = [] - - input_currents = [] - - # --------------- Selective inputs ---------------- # - n_pulse = properties.Array( - "The number of pulses", - default=None - ) - - base_frequency = properties.Array( - "Base frequency (Hz)", - dtype=float, default=None - ) - - offset = properties.Array( - "Src-Rx offsets", dtype=float, default=None, - shape=('*', '*') - ) - - I = properties.Array( - "Src loop current", dtype=float, default=None - ) - - a = properties.Array( - "Src loop radius", dtype=float, default=None - ) - - use_lowpass_filter = properties.Array( - "Switch for low pass filter", - dtype=bool, default=None - ) - - high_cut_frequency = properties.Array( - "High cut frequency for low pass filter (Hz)", - dtype=float, default=None - ) - - # ------------- For dual moment ------------- # - - time_dual_moment = [] - - time_input_currents_dual_moment = [] - - input_currents_dual_moment = [] - - base_frequency_dual_moment = properties.Array( - "Base frequency for the dual moment (Hz)", - dtype=float, default=None - ) - - def __init__(self, **kwargs): - GlobalEM1DSurvey.__init__(self, **kwargs) - self.set_parameters() - - def set_parameters(self): - # TODO: need to put some validation process - # e.g. for VMD `offset` must be required - # e.g. for CircularLoop `a` must be required - - print(">> Set parameters") - if self.n_pulse is None: - self.n_pulse = np.ones(self.n_sounding, dtype=int) * 1 - - if self.base_frequency is None: - self.base_frequency = np.ones( - (self.n_sounding), dtype=float - ) * 30 - - if self.offset is None: - self.offset = np.empty((self.n_sounding, 1), dtype=float) - - if self.I is None: - self.I = np.empty(self.n_sounding, dtype=float) - - if self.a is None: - self.a = np.empty(self.n_sounding, dtype=float) - - if self.use_lowpass_filter is None: - self.use_lowpass_filter = np.zeros(self.n_sounding, dtype=bool) - - if self.high_cut_frequency is None: - self.high_cut_frequency = np.empty(self.n_sounding, dtype=float) - - if self.moment_type is None: - self.moment_type = np.array(["single"], dtype=str).repeat( - self.n_sounding, axis=0 - ) - - # List - if not self.time_input_currents: - self.time_input_currents = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.input_currents: - self.input_currents = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - - # List - if not self.time_dual_moment: - self.time_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.time_input_currents_dual_moment: - self.time_input_currents_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - # List - if not self.input_currents_dual_moment: - self.input_currents_dual_moment = [ - np.empty(1, dtype=float) for i in range(self.n_sounding) - ] - - if self.base_frequency_dual_moment is None: - self.base_frequency_dual_moment = np.empty( - (self.n_sounding), dtype=float - ) - - # @property - # def nD_vec(self): - # if getattr(self, '_nD_vec', None) is None: - # self._nD_vec = [] - - # for ii, moment_type in enumerate(self.moment_type): - # if moment_type == 'single': - # self._nD_vec.append(self.time[ii].size) - # elif moment_type == 'dual': - # self._nD_vec.append( - # self.time[ii].size+self.time_dual_moment[ii].size - # ) - # else: - # raise Exception("moment_type must be either signle or dual") - # self._nD_vec = np.array(self._nD_vec) - # return self._nD_vec - - @property - def data_index(self): - # Need to generalize this for the dual moment data - if getattr(self, '_data_index', None) is None: - self._data_index = [ - np.arange(self.vnD[i_sounding])+np.sum(self.vnD[:i_sounding]) for i_sounding in range(self.n_sounding) - ] - return self._data_index - - @property - def nD(self): - # Need to generalize this for the dual moment data - if getattr(self, '_nD', None) is None: - self._nD = self.vnD.sum() - return self._nD diff --git a/simpegEM1D/survey_original.py b/simpegEM1D/survey_original.py deleted file mode 100644 index 94c1de9..0000000 --- a/simpegEM1D/survey_original.py +++ /dev/null @@ -1,548 +0,0 @@ -from SimPEG import maps, utils -from SimPEG.survey import BaseSurvey -import numpy as np -import scipy.sparse as sp -from scipy.constants import mu_0 -from .analytics import ColeCole -from .supporting_functions.digital_filter import ( - transFilt, transFiltImpulse, transFiltInterp, transFiltImpulseInterp -) -from .waveforms import CausalConv -from scipy.interpolate import interp1d -from scipy.interpolate import InterpolatedUnivariateSpline as iuSpline -import properties -from empymod import filters -from empymod.utils import check_time -from empymod.transform import fourier_dlf -from .KnownWaveforms import ( - piecewise_pulse_fast, - butterworth_type_filter, butter_lowpass_filter -) - - -class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): - """ - Base EM1D Survey - - """ - - frequency = properties.Array("Frequency (Hz)", dtype=float) - - rx_location = properties.Array("Receiver location (x, y, z)", dtype=float) - src_location = properties.Array("Source location (x, y, z)", dtype=float) - - src_path = properties.Array( - "Source path (xi, yi, zi), i=0,...N", - dtype=float - ) - - src_type = properties.StringChoice( - "Source type", - default="VMD", - choices=[ - "VMD", "CircularLoop", "piecewise_segment" - ] - ) - offset = properties.Array("Src-Rx offsets", dtype=float) - rx_type = properties.StringChoice( - "Source location", - default="Hz", - choices=["Hz", "ppm", "Bz", "dBzdt"] - ) - field_type = properties.StringChoice( - "Field type", - default="secondary", - choices=["total", "secondary"] - ) - depth = properties.Array("Depth of the layers", dtype=float) - topo = properties.Array("Topography (x, y, z)", dtype=float) - I = properties.Float("Src loop current", default=1.) - a = properties.Float("Src loop radius", default=1.) - half_switch = properties.Bool("Switch for half-space", default=False) - - def __init__(self, **kwargs): - BaseSurvey.__init__(self, **kwargs) - - @property - def h(self): - """ - Source height - """ - return self.src_location[2]-self.topo[2] - - @property - def z(self): - """ - Receiver height - """ - return self.rx_location[2]-self.topo[2] - - @property - def dz(self): - """ - Source height - Rx height - """ - return self.z - self.h - - @property - def n_layer(self): - """ - Srource height - """ - if self.half_switch is False: - return self.depth.size - elif self.half_switch is True: - return int(1) - - @property - def n_frequency(self): - """ - # of frequency - """ - - return int(self.frequency.size) - - @property - def src_paths_on_x(self): - """ - # of frequency - """ - if getattr(self, '_src_paths_on_x', None) is None: - offset = np.unique(self.offset) - if offset.size != 1: - raise Exception( - "For the sourth paths, only single offset works!" - ) - xy_rot, xy_obs_rot, angle = rotate_to_x_axis( - np.flipud(xy), np.r_[offset, 0.] - ) - - return self._src_paths - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Here we do not store predicted data - # because projection (`d = P(f)`) is cheap. - # """ - - # if f is None: - # f = self.prob.fields(m) - # return utils.mkvc(self.projectFields(f)) - - -class EM1DSurveyFD(BaseEM1DSurvey): - """ - Freqency-domain EM1D survey - """ - # Nfreq = None - switch_real_imag = properties.StringChoice( - "Switch for real and imaginary part of the data", - default="all", - choices=["all", "real", "imag"] - ) - - def __init__(self, **kwargs): - BaseEM1DSurvey.__init__(self, **kwargs) - - if self.src_type == "VMD": - if self.offset is None: - raise Exception("offset is required!") - - if self.offset.size == 1: - self.offset = self.offset * np.ones(self.n_frequency) - - @property - def nD(self): - """ - # of data - """ - - if self.switch_real_imag == "all": - return int(self.frequency.size * 2) - elif ( - self.switch_real_imag == "imag" or self.switch_real_imag == "real" - ): - return int(self.n_frequency) - - # @property - # def hz_primary(self): - # # Assumes HCP only at the moment - # if self.src_type == 'VMD': - # return -1./(4*np.pi*self.offset**3) - # elif self.src_type == 'CircularLoop': - # return self.I/(2*self.a) * np.ones_like(self.frequency) - # else: - # raise NotImplementedError() - - # def projectFields(self, u): - # """ - # Decompose frequency domain EM responses as real and imaginary - # components - # """ - - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - - # if self.rx_type == 'Hz': - # factor = 1. - # elif self.rx_type == 'ppm': - # factor = 1./self.hz_primary * 1e6 - - # if self.switch_real_imag == 'all': - # ureal = (u.real).copy() - # uimag = (u.imag).copy() - # if ureal.ndim == 1 or 0: - # resp = np.r_[ureal*factor, uimag*factor] - # elif ureal.ndim == 2: - # if np.isscalar(factor): - # resp = np.vstack( - # (factor*ureal, factor*uimag) - # ) - # else: - # resp = np.vstack( - # (utils.sdiag(factor)*ureal, utils.sdiag(factor)*uimag) - # ) - # else: - # raise NotImplementedError() - # elif self.switch_real_imag == 'real': - # resp = (u.real).copy() - # elif self.switch_real_imag == 'imag': - # resp = (u.imag).copy() - # else: - # raise NotImplementedError() - - # return resp - - -class EM1DSurveyTD(BaseEM1DSurvey): - """docstring for EM1DSurveyTD""" - - time = properties.Array( - "Time channels (s) at current off-time", dtype=float - ) - - wave_type = properties.StringChoice( - "Source location", - default="stepoff", - choices=["stepoff", "general"] - ) - - moment_type = properties.StringChoice( - "Source moment type", - default="single", - choices=["single", "dual"] - ) - - n_pulse = properties.Integer( - "The number of pulses", - ) - - base_frequency = properties.Float( - "Base frequency (Hz)" - ) - - time_input_currents = properties.Array( - "Time for input currents", dtype=float - ) - - input_currents = properties.Array( - "Input currents", dtype=float - ) - - use_lowpass_filter = properties.Bool( - "Switch for low pass filter", default=False - ) - - high_cut_frequency = properties.Float( - "High cut frequency for low pass filter (Hz)", - default=210*1e3 - ) - - # Predicted data - _pred = None - - # ------------- For dual moment ------------- # - - time_dual_moment = properties.Array( - "Off-time channels (s) for the dual moment", dtype=float - ) - - time_input_currents_dual_moment = properties.Array( - "Time for input currents (dual moment)", dtype=float - ) - - input_currents_dual_moment = properties.Array( - "Input currents (dual moment)", dtype=float - ) - - base_frequency_dual_moment = properties.Float( - "Base frequency for the dual moment (Hz)" - ) - - def __init__(self, **kwargs): - BaseEM1DSurvey.__init__(self, **kwargs) - if self.time is None: - raise Exception("time is required!") - - # Use Sin filter for frequency to time transform - self.fftfilt = filters.key_81_CosSin_2009() - self.set_frequency() - - if self.src_type == "VMD": - if self.offset is None: - raise Exception("offset is required!") - - if self.offset.size == 1: - self.offset = self.offset * np.ones(self.n_frequency) - - @property - def time_int(self): - """ - Time channels (s) for interpolation" - """ - if getattr(self, '_time_int', None) is None: - - if self.moment_type == "single": - time = self.time - pulse_period = self.pulse_period - period = self.period - # Dual moment - else: - time = np.unique(np.r_[self.time, self.time_dual_moment]) - pulse_period = np.maximum( - self.pulse_period, self.pulse_period_dual_moment - ) - period = np.maximum(self.period, self.period_dual_moment) - tmin = time[time>0.].min() - if self.n_pulse == 1: - tmax = time.max() + pulse_period - elif self.n_pulse == 2: - tmax = time.max() + pulse_period + period/2. - else: - raise NotImplementedError("n_pulse must be either 1 or 2") - n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) - self._time_int = np.logspace( - np.log10(tmin), np.log10(tmax), n_time - ) - # print (tmin, tmax) - - return self._time_int - - @property - def n_time(self): - return int(self.time.size) - - @property - def period(self): - return 1./self.base_frequency - - @property - def pulse_period(self): - Tp = ( - self.time_input_currents.max() - - self.time_input_currents.min() - ) - return Tp - - # ------------- For dual moment ------------- # - @property - def n_time_dual_moment(self): - return int(self.time_dual_moment.size) - - @property - def period_dual_moment(self): - return 1./self.base_frequency_dual_moment - - @property - def pulse_period_dual_moment(self): - Tp = ( - self.time_input_currents_dual_moment.max() - - self.time_input_currents_dual_moment.min() - ) - return Tp - - @property - def nD(self): - """ - # of data - """ - if self.moment_type == "single": - return self.n_time - else: - return self.n_time + self.n_time_dual_moment - - @property - def lowpass_filter(self): - """ - Low pass filter values - """ - if getattr(self, '_lowpass_filter', None) is None: - # self._lowpass_filter = butterworth_type_filter( - # self.frequency, self.high_cut_frequency - # ) - - self._lowpass_filter = (1+1j*(self.frequency/self.high_cut_frequency))**-1 - self._lowpass_filter *= (1+1j*(self.frequency/3e5))**-0.99 - # For actual butterworth filter - - # filter_frequency, values = butter_lowpass_filter( - # self.high_cut_frequency - # ) - # lowpass_func = interp1d( - # filter_frequency, values, fill_value='extrapolate' - # ) - # self._lowpass_filter = lowpass_func(self.frequency) - - return self._lowpass_filter - - def set_frequency(self, pts_per_dec=-1): - """ - Compute Frequency reqired for frequency to time transform - """ - if self.wave_type == "general": - _, frequency, ft, ftarg = check_time( - self.time_int, -1, 'dlf', - {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0 - ) - elif self.wave_type == "stepoff": - _, frequency, ft, ftarg = check_time( - self.time, -1, 'dlf', - {'pts_per_dec': pts_per_dec, 'dlf': self.fftfilt}, 0, - ) - else: - raise Exception("wave_type must be either general or stepoff") - - self.frequency = frequency - self.ftarg = ftarg - - # def projectFields(self, u): - # """ - # Transform frequency domain responses to time domain responses - # """ - # # Compute frequency domain reponses right at filter coefficient values - # # Src waveform: Step-off - - # if self.use_lowpass_filter: - # factor = self.lowpass_filter.copy() - # else: - # factor = np.ones_like(self.frequency, dtype=complex) - - # if self.rx_type == 'Bz': - # factor *= 1./(2j*np.pi*self.frequency) - - # if self.wave_type == 'stepoff': - # # Compute EM responses - # if u.size == self.n_frequency: - # resp, _ = fourier_dlf( - # u.flatten()*factor, self.time, - # self.frequency, self.ftarg - # ) - # # Compute EM sensitivities - # else: - # resp = np.zeros( - # (self.n_time, self.n_layer), dtype=np.float64, order='F') - # # ) - # # TODO: remove for loop - # for i in range(self.n_layer): - # resp_i, _ = fourier_dlf( - # u[:, i]*factor, self.time, - # self.frequency, self.ftarg - # ) - # resp[:, i] = resp_i - - # # Evaluate piecewise linear input current waveforms - # # Using Fittermann's approach (19XX) with Gaussian Quadrature - # elif self.wave_type == 'general': - # # Compute EM responses - # if u.size == self.n_frequency: - # resp_int, _ = fourier_dlf( - # u.flatten()*factor, self.time_int, - # self.frequency, self.ftarg - # ) - # # step_func = interp1d( - # # self.time_int, resp_int - # # ) - # step_func = iuSpline( - # np.log10(self.time_int), resp_int - # ) - - # resp = piecewise_pulse_fast( - # step_func, self.time, - # self.time_input_currents, self.input_currents, - # self.period, n_pulse=self.n_pulse - # ) - - # # Compute response for the dual moment - # if self.moment_type == "dual": - # resp_dual_moment = piecewise_pulse_fast( - # step_func, self.time_dual_moment, - # self.time_input_currents_dual_moment, - # self.input_currents_dual_moment, - # self.period_dual_moment, - # n_pulse=self.n_pulse - # ) - # # concatenate dual moment response - # # so, ordering is the first moment data - # # then the second moment data. - # resp = np.r_[resp, resp_dual_moment] - - # # Compute EM sensitivities - # else: - # if self.moment_type == "single": - # resp = np.zeros( - # (self.n_time, self.n_layer), - # dtype=np.float64, order='F' - # ) - # else: - # # For dual moment - # resp = np.zeros( - # (self.n_time+self.n_time_dual_moment, self.n_layer), - # dtype=np.float64, order='F') - - # # TODO: remove for loop (?) - # for i in range(self.n_layer): - # resp_int_i, _ = fourier_dlf( - # u[:, i]*factor, self.time_int, - # self.frequency, self.ftarg - # ) - # # step_func = interp1d( - # # self.time_int, resp_int_i - # # ) - - # step_func = iuSpline( - # np.log10(self.time_int), resp_int_i - # ) - - # resp_i = piecewise_pulse_fast( - # step_func, self.time, - # self.time_input_currents, self.input_currents, - # self.period, n_pulse=self.n_pulse - # ) - - # if self.moment_type == "single": - # resp[:, i] = resp_i - # else: - # resp_dual_moment_i = piecewise_pulse_fast( - # step_func, - # self.time_dual_moment, - # self.time_input_currents_dual_moment, - # self.input_currents_dual_moment, - # self.period_dual_moment, - # n_pulse=self.n_pulse - # ) - # resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - # return resp * (-2.0/np.pi) * mu_0 - - # @utils.requires('prob') - # def dpred(self, m, f=None): - # """ - # Computes predicted data. - # Predicted data (`_pred`) are computed and stored - # when self.prob.fields(m) is called. - # """ - # if f is None: - # f = self.prob.fields(m) - - # return self._pred diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index 897c40c..ca73056 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -14,14 +14,16 @@ class GlobalEM1DFD(unittest.TestCase): def setUp(self, parallel=True): + n_layer = 20 frequencies = np.array([900, 7200, 56000], dtype=float) - hz = get_vertical_discretization_frequency( - frequencies, sigma_background=0.1 + thicknesses = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=n_layer-1 ) n_sounding = 10 dx = 20. hx = np.ones(n_sounding) * dx + hz = np.r_[thicknesses, thicknesses[-1]] mesh = TensorMesh([hx, hz], x0='00') inds = mesh.gridCC[:, 1] < 25 @@ -72,14 +74,12 @@ def setUp(self, parallel=True): survey = em1d.survey.EM1DSurveyFD(source_list) - simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=sigma_map, hz=hz, topo=topo, - parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) - - dpred = simulation.dpred(mSynth) noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) @@ -203,8 +203,8 @@ def setUp(self, parallel=True): survey = em1d.survey.EM1DSurveyFD(source_list) - simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=sigma_map, hz=hz, hMap=wires.height, + simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, sigmaMap=sigma_map, hMap=wires.height, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) diff --git a/tests/testGlobalEM1D_TD_jac_layers.py b/tests/testGlobalEM1D_TD_jac_layers.py index 8059621..f5d4898 100644 --- a/tests/testGlobalEM1D_TD_jac_layers.py +++ b/tests/testGlobalEM1D_TD_jac_layers.py @@ -17,13 +17,15 @@ class GlobalEM1DTD(unittest.TestCase): def setUp(self, parallel=True): times = np.logspace(-5, -2, 31) - hz = get_vertical_discretization_time( - times, facter_tmax=0.5, factor_tmin=10. + n_layer = 20 + thicknesses = get_vertical_discretization_time( + times, facter_tmax=0.5, factor_tmin=10., n_layer=n_layer-1 ) n_sounding = 5 dx = 20. hx = np.ones(n_sounding) * dx + hz = np.r_[thicknesses, thicknesses[-1]] mesh = TensorMesh([hx, hz], x0='00') inds = mesh.gridCC[:, 1] < 25 inds_1 = mesh.gridCC[:, 1] < 50 @@ -85,9 +87,9 @@ def setUp(self, parallel=True): survey = em1d.survey.EM1DSurveyTD(source_list) - simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( - mesh, survey=survey, sigmaMap=sigma_map, hz=hz, topo=topo, parallel=False, - n_cpu=2, verbose=True, Solver=PardisoSolver + simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) dpred = simulation.dpred(mSynth) diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index b87ca6f..f4a111c 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.5089e+01 9.0883e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.5768e+02 8.7211e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5199e+03 3.5333e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3950e+01 2.1867e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.2271e+02 6.4920e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2130e+03 2.2325e+03 -1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6127e+01 9.8407e+01 -1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7897e+02 8.7853e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5201e+03 3.3759e+03 -1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2838e+01 2.0807e+02 -1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4553e+02 6.5225e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2293e+03 2.1676e+03 -2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5557e+01 9.8849e+01 -2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7193e+02 8.4585e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4380e+03 3.4950e+03 -2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3849e+01 2.2185e+02 -2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.5632e+02 6.1390e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2412e+03 2.2504e+03 -3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7296e+01 1.1246e+02 -3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7784e+02 8.3196e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4419e+03 3.2711e+03 -3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9445e+01 2.3229e+02 -3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3731e+02 6.2433e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1860e+03 2.2500e+03 -4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7151e+01 1.0994e+02 -4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1020e+02 8.4070e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5548e+03 3.3779e+03 -4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.6862e+01 2.3270e+02 -4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4414e+02 6.0288e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1817e+03 2.3160e+03 -5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8377e+01 1.0387e+02 -5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9292e+02 8.8877e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5264e+03 3.4793e+03 -5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5948e+01 2.3377e+02 -5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4303e+02 6.0121e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2083e+03 2.2027e+03 -6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8396e+01 1.0552e+02 -6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0124e+02 8.6143e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4706e+03 3.2964e+03 -6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7937e+01 2.3305e+02 -6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3732e+02 6.5633e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2368e+03 2.1585e+03 -7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0224e+01 1.2328e+02 -7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2957e+02 8.8978e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4568e+03 3.4119e+03 -7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0513e+01 2.3687e+02 -7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0925e+02 6.0725e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2698e+03 2.1903e+03 -8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.9674e+01 1.1641e+02 -8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0090e+02 8.6990e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4974e+03 3.5125e+03 -8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4509e+01 2.2945e+02 -8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1642e+02 6.1358e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2066e+03 2.2744e+03 -9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0699e+01 1.2426e+02 -9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2752e+02 8.8416e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4282e+03 3.3706e+03 -9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2958e+01 2.3508e+02 -9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0431e+02 6.4622e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1974e+03 2.1659e+03 -1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1364e+01 1.1940e+02 -1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9836e+02 8.9676e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4760e+03 3.4438e+03 -1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.5334e+01 2.3465e+02 -1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3733e+02 6.0952e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2240e+03 2.2286e+03 -1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1205e+01 1.1542e+02 -1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9519e+02 8.6625e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4139e+03 3.3548e+03 -1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.2348e+01 2.3282e+02 -1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0214e+02 6.4465e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2768e+03 2.1971e+03 -1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3829e+01 1.3328e+02 -1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2714e+02 8.9798e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5025e+03 3.4312e+03 -1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9805e+01 2.3545e+02 -1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9344e+02 6.2027e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2538e+03 2.2199e+03 -1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2554e+01 1.3807e+02 -1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2019e+02 8.7610e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5005e+03 3.2910e+03 -1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2053e+01 2.3566e+02 -1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2160e+02 6.3596e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2031e+03 2.2482e+03 -1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2716e+01 1.3375e+02 -1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0280e+02 8.7924e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4884e+03 3.2511e+03 -1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8471e+01 2.3824e+02 -1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1484e+02 6.4779e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1901e+03 2.1941e+03 -1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2787e+01 1.3558e+02 -1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2646e+02 8.3932e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4878e+03 3.4841e+03 -1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6961e+01 2.4167e+02 -1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2458e+02 6.1468e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2640e+03 2.2548e+03 -1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2248e+01 1.2767e+02 -1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3301e+02 8.7036e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4873e+03 3.3285e+03 -1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7877e+01 2.3100e+02 -1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0565e+02 6.2560e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1995e+03 2.3292e+03 -1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2209e+01 1.3780e+02 -1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1341e+02 8.9096e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4359e+03 3.2962e+03 -1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1910e+01 2.3483e+02 -1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1744e+02 6.3134e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2239e+03 2.1939e+03 -1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5610e+01 1.3780e+02 -1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0743e+02 8.9827e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5415e+03 3.2693e+03 -1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4117e+01 2.4224e+02 -1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1366e+02 6.0623e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2109e+03 2.1930e+03 -1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5974e+01 1.4526e+02 -1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0968e+02 8.3695e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5368e+03 3.4556e+03 -1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2579e+01 2.3085e+02 -1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0295e+02 6.4283e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2103e+03 2.1586e+03 -2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5224e+01 1.4078e+02 -2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9849e+02 8.2198e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4143e+03 3.3205e+03 -2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9830e+01 2.3680e+02 -2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0197e+02 6.0860e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2689e+03 2.2571e+03 -2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4728e+01 1.3935e+02 -2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1184e+02 8.6536e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5318e+03 3.4877e+03 -2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2144e+01 2.3092e+02 -2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2144e+02 6.3825e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2876e+03 2.3488e+03 -2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4821e+01 1.4154e+02 -2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1558e+02 8.7233e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5023e+03 3.3389e+03 -2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4945e+01 2.3979e+02 -2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2299e+02 6.3905e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2623e+03 2.3318e+03 -2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6719e+01 1.4068e+02 -2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1919e+02 8.8284e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4604e+03 3.5270e+03 -2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9311e+01 2.5070e+02 -2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8595e+02 6.0812e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2917e+03 2.2444e+03 -2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7186e+01 1.4665e+02 -2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0571e+02 8.7847e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4762e+03 3.2481e+03 -2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9010e+01 2.3514e+02 -2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8286e+02 6.0819e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.1897e+03 -2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8853e+01 1.4909e+02 -2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1716e+02 8.3386e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4359e+03 3.2487e+03 -2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8940e+01 2.3200e+02 -2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0260e+02 6.1134e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2868e+03 2.2648e+03 -2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8420e+01 1.4756e+02 -2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9940e+02 8.8942e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5319e+03 3.2824e+03 -2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2637e+01 2.3033e+02 -2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8140e+02 6.3395e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2433e+03 2.2512e+03 -2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8500e+01 1.4369e+02 -2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3022e+02 8.5724e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4238e+03 3.3924e+03 -2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6289e+01 2.3300e+02 -2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9859e+02 6.2590e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1989e+03 2.1730e+03 -2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8063e+01 1.4849e+02 -2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2998e+02 8.7362e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4207e+03 3.4234e+03 -2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6273e+01 2.3642e+02 -2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9620e+02 6.2532e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2594e+03 2.2239e+03 -2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9440e+01 1.4894e+02 -2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2991e+02 8.2980e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4547e+03 3.4393e+03 -2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7431e+01 2.3305e+02 -2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9704e+02 6.1427e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.3224e+03 -3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8758e+01 1.4360e+02 -3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0581e+02 8.5947e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4718e+03 3.4237e+03 -3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3608e+01 2.2857e+02 -3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8546e+02 6.5173e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2177e+03 2.3364e+03 -3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2093e+01 1.4549e+02 -3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2191e+02 8.9500e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5166e+03 3.4408e+03 -3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9807e+01 2.3601e+02 -3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9075e+02 6.5713e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2168e+03 2.1919e+03 -3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0448e+01 1.5740e+02 -3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1798e+02 8.4386e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4621e+03 3.3462e+03 -3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0083e+02 2.3311e+02 -3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9029e+02 6.6051e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2315e+03 2.3061e+03 -3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0417e+01 1.4726e+02 -3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3380e+02 8.5685e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5519e+03 3.2266e+03 -3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5841e+01 2.4505e+02 -3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0275e+02 6.3148e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2736e+03 2.3208e+03 -3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0948e+01 1.5772e+02 -3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2288e+02 8.7588e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5538e+03 3.2269e+03 -3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3436e+01 2.4232e+02 -3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8797e+02 6.4075e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2943e+03 2.1721e+03 -3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0521e+01 1.4784e+02 -3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0807e+02 8.9223e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4233e+03 3.3571e+03 -3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1962e+01 2.2640e+02 -3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0595e+02 6.3575e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2555e+03 2.2341e+03 -3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0772e+01 1.5227e+02 -3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1915e+02 8.5690e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4768e+03 3.4711e+03 -3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6929e+01 2.3291e+02 -3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1333e+02 6.3696e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2125e+03 2.2401e+03 -3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1430e+01 1.5518e+02 -3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2258e+02 8.4817e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4799e+03 3.4665e+03 -3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9347e+01 2.4648e+02 -3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1369e+02 6.2059e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1938e+03 2.2297e+03 -3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2209e+01 1.5811e+02 -3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3010e+02 8.2174e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4157e+03 3.5182e+03 -3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5429e+01 2.2836e+02 -3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0088e+02 6.2062e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2050e+03 2.3232e+03 -3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2880e+01 1.5933e+02 -3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1865e+02 8.8370e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5168e+03 3.4569e+03 -3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4684e+01 2.4282e+02 -3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8980e+02 6.1103e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2338e+03 2.1662e+03 -4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1925e+01 1.4822e+02 -4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1118e+02 8.3925e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5455e+03 3.3145e+03 -4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0194e+02 2.4416e+02 -4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7989e+02 6.3635e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2503e+03 2.3113e+03 -4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2494e+01 1.4876e+02 -4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1042e+02 8.5077e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4912e+03 3.2446e+03 -4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0104e+02 2.3953e+02 -4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9856e+02 6.6230e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2808e+03 2.1837e+03 -4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2701e+01 1.5597e+02 -4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1565e+02 8.5543e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4663e+03 3.3849e+03 -4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0238e+02 2.3421e+02 -4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8877e+02 6.1219e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2216e+03 2.2482e+03 -4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2713e+01 1.5636e+02 -4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.3199e+02 8.4176e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5077e+03 3.5434e+03 -4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9607e+01 2.2695e+02 -4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8479e+02 6.4399e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1847e+03 2.3470e+03 -4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4419e+01 1.5882e+02 -4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2342e+02 8.8020e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5179e+03 3.3299e+03 -4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6730e+01 2.2382e+02 -4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9740e+02 6.5111e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2276e+03 -4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3723e+01 1.5687e+02 -4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0562e+02 8.8844e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5091e+03 3.3549e+03 -4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3377e+01 2.2921e+02 -4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0388e+02 6.1903e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2693e+03 2.3124e+03 -4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5632e+01 1.5512e+02 -4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2495e+02 8.2055e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4226e+03 3.4566e+03 -4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7809e+01 2.2540e+02 -4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9538e+02 6.3200e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2274e+03 2.2477e+03 -4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4550e+01 1.6249e+02 -4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1138e+02 8.5563e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4362e+03 3.3036e+03 -4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5642e+01 2.4183e+02 -4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9924e+02 6.6232e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2221e+03 2.3440e+03 -4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5726e+01 1.6386e+02 -4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1111e+02 8.2437e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5104e+03 3.2364e+03 -4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6228e+01 2.4202e+02 -4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8611e+02 6.1909e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2326e+03 2.2139e+03 -4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.5123e+01 1.6095e+02 -4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9795e+02 8.7344e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4351e+03 3.4742e+03 -4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0322e+02 2.2118e+02 -4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8263e+02 6.1661e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2326e+03 2.3137e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6488e+01 9.7869e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.6613e+02 8.9345e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.4841e+03 3.4863e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.9591e+01 2.1316e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.3299e+02 6.5181e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2414e+03 2.2148e+03 +1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5682e+01 9.3127e+01 +1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7676e+02 8.4823e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4060e+03 3.4977e+03 +1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5516e+01 2.1483e+02 +1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4637e+02 6.0990e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2490e+03 2.1757e+03 +2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5770e+01 9.6752e+01 +2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8187e+02 8.7123e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4892e+03 3.2850e+03 +2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4869e+01 2.0917e+02 +2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2745e+02 6.0821e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2618e+03 2.2836e+03 +3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5905e+01 9.9443e+01 +3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5865e+02 9.0251e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5146e+03 3.4902e+03 +3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.1501e+01 2.1479e+02 +3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4881e+02 6.0752e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.3069e+03 2.2122e+03 +4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8582e+01 1.1429e+02 +4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0983e+02 8.1431e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5354e+03 3.5475e+03 +4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2322e+01 2.3605e+02 +4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2267e+02 6.0298e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2778e+03 2.2908e+03 +5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8505e+01 1.0855e+02 +5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0504e+02 8.4319e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5094e+03 3.4750e+03 +5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.6429e+01 2.2001e+02 +5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3146e+02 6.5284e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2245e+03 2.3043e+03 +6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7431e+01 1.0810e+02 +6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1223e+02 8.6248e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5298e+03 3.2801e+03 +6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1132e+01 2.3678e+02 +6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1684e+02 6.0038e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2992e+03 2.3568e+03 +7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8625e+01 1.0771e+02 +7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7531e+02 8.5686e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4992e+03 3.3410e+03 +7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5887e+01 2.3561e+02 +7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4241e+02 6.2505e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2408e+03 2.2471e+03 +8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0881e+01 1.2351e+02 +8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9509e+02 8.8766e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4914e+03 3.3196e+03 +8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0137e+01 2.4369e+02 +8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3386e+02 6.5622e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2702e+03 2.2409e+03 +9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0973e+01 1.2767e+02 +9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0961e+02 8.2796e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4139e+03 3.4192e+03 +9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1215e+01 2.4163e+02 +9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2080e+02 5.9983e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2363e+03 2.3050e+03 +1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0410e+01 1.1636e+02 +1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0710e+02 8.1954e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4056e+03 3.5294e+03 +1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4815e+01 2.4263e+02 +1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3318e+02 6.2999e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2186e+03 2.3478e+03 +1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0985e+01 1.2079e+02 +1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2160e+02 8.6248e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5223e+03 3.4817e+03 +1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.3256e+01 2.2383e+02 +1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2333e+02 6.3383e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2257e+03 2.3319e+03 +1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9804e+01 1.2500e+02 +1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2504e+02 8.3263e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4588e+03 3.4103e+03 +1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4057e+01 2.4268e+02 +1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2549e+02 6.2017e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2474e+03 2.2467e+03 +1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1495e+01 1.2484e+02 +1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0046e+02 8.2736e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4730e+03 3.2810e+03 +1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7717e+01 2.2961e+02 +1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1660e+02 6.0349e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2756e+03 2.2905e+03 +1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2964e+01 1.2723e+02 +1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0538e+02 8.3282e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4593e+03 3.4361e+03 +1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8453e+01 2.4337e+02 +1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0799e+02 6.3210e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2865e+03 2.2185e+03 +1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4144e+01 1.3011e+02 +1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0631e+02 8.8615e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4526e+03 3.3682e+03 +1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1719e+01 2.2607e+02 +1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2102e+02 6.0435e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2235e+03 2.2373e+03 +1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3634e+01 1.3340e+02 +1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1436e+02 8.5095e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5205e+03 3.2358e+03 +1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2192e+01 2.3404e+02 +1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1149e+02 6.0751e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2322e+03 2.2241e+03 +1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2808e+01 1.3510e+02 +1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2934e+02 8.3520e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4780e+03 3.3629e+03 +1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6066e+01 2.3845e+02 +1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1551e+02 6.1404e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2280e+03 2.1878e+03 +1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2993e+01 1.2723e+02 +1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1907e+02 8.8146e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5283e+03 3.2312e+03 +1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2097e+01 2.3637e+02 +1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9383e+02 6.2367e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2663e+03 2.1728e+03 +1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3380e+01 1.3250e+02 +1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1142e+02 8.8288e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4187e+03 3.3251e+03 +1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7093e+01 2.3370e+02 +1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 6.0527e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2768e+03 2.2587e+03 +2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7159e+01 1.4660e+02 +2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2717e+02 8.4324e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5325e+03 3.2573e+03 +2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5593e+01 2.3510e+02 +2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8869e+02 6.0428e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2412e+03 2.1646e+03 +2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6624e+01 1.3800e+02 +2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9537e+02 8.4381e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4792e+03 3.2508e+03 +2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4079e+01 2.4468e+02 +2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8925e+02 6.1916e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2851e+03 2.2478e+03 +2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6501e+01 1.3939e+02 +2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9346e+02 8.5271e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4822e+03 3.3981e+03 +2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0605e+01 2.2614e+02 +2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1594e+02 6.0763e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2749e+03 2.1850e+03 +2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4936e+01 1.4490e+02 +2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1106e+02 8.7277e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4820e+03 3.4722e+03 +2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0493e+01 2.4651e+02 +2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8669e+02 6.5188e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2294e+03 2.2774e+03 +2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6936e+01 1.3762e+02 +2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0545e+02 8.2499e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5191e+03 3.3587e+03 +2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7444e+01 2.4682e+02 +2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0951e+02 6.5499e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1945e+03 2.3073e+03 +2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6329e+01 1.3877e+02 +2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2247e+02 8.2985e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5254e+03 3.5231e+03 +2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3219e+01 2.4007e+02 +2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9243e+02 6.4552e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2753e+03 2.3273e+03 +2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9961e+01 1.4311e+02 +2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0248e+02 8.6811e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4884e+03 3.2545e+03 +2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7413e+01 2.2420e+02 +2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8759e+02 6.2568e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2321e+03 2.2775e+03 +2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7615e+01 1.4958e+02 +2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2979e+02 8.5566e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5209e+03 3.3417e+03 +2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8436e+01 2.3141e+02 +2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0771e+02 6.0453e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2408e+03 2.2104e+03 +2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9581e+01 1.4921e+02 +2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1822e+02 8.1831e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5133e+03 3.3778e+03 +2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3520e+01 2.4105e+02 +2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9564e+02 6.2465e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2657e+03 2.1975e+03 +2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9962e+01 1.4141e+02 +2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0220e+02 8.7876e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5382e+03 3.3574e+03 +2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4217e+01 2.3639e+02 +2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8226e+02 6.4770e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2859e+03 2.2933e+03 +3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8437e+01 1.5206e+02 +3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9726e+02 8.1004e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4708e+03 3.4689e+03 +3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6205e+01 2.3563e+02 +3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0999e+02 6.5853e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2166e+03 2.2031e+03 +3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8263e+01 1.4563e+02 +3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2146e+02 8.5582e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4196e+03 3.2750e+03 +3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7564e+01 2.4255e+02 +3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8630e+02 6.2272e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1955e+03 2.1851e+03 +3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9866e+01 1.4425e+02 +3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1786e+02 8.1611e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5371e+03 3.5387e+03 +3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5734e+01 2.3172e+02 +3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9308e+02 6.3715e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2509e+03 2.1771e+03 +3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9851e+01 1.5665e+02 +3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2179e+02 8.6318e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5102e+03 3.3224e+03 +3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7069e+01 2.3312e+02 +3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0704e+02 6.0586e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2158e+03 2.2141e+03 +3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9746e+01 1.4686e+02 +3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9576e+02 8.5023e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4738e+03 3.5254e+03 +3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5155e+01 2.3785e+02 +3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0075e+02 6.2468e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2921e+03 2.2896e+03 +3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2619e+01 1.4827e+02 +3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9798e+02 8.4054e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4624e+03 3.3081e+03 +3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7775e+01 2.3489e+02 +3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8349e+02 6.4689e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3008e+03 2.3283e+03 +3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1576e+01 1.5878e+02 +3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0503e+02 8.2856e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4368e+03 3.4843e+03 +3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3820e+01 2.2472e+02 +3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7762e+02 6.5588e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2620e+03 2.2815e+03 +3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1374e+01 1.5229e+02 +3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2088e+02 8.3793e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5203e+03 3.4702e+03 +3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4623e+01 2.4075e+02 +3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7903e+02 6.2884e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1947e+03 2.1575e+03 +3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1561e+01 1.5558e+02 +3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1054e+02 8.5337e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4753e+03 3.5302e+03 +3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3803e+01 2.4164e+02 +3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0770e+02 6.0749e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2144e+03 2.1894e+03 +3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0396e+01 1.4990e+02 +3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1868e+02 8.3013e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5018e+03 3.4776e+03 +3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3835e+01 2.2718e+02 +3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7689e+02 6.0724e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.2673e+03 +4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0062e+01 1.4837e+02 +4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9468e+02 8.6688e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5053e+03 3.5327e+03 +4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8133e+01 2.3011e+02 +4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8277e+02 6.4483e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1932e+03 2.1802e+03 +4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2275e+01 1.5793e+02 +4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9566e+02 8.4544e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4258e+03 3.2608e+03 +4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5235e+01 2.3513e+02 +4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9199e+02 6.4013e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2617e+03 2.3174e+03 +4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4329e+01 1.5703e+02 +4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1441e+02 8.6847e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5270e+03 3.3696e+03 +4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9858e+01 2.2011e+02 +4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8833e+02 6.1557e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2580e+03 2.3231e+03 +4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3867e+01 1.5571e+02 +4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0948e+02 8.8006e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5128e+03 3.3384e+03 +4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6801e+01 2.3649e+02 +4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0666e+02 5.9998e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2015e+03 2.2800e+03 +4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3135e+01 1.5126e+02 +4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2239e+02 8.8533e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4215e+03 3.3669e+03 +4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0145e+02 2.3152e+02 +4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9080e+02 6.0663e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2383e+03 2.2896e+03 +4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3508e+01 1.5995e+02 +4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9733e+02 8.8056e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4681e+03 3.3908e+03 +4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3311e+01 2.3537e+02 +4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0210e+02 6.4217e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2494e+03 2.1845e+03 +4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4693e+01 1.4819e+02 +4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1734e+02 8.2524e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4735e+03 3.5223e+03 +4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5253e+01 2.3952e+02 +4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8339e+02 6.3985e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2679e+03 2.2349e+03 +4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4277e+01 1.5700e+02 +4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1066e+02 8.2138e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4911e+03 3.3202e+03 +4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3032e+01 2.3528e+02 +4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0288e+02 6.1150e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2200e+03 2.3225e+03 +4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3731e+01 1.5891e+02 +4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9360e+02 8.7741e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5417e+03 3.2624e+03 +4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6405e+01 2.2641e+02 +4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8841e+02 6.2190e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1930e+03 2.3098e+03 +4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2500e+01 1.4797e+02 +4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0112e+02 8.8261e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5210e+03 3.4274e+03 +4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7435e+01 2.2329e+02 +4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8470e+02 6.4284e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2458e+03 2.1800e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index db066a0..f3e4e5b 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,1050 +1,800 @@ -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6694e-06 -5.0000e+01 0.0000e+00 2.0000e+01 1.4125e-05 -8.4850e-07 -5.0000e+01 0.0000e+00 2.0000e+01 1.9953e-05 -3.7911e-07 -5.0000e+01 0.0000e+00 2.0000e+01 2.8184e-05 -1.9681e-07 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0548e-07 -5.0000e+01 0.0000e+00 2.0000e+01 5.6234e-05 -6.2491e-08 -5.0000e+01 0.0000e+00 2.0000e+01 7.9433e-05 -4.1022e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.1220e-04 -2.7179e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -2.0745e-08 -5.0000e+01 0.0000e+00 2.0000e+01 2.2387e-04 -1.3933e-08 -5.0000e+01 0.0000e+00 2.0000e+01 3.1623e-04 -8.1849e-09 -5.0000e+01 0.0000e+00 2.0000e+01 4.4668e-04 -4.8271e-09 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.9167e-09 -5.0000e+01 0.0000e+00 2.0000e+01 8.9125e-04 -1.3770e-09 -5.0000e+01 0.0000e+00 2.0000e+01 1.2589e-03 -7.0628e-10 -5.0000e+01 0.0000e+00 2.0000e+01 1.7783e-03 -3.1098e-10 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.4589e-10 -5.0000e+01 0.0000e+00 2.0000e+01 3.5481e-03 -5.9986e-11 -5.0000e+01 0.0000e+00 2.0000e+01 5.0119e-03 -2.5856e-11 -5.0000e+01 0.0000e+00 2.0000e+01 7.0795e-03 -1.0292e-11 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -4.3884e-12 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7836e-06 -1.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2732e-07 -1.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7823e-07 -1.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8662e-07 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0023e-07 -1.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -5.9296e-08 -1.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1114e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.9302e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.9752e-08 -1.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3007e-08 -1.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.3285e-09 -1.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8623e-09 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8427e-09 -1.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4600e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.2659e-10 -1.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.1952e-10 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4055e-10 -1.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.2930e-11 -1.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4327e-11 -1.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0562e-11 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5877e-12 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7558e-06 -2.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.8475e-07 -2.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8003e-07 -2.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9084e-07 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0592e-07 -2.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3773e-08 -2.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0547e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8610e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -2.0015e-08 -2.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.3238e-08 -2.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.8928e-09 -2.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1886e-09 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6722e-09 -2.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.4344e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -6.9472e-10 -2.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.0841e-10 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.3420e-10 -2.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.1585e-11 -2.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -2.4169e-11 -2.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.0355e-11 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5683e-12 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6350e-06 -3.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.0950e-07 -3.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0009e-07 -3.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9593e-07 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9984e-08 -3.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.2433e-08 -3.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.8581e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7337e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8037e-08 -3.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2068e-08 -3.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.3168e-09 -3.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.2595e-09 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8298e-09 -3.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5526e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.7989e-10 -3.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.5262e-10 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6530e-10 -3.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.8300e-11 -3.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0600e-11 -3.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2133e-11 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.9207e-12 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7129e-06 -4.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.3731e-07 -4.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7667e-07 -4.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9430e-07 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.6952e-08 -4.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4472e-08 -4.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1046e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.6067e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8189e-08 -4.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2784e-08 -4.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.5045e-09 -4.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.3816e-09 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8692e-09 -4.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6193e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.7878e-10 -4.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6868e-10 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.7156e-10 -4.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.2385e-11 -4.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0672e-11 -4.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2461e-11 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.1579e-12 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6786e-06 -5.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7194e-07 -5.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.7708e-07 -5.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.8477e-07 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0715e-07 -5.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -5.8962e-08 -5.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.1748e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7217e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8686e-08 -5.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2115e-08 -5.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.6040e-09 -5.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.3771e-09 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8924e-09 -5.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6143e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.5683e-10 -5.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.8047e-10 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6593e-10 -5.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.0165e-11 -5.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.1148e-11 -5.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2189e-11 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8611e-12 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6777e-06 -6.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7769e-07 -6.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0164e-07 -6.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9292e-07 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9759e-08 -6.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3979e-08 -6.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.0637e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8439e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.9351e-08 -6.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2823e-08 -6.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.2773e-09 -6.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.0665e-09 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0681e-09 -6.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5646e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -7.8499e-10 -6.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -3.6424e-10 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.6130e-10 -6.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -6.9980e-11 -6.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.0763e-11 -6.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.2604e-11 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.9818e-12 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6337e-06 -7.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.2939e-07 -7.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -4.0579e-07 -7.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9966e-07 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0004e-07 -7.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.2788e-08 -7.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2061e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8169e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7954e-08 -7.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2245e-08 -7.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0139e-09 -7.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.8654e-09 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.1114e-09 -7.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.5916e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.2369e-10 -7.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.0129e-10 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9387e-10 -7.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -7.8803e-11 -7.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.6008e-11 -7.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4268e-11 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6323e-12 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6583e-06 -8.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.6409e-07 -8.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8126e-07 -8.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9596e-07 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0010e-07 -8.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.4463e-08 -8.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -4.2015e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.7078e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8474e-08 -8.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.1538e-08 -8.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -7.6027e-09 -8.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -5.1944e-09 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -3.0480e-09 -8.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6955e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.7389e-10 -8.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.3428e-10 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8000e-10 -8.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.3884e-11 -8.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.4882e-11 -8.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4066e-11 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6570e-12 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7716e-06 -9.5000e+02 0.0000e+00 2.0000e+01 1.4125e-05 -8.7234e-07 -9.5000e+02 0.0000e+00 2.0000e+01 1.9953e-05 -3.8210e-07 -9.5000e+02 0.0000e+00 2.0000e+01 2.8184e-05 -1.9504e-07 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0755e-07 -9.5000e+02 0.0000e+00 2.0000e+01 5.6234e-05 -6.3279e-08 -9.5000e+02 0.0000e+00 2.0000e+01 7.9433e-05 -3.9715e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.1220e-04 -2.8375e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8006e-08 -9.5000e+02 0.0000e+00 2.0000e+01 2.2387e-04 -1.2207e-08 -9.5000e+02 0.0000e+00 2.0000e+01 3.1623e-04 -8.0740e-09 -9.5000e+02 0.0000e+00 2.0000e+01 4.4668e-04 -4.9632e-09 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9341e-09 -9.5000e+02 0.0000e+00 2.0000e+01 8.9125e-04 -1.6198e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.2589e-03 -8.6081e-10 -9.5000e+02 0.0000e+00 2.0000e+01 1.7783e-03 -4.2546e-10 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9705e-10 -9.5000e+02 0.0000e+00 2.0000e+01 3.5481e-03 -8.1576e-11 -9.5000e+02 0.0000e+00 2.0000e+01 5.0119e-03 -3.2786e-11 -9.5000e+02 0.0000e+00 2.0000e+01 7.0795e-03 -1.4720e-11 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.9803e-12 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7306e-06 -1.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8342e-07 -1.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8237e-07 -1.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9622e-07 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8734e-08 -1.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0414e-08 -1.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8518e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6763e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7898e-08 -1.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1957e-08 -1.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -8.0719e-09 -1.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7724e-09 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8510e-09 -1.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7432e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.2835e-10 -1.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.0862e-10 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9337e-10 -1.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.0351e-11 -1.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.5885e-11 -1.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.4588e-11 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.8282e-12 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7139e-06 -1.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7778e-07 -1.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0551e-07 -1.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8674e-07 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0666e-07 -1.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2407e-08 -1.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2302e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6274e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7820e-08 -1.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1579e-08 -1.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4232e-09 -1.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6974e-09 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0593e-09 -1.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7656e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3134e-10 -1.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.4534e-10 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1336e-10 -1.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.9424e-11 -1.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.9714e-11 -1.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6515e-11 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.5694e-12 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7458e-06 -1.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5052e-07 -1.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8636e-07 -1.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9886e-07 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9777e-08 -1.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4089e-08 -1.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9640e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5584e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6957e-08 -1.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2251e-08 -1.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5453e-09 -1.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6213e-09 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0457e-09 -1.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7334e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9707e-10 -1.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6029e-10 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0978e-10 -1.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.3179e-11 -1.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.0122e-11 -1.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.5972e-11 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.2178e-12 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6806e-06 -1.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3536e-07 -1.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7788e-07 -1.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8719e-07 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7801e-08 -1.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0120e-08 -1.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2503e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7005e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8110e-08 -1.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1544e-08 -1.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4911e-09 -1.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7705e-09 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8521e-09 -1.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6482e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5865e-10 -1.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.4181e-10 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.0469e-10 -1.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.5285e-11 -1.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.7801e-11 -1.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6449e-11 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.1497e-12 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7813e-06 -1.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6509e-07 -1.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7871e-07 -1.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8821e-07 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0552e-07 -1.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.8885e-08 -1.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0191e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7443e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8053e-08 -1.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1610e-08 -1.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.8652e-09 -1.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.9116e-09 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8398e-09 -1.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7599e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6699e-10 -1.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7041e-10 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1541e-10 -1.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -8.8553e-11 -1.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -3.8365e-11 -1.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.6741e-11 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7647e-12 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7081e-06 -1.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4246e-07 -1.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1327e-07 -1.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9870e-07 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0356e-07 -1.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1110e-08 -1.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8739e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5674e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7872e-08 -1.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1795e-08 -1.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2963e-09 -1.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6185e-09 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9931e-09 -1.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6698e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7659e-10 -1.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0409e-10 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3426e-10 -1.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0008e-10 -1.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.2920e-11 -1.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7532e-11 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3036e-12 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6247e-06 -1.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3149e-07 -1.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0446e-07 -1.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8893e-07 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9632e-08 -1.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2742e-08 -1.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1218e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5752e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6949e-08 -1.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1860e-08 -1.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5575e-09 -1.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8022e-09 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9833e-09 -1.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7579e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8731e-10 -1.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6512e-10 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4186e-10 -1.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -9.8248e-11 -1.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4501e-11 -1.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8434e-11 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3629e-12 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6543e-06 -1.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3116e-07 -1.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0379e-07 -1.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9104e-07 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0097e-07 -1.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1969e-08 -1.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9293e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5695e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7626e-08 -1.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1961e-08 -1.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5131e-09 -1.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5345e-09 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -3.0110e-09 -1.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7349e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5951e-10 -1.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.5963e-10 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2592e-10 -1.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0065e-10 -1.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3766e-11 -1.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.7911e-11 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0976e-12 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7946e-06 -1.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6459e-07 -1.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9310e-07 -1.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8779e-07 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7347e-08 -1.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1739e-08 -1.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9311e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7358e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8248e-08 -1.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1157e-08 -1.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6136e-09 -1.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.8911e-09 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7524e-09 -1.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6877e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1232e-10 -1.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9764e-10 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2529e-10 -1.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0802e-10 -1.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.4779e-11 -1.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8523e-11 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.5693e-12 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7232e-06 -1.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.5244e-07 -1.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0842e-07 -1.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8339e-07 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0617e-07 -1.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1372e-08 -1.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0979e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5648e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7393e-08 -1.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1779e-08 -1.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6494e-09 -1.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7746e-09 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8141e-09 -1.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7182e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.7065e-10 -1.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7207e-10 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1817e-10 -1.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0191e-10 -1.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.3318e-11 -1.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -1.8330e-11 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.9497e-12 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7040e-06 -2.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2783e-07 -2.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1761e-07 -2.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8897e-07 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0231e-07 -2.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1938e-08 -2.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2046e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7423e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8164e-08 -2.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1801e-08 -2.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3384e-09 -2.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3780e-09 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7063e-09 -2.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6882e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0608e-10 -2.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7154e-10 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4541e-10 -2.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1292e-10 -2.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.9125e-11 -2.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1474e-11 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2826e-12 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7041e-06 -2.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7113e-07 -2.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1162e-07 -2.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0013e-07 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0031e-07 -2.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1520e-08 -2.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1558e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7200e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7484e-08 -2.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1413e-08 -2.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5554e-09 -2.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3618e-09 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9487e-09 -2.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6151e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.8281e-10 -2.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1388e-10 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4200e-10 -2.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1701e-10 -2.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1160e-11 -2.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0438e-11 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.0105e-12 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7557e-06 -2.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2691e-07 -2.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1723e-07 -2.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8383e-07 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0186e-07 -2.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5114e-08 -2.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9393e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6911e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7762e-08 -2.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1184e-08 -2.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3814e-09 -2.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6487e-09 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7290e-09 -2.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7176e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1052e-10 -2.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9522e-10 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3941e-10 -2.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0901e-10 -2.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0692e-11 -2.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.0327e-11 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2427e-12 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7618e-06 -2.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8568e-07 -2.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7979e-07 -2.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9978e-07 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0104e-07 -2.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4457e-08 -2.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2347e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7342e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7550e-08 -2.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1895e-08 -2.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5411e-09 -2.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4436e-09 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9106e-09 -2.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6097e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.5040e-10 -2.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1116e-10 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3171e-10 -2.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.0768e-10 -2.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -4.8136e-11 -2.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.1056e-11 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.9403e-12 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6722e-06 -2.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.0695e-07 -2.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8370e-07 -2.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8727e-07 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0534e-07 -2.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9454e-08 -2.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1280e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6094e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7196e-08 -2.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1637e-08 -2.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2659e-09 -2.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4459e-09 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8599e-09 -2.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6141e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3393e-10 -2.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2411e-10 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5505e-10 -2.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1983e-10 -2.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6152e-11 -2.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2041e-11 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.8402e-12 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6331e-06 -2.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3857e-07 -2.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8470e-07 -2.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9418e-07 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8084e-08 -2.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3266e-08 -2.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9958e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6216e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8559e-08 -2.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1447e-08 -2.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1249e-09 -2.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3152e-09 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6784e-09 -2.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.7135e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9981e-10 -2.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.2417e-10 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6137e-10 -2.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2625e-10 -2.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6198e-11 -2.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2224e-11 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0769e-12 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6500e-06 -2.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4388e-07 -2.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8623e-07 -2.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8401e-07 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9831e-08 -2.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0710e-08 -2.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2177e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8178e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8393e-08 -2.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2043e-08 -2.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0068e-09 -2.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6135e-09 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8217e-09 -2.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6225e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.3471e-10 -2.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0142e-10 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4585e-10 -2.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1739e-10 -2.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.1764e-11 -2.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2488e-11 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.2042e-12 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6843e-06 -2.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3182e-07 -2.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1667e-07 -2.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8634e-07 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0712e-07 -2.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0150e-08 -2.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1249e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6204e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8649e-08 -2.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1799e-08 -2.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1930e-09 -2.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6829e-09 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7431e-09 -2.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6270e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.4888e-10 -2.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8401e-10 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4271e-10 -2.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1547e-10 -2.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.0805e-11 -2.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.2510e-11 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.3318e-12 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6616e-06 -2.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6683e-07 -2.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7906e-07 -2.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8396e-07 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0372e-07 -2.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5203e-08 -2.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2037e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7485e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8066e-08 -2.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1128e-08 -2.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3845e-09 -2.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5327e-09 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6134e-09 -2.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6158e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8392e-10 -2.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8831e-10 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6771e-10 -2.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2597e-10 -2.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.3663e-11 -2.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3273e-11 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9373e-12 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7009e-06 -2.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2103e-07 -2.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9219e-07 -2.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9861e-07 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0737e-07 -2.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1404e-08 -2.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0944e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6215e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7690e-08 -2.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1245e-08 -2.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4004e-09 -2.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3290e-09 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8380e-09 -2.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6071e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7289e-10 -2.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8875e-10 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6263e-10 -2.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2968e-10 -2.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.7710e-11 -2.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5148e-11 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0543e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7625e-06 -3.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7581e-07 -3.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8880e-07 -3.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8749e-07 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0666e-07 -3.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0353e-08 -3.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1394e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8317e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7934e-08 -3.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1099e-08 -3.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.5112e-09 -3.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7121e-09 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7979e-09 -3.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5431e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1817e-10 -3.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8889e-10 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6015e-10 -3.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2336e-10 -3.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9611e-11 -3.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3505e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0569e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6667e-06 -3.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7006e-07 -3.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1237e-07 -3.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8573e-07 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 -3.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2108e-08 -3.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1078e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8126e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6960e-08 -3.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1418e-08 -3.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9883e-09 -3.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7192e-09 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7314e-09 -3.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6330e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8322e-10 -3.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8165e-10 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6935e-10 -3.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.1983e-10 -3.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9297e-11 -3.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5886e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0453e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6385e-06 -3.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.3366e-07 -3.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1015e-07 -3.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9080e-07 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0589e-07 -3.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2502e-08 -3.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9344e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5531e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8180e-08 -3.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1103e-08 -3.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1797e-09 -3.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5207e-09 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6368e-09 -3.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5587e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7755e-10 -3.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0310e-10 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6898e-10 -3.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2899e-10 -3.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9664e-11 -3.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.5602e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0134e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6198e-06 -3.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8494e-07 -3.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9182e-07 -3.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9686e-07 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9837e-08 -3.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9667e-08 -3.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0066e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5925e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7628e-08 -3.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1968e-08 -3.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.2239e-09 -3.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5718e-09 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6961e-09 -3.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6016e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8500e-10 -3.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0820e-10 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5181e-10 -3.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3279e-10 -3.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.6562e-11 -3.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3764e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0594e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7627e-06 -3.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7871e-07 -3.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9482e-07 -3.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8146e-07 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0309e-07 -3.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1136e-08 -3.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1479e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5754e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7608e-08 -3.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0979e-08 -3.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6858e-09 -3.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4857e-09 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6237e-09 -3.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5219e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8054e-10 -3.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0235e-10 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7246e-10 -3.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2830e-10 -3.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8624e-11 -3.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.3867e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0494e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7710e-06 -3.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8471e-07 -3.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1602e-07 -3.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8716e-07 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8772e-08 -3.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9744e-08 -3.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.2050e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8208e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7591e-08 -3.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1273e-08 -3.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3823e-09 -3.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4496e-09 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7048e-09 -3.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5925e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6336e-10 -3.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8325e-10 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5840e-10 -3.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3203e-10 -3.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.8386e-11 -3.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6358e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0506e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6465e-06 -3.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2513e-07 -3.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1662e-07 -3.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8267e-07 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0176e-07 -3.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.3896e-08 -3.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8799e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6996e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7332e-08 -3.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0983e-08 -3.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4680e-09 -3.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3866e-09 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6118e-09 -3.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5832e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9536e-10 -3.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1976e-10 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6462e-10 -3.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3224e-10 -3.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2371e-11 -3.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6242e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0574e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7427e-06 -3.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.2410e-07 -3.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8065e-07 -3.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8300e-07 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0493e-07 -3.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9121e-08 -3.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1752e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5850e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7452e-08 -3.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1272e-08 -3.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4465e-09 -3.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.4105e-09 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7673e-09 -3.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5629e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7448e-10 -3.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8171e-10 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7060e-10 -3.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2872e-10 -3.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.3045e-11 -3.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7037e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1198e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7212e-06 -3.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4294e-07 -3.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1256e-07 -3.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8847e-07 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0540e-07 -3.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5030e-08 -3.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1564e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6755e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6925e-08 -3.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1899e-08 -3.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0204e-09 -3.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3649e-09 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5500e-09 -3.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5244e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.8624e-10 -3.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7395e-10 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5304e-10 -3.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2505e-10 -3.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.0346e-11 -3.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6429e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1502e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7284e-06 -3.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1058e-07 -3.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0033e-07 -3.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9117e-07 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0726e-07 -3.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.5335e-08 -3.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0407e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8239e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7345e-08 -3.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1816e-08 -3.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0733e-09 -3.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3837e-09 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7655e-09 -3.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6467e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6146e-10 -3.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9254e-10 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5717e-10 -3.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2730e-10 -3.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -5.9235e-11 -3.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7374e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1604e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6620e-06 -4.0500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.1170e-07 -4.0500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9585e-07 -4.0500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8821e-07 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0056e-07 -4.0500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -5.9783e-08 -4.0500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1338e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.8355e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7967e-08 -4.0500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1251e-08 -4.0500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.1196e-09 -4.0500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6947e-09 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6150e-09 -4.0500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4740e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.1693e-10 -4.0500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.0975e-10 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6113e-10 -4.0500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2808e-10 -4.0500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.2146e-11 -4.0500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7215e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1746e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7334e-06 -4.1500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8114e-07 -4.1500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1341e-07 -4.1500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0070e-07 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0409e-07 -4.1500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4235e-08 -4.1500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8934e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5940e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7797e-08 -4.1500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1496e-08 -4.1500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4239e-09 -4.1500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3482e-09 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5422e-09 -4.1500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5430e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.0577e-10 -4.1500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1076e-10 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5752e-10 -4.1500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2588e-10 -4.1500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4486e-11 -4.1500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7289e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2314e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7409e-06 -4.2500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6592e-07 -4.2500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7803e-07 -4.2500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9750e-07 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0380e-07 -4.2500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4151e-08 -4.2500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1678e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7974e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7937e-08 -4.2500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1491e-08 -4.2500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9392e-09 -4.2500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5780e-09 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6461e-09 -4.2500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6326e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2159e-10 -4.2500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -5.1258e-10 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5222e-10 -4.2500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3472e-10 -4.2500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4945e-11 -4.2500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.7378e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1813e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6612e-06 -4.3500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.4481e-07 -4.3500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7904e-07 -4.3500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9299e-07 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0336e-07 -4.3500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1342e-08 -4.3500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.0187e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6568e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7562e-08 -4.3500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.0953e-08 -4.3500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.6265e-09 -4.3500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6738e-09 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6049e-09 -4.3500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6168e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.4129e-10 -4.3500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9806e-10 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6887e-10 -4.3500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3670e-10 -4.3500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.4593e-11 -4.3500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9070e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2380e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6302e-06 -4.4500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6827e-07 -4.4500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.8052e-07 -4.4500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9066e-07 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0702e-07 -4.4500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.1079e-08 -4.4500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9570e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6609e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7709e-08 -4.4500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1916e-08 -4.4500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.0210e-09 -4.4500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.5552e-09 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5491e-09 -4.4500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6252e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -9.2039e-10 -4.4500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7248e-10 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5488e-10 -4.4500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2665e-10 -4.4500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6071e-11 -4.4500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9224e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2270e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6282e-06 -4.5500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.6401e-07 -4.5500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.7833e-07 -4.5500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8839e-07 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0187e-07 -4.5500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.0075e-08 -4.5500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8774e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.6066e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8530e-08 -4.5500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1849e-08 -4.5500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3820e-09 -4.5500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2911e-09 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6311e-09 -4.5500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5582e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.6182e-10 -4.5500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.8107e-10 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5620e-10 -4.5500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.2630e-10 -4.5500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5454e-11 -4.5500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.6771e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1731e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6984e-06 -4.6500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8023e-07 -4.6500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.1180e-07 -4.6500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0056e-07 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0043e-07 -4.6500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.2319e-08 -4.6500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.8464e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.5746e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8436e-08 -4.6500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2000e-08 -4.6500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.4145e-09 -4.6500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.6134e-09 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6401e-09 -4.6500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5010e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5649e-10 -4.6500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9287e-10 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.7227e-10 -4.6500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3094e-10 -4.6500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1471e-11 -4.6500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0002e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2186e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6680e-06 -4.7500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8968e-07 -4.7500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0864e-07 -4.7500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.9325e-07 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9051e-08 -4.7500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4752e-08 -4.7500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9413e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7449e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8174e-08 -4.7500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1061e-08 -4.7500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -6.9259e-09 -4.7500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.3092e-09 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5677e-09 -4.7500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.4810e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.9849e-10 -4.7500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.9708e-10 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6862e-10 -4.7500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3298e-10 -4.7500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.1652e-11 -4.7500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -3.0040e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2853e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7684e-06 -4.8500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.7976e-07 -4.8500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -4.0005e-07 -4.8500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -1.8438e-07 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0571e-07 -4.8500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4909e-08 -4.8500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -4.1871e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7463e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.8046e-08 -4.8500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.2069e-08 -4.8500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3170e-09 -4.8500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.7006e-09 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7793e-09 -4.8500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.5231e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.5417e-10 -4.8500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.7157e-10 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6284e-10 -4.8500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3175e-10 -4.8500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.6764e-11 -4.8500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.8238e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2748e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6411e-06 -4.9500e+03 0.0000e+00 2.0000e+01 1.4125e-05 -8.8647e-07 -4.9500e+03 0.0000e+00 2.0000e+01 1.9953e-05 -3.9145e-07 -4.9500e+03 0.0000e+00 2.0000e+01 2.8184e-05 -2.0048e-07 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8310e-08 -4.9500e+03 0.0000e+00 2.0000e+01 5.6234e-05 -6.4262e-08 -4.9500e+03 0.0000e+00 2.0000e+01 7.9433e-05 -3.9722e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.1220e-04 -2.7265e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7301e-08 -4.9500e+03 0.0000e+00 2.0000e+01 2.2387e-04 -1.1549e-08 -4.9500e+03 0.0000e+00 2.0000e+01 3.1623e-04 -7.3545e-09 -4.9500e+03 0.0000e+00 2.0000e+01 4.4668e-04 -4.2587e-09 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7191e-09 -4.9500e+03 0.0000e+00 2.0000e+01 8.9125e-04 -1.6263e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.2589e-03 -8.7917e-10 -4.9500e+03 0.0000e+00 2.0000e+01 1.7783e-03 -4.6731e-10 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6680e-10 -4.9500e+03 0.0000e+00 2.0000e+01 3.5481e-03 -1.3311e-10 -4.9500e+03 0.0000e+00 2.0000e+01 5.0119e-03 -6.5205e-11 -4.9500e+03 0.0000e+00 2.0000e+01 7.0795e-03 -2.9705e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2096e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6707e-06 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-05 -6.9085e-07 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-05 -2.3826e-07 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -9.9392e-08 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-05 -5.3849e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-04 -3.1021e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -1.9575e-08 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-04 -1.1502e-08 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-04 -5.4841e-09 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.4886e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-03 -9.0153e-10 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-03 -3.3421e-10 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.1077e-10 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-03 -3.5800e-11 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-03 -1.1477e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -3.6369e-12 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7968e-06 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5810e-07 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4965e-07 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0412e-07 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8974e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -3.0033e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8362e-08 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.9860e-09 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.4562e-09 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8878e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2105e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.6241e-10 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5467e-10 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7272e-11 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4525e-11 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4759e-12 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7367e-06 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.9912e-07 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5106e-07 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0279e-07 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9554e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9616e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7249e-08 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0460e-08 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6615e-09 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8066e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1310e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.1883e-10 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5732e-10 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.1339e-11 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5833e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8117e-12 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8112e-06 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0144e-07 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3865e-07 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.5983e-08 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.7982e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9169e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8355e-08 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0763e-08 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9321e-09 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6178e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1316e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.4459e-10 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5488e-10 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7919e-11 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5599e-11 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7782e-12 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8063e-06 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1259e-07 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5158e-07 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0470e-07 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1378e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9163e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7552e-08 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0606e-08 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8410e-09 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7437e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1721e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2629e-10 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5438e-10 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8441e-11 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5402e-11 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5311e-12 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7551e-06 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0169e-07 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3761e-07 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0473e-07 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9150e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9013e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8383e-08 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0188e-08 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9032e-09 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7462e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1992e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.4307e-10 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5306e-10 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7646e-11 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5519e-11 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6045e-12 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7381e-06 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5577e-07 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3862e-07 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0355e-07 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.2512e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9515e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7495e-08 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0865e-08 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8703e-09 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7283e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1542e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2059e-10 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4599e-10 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0943e-11 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4830e-11 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7875e-12 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7623e-06 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.9530e-07 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5729e-07 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0257e-07 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1632e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8271e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6417e-08 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0012e-08 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7029e-09 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8937e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2413e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.3011e-10 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8860e-10 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.0475e-11 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8786e-11 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.5492e-12 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6641e-06 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5803e-07 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4771e-07 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9702e-08 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9466e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9677e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7366e-08 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.4666e-09 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6288e-09 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7672e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2599e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.1905e-10 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9051e-10 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.2762e-11 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -2.0003e-11 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6928e-12 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8159e-06 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.2475e-07 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3693e-07 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.5823e-08 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8506e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8429e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6058e-08 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0078e-08 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7197e-09 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8379e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3318e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.2979e-10 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9045e-10 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.5323e-11 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9017e-11 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4899e-12 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7093e-06 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7794e-07 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5944e-07 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0478e-07 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2844e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9112e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6568e-08 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.8708e-09 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3499e-09 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8653e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2449e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.1574e-10 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9242e-10 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.3395e-11 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8717e-11 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5733e-12 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7949e-06 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9879e-07 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5390e-07 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7377e-08 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0851e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8175e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6713e-08 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3526e-09 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5767e-09 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7751e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3262e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4680e-10 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8629e-10 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.0076e-11 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9278e-11 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.6831e-12 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6954e-06 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9984e-07 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3917e-07 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0204e-07 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8523e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9198e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6802e-08 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4941e-09 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.7385e-09 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9146e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2685e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0050e-10 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8482e-10 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.3099e-11 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9336e-11 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.0749e-12 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7698e-06 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1291e-07 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6236e-07 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7626e-08 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9567e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8725e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6166e-08 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5975e-09 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.6101e-09 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8352e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2851e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0927e-10 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9235e-10 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.1639e-11 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8565e-11 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5465e-12 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6749e-06 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5757e-07 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4419e-07 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4893e-08 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8629e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7843e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6525e-08 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3413e-09 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3234e-09 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8421e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2751e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0484e-10 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1904e-10 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6859e-11 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4229e-11 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1622e-12 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7255e-06 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5846e-07 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5631e-07 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0036e-07 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1221e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9906e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6103e-08 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1903e-09 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8992e-09 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8033e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3578e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8824e-10 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3094e-10 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.3042e-11 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4214e-11 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3972e-12 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7475e-06 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8109e-07 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4462e-07 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0440e-07 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8204e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8632e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6734e-08 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1850e-09 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3481e-09 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6744e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3510e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8844e-10 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2048e-10 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.2168e-11 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4138e-11 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3179e-12 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8202e-06 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5954e-07 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5236e-07 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9434e-08 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2038e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8688e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6821e-08 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0784e-09 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9268e-09 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8179e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3338e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5910e-10 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1159e-10 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6622e-11 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3034e-11 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4175e-12 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6971e-06 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7817e-07 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4182e-07 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7577e-08 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8688e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9242e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7129e-08 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1385e-09 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0194e-09 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7478e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3811e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6350e-10 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1281e-10 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.7460e-11 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4909e-11 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1574e-12 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6763e-06 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7182e-07 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5844e-07 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8884e-08 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8602e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7165e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7311e-08 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4274e-09 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8767e-09 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8756e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3885e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6736e-10 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2295e-10 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4267e-11 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3344e-11 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7722e-12 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8081e-06 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6697e-07 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5162e-07 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0184e-07 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8329e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8332e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6667e-08 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.7064e-09 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3674e-09 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7790e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3896e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5284e-10 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3136e-10 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9697e-11 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3469e-11 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8919e-12 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7274e-06 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7955e-07 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4597e-07 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5608e-08 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1949e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7877e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6490e-08 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5815e-09 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2625e-09 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6797e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3987e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4812e-10 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1719e-10 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9669e-11 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2955e-11 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.2005e-12 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7119e-06 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0700e-07 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4503e-07 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8493e-08 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7941e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7554e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5955e-08 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1269e-09 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8671e-09 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6318e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2792e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1493e-10 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4998e-10 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6643e-11 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8463e-11 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0869e-12 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6817e-06 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6511e-07 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4074e-07 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5004e-08 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0909e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8809e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5633e-08 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4312e-09 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9453e-09 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6304e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2360e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8241e-10 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4746e-10 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.7162e-11 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9900e-11 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9991e-12 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7183e-06 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8063e-07 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3915e-07 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0362e-07 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9347e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8564e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6047e-08 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0083e-09 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9568e-09 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5508e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2913e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0441e-10 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3048e-10 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.4644e-11 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8929e-11 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.6873e-12 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7199e-06 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8270e-07 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5058e-07 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7187e-08 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8831e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8579e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7267e-08 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5140e-09 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8281e-09 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6496e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2618e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9749e-10 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3974e-10 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1349e-11 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9059e-11 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2498e-12 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7700e-06 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6039e-07 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5823e-07 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0190e-07 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1112e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7312e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5997e-08 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9910e-09 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9577e-09 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6390e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3487e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0513e-10 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3253e-10 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6604e-11 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.0109e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3444e-12 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7974e-06 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8063e-07 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6204e-07 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0423e-07 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0360e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8299e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6957e-08 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3423e-09 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7344e-09 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5772e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2495e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1806e-10 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3425e-10 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.9905e-11 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7563e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3864e-12 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6969e-06 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6245e-07 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4162e-07 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5385e-08 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1936e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9814e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6449e-08 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2788e-09 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9416e-09 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6340e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3481e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1502e-10 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3585e-10 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1824e-11 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7386e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5351e-12 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7609e-06 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7867e-07 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4427e-07 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0297e-07 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8936e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9831e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7307e-08 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2745e-09 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1817e-09 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6884e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2735e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8332e-10 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4575e-10 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.4456e-11 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8206e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5280e-12 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7507e-06 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2285e-07 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6030e-07 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6295e-08 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2897e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8042e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7005e-08 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0264e-09 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1644e-09 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4391e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1922e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7504e-10 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4395e-10 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1847e-11 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2891e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0663e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8155e-06 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8099e-07 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4908e-07 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8856e-08 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9306e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7664e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7170e-08 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2304e-09 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8323e-09 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4726e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2691e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7651e-10 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6562e-10 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2054e-11 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2347e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0355e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7303e-06 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7227e-07 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5041e-07 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0321e-07 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1948e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8644e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5701e-08 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9155e-09 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7408e-09 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5922e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2026e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6704e-10 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4343e-10 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5683e-11 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3919e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0545e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7716e-06 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0216e-07 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4667e-07 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4898e-08 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2016e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9614e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7106e-08 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9029e-09 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9453e-09 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6381e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2387e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0239e-10 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5267e-10 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4098e-11 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1824e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0618e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8396e-06 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1180e-07 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5434e-07 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4902e-08 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2265e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9236e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6648e-08 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8555e-09 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1621e-09 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5058e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3005e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9066e-10 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4889e-10 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9632e-11 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1443e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0202e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7347e-06 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2211e-07 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3859e-07 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0028e-07 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2450e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9002e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5784e-08 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3564e-09 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8828e-09 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6192e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2748e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7254e-10 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5710e-10 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6852e-11 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2276e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0054e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8139e-06 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7480e-07 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4597e-07 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0215e-07 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8912e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7192e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7262e-08 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3318e-09 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8044e-09 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4590e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2597e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9321e-10 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6380e-10 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4213e-11 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3740e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0654e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7309e-06 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1676e-07 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5796e-07 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0210e-07 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2649e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9812e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7311e-08 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9348e-09 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9985e-09 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5980e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2171e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0385e-10 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5380e-10 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2525e-11 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1510e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0227e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6622e-06 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2454e-07 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4800e-07 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5861e-08 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2303e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0025e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6279e-08 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8186e-09 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9104e-09 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6560e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2961e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9315e-10 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4316e-10 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4741e-11 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4053e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.9166e-12 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7358e-06 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9453e-07 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3783e-07 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0322e-07 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2948e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8137e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6020e-08 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6140e-09 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9280e-09 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5178e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2968e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9631e-10 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5835e-10 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9396e-11 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2866e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0631e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7970e-06 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1117e-07 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5817e-07 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8878e-08 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7992e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9595e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5745e-08 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3418e-09 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1055e-09 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6075e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2444e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8197e-10 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5355e-10 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0564e-10 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.6590e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1661e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8103e-06 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5660e-07 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5099e-07 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5348e-08 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2938e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8685e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6233e-08 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1012e-09 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8107e-09 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4309e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2490e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8480e-10 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4377e-10 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6294e-11 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7251e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1536e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7222e-06 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7428e-07 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6027e-07 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0037e-07 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2733e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7886e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6742e-08 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8237e-09 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8564e-09 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5892e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1998e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5450e-10 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4450e-10 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0334e-10 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8177e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2424e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6967e-06 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9158e-07 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4533e-07 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6783e-08 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7822e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9625e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6904e-08 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2789e-09 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8236e-09 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4022e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1627e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6834e-10 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4120e-10 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6624e-11 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7806e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2397e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7996e-06 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8668e-07 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5353e-07 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7245e-08 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1850e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9014e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7021e-08 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8310e-09 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9482e-09 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4801e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2168e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8711e-10 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5929e-10 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7076e-11 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8101e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2363e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6948e-06 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9684e-07 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5077e-07 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8109e-08 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0548e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9060e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6713e-08 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3693e-09 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9638e-09 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4734e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1573e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6886e-10 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5961e-10 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0011e-10 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7097e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1871e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6647e-06 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2429e-07 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4209e-07 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5310e-08 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9763e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8906e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6226e-08 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0144e-09 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1692e-09 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6378e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2057e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5828e-10 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4275e-10 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0418e-10 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8462e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1276e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8027e-06 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9529e-07 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5939e-07 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5561e-08 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1970e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7887e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6932e-08 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2060e-09 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8010e-09 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5410e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2491e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4205e-10 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4020e-10 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7471e-11 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5778e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1558e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7965e-06 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8065e-07 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4690e-07 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0165e-07 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0540e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7451e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6458e-08 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3683e-09 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0316e-09 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4092e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1738e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6280e-10 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4184e-10 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8244e-11 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4913e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1799e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6620e-06 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0115e-07 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6105e-07 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8252e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9402e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5996e-08 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2709e-09 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0931e-09 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4075e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2193e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9679e-10 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4281e-10 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8013e-11 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4903e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2029e-11 diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index 3e58d87..ce4a166 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -110,13 +110,19 @@ # ---------------------- # -hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) +n_layer = 30 +thicknesses = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=n_layer-1 +) dx = 100. hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') mesh_soundings = TensorMesh([hz, hx], x0='00') +n_param = n_layer*n_sounding + ############################################### # Defining a Model # ---------------------- @@ -133,7 +139,7 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -model = np.ones(mesh2D.nC) * background_conductivity +model = np.ones(n_param) * background_conductivity layer_ind = mesh2D.gridCC[:, -1] > -30. model[layer_ind] = overburden_conductivity @@ -147,7 +153,7 @@ def PolygonInd(mesh, pts): poly_inds = PolygonInd(mesh2D, pts) model[poly_inds] = slope_conductivity -mapping = maps.ExpMap(mesh2D) +mapping = maps.ExpMap(nP=n_param) # MODEL TO SOUNDING MODELS METHOD 1 # sounding_models = model.reshape(mesh2D.vnC, order='F') @@ -228,9 +234,9 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh_soundings, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, - Solver=PardisoSolver +simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, chi=chi, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) #simulation.model = sounding_models diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index e90b5c9..f010b88 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -177,23 +177,29 @@ # --------------- # -dx = 100. -hz = get_vertical_discretization_frequency( - frequencies, sigma_background=0.1, n_layer=30 +n_layer = 30 +thicknesses = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=n_layer-1 ) + +dx = 100. hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') mesh_soundings = TensorMesh([hz, hx], x0='00') +n_param = n_layer*n_sounding + + ############################################### # Defining a Model # ---------------------- # -conductivity = np.ones(mesh_soundings.nC) * 0.1 +conductivity = np.ones(n_param) * 0.1 -mapping = maps.ExpMap(mesh_soundings) +mapping = maps.ExpMap(nP=n_param) starting_model = np.log(conductivity) ####################################################################### @@ -204,36 +210,11 @@ # Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh_soundings, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, - n_cpu=2, verbose=True, Solver=PardisoSolver +simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, topo=topo, + parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) -#simulation.model = starting_model -# -#simulation.set_ij_n_layer() -# -#simulation._Jmatrix_sigma = [ -# run_simulation_FD(simulation.input_args(i, jac_switch='sensitivity_sigma')) for i in range(simulation.n_sounding) -#] -#print("J_sigma matrix shape") -#simulation._Jmatrix_sigma = np.hstack(simulation._Jmatrix_sigma) -#print(simulation._Jmatrix_sigma.shape) -#print("IJLayers shapes") -#for x in simulation.IJLayers: -# print(x.shape) - - - - - - - - - - - - @@ -269,7 +250,7 @@ # reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) -reg_map = maps.IdentityMap(nP=mesh_soundings.nC) +reg_map = maps.IdentityMap(nP=n_param) reg = regularization.Sparse( mesh_reg, mapping=reg_map, ) @@ -395,7 +376,7 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -true_model = np.ones(mesh2D.nC) * background_conductivity +true_model = np.ones(n_param) * background_conductivity layer_ind = mesh2D.gridCC[:, -1] > -30. true_model[layer_ind] = overburden_conductivity diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index e435c60..ac096a5 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -62,7 +62,7 @@ receiver_locations = np.c_[x, np.zeros(n_sounding), 20.*np.ones(n_sounding)] receiver_orientation = "z" # "x", "y" or "z" -times = np.logspace(-5, -2, 21) +times = np.logspace(-5, -2, 16) source_list = [] @@ -102,12 +102,22 @@ # ---------------------- # + +n_layer = 25 +thicknesses = get_vertical_discretization_time( + times, sigma_background=0.1, n_layer=n_layer-1 +) + dx = 100. -hz = get_vertical_discretization_time(times, sigma_background=0.1, n_layer=40) hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') mesh_soundings = TensorMesh([hz, hx], x0='00') +n_param = n_layer*n_sounding + + + ############################################### # Defining a Model # ---------------------- @@ -124,7 +134,7 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -model = np.ones(mesh2D.nC) * background_conductivity +model = np.ones(n_param) * background_conductivity layer_ind = mesh2D.gridCC[:, -1] > -30. model[layer_ind] = overburden_conductivity @@ -138,7 +148,7 @@ def PolygonInd(mesh, pts): poly_inds = PolygonInd(mesh2D, pts) model[poly_inds] = slope_conductivity -mapping = maps.ExpMap(mesh2D) +mapping = maps.ExpMap(nP=n_param) # MODEL TO SOUNDING MODELS METHOD 1 # sounding_models = model.reshape(mesh2D.vnC, order='F') @@ -216,9 +226,9 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( - mesh_soundings, survey=survey, sigmaMap=mapping, chi=chi, hz=hz, topo=topo, parallel=False, n_cpu=2, verbose=True, - Solver=PardisoSolver +simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, chi=chi, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) #simulation.model = sounding_models diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index bd213ca..ac6dca0 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -167,23 +167,28 @@ # ---------------------- # -dx = 100. -hz = get_vertical_discretization_time( - times, sigma_background=0.1, n_layer=25 +n_layer = 25 +thicknesses = get_vertical_discretization_time( + times, sigma_background=0.1, n_layer=n_layer-1 ) + +dx = 100. hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') mesh_soundings = TensorMesh([hz, hx], x0='00') +n_param = n_layer*n_sounding + ############################################### # Defining a Model # ---------------------- # -conductivity = np.ones(mesh_soundings.nC) * 0.1 +conductivity = np.ones(n_param) * 0.1 -mapping = maps.ExpMap(mesh_soundings) +mapping = maps.ExpMap(nP=n_param) starting_model = np.log(conductivity) ####################################################################### @@ -194,9 +199,9 @@ # Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationTD( - mesh_soundings, survey=survey, sigmaMap=mapping, hz=hz, topo=topo, parallel=False, - n_cpu=2, verbose=True, Solver=PardisoSolver +simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) #simulation.model = starting_model From bbeff615948de219e8bb81ecb49691d05bfba468 Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 23 Sep 2020 16:14:26 -0700 Subject: [PATCH 35/54] update to tutorials. Playing with lateral constrained. --- tutorials/assets/em1dtm_stitched_data.obs | 1598 ++++++++++----------- tutorials/plot_2_fdem_inv_stitched.py | 64 +- tutorials/plot_2_tdem_fwd_stitched.py | 6 + tutorials/plot_2_tdem_inv_stitched.py | 54 +- 4 files changed, 869 insertions(+), 853 deletions(-) diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index f3e4e5b..eb953c6 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,800 +1,800 @@ -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6707e-06 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-05 -6.9085e-07 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-05 -2.3826e-07 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -9.9392e-08 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-05 -5.3849e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-04 -3.1021e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -1.9575e-08 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-04 -1.1502e-08 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-04 -5.4841e-09 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.4886e-09 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-03 -9.0153e-10 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-03 -3.3421e-10 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.1077e-10 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-03 -3.5800e-11 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-03 -1.1477e-11 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -3.6369e-12 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7968e-06 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5810e-07 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4965e-07 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0412e-07 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8974e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -3.0033e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8362e-08 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.9860e-09 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.4562e-09 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8878e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2105e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.6241e-10 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5467e-10 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7272e-11 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4525e-11 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4759e-12 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7367e-06 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.9912e-07 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5106e-07 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0279e-07 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9554e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9616e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7249e-08 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0460e-08 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6615e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6624e-06 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-05 -6.9277e-07 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-05 -2.4258e-07 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0470e-07 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-05 -5.4138e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-04 -3.1963e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -2.0480e-08 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-04 -1.0686e-08 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-04 -5.3954e-09 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.3769e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-03 -9.6742e-10 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-03 -3.3938e-10 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.1050e-10 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-03 -3.7436e-11 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-03 -1.1358e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -3.8992e-12 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7357e-06 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0401e-07 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5596e-07 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0063e-07 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9790e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.7633e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7009e-08 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0529e-08 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.5891e-09 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6770e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1251e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3654e-10 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5539e-10 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9218e-11 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5902e-11 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4476e-12 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8064e-06 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1994e-07 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5220e-07 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0523e-07 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9191e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8318e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7063e-08 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0183e-08 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6822e-09 2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8066e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1310e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.1883e-10 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5732e-10 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.1339e-11 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5833e-11 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8117e-12 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8112e-06 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0144e-07 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3865e-07 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.5983e-08 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.7982e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9169e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8355e-08 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0763e-08 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9321e-09 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6178e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1316e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.4459e-10 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5488e-10 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7919e-11 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5599e-11 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7782e-12 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8063e-06 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1259e-07 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5158e-07 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0470e-07 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1378e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9163e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7552e-08 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0606e-08 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8410e-09 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7437e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1721e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2629e-10 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5438e-10 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8441e-11 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5402e-11 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5311e-12 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7551e-06 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0169e-07 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3761e-07 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0473e-07 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9150e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9013e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8383e-08 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0188e-08 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9032e-09 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7462e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1992e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.4307e-10 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5306e-10 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7646e-11 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5519e-11 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6045e-12 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7381e-06 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5577e-07 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3862e-07 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0355e-07 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.2512e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9515e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7495e-08 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0865e-08 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8703e-09 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7283e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1542e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2059e-10 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4599e-10 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0943e-11 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4830e-11 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7875e-12 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7623e-06 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.9530e-07 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5729e-07 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0257e-07 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1632e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8271e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6417e-08 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0012e-08 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7029e-09 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8937e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2413e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.3011e-10 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8860e-10 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.0475e-11 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8786e-11 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.5492e-12 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6641e-06 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.5803e-07 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4771e-07 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9702e-08 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9466e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9677e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7366e-08 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.4666e-09 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6288e-09 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7672e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2599e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.1905e-10 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9051e-10 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.2762e-11 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -2.0003e-11 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.6928e-12 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8159e-06 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.2475e-07 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3693e-07 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.5823e-08 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8506e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8429e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6058e-08 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0078e-08 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7197e-09 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8379e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3318e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.2979e-10 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9045e-10 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.5323e-11 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9017e-11 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.4899e-12 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7093e-06 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7794e-07 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5944e-07 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0478e-07 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2844e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9112e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6568e-08 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.8708e-09 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3499e-09 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8653e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2449e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.1574e-10 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9242e-10 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.3395e-11 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8717e-11 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5733e-12 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7949e-06 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9879e-07 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5390e-07 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7377e-08 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0851e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8175e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6713e-08 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3526e-09 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5767e-09 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7751e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3262e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4680e-10 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8629e-10 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.0076e-11 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9278e-11 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.6831e-12 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6954e-06 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9984e-07 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3917e-07 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0204e-07 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8523e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9198e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6802e-08 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4941e-09 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.7385e-09 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9146e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2685e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0050e-10 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8482e-10 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.3099e-11 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9336e-11 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.0749e-12 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7698e-06 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1291e-07 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6236e-07 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7626e-08 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9567e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8725e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6166e-08 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5975e-09 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.6101e-09 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8352e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2851e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0927e-10 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9235e-10 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.1639e-11 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8565e-11 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5465e-12 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6749e-06 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5757e-07 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4419e-07 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4893e-08 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8629e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7843e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6525e-08 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3413e-09 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3234e-09 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8421e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2751e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0484e-10 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1904e-10 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6859e-11 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4229e-11 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1622e-12 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7255e-06 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5846e-07 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5631e-07 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0036e-07 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1221e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9906e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6103e-08 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1903e-09 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8992e-09 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8033e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3578e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8824e-10 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3094e-10 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.3042e-11 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4214e-11 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3972e-12 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7475e-06 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8109e-07 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4462e-07 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0440e-07 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8204e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8632e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6734e-08 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1850e-09 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3481e-09 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6744e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3510e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8844e-10 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2048e-10 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.2168e-11 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4138e-11 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3179e-12 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8202e-06 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5954e-07 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5236e-07 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9434e-08 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2038e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8688e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6821e-08 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0784e-09 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9268e-09 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8179e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3338e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5910e-10 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1159e-10 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6622e-11 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3034e-11 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4175e-12 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6971e-06 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7817e-07 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4182e-07 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7577e-08 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8688e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9242e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7129e-08 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1385e-09 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0194e-09 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7478e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3811e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6350e-10 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1281e-10 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.7460e-11 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4909e-11 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1574e-12 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6763e-06 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7182e-07 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5844e-07 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8884e-08 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8602e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7165e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7311e-08 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4274e-09 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8767e-09 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8756e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3885e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6736e-10 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2295e-10 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4267e-11 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3344e-11 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7722e-12 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8081e-06 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6697e-07 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5162e-07 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0184e-07 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8329e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8332e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6667e-08 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.7064e-09 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3674e-09 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7790e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3896e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5284e-10 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3136e-10 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9697e-11 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3469e-11 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8919e-12 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7274e-06 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7955e-07 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4597e-07 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5608e-08 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1949e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7877e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6490e-08 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5815e-09 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2625e-09 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6797e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3987e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4812e-10 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1719e-10 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9669e-11 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2955e-11 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.2005e-12 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7119e-06 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0700e-07 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4503e-07 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8493e-08 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7941e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7554e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5955e-08 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1269e-09 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8671e-09 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6318e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2792e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1493e-10 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4998e-10 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6643e-11 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8463e-11 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0869e-12 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6817e-06 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6511e-07 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4074e-07 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5004e-08 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0909e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8809e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5633e-08 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4312e-09 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9453e-09 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6304e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2360e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8241e-10 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4746e-10 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.7162e-11 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9900e-11 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9991e-12 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7183e-06 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8063e-07 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3915e-07 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0362e-07 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9347e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8564e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6047e-08 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0083e-09 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9568e-09 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5508e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2913e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0441e-10 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3048e-10 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.4644e-11 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8929e-11 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.6873e-12 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7199e-06 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8270e-07 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5058e-07 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7187e-08 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8831e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8579e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7267e-08 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5140e-09 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8281e-09 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6496e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2618e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9749e-10 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3974e-10 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1349e-11 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9059e-11 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.2498e-12 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7700e-06 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6039e-07 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5823e-07 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0190e-07 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1112e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7312e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5997e-08 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9910e-09 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9577e-09 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6390e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3487e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0513e-10 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3253e-10 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6604e-11 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.0109e-11 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3444e-12 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7974e-06 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8063e-07 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6204e-07 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0423e-07 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0360e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8299e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6957e-08 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3423e-09 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7344e-09 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5772e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2495e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1806e-10 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3425e-10 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.9905e-11 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7563e-11 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3864e-12 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6969e-06 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6245e-07 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4162e-07 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5385e-08 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1936e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9814e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6449e-08 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2788e-09 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9416e-09 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6340e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3481e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1502e-10 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3585e-10 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1824e-11 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7386e-11 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5351e-12 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7609e-06 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7867e-07 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4427e-07 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0297e-07 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8936e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9831e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7307e-08 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2745e-09 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1817e-09 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6884e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2735e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8332e-10 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4575e-10 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.4456e-11 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8206e-11 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5280e-12 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7507e-06 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2285e-07 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6030e-07 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6295e-08 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2897e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8042e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7005e-08 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0264e-09 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1644e-09 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4391e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1922e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7504e-10 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4395e-10 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1847e-11 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2891e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0663e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8155e-06 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8099e-07 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4908e-07 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8856e-08 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9306e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7664e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7170e-08 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2304e-09 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8323e-09 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4726e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2691e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7651e-10 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6562e-10 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2054e-11 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2347e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0355e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7303e-06 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7227e-07 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5041e-07 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0321e-07 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1948e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8644e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5701e-08 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9155e-09 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7408e-09 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5922e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2026e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6704e-10 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4343e-10 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5683e-11 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3919e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0545e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7716e-06 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0216e-07 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4667e-07 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4898e-08 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2016e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9614e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7106e-08 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9029e-09 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9453e-09 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6381e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2387e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0239e-10 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5267e-10 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4098e-11 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1824e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0618e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8396e-06 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1180e-07 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5434e-07 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.4902e-08 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2265e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9236e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6648e-08 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8555e-09 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1621e-09 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5058e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3005e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9066e-10 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4889e-10 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9632e-11 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1443e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0202e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7347e-06 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2211e-07 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3859e-07 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0028e-07 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2450e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9002e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5784e-08 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3564e-09 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8828e-09 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6192e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2748e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7254e-10 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5710e-10 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6852e-11 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2276e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0054e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8139e-06 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7480e-07 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4597e-07 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0215e-07 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8912e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7192e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7262e-08 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3318e-09 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8044e-09 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4590e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2597e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9321e-10 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6380e-10 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4213e-11 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3740e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0654e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7309e-06 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1676e-07 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5796e-07 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0210e-07 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2649e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9812e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7311e-08 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9348e-09 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9985e-09 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5980e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2171e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0385e-10 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5380e-10 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2525e-11 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1510e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0227e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6622e-06 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2454e-07 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4800e-07 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5861e-08 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2303e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0025e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6279e-08 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8186e-09 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9104e-09 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6560e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2961e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9315e-10 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4316e-10 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4741e-11 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4053e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.9166e-12 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7358e-06 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9453e-07 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3783e-07 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0322e-07 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2948e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8137e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6020e-08 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6140e-09 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9280e-09 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5178e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2968e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9631e-10 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5835e-10 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9396e-11 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2866e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0631e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7970e-06 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1117e-07 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5817e-07 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8878e-08 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7992e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9595e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5745e-08 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3418e-09 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1055e-09 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6075e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2444e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8197e-10 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5355e-10 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0564e-10 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.6590e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1661e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8103e-06 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5660e-07 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5099e-07 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5348e-08 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2938e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8685e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6233e-08 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1012e-09 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8107e-09 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4309e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2490e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8480e-10 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4377e-10 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6294e-11 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7251e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1536e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7222e-06 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7428e-07 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6027e-07 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0037e-07 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2733e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7886e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6742e-08 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8237e-09 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8564e-09 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5892e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1998e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5450e-10 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4450e-10 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0334e-10 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8177e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2424e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6967e-06 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9158e-07 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4533e-07 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6783e-08 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7822e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9625e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6904e-08 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2789e-09 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8236e-09 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4022e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1627e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6834e-10 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4120e-10 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6624e-11 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7806e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2397e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7996e-06 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8668e-07 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5353e-07 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7245e-08 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1850e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9014e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7021e-08 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8310e-09 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9482e-09 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4801e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2168e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8711e-10 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5929e-10 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7076e-11 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8101e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2363e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6948e-06 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9684e-07 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5077e-07 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8109e-08 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0548e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9060e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6713e-08 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3693e-09 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9638e-09 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4734e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1573e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6886e-10 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5961e-10 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0011e-10 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7097e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1871e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6647e-06 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2429e-07 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4209e-07 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5310e-08 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9763e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8906e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6226e-08 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0144e-09 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1692e-09 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6378e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2057e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5828e-10 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4275e-10 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0418e-10 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8462e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1276e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8027e-06 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9529e-07 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5939e-07 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5561e-08 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1970e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7887e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6932e-08 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2060e-09 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8010e-09 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5410e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2491e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4205e-10 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4020e-10 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7471e-11 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5778e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1558e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7965e-06 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8065e-07 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4690e-07 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0165e-07 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0540e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7451e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6458e-08 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3683e-09 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0316e-09 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4092e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1738e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6280e-10 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4184e-10 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8244e-11 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4913e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1799e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6620e-06 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0115e-07 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6105e-07 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0346e-07 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8252e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9402e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5996e-08 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2709e-09 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0931e-09 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4075e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2193e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9679e-10 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4281e-10 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8013e-11 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4903e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2029e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1951e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.1980e-10 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4423e-10 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7003e-11 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4427e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7504e-12 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6769e-06 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0558e-07 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4780e-07 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9414e-08 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0861e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.7932e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7103e-08 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0953e-08 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9251e-09 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8342e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2162e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.5106e-10 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4709e-10 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9971e-11 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4961e-11 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7357e-12 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8255e-06 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.8430e-07 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4728e-07 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.8947e-08 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0208e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -3.0415e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7639e-08 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0222e-08 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8875e-09 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7891e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1049e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.5099e-10 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5705e-10 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0502e-11 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5117e-11 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6022e-12 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7315e-06 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1907e-07 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.6169e-07 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.7318e-08 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0389e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9157e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7873e-08 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0884e-08 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9506e-09 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7981e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1301e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2474e-10 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5194e-10 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8033e-11 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5177e-11 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5379e-12 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7801e-06 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.7673e-07 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4546e-07 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0222e-07 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8155e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8518e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7086e-08 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0154e-08 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.5417e-09 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6981e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1578e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3981e-10 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4895e-10 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0156e-11 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4428e-11 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8294e-12 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7738e-06 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.6634e-07 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4043e-07 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0083e-07 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8558e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8182e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7300e-08 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.2207e-09 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6263e-09 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9129e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3144e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.2776e-10 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8811e-10 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.9702e-11 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8796e-11 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8197e-12 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7936e-06 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1163e-07 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5827e-07 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9308e-08 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.7720e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9714e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6917e-08 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.5017e-09 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.2636e-09 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8615e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3407e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.0366e-10 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9807e-10 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.0296e-11 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9974e-11 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -6.0609e-12 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7028e-06 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.7451e-07 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3661e-07 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0488e-07 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1832e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9145e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.5915e-08 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.7991e-09 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7145e-09 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8266e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3508e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.1696e-10 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9364e-10 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.4370e-11 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9426e-11 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8308e-12 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6968e-06 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9937e-07 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5608e-07 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0242e-07 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0473e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8903e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6456e-08 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -1.0122e-08 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.7186e-09 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7541e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2535e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0644e-10 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9293e-10 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.2071e-11 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.0062e-11 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.4714e-12 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7340e-06 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9031e-07 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5162e-07 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6378e-08 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9286e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7127e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5775e-08 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2935e-09 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2886e-09 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9042e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2567e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0254e-10 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8033e-10 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -5.9911e-11 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8664e-11 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.9930e-12 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6756e-06 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5675e-07 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3903e-07 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0128e-07 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8248e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9546e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6895e-08 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3489e-09 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5992e-09 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7705e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3406e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4653e-10 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8808e-10 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.4901e-11 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9231e-11 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5148e-12 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7720e-06 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5966e-07 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3928e-07 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0525e-07 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8610e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9329e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5996e-08 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6227e-09 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5746e-09 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7180e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2366e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -4.9918e-10 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9878e-10 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.2267e-11 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8987e-11 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.6916e-12 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8317e-06 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5842e-07 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4103e-07 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0131e-07 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8069e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9644e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7138e-08 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3535e-09 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9675e-09 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6893e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3356e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9884e-10 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2187e-10 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9469e-11 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4998e-11 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4701e-12 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7083e-06 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7868e-07 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4366e-07 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8340e-08 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9806e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9146e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7151e-08 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0605e-09 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2038e-09 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7856e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3281e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7035e-10 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2389e-10 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.2174e-11 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3641e-11 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7826e-12 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7209e-06 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8514e-07 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5632e-07 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0543e-07 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7824e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9573e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6148e-08 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9073e-09 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9214e-09 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6671e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2873e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9854e-10 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2822e-10 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.1890e-11 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.5046e-11 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1370e-12 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7656e-06 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6932e-07 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5215e-07 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0230e-07 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2569e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9756e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6538e-08 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5895e-09 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0414e-09 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8426e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3045e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0543e-10 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2248e-10 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4734e-11 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2924e-11 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1835e-12 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8328e-06 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6844e-07 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5437e-07 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0326e-07 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8371e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8495e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6112e-08 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4333e-09 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1598e-09 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7542e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3118e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7681e-10 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1792e-10 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4204e-11 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2920e-11 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8893e-12 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6655e-06 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0562e-07 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4505e-07 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9523e-08 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7869e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7856e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6407e-08 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0495e-09 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9339e-09 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6457e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2869e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6042e-10 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1012e-10 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6651e-11 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.5096e-11 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0611e-12 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7165e-06 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8988e-07 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5550e-07 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9300e-08 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8087e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7447e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6154e-08 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3269e-09 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9060e-09 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6853e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3775e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5684e-10 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1196e-10 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4162e-11 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4216e-11 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8378e-12 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6772e-06 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6196e-07 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4169e-07 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7807e-08 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0476e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8613e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7008e-08 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5013e-09 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0531e-09 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8502e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2838e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6124e-10 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2653e-10 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.8504e-11 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3207e-11 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3340e-12 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6696e-06 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9120e-07 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6030e-07 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0213e-07 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1382e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0023e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6148e-08 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5909e-09 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2211e-09 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6773e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3536e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6705e-10 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4576e-10 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1010e-11 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9362e-11 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.4301e-12 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7020e-06 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8374e-07 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4750e-07 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0138e-07 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2067e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7233e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6261e-08 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8549e-09 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1647e-09 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5023e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3549e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0104e-10 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3513e-10 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.0354e-11 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7744e-11 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3332e-12 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6879e-06 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9875e-07 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4498e-07 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9305e-08 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1724e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7203e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6823e-08 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3877e-09 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1189e-09 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5154e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3495e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7428e-10 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3025e-10 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.5320e-11 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7226e-11 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.7078e-12 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7310e-06 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6157e-07 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4611e-07 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0375e-07 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9483e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8029e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6769e-08 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8452e-09 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8185e-09 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5620e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2936e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.2476e-10 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5418e-10 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.9755e-11 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9924e-11 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9603e-12 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7584e-06 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7670e-07 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5453e-07 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9704e-08 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8101e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7687e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5750e-08 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5756e-09 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9935e-09 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6654e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3695e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1482e-10 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4388e-10 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1976e-11 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9905e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5356e-12 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6978e-06 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7413e-07 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4467e-07 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9513e-08 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1872e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8586e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7143e-08 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6545e-09 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9240e-09 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6508e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2752e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7247e-10 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4336e-10 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.5674e-11 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7313e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9034e-12 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8019e-06 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9542e-07 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4724e-07 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6694e-08 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2049e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9793e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6921e-08 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3893e-09 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8715e-09 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7224e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2552e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1005e-10 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3981e-10 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.0712e-11 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9029e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.8932e-12 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6693e-06 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6067e-07 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5235e-07 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0067e-07 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9426e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9400e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6393e-08 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2365e-09 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8347e-09 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6803e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2676e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7185e-10 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4516e-10 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6433e-11 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8693e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0168e-12 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7456e-06 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8089e-07 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6151e-07 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0440e-07 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9160e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0017e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6068e-08 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7945e-09 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1176e-09 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4741e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2008e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8065e-10 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6170e-10 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5039e-11 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2484e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0220e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6683e-06 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0964e-07 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3930e-07 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0354e-07 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9249e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7255e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7009e-08 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1174e-09 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0657e-09 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5758e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2197e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8546e-10 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5197e-10 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5189e-11 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4218e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0065e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7515e-06 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9434e-07 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5653e-07 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0166e-07 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9308e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7421e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6973e-08 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9862e-09 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8212e-09 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5679e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1912e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0389e-10 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5012e-10 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.3080e-11 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4436e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0379e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6954e-06 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8748e-07 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5424e-07 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0302e-07 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0886e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7314e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6932e-08 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3720e-09 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0807e-09 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5450e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2679e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1378e-10 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6428e-10 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6634e-11 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1364e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0065e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7784e-06 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9071e-07 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5425e-07 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9844e-08 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8544e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9507e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6676e-08 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0693e-09 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1838e-09 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4636e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3080e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0516e-10 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4449e-10 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4615e-11 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2687e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0710e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7694e-06 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9846e-07 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4672e-07 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0458e-07 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0438e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7750e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6178e-08 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1540e-09 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7063e-09 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4177e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2949e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5962e-10 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4124e-10 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4529e-11 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3152e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0240e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7611e-06 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2279e-07 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5488e-07 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0312e-07 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0858e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9412e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5912e-08 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0805e-09 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0117e-09 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4741e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1976e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9055e-10 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4019e-10 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2681e-11 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2893e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0630e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7691e-06 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7003e-07 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4955e-07 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5963e-08 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9733e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9690e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5679e-08 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1580e-09 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8570e-09 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6260e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1931e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1583e-10 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5737e-10 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7501e-11 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2971e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0305e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7642e-06 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9043e-07 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6148e-07 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6994e-08 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1573e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9056e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6494e-08 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2700e-09 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1816e-09 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5382e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2748e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6742e-10 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5150e-10 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5335e-11 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4437e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0091e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7041e-06 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9111e-07 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4137e-07 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0533e-07 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9198e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8599e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7278e-08 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1504e-09 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7988e-09 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5031e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2676e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0397e-10 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5497e-10 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0124e-10 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2849e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0266e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7619e-06 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0116e-07 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6117e-07 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7785e-08 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0781e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7358e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6986e-08 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5802e-09 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8601e-09 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.3883e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2241e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5445e-10 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4783e-10 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0031e-10 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7622e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1299e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7060e-06 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1399e-07 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6212e-07 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8059e-08 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8824e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7395e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6601e-08 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8804e-09 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8337e-09 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5045e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2842e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7664e-10 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5598e-10 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0033e-10 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7034e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1994e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6953e-06 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0787e-07 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4425e-07 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5390e-08 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0861e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0020e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7160e-08 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7894e-09 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8945e-09 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6329e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1981e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9858e-10 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5345e-10 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0181e-10 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8473e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1511e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8218e-06 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6599e-07 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5319e-07 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8873e-08 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8281e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9359e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6262e-08 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8593e-09 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1337e-09 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6302e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2461e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7272e-10 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4282e-10 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0286e-10 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7025e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1620e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7103e-06 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2148e-07 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5232e-07 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0209e-07 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1253e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8255e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6434e-08 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3604e-09 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0298e-09 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4972e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1711e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7155e-10 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5832e-10 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6300e-11 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5170e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1874e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8344e-06 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8942e-07 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5197e-07 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0532e-07 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0923e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7406e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6253e-08 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0932e-09 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1090e-09 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5688e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1929e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4122e-10 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5875e-10 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0341e-10 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5353e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1690e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6622e-06 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8073e-07 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3622e-07 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6135e-08 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9907e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0023e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6208e-08 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1200e-09 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0262e-09 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5014e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2760e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4148e-10 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6358e-10 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6701e-11 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7702e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2341e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6655e-06 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7738e-07 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6043e-07 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0005e-07 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0568e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9140e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5962e-08 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6297e-09 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7294e-09 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4943e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2201e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9365e-10 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4191e-10 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0604e-10 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7845e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1740e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8301e-06 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7001e-07 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4238e-07 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7569e-08 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2884e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7172e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6850e-08 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7862e-09 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1942e-09 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.3921e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2762e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8624e-10 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5791e-10 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8150e-11 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4963e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2479e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6775e-06 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7824e-07 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5932e-07 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0296e-07 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2154e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9303e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6944e-08 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4676e-09 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7666e-09 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4630e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2063e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7499e-10 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5325e-10 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0539e-10 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7147e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2191e-11 diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index f010b88..40d57d3 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -239,21 +239,21 @@ # Define the regularization (model objective function) mesh_reg = get_2d_mesh(n_sounding, hz) -# reg_map = maps.IdentityMap(mesh_reg) -# reg = LateralConstraint( -# mesh_reg, mapping=reg_map, -# alpha_s = 0.1, -# alpha_x = 0.0001, -# alpha_y = 1., -# ) -# xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) -# reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) - - reg_map = maps.IdentityMap(nP=n_param) -reg = regularization.Sparse( +reg = LateralConstraint( mesh_reg, mapping=reg_map, + alpha_s = 0.01, + alpha_x = 1., + alpha_y = 1., ) +xy = utils.ndgrid(x, np.r_[0.]) +reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +# reg_map = maps.IdentityMap(nP=n_param) +# reg = regularization.Sparse( +# mesh_reg, mapping=reg_map, +# ) ps, px, py = 1, 1, 1 reg.norms = np.c_[ps, px, py, 0] @@ -261,6 +261,10 @@ reg.mref = starting_model reg.mrefInSmooth = True +# reg.eps_p = 1e-6 +# reg.eps_q = 1e-6 + + # Define how the optimization problem is solved. Here we will use an inexact # Gauss-Newton approach that employs the conjugate gradient solver. opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) @@ -297,7 +301,7 @@ # Defining a starting value for the trade-off parameter (beta) between the data # misfit and the regularization. -starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=100) beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) @@ -312,7 +316,7 @@ update_IRLS = directives.Update_IRLS( max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, - f_min_change = 1e-3, + f_min_change = 1e-4, coolingRate=3 ) @@ -320,7 +324,7 @@ update_jacobi = directives.UpdatePreconditioner() # Setting a stopping criteria for the inversion. -#target_misfit = directives.TargetMisfit(chifact=1) +target_misfit = directives.TargetMisfit(chifact=1) # Add sensitivity weights sensitivity_weights = directives.UpdateSensitivityWeights() @@ -333,13 +337,14 @@ starting_beta, beta_schedule, save_iteration, + target_misfit, update_IRLS, update_jacobi, ] -opt.LSshorten = 0.5 -opt.remember('xc') +# opt.LSshorten = 0.5 +# opt.remember('xc') ##################################################################### # Running the Inversion @@ -390,12 +395,6 @@ def PolygonInd(mesh, pts): poly_inds = PolygonInd(mesh2D, pts) true_model[poly_inds] = slope_conductivity -true_model = true_model.reshape(mesh_soundings.vnC, order='C') -true_model = np.flipud(true_model) -true_model = mkvc(true_model) - - - l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) @@ -404,27 +403,33 @@ def PolygonInd(mesh, pts): dpred = simulation.dpred(recovered_model) recovered_model = np.exp(recovered_model) +mesh_plotting = TensorMesh([hx, np.flipud(hz)], x0='0N') +l2_model = l2_model.reshape(mesh_plotting.vnC, order='C') +l2_model = mkvc(np.fliplr(l2_model)) +recovered_model = recovered_model.reshape(mesh_plotting.vnC, order='C') +recovered_model = mkvc(np.fliplr(recovered_model)) + + models_list = [true_model, l2_model, recovered_model] + for ii, mod in enumerate(models_list): fig = plt.figure(figsize=(9, 3)) ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(mod) - mesh_soundings.plotImage( + mesh_plotting.plotImage( log_mod, ax=ax1, grid=False, clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) - ax1.set_ylim(mesh_soundings.vectorNy.max(), mesh_soundings.vectorNy.min()) + ax1.set_ylim(mesh_plotting.vectorNy.min(), mesh_plotting.vectorNy.max()) ax1.set_title("Conductivity Model") - # ax1.set_xlabel("x (m)") - # ax1.set_ylabel("depth (m)") - ax1.set_xlabel("depth (m)") - ax1.set_ylabel("Sounding Distance (m)") + ax1.set_xlabel("x (m)") + ax1.set_ylabel("depth (m)") ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) norm = mpl.colors.Normalize( @@ -436,7 +441,6 @@ def PolygonInd(mesh, pts): ) cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) - diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index ac096a5..7d229e2 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -160,6 +160,11 @@ def PolygonInd(mesh, pts): sounding_models = np.flipud(sounding_models) sounding_models = mkvc(sounding_models) +# FROM SOUNDING MODEL TO REGULAR +# temp_model = sounding_models.reshape(mesh2D.vnC, order='C') +# temp_model = np.fliplr(temp_model) +# temp_model = mkvc(temp_model) + chi = np.zeros_like(sounding_models) @@ -167,6 +172,7 @@ def PolygonInd(mesh, pts): fig = plt.figure(figsize=(9, 3)) ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(model) +# log_mod = np.log10(temp_model) mesh2D.plotImage( log_mod, ax=ax1, grid=True, diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index ac6dca0..f4038f2 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -253,21 +253,21 @@ # Define the regularization (model objective function) mesh_reg = get_2d_mesh(n_sounding, hz) -# reg_map = maps.IdentityMap(mesh_reg) -# reg = LateralConstraint( -# mesh_reg, mapping=reg_map, -# alpha_s = 0.1, -# alpha_x = 0.0001, -# alpha_y = 1., -# ) -# xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) -# reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) - - -reg_map = maps.IdentityMap(nP=mesh_soundings.nC) -reg = regularization.Sparse( +reg_map = maps.IdentityMap(mesh_reg) +reg = LateralConstraint( mesh_reg, mapping=reg_map, + alpha_s = 0.01, + alpha_x = 1., + alpha_y = 1., ) +xy = utils.ndgrid(x, np.r_[0.]) +reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +# reg_map = maps.IdentityMap(nP=mesh_soundings.nC) +# reg = regularization.Sparse( +# mesh_reg, mapping=reg_map, +# ) ps, px, py = 1, 1, 1 reg.norms = np.c_[ps, px, py, 0] @@ -334,7 +334,7 @@ update_jacobi = directives.UpdatePreconditioner() # Setting a stopping criteria for the inversion. -#target_misfit = directives.TargetMisfit(chifact=1) +target_misfit = directives.TargetMisfit(chifact=1) # Add sensitivity weights sensitivity_weights = directives.UpdateSensitivityWeights() @@ -347,14 +347,11 @@ starting_beta, beta_schedule, save_iteration, + target_misfit, update_IRLS, update_jacobi, ] - -opt.LSshorten = 0.5 -opt.remember('xc') - ##################################################################### # Running the Inversion # --------------------- @@ -404,15 +401,15 @@ def PolygonInd(mesh, pts): poly_inds = PolygonInd(mesh2D, pts) true_model[poly_inds] = slope_conductivity -true_model = true_model.reshape(mesh_soundings.vnC, order='C') -true_model = np.flipud(true_model) -true_model = mkvc(true_model) +# true_model = true_model.reshape(mesh_soundings.vnC, order='C') +# true_model = np.flipud(true_model) +# true_model = mkvc(true_model) l2_model = inv_prob.l2model dpred_l2 = simulation.dpred(l2_model) l2_model = np.exp(l2_model) -# l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) +# l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer),) # l2_model = mkvc(l2_model) dpred = simulation.dpred(recovered_model) @@ -420,21 +417,30 @@ def PolygonInd(mesh, pts): # recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) # recovered_model = mkvc(recovered_model) + +mesh_plotting = TensorMesh([hx, np.flipud(hz)], x0='0N') +l2_model = l2_model.reshape(mesh_plotting.vnC, order='C') +l2_model = mkvc(np.fliplr(l2_model)) +recovered_model = recovered_model.reshape(mesh_plotting.vnC, order='C') +recovered_model = mkvc(np.fliplr(recovered_model)) + + models_list = [true_model, l2_model, recovered_model] + for ii, mod in enumerate(models_list): fig = plt.figure(figsize=(9, 3)) ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(mod) - mesh_soundings.plotImage( + mesh_plotting.plotImage( log_mod, ax=ax1, grid=False, clim=(np.log10(true_model.min()), np.log10(true_model.max())), # clim=(np.log10(0.1), np.log10(1)), pcolorOpts={"cmap": "viridis"}, ) - ax1.set_ylim(mesh_soundings.vectorNy.max(), mesh_soundings.vectorNy.min()) + ax1.set_ylim(mesh_plotting.vectorNy.min(), mesh_plotting.vectorNy.max()) ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") From adbf81ea66f6961762cebfbddce7501760b4f6e1 Mon Sep 17 00:00:00 2001 From: dccowan Date: Thu, 24 Sep 2020 16:35:01 -0700 Subject: [PATCH 36/54] Source and receiver docstrings as well as organizing properties. --- simpegEM1D/receivers.py | 46 +- simpegEM1D/simulation.py | 11 +- simpegEM1D/sources.py | 157 +- simpegEM1D/supporting_functions/kernels.py | 12 +- tutorials/assets/em1dfm_stitched_data.obs | 600 ++++---- tutorials/assets/em1dtm_stitched_data.obs | 1600 ++++++++++---------- tutorials/plot_1_fdem_fwd.py | 3 +- tutorials/plot_1_fdem_fwd_chargeable.py | 3 +- tutorials/plot_1_fdem_fwd_sources.py | 4 +- tutorials/plot_2_fdem_fwd_stitched.py | 2 +- tutorials/plot_2_fdem_inv_stitched.py | 15 +- tutorials/plot_2_tdem_fwd_stitched.py | 2 +- tutorials/plot_2_tdem_inv_stitched.py | 10 +- 13 files changed, 1258 insertions(+), 1207 deletions(-) diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 18c2e1c..146ae0a 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -4,9 +4,19 @@ class HarmonicPointReceiver(BaseRx): + """ + Receiver class for simulating the harmonic magnetic field at a point. + + :param numpy.ndarray locations: receiver locations (ie. :code:`np.r_[x,y,z]`) + :param numpy.array frequencies: frequencies [Hz] + :param string orientation: receiver orientation 'x', 'y' or 'z' + :param string component: real or imaginary component 'real' or 'imag' + :param string field_type: field type 'secondary', 'total' or 'ppm' + :param bool use_source_receiver_offset: actual receiver location (False). Source-receiver offset (True) + """ locations = properties.Array( - "Receiver Location", dtype=float, shape=("*",), required=True + "Receiver Locations", dtype=float, shape=("*",), required=True ) frequencies = properties.Array( @@ -17,12 +27,6 @@ class HarmonicPointReceiver(BaseRx): "Field orientation", default="z", choices=["x", "y", "z"] ) - field_type = properties.StringChoice( - "Data type", - default="secondary", - choices=["total", "secondary", "ppm"] - ) - component = properties.StringChoice( "component of the field (real or imag)", { "real": ["re", "in-phase", "in phase"], @@ -30,12 +34,17 @@ class HarmonicPointReceiver(BaseRx): } ) + field_type = properties.StringChoice( + "Data type", + default="secondary", + choices=["total", "secondary", "ppm"] + ) + use_source_receiver_offset = properties.Bool( "Use source-receiver offset", default=False ) - def __init__(self, locations=None, frequencies=None, orientation=None, field_type=None, component=None, use_source_receiver_offset=None, **kwargs): super(HarmonicPointReceiver, self).__init__(locations, **kwargs) @@ -53,6 +62,17 @@ def __init__(self, locations=None, frequencies=None, orientation=None, field_typ class TimeDomainPointReceiver(BaseTimeRx): + """ + Receiver class for simulating the time-domain magnetic response at a point. + + :param numpy.ndarray locations: receiver locations (ie. :code:`np.r_[x,y,z]`) + :param numpy.array times: time channels [s] + :param string orientation: receiver orientation 'x', 'y' or 'z' + :param string component: data component 'h', 'b', 'dhdt' or 'dbdt' + :param numpy.array frequencies: frequencies used to compute harmonic response + :param numpy.array time_interval: on-times [s] + :param bool use_source_receiver_offset: actual receiver location (False). Source-receiver offset (True) + """ ftarg = None @@ -60,6 +80,8 @@ class TimeDomainPointReceiver(BaseTimeRx): "Receiver Location", dtype=float, shape=("*",), required=True ) + # times property is inherited from BaseTimeRx class + orientation = properties.StringChoice( "Field orientation", default="z", choices=["z"] ) @@ -84,7 +106,6 @@ class TimeDomainPointReceiver(BaseTimeRx): ) - def __init__(self, locations=None, times=None, orientation=None, component=None, use_source_receiver_offset=None, **kwargs): super(TimeDomainPointReceiver, self).__init__(locations, times, **kwargs) @@ -100,17 +121,18 @@ def __init__(self, locations=None, times=None, orientation=None, component=None, self.field_type = "secondary" - @property def n_time(self): + """ + Number of time channels + """ return int(self.times.size) @property def n_frequency(self): """ - # of frequency + Number of frequencies """ return int(self.frequencies.size) - diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 27e4583..86f3778 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -251,8 +251,6 @@ def compute_integral(self, m, output_type='response'): for ii, src in enumerate(self.survey.source_list): - I = src.I - for jj, rx in enumerate(src.receiver_list): n_frequency = len(rx.frequencies) @@ -294,7 +292,7 @@ def compute_integral(self, m, output_type='response'): # Get kernel function at all lambda and frequencies PJ = magnetic_dipole_kernel( - self, lambd, f, n_layer, sig, chi, I, h, z, r, + self, lambd, f, n_layer, sig, chi, h, z, r, src, rx, output_type ) @@ -330,7 +328,7 @@ def compute_integral(self, m, output_type='response'): elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - + # radial distance and loop radius if rx.use_source_receiver_offset: r = rx.locations[0:2] @@ -348,9 +346,8 @@ def compute_integral(self, m, output_type='response'): ) hz = horizontal_loop_kernel( - self, lambd, f, n_layer, - sig, chi, I, a_vec, h, z, r, - rx.orientation, output_type + self, lambd, f, n_layer, sig, chi, a_vec, h, z, r, + src, rx, output_type ) # kernels for each bessel function diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index b18e8ad..7bf4bea 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -5,73 +5,40 @@ - -############################################################################### -# # -# Sources # -# # -############################################################################### - -class BaseSrc(survey.BaseSrc): - """ - Base source class for EM1D - - """ - - _offset_list = properties.List("List containing offsets") # Contains the list of xyz offsets for each source-receiver pair - - I = properties.Float("Source loop current", default=1.) - - def __init__(self, receiver_list=None, **kwargs): - super(BaseSrc, self).__init__(receiver_list=receiver_list, **kwargs) - - @property - def offset_list(self): - - if self._offset_list is not None: - return self._offset_list - - else: - if self.receiver_list is not None: - temp = len(self.receiver_list)*[None] - src_loc = np.reshape(self.location, (1, 3)) - for ii, rx in enumerate(self.receiver_list): - temp[ii] = rx.locations - np.repeat(src_loc, rx.nD, axis=0) - - self._offset_list = temp - return self._offset_list - - else: - return - - ############################################################################# # Harmonic Sources ############################################################################# -class BaseHarmonicSrc(BaseSrc): - - def __init__(self, receiver_list=None, **kwargs): - super(BaseHarmonicSrc, self).__init__(receiver_list=receiver_list, **kwargs) - +class HarmonicMagneticDipoleSource(survey.BaseSrc): + """ + Harmonic magnetic dipole source. -class HarmonicMagneticDipoleSource(BaseSrc): + :param numpy.array location: source location (x,y,z) + :param string orientation: dipole orientation 'x', 'y' or 'z' + :param float moment_amplitude: magnitude of the dipole moment |m| + """ orientation = properties.StringChoice( - "Dipole Orientation", default="z", choices=["x", "y", "z"] + "Magnetic dipole orientation", default="z", choices=["x", "y", "z"] ) + moment_amplitude = properties.Float("Magnitude of the dipole moment", default=1.) + def __init__(self, receiver_list=None, **kwargs): super(HarmonicMagneticDipoleSource, self).__init__(receiver_list=receiver_list, **kwargs) def PrimaryField(self, xyz, is_offset=False): + """ + Computes primary magnetic field (H) in units A/m - # xyz is np.array(N, 3) with receiver locations - # is_offet defines whether rx positions or absolute of source-receiver offset + :param numpy.ndarray xyz: np.array(N, 3) containing observation locations + :param bool is_offset: true receiver locations (False) or source-receier offset (True) + :rtype: numpy.ndarray: np.array(N, 3) array containing [Hx,Hy,Hz] values + :return: x,y,z components of the primary magnetic field + """ - I = self.I if is_offset: r0 = np.zeros(3) else: @@ -91,10 +58,19 @@ def PrimaryField(self, xyz, is_offset=False): hy0 = (1/(4*np.pi))*(3*(xyz[1]-r0[1])*mdotr/r**5 - m[1]/r**3) hz0 = (1/(4*np.pi))*(3*(xyz[2]-r0[2])*mdotr/r**5 - m[2]/r**3) - return I*np.c_[hx0, hy0, hz0] + return self.moment_amplitude*np.c_[hx0, hy0, hz0] -class HarmonicHorizontalLoopSource(BaseSrc): +class HarmonicHorizontalLoopSource(survey.BaseSrc): + """ + Harmonic horizontal loop source. + + :param numpy.array locations: source location (x,y,z) + :param float I: current amplitude [A] + :param float a: loop radius [m] + """ + + I = properties.Float("Source loop current", default=1.) a = properties.Float("Source loop radius", default=1.) @@ -102,10 +78,15 @@ def __init__(self, receiver_list=None, **kwargs): super(HarmonicHorizontalLoopSource, self).__init__(receiver_list=receiver_list, **kwargs) - def PrimaryField(self, is_offset=False): + def PrimaryField(self, xyz, is_offset=False): + """ + Computes primary magnetic field (H) in units A/m - # xyz is np.array(N, 3) with receiver locations - # is_offet defines whether rx positions or absolute of source-receiver offset + :param numpy.ndarray xyz: np.array(N, 3) containing observation locations + :param bool is_offset: true receiver locations (False) or source-receier offset (True) + :rtype: numpy.ndarray: np.array(N, 3) array containing [Hx,Hy,Hz] values + :return: x,y,z components of the primary magnetic field + """ a = self.a I = self.I @@ -152,16 +133,35 @@ def PrimaryField(self, is_offset=False): return np.c_[hx0, hy0, hz0] -class HarmonicLineSource(BaseSrc): +class HarmonicCurrentLineSource(survey.BaseSrc): + """ + Harmonic current line source. + + :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments + :param float I: current amplitude [A] + """ node_locations = properties.Array( - "Source path (xi, yi, zi), i=0,...N", + "Source path (xi, yi, zi), i=0,...,N", dtype=float ) + I = properties.Float("Source current", default=1.) + + + def __init__(self, receiver_list=None, **kwargs): + super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) + + def PrimaryField(self, xyz): + """ + Computes primary magnetic field (H) in units A/m - # This could be more efficient given online on rx loc right now + :param numpy.ndarray xyz: np.array(N, 3) containing observation locations + :param bool is_offset: true receiver locations (False) or source-receier offset (True) + :rtype: numpy.ndarray: np.array(N, 3) array containing [Hx,Hy,Hz] values + :return: x,y,z components of the primary magnetic field + """ I = self.I tx_nodes = self.node_locations @@ -223,16 +223,19 @@ def PrimaryField(self, xyz): return np.c_[hx0, hy0, hz0] - def __init__(self, receiver_list=None, **kwargs): - super(HarmonicLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - - ############################################################################# # Time Sources ############################################################################# -class BaseTimeSrc(BaseSrc): +class BaseTimeSrc(survey.BaseSrc): + """ + Base class for EM1D time-domain sources. + + :param numpy.array location: source location (x,y,z) + :param string orientation: dipole orientation 'x', 'y' or 'z' + :param float moment_amplitude: magnitude of the dipole moment |m| + """ wave_type = properties.StringChoice( "Waveform", @@ -337,6 +340,15 @@ def nD(self): class TimeDomainMagneticDipoleSource(BaseTimeSrc): + """ + Time-domain magnetic dipole source. + + :param numpy.array location: source location (x,y,z) + :param string orientation: dipole orientation 'z' + :param float moment_amplitude: magnitude of the dipole moment |m| + """ + + moment_amplitude = properties.Float("Magnitude of the dipole moment", default=1.) orientation = properties.StringChoice( "Dipole Orientation", default="z", choices=["z"] @@ -347,6 +359,15 @@ def __init__(self, receiver_list=None, **kwargs): class TimeDomainHorizontalLoopSource(BaseTimeSrc): + """ + Time-domain horizontal loop source. + + :param numpy.array location: source location (x,y,z) + :param float I: source current amplitude [A] + :param float a: loop radius [m] + """ + + I = properties.Float("Source loop current", default=1.) a = properties.Float("Source loop radius", default=1.) @@ -355,8 +376,16 @@ def __init__(self, receiver_list=None, **kwargs): class TimeDomainLineSource(BaseTimeSrc): + """ + Time-domain current line source. + + :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments + :param float I: current amplitude [A] + """ + + I = properties.Float("Source loop current", default=1.) - src_path = properties.Array( + node_locations = properties.Array( "Source path (xi, yi, zi), i=0,...N", dtype=float ) diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index adfa5f5..9cda24d 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -519,7 +519,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): def magnetic_dipole_kernel( - simulation, lamda, f, n_layer, sig, chi, I, h, z, r, + simulation, lamda, f, n_layer, sig, chi, h, z, r, src, rx, output_type='response' ): @@ -570,7 +570,7 @@ def magnetic_dipole_kernel( """ # coefficient_wavenumber = 1/(4*np.pi)*lamda**2 - C = I/(4*np.pi) + C = src.moment_amplitude/(4*np.pi) n_frequency = len(f) n_filter = simulation.n_filter @@ -758,10 +758,12 @@ def magnetic_dipole_fourier( # COMPUTE KERNEL FUNCTIONS FOR FOURIER TRANSFORM return C * lamda**2 * rTE + + # TODO: make this to take a vector rather than a single frequency def horizontal_loop_kernel( - simulation, lamda, f, n_layer, sig, chi, I, a, h, z, r, - rx_orientation="z", output_type='response' + simulation, lamda, f, n_layer, sig, chi, a, h, z, r, + src, rx, output_type='response' ): """ @@ -794,7 +796,7 @@ def horizontal_loop_kernel( radius = np.empty([n_frequency, n_filter], order='F') radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) - coefficient_wavenumber = I*radius*0.5*lamda**2/u0 + coefficient_wavenumber = src.I*radius*0.5*lamda**2/u0 if output_type == 'sensitivity_sigma': drTE = np.empty( diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index f4a111c..1138a6a 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.6488e+01 9.7869e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.6613e+02 8.9345e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.4841e+03 3.4863e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 6.9591e+01 2.1316e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.3299e+02 6.5181e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2414e+03 2.2148e+03 -1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5682e+01 9.3127e+01 -1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7676e+02 8.4823e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4060e+03 3.4977e+03 -1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5516e+01 2.1483e+02 -1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4637e+02 6.0990e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2490e+03 2.1757e+03 -2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5770e+01 9.6752e+01 -2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8187e+02 8.7123e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4892e+03 3.2850e+03 -2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4869e+01 2.0917e+02 -2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2745e+02 6.0821e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2618e+03 2.2836e+03 -3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5905e+01 9.9443e+01 -3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5865e+02 9.0251e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5146e+03 3.4902e+03 -3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.1501e+01 2.1479e+02 -3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4881e+02 6.0752e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.3069e+03 2.2122e+03 -4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8582e+01 1.1429e+02 -4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0983e+02 8.1431e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5354e+03 3.5475e+03 -4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2322e+01 2.3605e+02 -4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2267e+02 6.0298e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2778e+03 2.2908e+03 -5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8505e+01 1.0855e+02 -5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0504e+02 8.4319e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5094e+03 3.4750e+03 -5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.6429e+01 2.2001e+02 -5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3146e+02 6.5284e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2245e+03 2.3043e+03 -6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7431e+01 1.0810e+02 -6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.1223e+02 8.6248e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5298e+03 3.2801e+03 -6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1132e+01 2.3678e+02 -6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1684e+02 6.0038e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2992e+03 2.3568e+03 -7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8625e+01 1.0771e+02 -7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7531e+02 8.5686e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4992e+03 3.3410e+03 -7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5887e+01 2.3561e+02 -7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4241e+02 6.2505e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2408e+03 2.2471e+03 -8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0881e+01 1.2351e+02 -8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9509e+02 8.8766e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4914e+03 3.3196e+03 -8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.0137e+01 2.4369e+02 -8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3386e+02 6.5622e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2702e+03 2.2409e+03 -9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0973e+01 1.2767e+02 -9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.0961e+02 8.2796e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4139e+03 3.4192e+03 -9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1215e+01 2.4163e+02 -9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2080e+02 5.9983e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2363e+03 2.3050e+03 -1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0410e+01 1.1636e+02 -1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0710e+02 8.1954e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4056e+03 3.5294e+03 -1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4815e+01 2.4263e+02 -1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3318e+02 6.2999e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2186e+03 2.3478e+03 -1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0985e+01 1.2079e+02 -1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2160e+02 8.6248e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5223e+03 3.4817e+03 -1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.3256e+01 2.2383e+02 -1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2333e+02 6.3383e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2257e+03 2.3319e+03 -1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 1.9804e+01 1.2500e+02 -1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2504e+02 8.3263e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4588e+03 3.4103e+03 -1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4057e+01 2.4268e+02 -1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2549e+02 6.2017e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2474e+03 2.2467e+03 -1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1495e+01 1.2484e+02 -1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0046e+02 8.2736e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4730e+03 3.2810e+03 -1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7717e+01 2.2961e+02 -1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1660e+02 6.0349e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2756e+03 2.2905e+03 -1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2964e+01 1.2723e+02 -1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0538e+02 8.3282e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4593e+03 3.4361e+03 -1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8453e+01 2.4337e+02 -1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0799e+02 6.3210e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2865e+03 2.2185e+03 -1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4144e+01 1.3011e+02 -1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0631e+02 8.8615e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4526e+03 3.3682e+03 -1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1719e+01 2.2607e+02 -1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2102e+02 6.0435e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2235e+03 2.2373e+03 -1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3634e+01 1.3340e+02 -1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1436e+02 8.5095e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5205e+03 3.2358e+03 -1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2192e+01 2.3404e+02 -1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1149e+02 6.0751e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2322e+03 2.2241e+03 -1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2808e+01 1.3510e+02 -1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2934e+02 8.3520e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4780e+03 3.3629e+03 -1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6066e+01 2.3845e+02 -1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1551e+02 6.1404e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2280e+03 2.1878e+03 -1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2993e+01 1.2723e+02 -1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1907e+02 8.8146e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5283e+03 3.2312e+03 -1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2097e+01 2.3637e+02 -1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9383e+02 6.2367e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2663e+03 2.1728e+03 -1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3380e+01 1.3250e+02 -1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1142e+02 8.8288e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4187e+03 3.3251e+03 -1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7093e+01 2.3370e+02 -1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 6.0527e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2768e+03 2.2587e+03 -2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7159e+01 1.4660e+02 -2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2717e+02 8.4324e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5325e+03 3.2573e+03 -2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5593e+01 2.3510e+02 -2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8869e+02 6.0428e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2412e+03 2.1646e+03 -2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6624e+01 1.3800e+02 -2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9537e+02 8.4381e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4792e+03 3.2508e+03 -2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4079e+01 2.4468e+02 -2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8925e+02 6.1916e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2851e+03 2.2478e+03 -2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6501e+01 1.3939e+02 -2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9346e+02 8.5271e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4822e+03 3.3981e+03 -2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0605e+01 2.2614e+02 -2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1594e+02 6.0763e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2749e+03 2.1850e+03 -2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4936e+01 1.4490e+02 -2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1106e+02 8.7277e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4820e+03 3.4722e+03 -2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0493e+01 2.4651e+02 -2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8669e+02 6.5188e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2294e+03 2.2774e+03 -2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6936e+01 1.3762e+02 -2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0545e+02 8.2499e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5191e+03 3.3587e+03 -2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7444e+01 2.4682e+02 -2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0951e+02 6.5499e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1945e+03 2.3073e+03 -2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6329e+01 1.3877e+02 -2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2247e+02 8.2985e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5254e+03 3.5231e+03 -2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3219e+01 2.4007e+02 -2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9243e+02 6.4552e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2753e+03 2.3273e+03 -2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9961e+01 1.4311e+02 -2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0248e+02 8.6811e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4884e+03 3.2545e+03 -2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7413e+01 2.2420e+02 -2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8759e+02 6.2568e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2321e+03 2.2775e+03 -2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7615e+01 1.4958e+02 -2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2979e+02 8.5566e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5209e+03 3.3417e+03 -2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8436e+01 2.3141e+02 -2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0771e+02 6.0453e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2408e+03 2.2104e+03 -2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9581e+01 1.4921e+02 -2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1822e+02 8.1831e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5133e+03 3.3778e+03 -2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3520e+01 2.4105e+02 -2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9564e+02 6.2465e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2657e+03 2.1975e+03 -2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9962e+01 1.4141e+02 -2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0220e+02 8.7876e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5382e+03 3.3574e+03 -2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4217e+01 2.3639e+02 -2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8226e+02 6.4770e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2859e+03 2.2933e+03 -3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8437e+01 1.5206e+02 -3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9726e+02 8.1004e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4708e+03 3.4689e+03 -3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6205e+01 2.3563e+02 -3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0999e+02 6.5853e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2166e+03 2.2031e+03 -3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8263e+01 1.4563e+02 -3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2146e+02 8.5582e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4196e+03 3.2750e+03 -3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7564e+01 2.4255e+02 -3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8630e+02 6.2272e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1955e+03 2.1851e+03 -3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9866e+01 1.4425e+02 -3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1786e+02 8.1611e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5371e+03 3.5387e+03 -3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5734e+01 2.3172e+02 -3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9308e+02 6.3715e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2509e+03 2.1771e+03 -3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9851e+01 1.5665e+02 -3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2179e+02 8.6318e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5102e+03 3.3224e+03 -3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7069e+01 2.3312e+02 -3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0704e+02 6.0586e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2158e+03 2.2141e+03 -3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9746e+01 1.4686e+02 -3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9576e+02 8.5023e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4738e+03 3.5254e+03 -3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5155e+01 2.3785e+02 -3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0075e+02 6.2468e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2921e+03 2.2896e+03 -3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2619e+01 1.4827e+02 -3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9798e+02 8.4054e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4624e+03 3.3081e+03 -3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7775e+01 2.3489e+02 -3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8349e+02 6.4689e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3008e+03 2.3283e+03 -3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1576e+01 1.5878e+02 -3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0503e+02 8.2856e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4368e+03 3.4843e+03 -3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3820e+01 2.2472e+02 -3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7762e+02 6.5588e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2620e+03 2.2815e+03 -3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1374e+01 1.5229e+02 -3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2088e+02 8.3793e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5203e+03 3.4702e+03 -3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4623e+01 2.4075e+02 -3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7903e+02 6.2884e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1947e+03 2.1575e+03 -3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1561e+01 1.5558e+02 -3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1054e+02 8.5337e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4753e+03 3.5302e+03 -3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3803e+01 2.4164e+02 -3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0770e+02 6.0749e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2144e+03 2.1894e+03 -3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0396e+01 1.4990e+02 -3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1868e+02 8.3013e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5018e+03 3.4776e+03 -3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3835e+01 2.2718e+02 -3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7689e+02 6.0724e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1905e+03 2.2673e+03 -4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0062e+01 1.4837e+02 -4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9468e+02 8.6688e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5053e+03 3.5327e+03 -4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8133e+01 2.3011e+02 -4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8277e+02 6.4483e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1932e+03 2.1802e+03 -4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2275e+01 1.5793e+02 -4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9566e+02 8.4544e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4258e+03 3.2608e+03 -4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5235e+01 2.3513e+02 -4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9199e+02 6.4013e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2617e+03 2.3174e+03 -4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4329e+01 1.5703e+02 -4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1441e+02 8.6847e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5270e+03 3.3696e+03 -4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9858e+01 2.2011e+02 -4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8833e+02 6.1557e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2580e+03 2.3231e+03 -4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3867e+01 1.5571e+02 -4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0948e+02 8.8006e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5128e+03 3.3384e+03 -4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6801e+01 2.3649e+02 -4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0666e+02 5.9998e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2015e+03 2.2800e+03 -4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3135e+01 1.5126e+02 -4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2239e+02 8.8533e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4215e+03 3.3669e+03 -4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0145e+02 2.3152e+02 -4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9080e+02 6.0663e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2383e+03 2.2896e+03 -4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3508e+01 1.5995e+02 -4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9733e+02 8.8056e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4681e+03 3.3908e+03 -4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3311e+01 2.3537e+02 -4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0210e+02 6.4217e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2494e+03 2.1845e+03 -4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4693e+01 1.4819e+02 -4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1734e+02 8.2524e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4735e+03 3.5223e+03 -4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5253e+01 2.3952e+02 -4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8339e+02 6.3985e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2679e+03 2.2349e+03 -4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4277e+01 1.5700e+02 -4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1066e+02 8.2138e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4911e+03 3.3202e+03 -4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3032e+01 2.3528e+02 -4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0288e+02 6.1150e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2200e+03 2.3225e+03 -4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3731e+01 1.5891e+02 -4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9360e+02 8.7741e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5417e+03 3.2624e+03 -4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6405e+01 2.2641e+02 -4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8841e+02 6.2190e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1930e+03 2.3098e+03 -4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2500e+01 1.4797e+02 -4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0112e+02 8.8261e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5210e+03 3.4274e+03 -4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7435e+01 2.2329e+02 -4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8470e+02 6.4284e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2458e+03 2.1800e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.5644e+01 9.2877e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.8064e+02 8.3142e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5062e+03 3.2525e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3879e+01 2.1769e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.4733e+02 6.6115e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2513e+03 2.2943e+03 +1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5558e+01 9.7407e+01 +1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.6069e+02 8.5417e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4819e+03 3.4677e+03 +1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4509e+01 2.0863e+02 +1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1860e+02 6.3196e+02 +1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2786e+03 2.3420e+03 +2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5506e+01 9.5495e+01 +2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5563e+02 8.6296e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5285e+03 3.2972e+03 +2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4111e+01 2.2511e+02 +2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3199e+02 6.2327e+02 +2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.3040e+03 2.2418e+03 +3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6162e+01 9.8155e+01 +3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8408e+02 8.8812e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4105e+03 3.5049e+03 +3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3398e+01 2.2517e+02 +3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2872e+02 6.3440e+02 +3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2302e+03 2.2402e+03 +4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8108e+01 1.0981e+02 +4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7952e+02 8.5770e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4478e+03 3.3802e+03 +4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9047e+01 2.3390e+02 +4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2900e+02 6.3397e+02 +4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2422e+03 2.1872e+03 +5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8401e+01 1.0810e+02 +5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7849e+02 8.6657e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5260e+03 3.5433e+03 +5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7407e+01 2.2906e+02 +5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1148e+02 6.3522e+02 +5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2458e+03 2.3044e+03 +6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7328e+01 1.0821e+02 +6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8228e+02 8.5307e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4607e+03 3.2943e+03 +6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7099e+01 2.2879e+02 +6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3260e+02 6.2632e+02 +6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2552e+03 2.2460e+03 +7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7948e+01 1.1381e+02 +7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8434e+02 8.2817e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5024e+03 3.4555e+03 +7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5900e+01 2.2970e+02 +7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2476e+02 5.9656e+02 +7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.3422e+03 +8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0083e+01 1.2104e+02 +8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2064e+02 8.8500e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4558e+03 3.3859e+03 +8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4474e+01 2.2976e+02 +8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2859e+02 6.2420e+02 +8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2980e+03 2.2178e+03 +9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1752e+01 1.1830e+02 +9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2351e+02 8.5409e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4930e+03 3.3880e+03 +9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2658e+01 2.3228e+02 +9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3377e+02 6.0744e+02 +9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2549e+03 2.2835e+03 +1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0027e+01 1.1802e+02 +1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1475e+02 8.3861e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4324e+03 3.3694e+03 +1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.2198e+01 2.2518e+02 +1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9986e+02 6.4483e+02 +1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3040e+03 2.2316e+03 +1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1629e+01 1.1884e+02 +1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9144e+02 8.8477e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4863e+03 3.3224e+03 +1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6509e+01 2.4025e+02 +1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2173e+02 6.0666e+02 +1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2903e+03 2.3271e+03 +1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0933e+01 1.2221e+02 +1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1380e+02 8.1309e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4026e+03 3.4616e+03 +1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6986e+01 2.3322e+02 +1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0905e+02 6.3030e+02 +1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2379e+03 2.2671e+03 +1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0883e+01 1.2794e+02 +1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1606e+02 8.2206e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4705e+03 3.4287e+03 +1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.1098e+01 2.3564e+02 +1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1994e+02 6.0010e+02 +1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3045e+03 2.2916e+03 +1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4528e+01 1.3506e+02 +1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9674e+02 8.8416e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5405e+03 3.5310e+03 +1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0948e+01 2.4108e+02 +1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1375e+02 6.0907e+02 +1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2765e+03 2.2121e+03 +1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3983e+01 1.2678e+02 +1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1881e+02 8.7705e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5148e+03 3.3596e+03 +1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6117e+01 2.4507e+02 +1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2273e+02 6.2586e+02 +1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2011e+03 2.2344e+03 +1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4185e+01 1.2841e+02 +1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1693e+02 8.6507e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4999e+03 3.5066e+03 +1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0744e+01 2.3906e+02 +1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0380e+02 6.5622e+02 +1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2376e+03 2.2843e+03 +1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2703e+01 1.2962e+02 +1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2177e+02 8.1162e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4117e+03 3.3201e+03 +1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6720e+01 2.2945e+02 +1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1992e+02 6.2284e+02 +1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2743e+03 2.1527e+03 +1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3679e+01 1.3818e+02 +1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2144e+02 8.7984e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4064e+03 3.3212e+03 +1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8384e+01 2.3788e+02 +1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1377e+02 6.0028e+02 +1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2092e+03 2.2450e+03 +1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3017e+01 1.3531e+02 +1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9813e+02 8.5618e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4717e+03 3.2944e+03 +1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7526e+01 2.4273e+02 +1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1903e+02 6.3129e+02 +1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2890e+03 2.2724e+03 +2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5433e+01 1.4428e+02 +2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2724e+02 8.7332e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4760e+03 3.4829e+03 +2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4964e+01 2.3964e+02 +2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9750e+02 6.4098e+02 +2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2842e+03 2.3186e+03 +2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5238e+01 1.4375e+02 +2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2406e+02 8.2795e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4909e+03 3.2576e+03 +2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1867e+01 2.3375e+02 +2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1088e+02 6.2248e+02 +2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2009e+03 2.1464e+03 +2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5457e+01 1.3749e+02 +2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0930e+02 8.7117e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4510e+03 3.4270e+03 +2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4440e+01 2.3960e+02 +2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9981e+02 6.3136e+02 +2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1943e+03 2.2976e+03 +2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6685e+01 1.4751e+02 +2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1090e+02 8.1502e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4465e+03 3.2942e+03 +2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3706e+01 2.4273e+02 +2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9726e+02 6.2252e+02 +2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2749e+03 2.1784e+03 +2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5866e+01 1.4255e+02 +2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9497e+02 8.4620e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4805e+03 3.4671e+03 +2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7488e+01 2.2750e+02 +2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9302e+02 6.3370e+02 +2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2349e+03 2.3372e+03 +2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6230e+01 1.3758e+02 +2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1929e+02 8.1689e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4091e+03 3.3259e+03 +2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9293e+01 2.4724e+02 +2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1604e+02 6.1566e+02 +2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.1470e+03 +2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7798e+01 1.4062e+02 +2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9939e+02 8.2317e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4453e+03 3.3404e+03 +2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1627e+01 2.2448e+02 +2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0794e+02 6.4106e+02 +2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2782e+03 2.2150e+03 +2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9166e+01 1.4229e+02 +2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1113e+02 8.4384e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5310e+03 3.4133e+03 +2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7378e+01 2.4181e+02 +2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1149e+02 6.4344e+02 +2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2405e+03 2.2986e+03 +2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8080e+01 1.4227e+02 +2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0989e+02 8.4534e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4112e+03 3.5263e+03 +2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1257e+01 2.2577e+02 +2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9080e+02 6.4779e+02 +2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2157e+03 2.2189e+03 +2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7966e+01 1.4973e+02 +2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0353e+02 8.7628e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5374e+03 3.4957e+03 +2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4599e+01 2.3415e+02 +2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7653e+02 6.5751e+02 +2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1999e+03 2.2873e+03 +3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8136e+01 1.5064e+02 +3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1188e+02 8.2875e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4138e+03 3.2930e+03 +3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4067e+01 2.4015e+02 +3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9675e+02 6.3558e+02 +3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1914e+03 2.2257e+03 +3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8544e+01 1.4661e+02 +3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1353e+02 8.5148e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5364e+03 3.4704e+03 +3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2039e+01 2.3940e+02 +3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7713e+02 6.4221e+02 +3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2654e+03 2.3064e+03 +3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7921e+01 1.4516e+02 +3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9939e+02 8.4140e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5259e+03 3.3719e+03 +3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8194e+01 2.2649e+02 +3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9601e+02 6.1080e+02 +3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2196e+03 2.3170e+03 +3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1705e+01 1.5324e+02 +3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2095e+02 8.4345e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5023e+03 3.3316e+03 +3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9696e+01 2.3873e+02 +3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7987e+02 6.3314e+02 +3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2912e+03 2.2492e+03 +3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1935e+01 1.4880e+02 +3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9344e+02 8.4432e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4997e+03 3.3247e+03 +3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6729e+01 2.2363e+02 +3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0789e+02 6.2146e+02 +3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2812e+03 2.3369e+03 +3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2039e+01 1.5747e+02 +3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9186e+02 8.1130e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5414e+03 3.3878e+03 +3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1757e+01 2.3219e+02 +3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0429e+02 6.2298e+02 +3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2550e+03 2.2433e+03 +3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2285e+01 1.4815e+02 +3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1311e+02 8.8099e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4969e+03 3.4108e+03 +3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0046e+02 2.2744e+02 +3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8429e+02 6.2971e+02 +3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2348e+03 2.1992e+03 +3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0031e+01 1.5798e+02 +3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9259e+02 8.3066e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4993e+03 3.2888e+03 +3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3328e+01 2.4203e+02 +3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8675e+02 6.3647e+02 +3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2543e+03 2.2505e+03 +3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0566e+01 1.4480e+02 +3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9174e+02 8.8102e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4864e+03 3.4513e+03 +3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8808e+01 2.3438e+02 +3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8855e+02 6.2136e+02 +3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2056e+03 2.2819e+03 +3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2172e+01 1.5853e+02 +3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9796e+02 8.6204e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4548e+03 3.5497e+03 +3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6434e+01 2.3033e+02 +3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8886e+02 6.1057e+02 +3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2041e+03 2.3287e+03 +4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0239e+01 1.5026e+02 +4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1579e+02 8.5794e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5056e+03 3.3568e+03 +4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8674e+01 2.3948e+02 +4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0335e+02 6.3668e+02 +4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2473e+03 +4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4567e+01 1.5455e+02 +4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1249e+02 8.1661e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4499e+03 3.3114e+03 +4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3054e+01 2.3136e+02 +4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7894e+02 6.5349e+02 +4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2778e+03 2.1547e+03 +4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3204e+01 1.5114e+02 +4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0341e+02 8.4277e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5053e+03 3.3563e+03 +4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8757e+01 2.2333e+02 +4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0019e+02 6.4678e+02 +4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2348e+03 2.2716e+03 +4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2582e+01 1.5548e+02 +4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1617e+02 8.1179e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4105e+03 3.3408e+03 +4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0020e+02 2.2490e+02 +4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7391e+02 6.2507e+02 +4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2255e+03 2.2522e+03 +4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2969e+01 1.5757e+02 +4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9770e+02 8.4404e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4503e+03 3.4497e+03 +4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8641e+01 2.2794e+02 +4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8590e+02 6.3100e+02 +4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3072e+03 2.1880e+03 +4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4984e+01 1.5702e+02 +4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1859e+02 8.8318e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4918e+03 3.2869e+03 +4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4300e+01 2.2776e+02 +4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9758e+02 6.1629e+02 +4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2307e+03 2.2786e+03 +4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3305e+01 1.4824e+02 +4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9417e+02 8.6938e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5143e+03 3.4942e+03 +4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3025e+01 2.2868e+02 +4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8804e+02 6.5104e+02 +4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2389e+03 2.2192e+03 +4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2437e+01 1.5451e+02 +4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9832e+02 8.1975e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4415e+03 3.3154e+03 +4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6862e+01 2.4049e+02 +4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9053e+02 6.4840e+02 +4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2342e+03 2.3107e+03 +4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4977e+01 1.5231e+02 +4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0162e+02 8.4111e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5142e+03 3.2894e+03 +4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9263e+01 2.2702e+02 +4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9171e+02 6.1191e+02 +4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2054e+03 2.2890e+03 +4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2540e+01 1.5216e+02 +4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0831e+02 8.2566e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5304e+03 3.3213e+03 +4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3075e+01 2.3822e+02 +4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 6.3025e+02 +4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2320e+03 2.3465e+03 diff --git a/tutorials/assets/em1dtm_stitched_data.obs b/tutorials/assets/em1dtm_stitched_data.obs index eb953c6..87784c7 100644 --- a/tutorials/assets/em1dtm_stitched_data.obs +++ b/tutorials/assets/em1dtm_stitched_data.obs @@ -1,800 +1,800 @@ -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.6624e-06 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-05 -6.9277e-07 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-05 -2.4258e-07 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0470e-07 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-05 -5.4138e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-04 -3.1963e-08 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -2.0480e-08 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-04 -1.0686e-08 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-04 -5.3954e-09 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.3769e-09 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-03 -9.6742e-10 -5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-03 -3.3938e-10 -5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.1050e-10 -5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-03 -3.7436e-11 -5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-03 -1.1358e-11 -5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -3.8992e-12 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7357e-06 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0401e-07 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5596e-07 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0063e-07 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9790e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.7633e-08 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7009e-08 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0529e-08 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.5891e-09 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6770e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1251e-09 -1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3654e-10 -1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5539e-10 -1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9218e-11 -1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5902e-11 -1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4476e-12 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8064e-06 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1994e-07 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5220e-07 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0523e-07 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9191e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8318e-08 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7063e-08 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0183e-08 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6822e-09 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8066e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1951e-09 -2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.1980e-10 -2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4423e-10 -2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7003e-11 -2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4427e-11 -2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7504e-12 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.6769e-06 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0558e-07 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4780e-07 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9414e-08 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0861e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.7932e-08 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7103e-08 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0953e-08 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9251e-09 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8342e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2162e-09 -3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.5106e-10 -3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4709e-10 -3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9971e-11 -3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4961e-11 -3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.7357e-12 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8255e-06 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.8430e-07 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4728e-07 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.8947e-08 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0208e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -3.0415e-08 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7639e-08 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0222e-08 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8875e-09 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7891e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1049e-09 -4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.5099e-10 -4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5705e-10 -4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0502e-11 -4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5117e-11 -4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6022e-12 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7315e-06 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1907e-07 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.6169e-07 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.7318e-08 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0389e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9157e-08 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7873e-08 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0884e-08 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.9506e-09 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7981e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1301e-09 -5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2474e-10 -5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5194e-10 -5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8033e-11 -5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5177e-11 -5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5379e-12 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7801e-06 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.7673e-07 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4546e-07 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0222e-07 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8155e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8518e-08 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7086e-08 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0154e-08 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.5417e-09 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6981e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1578e-09 -6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3981e-10 -6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4895e-10 -6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.0156e-11 -6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4428e-11 -6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.8294e-12 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7738e-06 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.6634e-07 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4043e-07 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0083e-07 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.8558e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8182e-08 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7300e-08 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.2207e-09 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6263e-09 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9129e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3144e-09 -7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.2776e-10 -7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8811e-10 -7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.9702e-11 -7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8796e-11 -7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8197e-12 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7936e-06 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1163e-07 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5827e-07 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.9308e-08 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.7720e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9714e-08 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6917e-08 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.5017e-09 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.2636e-09 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8615e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3407e-09 -8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.0366e-10 -8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9807e-10 -8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.0296e-11 -8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9974e-11 -8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -6.0609e-12 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7028e-06 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.7451e-07 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3661e-07 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0488e-07 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1832e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9145e-08 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.5915e-08 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.7991e-09 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7145e-09 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8266e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3508e-09 -9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.1696e-10 -9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9364e-10 -9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.4370e-11 -9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9426e-11 -9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.8308e-12 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6968e-06 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9937e-07 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5608e-07 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0242e-07 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0473e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8903e-08 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6456e-08 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -1.0122e-08 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.7186e-09 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7541e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2535e-09 -1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0644e-10 -1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9293e-10 -1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.2071e-11 -1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.0062e-11 -1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.4714e-12 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7340e-06 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9031e-07 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5162e-07 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6378e-08 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9286e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7127e-08 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5775e-08 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2935e-09 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2886e-09 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9042e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2567e-09 -1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.0254e-10 -1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8033e-10 -1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -5.9911e-11 -1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8664e-11 -1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.9930e-12 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6756e-06 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5675e-07 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3903e-07 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0128e-07 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8248e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9546e-08 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6895e-08 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3489e-09 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5992e-09 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7705e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3406e-09 -1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4653e-10 -1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8808e-10 -1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.4901e-11 -1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9231e-11 -1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5148e-12 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7720e-06 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5966e-07 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3928e-07 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0525e-07 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8610e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9329e-08 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5996e-08 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6227e-09 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.5746e-09 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7180e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2366e-09 -1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -4.9918e-10 -1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9878e-10 -1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.2267e-11 -1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.8987e-11 -1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.6916e-12 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8317e-06 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5842e-07 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4103e-07 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0131e-07 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8069e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9644e-08 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7138e-08 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3535e-09 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9675e-09 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6893e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3356e-09 -1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9884e-10 -1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2187e-10 -1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.9469e-11 -1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4998e-11 -1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4701e-12 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7083e-06 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7868e-07 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4366e-07 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8340e-08 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9806e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9146e-08 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7151e-08 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0605e-09 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2038e-09 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7856e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3281e-09 -1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7035e-10 -1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2389e-10 -1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.2174e-11 -1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3641e-11 -1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7826e-12 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7209e-06 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8514e-07 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5632e-07 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0543e-07 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7824e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9573e-08 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6148e-08 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9073e-09 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9214e-09 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6671e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2873e-09 -1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9854e-10 -1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2822e-10 -1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.1890e-11 -1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.5046e-11 -1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1370e-12 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7656e-06 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6932e-07 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5215e-07 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0230e-07 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2569e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9756e-08 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6538e-08 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5895e-09 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0414e-09 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8426e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3045e-09 -1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0543e-10 -1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2248e-10 -1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4734e-11 -1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2924e-11 -1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.1835e-12 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8328e-06 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6844e-07 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5437e-07 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0326e-07 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8371e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8495e-08 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6112e-08 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4333e-09 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1598e-09 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7542e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3118e-09 -1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7681e-10 -1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1792e-10 -1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4204e-11 -1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.2920e-11 -1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8893e-12 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6655e-06 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0562e-07 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4505e-07 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9523e-08 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7869e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7856e-08 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6407e-08 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0495e-09 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9339e-09 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6457e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2869e-09 -1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6042e-10 -1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1012e-10 -1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6651e-11 -1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.5096e-11 -1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0611e-12 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7165e-06 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8988e-07 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5550e-07 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9300e-08 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8087e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7447e-08 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6154e-08 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3269e-09 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9060e-09 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6853e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3775e-09 -2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5684e-10 -2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1196e-10 -2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4162e-11 -2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4216e-11 -2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.8378e-12 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6772e-06 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6196e-07 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4169e-07 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7807e-08 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0476e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8613e-08 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7008e-08 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5013e-09 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0531e-09 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8502e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2838e-09 -2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6124e-10 -2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2653e-10 -2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.8504e-11 -2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3207e-11 -2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.3340e-12 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6696e-06 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9120e-07 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6030e-07 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0213e-07 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1382e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0023e-08 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6148e-08 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5909e-09 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2211e-09 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6773e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3536e-09 -2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6705e-10 -2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4576e-10 -2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1010e-11 -2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9362e-11 -2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.4301e-12 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7020e-06 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8374e-07 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4750e-07 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0138e-07 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2067e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7233e-08 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6261e-08 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8549e-09 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1647e-09 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5023e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3549e-09 -2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0104e-10 -2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3513e-10 -2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.0354e-11 -2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7744e-11 -2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.3332e-12 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6879e-06 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9875e-07 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4498e-07 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9305e-08 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1724e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7203e-08 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6823e-08 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3877e-09 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1189e-09 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5154e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3495e-09 -2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7428e-10 -2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3025e-10 -2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.5320e-11 -2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7226e-11 -2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.7078e-12 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7310e-06 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6157e-07 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4611e-07 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0375e-07 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9483e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8029e-08 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6769e-08 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8452e-09 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8185e-09 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5620e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2936e-09 -2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.2476e-10 -2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5418e-10 -2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.9755e-11 -2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9924e-11 -2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9603e-12 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7584e-06 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7670e-07 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5453e-07 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9704e-08 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8101e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7687e-08 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5750e-08 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5756e-09 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9935e-09 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6654e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3695e-09 -2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1482e-10 -2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4388e-10 -2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1976e-11 -2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9905e-11 -2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5356e-12 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6978e-06 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7413e-07 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4467e-07 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9513e-08 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1872e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8586e-08 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7143e-08 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6545e-09 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9240e-09 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6508e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2752e-09 -2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7247e-10 -2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4336e-10 -2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.5674e-11 -2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7313e-11 -2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9034e-12 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8019e-06 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9542e-07 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4724e-07 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6694e-08 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2049e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9793e-08 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6921e-08 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3893e-09 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8715e-09 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7224e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2552e-09 -2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1005e-10 -2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3981e-10 -2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.0712e-11 -2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9029e-11 -2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.8932e-12 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6693e-06 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6067e-07 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5235e-07 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0067e-07 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9426e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9400e-08 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6393e-08 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2365e-09 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8347e-09 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6803e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2676e-09 -2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7185e-10 -2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4516e-10 -2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6433e-11 -2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8693e-11 -2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0168e-12 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7456e-06 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8089e-07 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6151e-07 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0440e-07 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9160e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0017e-08 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6068e-08 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7945e-09 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1176e-09 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4741e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2008e-09 -3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8065e-10 -3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6170e-10 -3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5039e-11 -3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2484e-11 -3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0220e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6683e-06 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0964e-07 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3930e-07 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0354e-07 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9249e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7255e-08 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7009e-08 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1174e-09 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0657e-09 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5758e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2197e-09 -3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8546e-10 -3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5197e-10 -3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5189e-11 -3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4218e-11 -3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0065e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7515e-06 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9434e-07 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5653e-07 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0166e-07 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9308e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7421e-08 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6973e-08 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9862e-09 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8212e-09 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5679e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1912e-09 -3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0389e-10 -3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5012e-10 -3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.3080e-11 -3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4436e-11 -3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0379e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6954e-06 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8748e-07 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5424e-07 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0302e-07 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0886e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7314e-08 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6932e-08 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3720e-09 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0807e-09 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5450e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2679e-09 -3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1378e-10 -3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6428e-10 -3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6634e-11 -3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.1364e-11 -3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0065e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7784e-06 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9071e-07 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5425e-07 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9844e-08 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8544e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9507e-08 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6676e-08 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0693e-09 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1838e-09 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4636e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3080e-09 -3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0516e-10 -3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4449e-10 -3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4615e-11 -3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2687e-11 -3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0710e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7694e-06 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9846e-07 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4672e-07 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0458e-07 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0438e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7750e-08 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6178e-08 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1540e-09 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7063e-09 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4177e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2949e-09 -3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5962e-10 -3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4124e-10 -3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4529e-11 -3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3152e-11 -3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0240e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7611e-06 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2279e-07 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5488e-07 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0312e-07 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0858e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9412e-08 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5912e-08 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0805e-09 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0117e-09 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4741e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1976e-09 -3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9055e-10 -3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4019e-10 -3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2681e-11 -3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2893e-11 -3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0630e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7691e-06 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7003e-07 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4955e-07 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5963e-08 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9733e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9690e-08 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5679e-08 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1580e-09 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8570e-09 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6260e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1931e-09 -3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1583e-10 -3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5737e-10 -3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7501e-11 -3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2971e-11 -3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0305e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7642e-06 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9043e-07 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6148e-07 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6994e-08 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1573e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9056e-08 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6494e-08 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2700e-09 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1816e-09 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5382e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2748e-09 -3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6742e-10 -3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5150e-10 -3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5335e-11 -3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4437e-11 -3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0091e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7041e-06 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9111e-07 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4137e-07 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0533e-07 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9198e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8599e-08 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7278e-08 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1504e-09 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7988e-09 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5031e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2676e-09 -3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0397e-10 -3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5497e-10 -3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0124e-10 -3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2849e-11 -3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0266e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7619e-06 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0116e-07 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6117e-07 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7785e-08 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0781e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7358e-08 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6986e-08 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5802e-09 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8601e-09 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.3883e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2241e-09 -4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5445e-10 -4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4783e-10 -4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0031e-10 -4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7622e-11 -4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1299e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7060e-06 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1399e-07 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6212e-07 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8059e-08 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8824e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7395e-08 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6601e-08 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8804e-09 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8337e-09 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5045e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2842e-09 -4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7664e-10 -4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5598e-10 -4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0033e-10 -4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7034e-11 -4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1994e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6953e-06 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0787e-07 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4425e-07 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5390e-08 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0861e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0020e-08 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7160e-08 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7894e-09 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8945e-09 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6329e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1981e-09 -4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9858e-10 -4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5345e-10 -4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0181e-10 -4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.8473e-11 -4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1511e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8218e-06 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6599e-07 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5319e-07 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8873e-08 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8281e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9359e-08 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6262e-08 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8593e-09 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1337e-09 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6302e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2461e-09 -4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7272e-10 -4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4282e-10 -4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0286e-10 -4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7025e-11 -4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1620e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7103e-06 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2148e-07 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5232e-07 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0209e-07 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1253e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8255e-08 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6434e-08 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3604e-09 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0298e-09 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4972e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1711e-09 -4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7155e-10 -4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5832e-10 -4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6300e-11 -4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5170e-11 -4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1874e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8344e-06 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8942e-07 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5197e-07 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0532e-07 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0923e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7406e-08 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6253e-08 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0932e-09 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1090e-09 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5688e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1929e-09 -4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4122e-10 -4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5875e-10 -4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0341e-10 -4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5353e-11 -4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1690e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6622e-06 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8073e-07 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3622e-07 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6135e-08 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9907e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0023e-08 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6208e-08 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1200e-09 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0262e-09 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5014e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2760e-09 -4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4148e-10 -4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6358e-10 -4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.6701e-11 -4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7702e-11 -4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2341e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6655e-06 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7738e-07 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.6043e-07 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0005e-07 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0568e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9140e-08 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5962e-08 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6297e-09 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7294e-09 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4943e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2201e-09 -4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9365e-10 -4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4191e-10 -4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0604e-10 -4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7845e-11 -4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1740e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8301e-06 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7001e-07 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4238e-07 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7569e-08 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2884e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7172e-08 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6850e-08 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.7862e-09 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1942e-09 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.3921e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2762e-09 -4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8624e-10 -4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5791e-10 -4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8150e-11 -4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4963e-11 -4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2479e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6775e-06 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7824e-07 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5932e-07 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0296e-07 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2154e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9303e-08 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6944e-08 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4676e-09 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7666e-09 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4630e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2063e-09 -4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7499e-10 -4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5325e-10 -4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0539e-10 -4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7147e-11 -4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2191e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-05 -1.7030e-06 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-05 -7.1828e-07 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-05 -2.6075e-07 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-05 -1.0011e-07 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-05 -5.3884e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-04 -3.3666e-08 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-04 -1.9062e-08 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-04 -1.0820e-08 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-04 -5.2386e-09 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-04 -2.3888e-09 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-03 -8.9294e-10 +5.0000e+01 0.0000e+00 2.0000e+01 1.5849e-03 -3.2550e-10 +5.0000e+01 0.0000e+00 2.0000e+01 2.5119e-03 -1.0926e-10 +5.0000e+01 0.0000e+00 2.0000e+01 3.9811e-03 -3.8134e-11 +5.0000e+01 0.0000e+00 2.0000e+01 6.3096e-03 -1.2488e-11 +5.0000e+01 0.0000e+00 2.0000e+01 1.0000e-02 -3.8548e-12 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7284e-06 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.0382e-07 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4771e-07 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0374e-07 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0189e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -3.0197e-08 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8410e-08 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0375e-08 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8375e-09 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6287e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1654e-09 +1.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2738e-10 +1.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5563e-10 +1.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9697e-11 +1.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5000e-11 +1.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4725e-12 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7037e-06 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1782e-07 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4725e-07 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.6624e-08 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1847e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8956e-08 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8352e-08 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0027e-08 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8561e-09 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7571e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1785e-09 +2.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3515e-10 +2.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5896e-10 +2.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.9094e-11 +2.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4420e-11 +2.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6177e-12 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8247e-06 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.2016e-07 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5854e-07 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0365e-07 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0790e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8951e-08 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7522e-08 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0229e-08 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7504e-09 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.6107e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1918e-09 +3.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.4422e-10 +3.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5376e-10 +3.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8578e-11 +3.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5569e-11 +3.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.4616e-12 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7396e-06 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.8361e-07 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5048e-07 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.7975e-08 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9881e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8759e-08 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8499e-08 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0337e-08 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6881e-09 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8606e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.2037e-09 +4.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.3778e-10 +4.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4646e-10 +4.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.8491e-11 +4.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5792e-11 +4.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5680e-12 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7820e-06 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.7675e-07 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5283e-07 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0043e-07 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.2930e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.8182e-08 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8426e-08 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0933e-08 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.8445e-09 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7862e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1335e-09 +5.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.5596e-10 +5.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.5046e-10 +5.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -4.7509e-11 +5.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.5521e-11 +5.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.5789e-12 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.8208e-06 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.6626e-07 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4152e-07 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0353e-07 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0653e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9216e-08 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.8139e-08 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -1.0113e-08 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6383e-09 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.7918e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.1631e-09 +6.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -4.2764e-10 +6.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.4581e-10 +6.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -5.1087e-11 +6.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.4563e-11 +6.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -4.6809e-12 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7236e-06 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.8830e-07 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.4717e-07 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0201e-07 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.0100e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9478e-08 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.5973e-08 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.3466e-09 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.6540e-09 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.9692e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3137e-09 +7.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.4780e-10 +7.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.9847e-10 +7.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.2187e-11 +7.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8456e-11 +7.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.9021e-12 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7147e-06 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -7.1685e-07 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.5499e-07 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -1.0377e-07 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -5.1738e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.9780e-08 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.7352e-08 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.8108e-09 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.5354e-09 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8060e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3662e-09 +8.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.5172e-10 +8.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8703e-10 +8.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.3567e-11 +8.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.8501e-11 +8.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -5.7443e-12 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-05 -1.7446e-06 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-05 -6.6193e-07 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-05 -2.3758e-07 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-05 -9.8512e-08 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-05 -4.9658e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-04 -2.7787e-08 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-04 -1.6575e-08 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-04 -9.6398e-09 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-04 -5.7052e-09 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-04 -2.8634e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-03 -1.3525e-09 +9.5000e+02 0.0000e+00 2.0000e+01 1.5849e-03 -5.1318e-10 +9.5000e+02 0.0000e+00 2.0000e+01 2.5119e-03 -1.8853e-10 +9.5000e+02 0.0000e+00 2.0000e+01 3.9811e-03 -6.1537e-11 +9.5000e+02 0.0000e+00 2.0000e+01 6.3096e-03 -1.9015e-11 +9.5000e+02 0.0000e+00 2.0000e+01 1.0000e-02 -6.0663e-12 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7577e-06 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8448e-07 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5486e-07 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5120e-08 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7941e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8061e-08 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7369e-08 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -1.0040e-08 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.4039e-09 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8525e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3621e-09 +1.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.2093e-10 +1.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8887e-10 +1.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.5311e-11 +1.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9227e-11 +1.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.9031e-12 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8342e-06 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1094e-07 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3904e-07 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6663e-08 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0753e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7859e-08 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7021e-08 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3521e-09 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3091e-09 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9265e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2931e-09 +1.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.3534e-10 +1.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.8179e-10 +1.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -5.9226e-11 +1.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9683e-11 +1.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.5146e-12 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7728e-06 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0787e-07 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5835e-07 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0271e-07 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7793e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9578e-08 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6038e-08 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6468e-09 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.4219e-09 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9443e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2925e-09 +1.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4615e-10 +1.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9315e-10 +1.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -6.5455e-11 +1.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9328e-11 +1.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.6424e-12 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7671e-06 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8400e-07 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4473e-07 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6341e-08 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9765e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7385e-08 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7416e-08 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5132e-09 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2450e-09 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.9059e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2608e-09 +1.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.2533e-10 +1.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -1.9835e-10 +1.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -5.9836e-11 +1.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -1.9131e-11 +1.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -5.7195e-12 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7016e-06 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9970e-07 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3908e-07 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0190e-07 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2674e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8781e-08 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6572e-08 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.7725e-09 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0385e-09 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8370e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3376e-09 +1.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9761e-10 +1.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1179e-10 +1.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.7667e-11 +1.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3445e-11 +1.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4300e-12 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7707e-06 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2200e-07 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5359e-07 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0194e-07 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1041e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8047e-08 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6229e-08 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0670e-09 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1240e-09 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6338e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3926e-09 +1.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5487e-10 +1.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2651e-10 +1.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.6886e-11 +1.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3627e-11 +1.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.2542e-12 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7700e-06 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2233e-07 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4772e-07 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0338e-07 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8739e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8698e-08 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6742e-08 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2132e-09 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1209e-09 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7602e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3644e-09 +1.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0381e-10 +1.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1877e-10 +1.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.8287e-11 +1.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4831e-11 +1.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -6.7949e-12 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8369e-06 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2502e-07 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3986e-07 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5229e-08 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2928e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9630e-08 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5755e-08 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4412e-09 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8889e-09 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6702e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3294e-09 +1.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8517e-10 +1.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2691e-10 +1.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.3740e-11 +1.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4772e-11 +1.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0195e-12 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7323e-06 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8322e-07 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5008e-07 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6647e-08 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8082e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9088e-08 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7001e-08 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9962e-09 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9801e-09 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8600e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3646e-09 +1.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6706e-10 +1.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2295e-10 +1.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.3405e-11 +1.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3110e-11 +1.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0187e-12 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6886e-06 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6885e-07 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4769e-07 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8298e-08 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0975e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7628e-08 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6013e-08 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1581e-09 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.3578e-09 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7064e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3966e-09 +1.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0032e-10 +1.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1095e-10 +1.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.7312e-11 +1.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3991e-11 +1.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.4875e-12 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7090e-06 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6662e-07 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4550e-07 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0053e-07 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7719e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9867e-08 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6950e-08 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.7506e-09 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1828e-09 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8492e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2688e-09 +2.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9366e-10 +2.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.2154e-10 +2.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.4849e-11 +2.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.3148e-11 +2.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.0406e-12 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7347e-06 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1069e-07 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4201e-07 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6175e-08 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9151e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9279e-08 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6299e-08 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6373e-09 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2668e-09 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.8531e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3797e-09 +2.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0605e-10 +2.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.1984e-10 +2.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -7.3970e-11 +2.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.4508e-11 +2.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -7.2410e-12 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7131e-06 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7923e-07 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5202e-07 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9760e-08 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9540e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8956e-08 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6545e-08 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0565e-09 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1755e-09 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5064e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3673e-09 +2.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8343e-10 +2.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3966e-10 +2.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.3449e-11 +2.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7397e-11 +2.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9568e-12 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7454e-06 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9691e-07 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4990e-07 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6651e-08 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8717e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7351e-08 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5882e-08 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3951e-09 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1690e-09 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5833e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2899e-09 +2.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1415e-10 +2.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3575e-10 +2.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.0725e-11 +2.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9054e-11 +2.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.6312e-12 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6910e-06 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.6149e-07 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5743e-07 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0014e-07 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1337e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9983e-08 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6197e-08 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3596e-09 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9919e-09 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7411e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2556e-09 +2.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6970e-10 +2.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.3016e-10 +2.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.9084e-11 +2.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.8102e-11 +2.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.6333e-12 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7273e-06 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0017e-07 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4054e-07 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6368e-08 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1900e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9400e-08 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7077e-08 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8221e-09 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0011e-09 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4794e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2874e-09 +2.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0270e-10 +2.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5332e-10 +2.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.5490e-11 +2.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.0161e-11 +2.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5661e-12 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7024e-06 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1855e-07 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4227e-07 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0531e-07 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0573e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7092e-08 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5633e-08 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1896e-09 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0772e-09 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5663e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3040e-09 +2.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8679e-10 +2.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5337e-10 +2.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.4022e-11 +2.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9598e-11 +2.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.7782e-12 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8326e-06 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9762e-07 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5357e-07 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0451e-07 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9377e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9434e-08 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5906e-08 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4066e-09 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0251e-09 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6359e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3124e-09 +2.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8716e-10 +2.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5017e-10 +2.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1667e-11 +2.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.9782e-11 +2.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.9307e-12 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7800e-06 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2347e-07 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4967e-07 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9500e-08 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2100e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9239e-08 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6501e-08 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4409e-09 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9489e-09 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.7112e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2660e-09 +2.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8117e-10 +2.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4182e-10 +2.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.3457e-11 +2.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7376e-11 +2.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -8.5048e-12 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7123e-06 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8204e-07 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3865e-07 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0427e-07 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9437e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7782e-08 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6559e-08 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9004e-09 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8976e-09 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5045e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2996e-09 +2.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0171e-10 +2.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5468e-10 +2.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -8.6409e-11 +2.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -2.7175e-11 +2.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -9.0497e-12 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8292e-06 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8686e-07 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5520e-07 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0515e-07 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1520e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7197e-08 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7145e-08 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.5074e-09 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0143e-09 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6458e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2627e-09 +3.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1793e-10 +3.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5359e-10 +3.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0164e-10 +3.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2050e-11 +3.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0028e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7270e-06 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0515e-07 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3700e-07 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7265e-08 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9035e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -3.0011e-08 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7022e-08 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9001e-09 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9011e-09 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5328e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2591e-09 +3.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9630e-10 +3.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5615e-10 +3.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9637e-11 +3.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3125e-11 +3.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0561e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7743e-06 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8807e-07 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4586e-07 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0013e-07 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9172e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7486e-08 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7076e-08 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1842e-09 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0011e-09 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5835e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2774e-09 +3.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6005e-10 +3.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5759e-10 +3.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7762e-11 +3.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3496e-11 +3.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0402e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8368e-06 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7824e-07 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5800e-07 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7433e-08 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0852e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8231e-08 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6259e-08 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.9485e-09 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.2037e-09 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4077e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2490e-09 +3.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7640e-10 +3.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5292e-10 +3.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1974e-11 +3.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2820e-11 +3.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0112e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7065e-06 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7433e-07 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4276e-07 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7092e-08 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9537e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7831e-08 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6204e-08 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8054e-09 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0602e-09 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4282e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1990e-09 +3.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.0869e-10 +3.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5287e-10 +3.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.2694e-11 +3.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2585e-11 +3.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0210e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6625e-06 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9109e-07 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4517e-07 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8857e-08 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1056e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7961e-08 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5664e-08 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.3000e-09 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9129e-09 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4920e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.3021e-09 +3.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6192e-10 +3.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6526e-10 +3.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.7305e-11 +3.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.2304e-11 +3.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0825e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7373e-06 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5873e-07 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5960e-07 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.6036e-08 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9732e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7395e-08 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6039e-08 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1293e-09 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9820e-09 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6128e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2382e-09 +3.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6094e-10 +3.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5538e-10 +3.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.4546e-11 +3.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3703e-11 +3.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0756e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7626e-06 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2444e-07 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3843e-07 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0147e-07 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1092e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8687e-08 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6679e-08 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1377e-09 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7868e-09 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4451e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2438e-09 +3.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9415e-10 +3.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5629e-10 +3.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5287e-11 +3.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4461e-11 +3.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0175e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7052e-06 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.7620e-07 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5818e-07 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.5019e-08 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7802e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7969e-08 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6615e-08 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6034e-09 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0797e-09 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5564e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2685e-09 +3.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9891e-10 +3.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5885e-10 +3.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.5995e-11 +3.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4004e-11 +3.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0193e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.8001e-06 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.0374e-07 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4711e-07 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0091e-07 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8779e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7127e-08 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7030e-08 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.2722e-09 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9114e-09 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5050e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2838e-09 +3.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -6.1083e-10 +3.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5812e-10 +3.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.1918e-11 +3.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.3133e-11 +3.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.0570e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7660e-06 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.2341e-07 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4844e-07 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0475e-07 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.8843e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7914e-08 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5819e-08 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1327e-09 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7725e-09 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.3961e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2258e-09 +4.0500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9113e-10 +4.0500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4479e-10 +4.0500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0140e-10 +4.0500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.6558e-11 +4.0500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1629e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6949e-06 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5599e-07 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5762e-07 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0267e-07 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0394e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8486e-08 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6676e-08 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8890e-09 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7149e-09 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4380e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2050e-09 +4.1500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.4398e-10 +4.1500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4872e-10 +4.1500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0449e-10 +4.1500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.5102e-11 +4.1500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1499e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7072e-06 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1487e-07 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4353e-07 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.9359e-08 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.1626e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9395e-08 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6641e-08 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4338e-09 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.1869e-09 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4796e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2459e-09 +4.2500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8836e-10 +4.2500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5925e-10 +4.2500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.8180e-11 +4.2500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4890e-11 +4.2500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2184e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7803e-06 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1988e-07 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5069e-07 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0540e-07 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9573e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9989e-08 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5757e-08 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.6403e-09 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9640e-09 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4405e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2499e-09 +4.3500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7772e-10 +4.3500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5319e-10 +4.3500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0296e-10 +4.3500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4729e-11 +4.3500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2221e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6847e-06 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1799e-07 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4198e-07 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.8487e-08 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9722e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8152e-08 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.5740e-08 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -8.8384e-09 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8064e-09 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5527e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2733e-09 +4.4500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9873e-10 +4.4500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5517e-10 +4.4500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0369e-10 +4.4500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.6006e-11 +4.4500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1532e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7532e-06 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9761e-07 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.5328e-07 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7516e-08 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9559e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9650e-08 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6620e-08 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4826e-09 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.8330e-09 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6338e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2538e-09 +4.5500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.9171e-10 +4.5500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4036e-10 +4.5500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -9.9617e-11 +4.5500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7412e-11 +4.5500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2505e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7013e-06 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.5898e-07 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4354e-07 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0258e-07 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.0397e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.8163e-08 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.7094e-08 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0209e-09 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -5.0755e-09 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4244e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2640e-09 +4.6500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.5507e-10 +4.6500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.5557e-10 +4.6500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0015e-10 +4.6500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.7578e-11 +4.6500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2466e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.7777e-06 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -7.1553e-07 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3941e-07 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -9.7325e-08 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.9944e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9078e-08 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6047e-08 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.1888e-09 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7428e-09 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.4783e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.1987e-09 +4.7500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.6826e-10 +4.7500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6570e-10 +4.7500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0122e-10 +4.7500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4782e-11 +4.7500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1356e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6994e-06 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.8679e-07 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.4644e-07 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0158e-07 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -4.7697e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.7221e-08 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6537e-08 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.0283e-09 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.9449e-09 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.6150e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2366e-09 +4.8500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.8345e-10 +4.8500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.4231e-10 +4.8500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0052e-10 +4.8500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.6082e-11 +4.8500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.1376e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-05 -1.6855e-06 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-05 -6.9276e-07 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-05 -2.3922e-07 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-05 -1.0509e-07 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-05 -5.2751e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-04 -2.9505e-08 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-04 -1.6890e-08 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-04 -9.4031e-09 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-04 -4.7773e-09 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-04 -2.5602e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-03 -1.2740e-09 +4.9500e+03 0.0000e+00 2.0000e+01 1.5849e-03 -5.7879e-10 +4.9500e+03 0.0000e+00 2.0000e+01 2.5119e-03 -2.6535e-10 +4.9500e+03 0.0000e+00 2.0000e+01 3.9811e-03 -1.0680e-10 +4.9500e+03 0.0000e+00 2.0000e+01 6.3096e-03 -3.4762e-11 +4.9500e+03 0.0000e+00 2.0000e+01 1.0000e-02 -1.2049e-11 diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index 6a81e10..6036642 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -34,6 +34,7 @@ source_location = np.array([0., 0., 30.]) source_current = 1. source_radius = 5. +moment_amplitude = 1. receiver_location = np.array([10., 0., 30.]) receiver_orientation = "z" # "x", "y" or "z" @@ -67,7 +68,7 @@ source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ] diff --git a/tutorials/plot_1_fdem_fwd_chargeable.py b/tutorials/plot_1_fdem_fwd_chargeable.py index 67ba671..f54b9fc 100644 --- a/tutorials/plot_1_fdem_fwd_chargeable.py +++ b/tutorials/plot_1_fdem_fwd_chargeable.py @@ -30,6 +30,7 @@ source_location = np.array([0., 0., 0.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. +moment_amplitude = 1. receiver_location = np.array([8., 0., 0.]) receiver_orientation = "z" # "x", "y" or "z" @@ -57,7 +58,7 @@ source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation=source_orientation, - I=source_current + moment_amplitude=moment_amplitude ) ] diff --git a/tutorials/plot_1_fdem_fwd_sources.py b/tutorials/plot_1_fdem_fwd_sources.py index 199c3ac..e39250f 100644 --- a/tutorials/plot_1_fdem_fwd_sources.py +++ b/tutorials/plot_1_fdem_fwd_sources.py @@ -35,7 +35,7 @@ phi = (np.pi/4)*np.r_[1, 3, 5, 7, 1] node_locations = np.c_[np.cos(phi), np.sin(phi), np.zeros(len(phi))] -receiver_location_1 = np.array([0., 0., 1.]) +receiver_location_1 = np.array([10., 0., 1.]) receiver_location_2 = np.array([0., 0., 1.]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -78,7 +78,7 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list[0:2], location=source_location, - orientation="z", I=source_current + orientation="z", moment_amplitude=1. ) ) diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index ce4a166..1fa8d1e 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -27,7 +27,7 @@ from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency plt.rcParams.update({'font.size': 16}) -save_file = True +save_file = False ##################################################################### diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 40d57d3..c16e202 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -168,7 +168,7 @@ # the survey, the observation values and the uncertainties. # -data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) +data_object = data.Data(survey, dobs=dobs, standard_deviation=uncertainties) @@ -242,7 +242,7 @@ reg_map = maps.IdentityMap(nP=n_param) reg = LateralConstraint( mesh_reg, mapping=reg_map, - alpha_s = 0.01, + alpha_s = 0.1, alpha_x = 1., alpha_y = 1., ) @@ -259,7 +259,7 @@ reg.norms = np.c_[ps, px, py, 0] reg.mref = starting_model -reg.mrefInSmooth = True +reg.mrefInSmooth = False # reg.eps_p = 1e-6 # reg.eps_q = 1e-6 @@ -301,7 +301,7 @@ # Defining a starting value for the trade-off parameter (beta) between the data # misfit and the regularization. -starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=100) +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) @@ -316,10 +316,12 @@ update_IRLS = directives.Update_IRLS( max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, - f_min_change = 1e-4, + f_min_change = 1e-3, coolingRate=3 ) + + # Updating the preconditionner if it is model dependent. update_jacobi = directives.UpdatePreconditioner() @@ -333,13 +335,10 @@ # The directives are defined as a list. directives_list = [ - sensitivity_weights, starting_beta, beta_schedule, save_iteration, - target_misfit, update_IRLS, - update_jacobi, ] diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 7d229e2..2d295a8 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -27,7 +27,7 @@ from simpegEM1D.utils import plotLayer, get_vertical_discretization_time plt.rcParams.update({'font.size': 16}) -save_file = True +save_file = False ##################################################################### diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index f4038f2..22801ae 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -256,7 +256,7 @@ reg_map = maps.IdentityMap(mesh_reg) reg = LateralConstraint( mesh_reg, mapping=reg_map, - alpha_s = 0.01, + alpha_s = 0.1, alpha_x = 1., alpha_y = 1., ) @@ -273,7 +273,7 @@ reg.norms = np.c_[ps, px, py, 0] reg.mref = starting_model -reg.mrefInSmooth = True +reg.mrefInSmooth = False # Define how the optimization problem is solved. Here we will use an inexact # Gauss-Newton approach that employs the conjugate gradient solver. @@ -343,13 +343,13 @@ # The directives are defined as a list. directives_list = [ - sensitivity_weights, + # sensitivity_weights, starting_beta, beta_schedule, save_iteration, - target_misfit, + # target_misfit, update_IRLS, - update_jacobi, + # update_jacobi, ] ##################################################################### From a6950d23e12b3de6409305e2b4f3fde8c805cbf4 Mon Sep 17 00:00:00 2001 From: dccowan Date: Fri, 25 Sep 2020 17:10:57 -0700 Subject: [PATCH 37/54] Add VRM. Not matching analytic yet. --- simpegEM1D/analytics.py | 24 +++ simpegEM1D/simulation.py | 227 +++++++++++++++------ simpegEM1D/supporting_functions/kernels.py | 176 ++++++++-------- simpegEM1D/survey.py | 28 +-- tutorials/plot_1_tdem_fwd_chargeable.py | 96 +++++++-- tutorials/plot_2_fdem_inv_stitched.py | 5 +- 6 files changed, 371 insertions(+), 185 deletions(-) diff --git a/simpegEM1D/analytics.py b/simpegEM1D/analytics.py index 55d4a96..717f644 100644 --- a/simpegEM1D/analytics.py +++ b/simpegEM1D/analytics.py @@ -193,6 +193,30 @@ def ColeCole(f, sig_inf=1e-2, eta=0.1, tau=0.1, c=1): return sigma +def LogUniform(f, chi_inf=0.05, del_chi=0.05, tau1=1e-5, tau2=1e-2): + """ + Computing Cole-Cole model in frequency domain + + .. math:: + + \sigma (\omega) = \sigma_{\infty} - + \\frac{\sigma_{\infty}\eta}{1+(1-\eta)(\imath\omega\\tau)^c} + + + + where \\\\(\\\\\sigma_{\\\\infty}\\\\) is conductivity at infinte frequency, + \\\\(\\\\\eta\\\\) is chargeability, + \\\\(\\\\\\tau\\\\) is chargeability, + \\\\(\\\\ c\\\\) is chargeability. + + """ + + w = 2*np.pi*f + return chi_inf + del_chi*(1 - np.log((1 + 1j*w*tau2)/(1 + 1j*w*tau1))/np.log(tau2/tau1)) + + + + def BzAnalT(r, t, sigma): theta = np.sqrt((sigma*mu_0)/(4*t)) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 86f3778..1ebaae5 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -37,13 +37,18 @@ class BaseEM1DSimulation(BaseSimulation): """ - Pseudo analytic solutions for frequency and time domain EM problems - assumingLayered earth (1D). + Base simulation class for simulating the EM response over a 1D layered Earth. + The simulation computes the fields by solving the Hankel transform solutions + from Electromagnetic Theory for Geophysical Applications: Chapter 4 + (Ward and Hohmann, 1988). """ + + surveyPair = BaseEM1DSurvey mapPair = maps.IdentityMap chi = None hankel_filter = 'key_101_2009' # Default: Hankel filter + # hankel_filter = 'anderson_801_1982' # Default: Hankel filter hankel_pts_per_dec = None # Default: Standard DLF verbose = False fix_Jmatrix = False @@ -65,11 +70,7 @@ class BaseEM1DSimulation(BaseSimulation): props.Reciprocal(sigma, rho) - chi = props.PhysicalProperty( - "Magnetic susceptibility", - default=0. - ) - + # Induced polarization eta, etaMap, etaDeriv = props.Invertible( "Electrical chargeability (V/V), 0 <= eta < 1", default=0. @@ -85,6 +86,27 @@ class BaseEM1DSimulation(BaseSimulation): default=0.5 ) + # Viscous remanent magnetization + chi, chiMap, chiDeriv = props.Invertible( + "Magnetic susceptibility [SI]. In the case of VRM, it is the infinite-frequency susceptibility", + default=0. + ) + + dchi, dchiMap, dchiDeriv = props.Invertible( + "DC magnetic susceptibility for viscous remanent magnetization contribution [SI]", + default=0. + ) + + tau1, tau1Map, tau1Deriv = props.Invertible( + "Lower bound for log-uniform distribution of time-relaxation constants for VRM", + default=1e-10 + ) + + tau2, tau2Map, tau2Deriv = props.Invertible( + "Upper bound for log-uniform distribution of time-relaxation constants for VRM", + default=10. + ) + survey = properties.Instance( "a survey object", BaseEM1DSurvey, required=True ) @@ -93,8 +115,6 @@ class BaseEM1DSimulation(BaseSimulation): half_switch = properties.Bool("Switch for half-space") - # depth = properties.Array("Depth of the layers", dtype=float, required=True) - # Add layer thickness as invertible property thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( "thicknesses of the layers", default=np.array([]) @@ -105,7 +125,6 @@ def __init__(self, **kwargs): # Check input arguments. If self.hankel_filter is not a valid filter, # it will set it to the default (key_201_2009). - ht, htarg = check_hankel( 'dlf', { @@ -121,18 +140,6 @@ def __init__(self, **kwargs): print(">> Use "+self.hankel_filter+" filter for Hankel Transform") - # @property - # def h(self): - # """ - # Source height - # """ - - # if getattr(self, '_h', None) is None: - # self._h = np.array([src.location[2] for src in self.survey.source_list]) - - # return self._h - - @property def n_layer(self): """ @@ -143,10 +150,20 @@ def n_layer(self): elif self.half_switch is True: return int(1) + + @property + def n_filter(self): + """ Length of filter """ + return self.fhtfilt.base.size + + def depth(self): + if self.thicknesses is not None: + return np.r_[0., -np.cumsum(self.thicknesses)] + + def sigma_cole(self, frequencies): """ - Computes Pelton's Cole-Cole conductivity model - in frequency domain. + Computes Pelton's Cole-Cole conductivity model in the frequency domain. Parameter --------- @@ -168,45 +185,130 @@ def sigma_cole(self, frequencies): n_filter = self.n_filter sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) - if np.isscalar(self.eta): - eta = self.eta - tau = self.tau - c = self.c + + # No IP effect + if np.all(self.eta) == 0.: + + sigma_tensor = np.empty( + [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' + ) + sigma_tensor[:, :, :] = np.tile(sigma.reshape( + (n_layer, n_frequency, 1)), (1, 1, n_filter) + ) + + return sigma_tensor + + # IP effect else: - eta = np.tile(self.eta.reshape([-1, 1]), (1, n_frequency)) - tau = np.tile(self.tau.reshape([-1, 1]), (1, n_frequency)) - c = np.tile(self.c.reshape([-1, 1]), (1, n_frequency)) - w = np.tile( - 2*np.pi*frequencies, - (n_layer, 1) - ) + if np.isscalar(self.eta): + eta = self.eta + tau = self.tau + c = self.c + else: + eta = np.tile(self.eta.reshape([-1, 1]), (1, n_frequency)) + tau = np.tile(self.tau.reshape([-1, 1]), (1, n_frequency)) + c = np.tile(self.c.reshape([-1, 1]), (1, n_frequency)) - sigma_complex = np.empty( - [n_layer, n_frequency], dtype=np.complex128, order='F' - ) - sigma_complex[:, :] = ( - sigma - - sigma*eta/(1+(1-eta)*(1j*w*tau)**c) - ) + w = np.tile( + 2*np.pi*frequencies, + (n_layer, 1) + ) - sigma_complex_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - sigma_complex_tensor[:, :, :] = np.tile(sigma_complex.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) + sigma_complex = np.empty( + [n_layer, n_frequency], dtype=np.complex128, order='F' + ) + sigma_complex[:, :] = ( + sigma - + sigma*eta/(1+(1-eta)*(1j*w*tau)**c) + ) - return sigma_complex_tensor + sigma_complex_tensor = np.empty( + [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' + ) + sigma_complex_tensor[:, :, :] = np.tile(sigma_complex.reshape( + (n_layer, n_frequency, 1)), (1, 1, n_filter) + ) - @property - def n_filter(self): - """ Length of filter """ - return self.fhtfilt.base.size + return sigma_complex_tensor - def depth(self): - if self.thicknesses is not None: - return np.r_[0., -np.cumsum(self.thicknesses)] + + def chi_log_uniform(self, frequencies): + """ + Computes the complex magnetic susceptibility in the frequency domain + in the case of viscous remanent magnetization. + + Parameter + --------- + + n_filter: int + the number of filter values + f: ndarray + frequency (Hz) + + Return + ------ + + sigma_complex: ndarray (n_layer x n_frequency x n_filter) + Cole-Cole conductivity values at given frequencies + + """ + + if np.isscalar(self.chi): + chi = np.ones_like(self.sigma) * self.chi + else: + chi = self.chi + + n_layer = self.n_layer + n_frequency = len(frequencies) + n_filter = self.n_filter + + chi = np.tile(chi.reshape([-1, 1]), (1, n_frequency)) + + # No VRM effect + if np.all(self.dchi) == 0.: + + chi_tensor = np.empty( + [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' + ) + chi_tensor[:, :, :] = np.tile(chi.reshape( + (n_layer, n_frequency, 1)), (1, 1, n_filter) + ) + + return chi_tensor + + # VRM effects + else: + + if np.isscalar(self.dchi): + dchi = self.dchi + tau1 = self.tau1 + tau2 = self.tau2 + else: + dchi = np.tile(self.dchi.reshape([-1, 1]), (1, n_frequency)) + tau1 = np.tile(self.tau1.reshape([-1, 1]), (1, n_frequency)) + tau2 = np.tile(self.tau2.reshape([-1, 1]), (1, n_frequency)) + + w = np.tile( + 2*np.pi*frequencies, + (n_layer, 1) + ) + + chi_complex = np.empty( + [n_layer, n_frequency], dtype=np.complex128, order='F' + ) + chi_complex[:, :] = chi + dchi*( + 1 - np.log((1 + 1j+w*tau2)/(1 + 1j*w*tau1))/np.log(tau2/tau1) + ) + + chi_complex_tensor = np.empty( + [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' + ) + chi_complex_tensor[:, :, :] = np.tile(chi_complex.reshape( + (n_layer, n_frequency, 1)), (1, 1, n_filter) + ) + + return chi_complex_tensor def compute_integral(self, m, output_type='response'): @@ -230,10 +332,6 @@ def compute_integral(self, m, output_type='response'): # Physical Properties self.model = m - chi = self.chi - if np.isscalar(self.chi): - chi = np.ones_like(self.sigma) * self.chi - n_layer = self.n_layer # Source height above topography @@ -261,8 +359,9 @@ def compute_integral(self, m, output_type='response'): rx.frequencies.reshape([-1, 1]), (1, n_filter) ) - # Create globally, not for each receiver + # Create globally, not for each receiver in the future sig = self.sigma_cole(rx.frequencies) + chi = self.chi_log_uniform(rx.frequencies) # Compute receiver height h = h_vector[ii] @@ -561,7 +660,9 @@ class EM1DTMSimulation(BaseEM1DSimulation): def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) - self.fftfilt = filters.key_81_CosSin_2009() + # self.fftfilt = filters.key_81_CosSin_2009() + # self.fftfilt = filters.key_101_CosSin_2012() + self.fftfilt = filters.key_601_CosSin_2009() def set_time_intervals(self): @@ -764,7 +865,7 @@ def projectFields(self, u): ####################################################################### -# STITCHED 1D SIMULATION CLASS +# STITCHED 1D SIMULATION CLASS AND GLOBAL FUNCTIONS ####################################################################### def dot(args): diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 9cda24d..3df4955 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -60,8 +60,8 @@ def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): const = np.zeros((n_frequency, n_filter), dtype=complex) utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0, :, :])*sig[0, :, :]) + const = mu_0*utemp1/(mu_0*(1+chi[0, :, :])*utemp0) Mtemp00 = 0.5*(1+const) Mtemp10 = 0.5*(1-const) @@ -94,9 +94,9 @@ def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): else: for j in range(n_layer-1): - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) + utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j, :, :])*sig[j, :, :]) + utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1, :, :])*sig[j+1, :, :]) + const = mu_0*(1+chi[j, :, :])*utemp1/(mu_0*(1+chi[j+1, :, :])*utemp0) h0 = thick[j] @@ -151,7 +151,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): Frequency (Hz); size = (n_frequency x n_finlter) lamda : complex, ndarray Frequency (Hz); size = (n_frequency x n_finlter) - sig: compelx, ndarray + sig: complex, ndarray Conductivity (S/m); size = (n_layer x 1) chi: compelx, ndarray Susceptibility (SI); size = (n_layer x 1) @@ -660,103 +660,103 @@ def magnetic_dipole_kernel( return kernels -def magnetic_dipole_fourier( - simulation, lamda, f, n_layer, sig, chi, I, h, z, r, - src, rx, output_type='response' -): +# def magnetic_dipole_fourier( +# simulation, lamda, f, n_layer, sig, chi, I, h, z, r, +# src, rx, output_type='response' +# ): - """ - Kernel for vertical (Hz) and radial (Hrho) magnetic component due to - vertical magnetic diopole (VMD) source in (kx,ky) domain. +# """ +# Kernel for vertical (Hz) and radial (Hrho) magnetic component due to +# vertical magnetic diopole (VMD) source in (kx,ky) domain. - For vertical magnetic dipole: +# For vertical magnetic dipole: - .. math:: - - H_z = \\frac{m}{4\\pi} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda^2 J_0(\\lambda r) d \\lambda +# .. math:: - .. math:: - - H_{\\rho} = - \\frac{m}{4\\pi} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda^2 J_1(\\lambda r) d \\lambda +# H_z = \\frac{m}{4\\pi} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda^2 J_0(\\lambda r) d \\lambda - For horizontal magnetic dipole: +# .. math:: - .. math:: +# H_{\\rho} = - \\frac{m}{4\\pi} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda^2 J_1(\\lambda r) d \\lambda - H_x = \\frac{m}{4\\pi} \\Bigg \\frac{1}{\\rho} -\\frac{2x^2}{\\rho^3} \\Bigg ) - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda J_1(\\lambda r) d \\lambda - + \\frac{m}{4\\pi} \\frac{x^2}{\\rho^2} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda^2 J_0(\\lambda r) d \\lambda +# For horizontal magnetic dipole: - .. math:: +# .. math:: - H_y = - \\frac{m}{4\\pi} \\frac{2xy}{\\rho^3} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda J_1(\\lambda r) d \\lambda - + \\frac{m}{4\\pi} \\frac{xy}{\\rho^2} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda^2 J_0(\\lambda r) d \\lambda +# H_x = \\frac{m}{4\\pi} \\Bigg \\frac{1}{\\rho} -\\frac{2x^2}{\\rho^3} \\Bigg ) +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda J_1(\\lambda r) d \\lambda +# + \\frac{m}{4\\pi} \\frac{x^2}{\\rho^2} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda^2 J_0(\\lambda r) d \\lambda - .. math:: +# .. math:: - H_z = \\frac{m}{4\\pi} \\frac{x}{\\rho} - \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} - \\lambda^2 J_1(\\lambda r) d \\lambda +# H_y = - \\frac{m}{4\\pi} \\frac{2xy}{\\rho^3} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda J_1(\\lambda r) d \\lambda +# + \\frac{m}{4\\pi} \\frac{xy}{\\rho^2} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda^2 J_0(\\lambda r) d \\lambda - """ +# .. math:: - # coefficient_wavenumber = 1/(4*np.pi)*lamda**2 - C = I/(4*np.pi) +# H_z = \\frac{m}{4\\pi} \\frac{x}{\\rho} +# \\int_0^{\\infty} \\r_{TE} e^{u_0|z-h|} +# \\lambda^2 J_1(\\lambda r) d \\lambda - n_frequency = len(f) - n_filter = simulation.n_filter - - # COMPUTE TE-MODE REFLECTION COEFFICIENT - if output_type == 'sensitivity_sigma': - drTE = np.zeros( - [n_layer, n_frequency, n_filter], - dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = simulation.thicknesses - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.half_switch, drTE, - n_layer, n_frequency, n_filter - ) - - temp = drTE * np.exp(-lamda*(z+h)) - else: - rTE = np.empty( - [n_frequency, n_filter], dtype=np.complex128, order='F' - ) - if rte_fortran is None: - thick = simulation.thicknesses - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.half_switch, - rTE, n_layer, n_frequency, n_filter - ) - - if output_type == 'sensitivity_height': - rTE *= -2*lamda +# """ - # COMPUTE KERNEL FUNCTIONS FOR FOURIER TRANSFORM - return C * lamda**2 * rTE +# # coefficient_wavenumber = 1/(4*np.pi)*lamda**2 +# C = I/(4*np.pi) + +# n_frequency = len(f) +# n_filter = simulation.n_filter + +# # COMPUTE TE-MODE REFLECTION COEFFICIENT +# if output_type == 'sensitivity_sigma': +# drTE = np.zeros( +# [n_layer, n_frequency, n_filter], +# dtype=np.complex128, order='F' +# ) +# if rte_fortran is None: +# thick = simulation.thicknesses +# drTE = rTEfunjac( +# n_layer, f, lamda, sig, chi, thick, simulation.half_switch +# ) +# else: +# depth = simulation.depth +# rte_fortran.rte_sensitivity( +# f, lamda, sig, chi, depth, simulation.half_switch, drTE, +# n_layer, n_frequency, n_filter +# ) + +# temp = drTE * np.exp(-lamda*(z+h)) +# else: +# rTE = np.empty( +# [n_frequency, n_filter], dtype=np.complex128, order='F' +# ) +# if rte_fortran is None: +# thick = simulation.thicknesses +# rTE = rTEfunfwd( +# n_layer, f, lamda, sig, chi, thick, simulation.half_switch +# ) +# else: +# depth = simulation.depth +# rte_fortran.rte_forward( +# f, lamda, sig, chi, depth, simulation.half_switch, +# rTE, n_layer, n_frequency, n_filter +# ) + +# if output_type == 'sensitivity_height': +# rTE *= -2*lamda + +# # COMPUTE KERNEL FUNCTIONS FOR FOURIER TRANSFORM +# return C * lamda**2 * rTE diff --git a/simpegEM1D/survey.py b/simpegEM1D/survey.py index 5ddc631..7e734a8 100644 --- a/simpegEM1D/survey.py +++ b/simpegEM1D/survey.py @@ -22,8 +22,7 @@ class BaseEM1DSurvey(BaseSurvey, properties.HasProperties): """ - Base EM1D Survey - + Base EM1D survey class """ def __init__(self, source_list=None, **kwargs): @@ -32,7 +31,8 @@ def __init__(self, source_list=None, **kwargs): class EM1DSurveyFD(BaseEM1DSurvey): """ - Freqency-domain EM1D survey + Survey class for frequency domain surveys. Used for 1D simulation + as well as stitched 1D simulation. """ def __init__(self, source_list=None, **kwargs): @@ -41,8 +41,7 @@ def __init__(self, source_list=None, **kwargs): @property def nD(self): """ - # of data - + Returns number of data. """ nD = 0 @@ -64,22 +63,14 @@ def vnD_by_sounding(self): self._vnD_by_sounding = np.array(temp) return self._vnD_by_sounding - # @property - # def hz_primary(self): - # # Assumes HCP only at the moment - # if self.src_type == 'VMD': - # return -1./(4*np.pi*self.offset**3) - # elif self.src_type == 'CircularLoop': - # return self.I/(2*self.a) * np.ones_like(self.frequency) - # else: - # raise NotImplementedError() - class EM1DSurveyTD(BaseEM1DSurvey): - """docstring for EM1DSurveyTD""" + """ + Survey class for time-domain surveys. Used for 1D simulation + as well as stitched 1D simulation. + """ - def __init__(self, source_list=None, **kwargs): BaseEM1DSurvey.__init__(self, source_list, **kwargs) @@ -90,8 +81,7 @@ def __init__(self, source_list=None, **kwargs): @property def nD(self): """ - # of data - + Returns the number of data. """ nD = 0 diff --git a/tutorials/plot_1_tdem_fwd_chargeable.py b/tutorials/plot_1_tdem_fwd_chargeable.py index f687eed..e7d7ee0 100644 --- a/tutorials/plot_1_tdem_fwd_chargeable.py +++ b/tutorials/plot_1_tdem_fwd_chargeable.py @@ -18,21 +18,27 @@ from SimPEG import maps import simpegEM1D as em1d -from simpegEM1D.analytics import ColeCole +from simpegEM1D.analytics import ColeCole, LogUniform +from discretize.utils import mkvc + + + +from scipy.special import expi + ##################################################################### # Create Survey # ------------- # # -source_location = np.array([10., 0., 0.]) +source_location = np.array([0., 0., 0.5]) source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = 10. -receiver_location = np.array([0., 0., 0.]) +receiver_location = np.array([0., 0., 0.5]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" @@ -55,9 +61,9 @@ # Sources source_list = [ - em1d.sources.TimeDomainMagneticDipoleSource( + em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=source_location, - I=source_current, orientation=source_orientation + I=source_current, a=source_radius ) ] @@ -80,12 +86,18 @@ thicknesses = np.array([40., 40.]) n_layer = len(thicknesses) + 1 -# half-space physical properties -sigma = 1e-2 +# half-space conductivity properties +sigma = 1e-1 eta = 0.5 tau = 0.01 c = 0.75 -chi = 0. + +# half-space magnetic viscosity properties +chi = 0.001 +dchi = 0.001 +tau1 = 1e-6 +tau2 = 1. + # physical property models sigma_model = sigma * np.ones(n_layer) @@ -93,6 +105,9 @@ tau_model = tau * np.ones(n_layer) c_model = c * np.ones(n_layer) chi_model = chi * np.ones(n_layer) +dchi_model = dchi * np.ones(n_layer) +tau1_model = tau1 * np.ones(n_layer) +tau2_model = tau2 * np.ones(n_layer) # Define a mapping for conductivities model_mapping = maps.IdentityMap(nP=n_layer) @@ -100,6 +115,7 @@ # Compute and plot complex conductivity at all frequencies frequencies = np.logspace(-3, 6, 91) sigma_complex = ColeCole(frequencies, sigma, eta, tau, c) +chi_complex = LogUniform(frequencies, chi, dchi, tau1, tau2) fig = plt.figure() ax = fig.add_subplot(111) @@ -115,6 +131,20 @@ loc="center right" ) +fig = plt.figure() +ax = fig.add_subplot(111) +ax.semilogx(frequencies, chi*np.ones(len(frequencies)), "b", lw=3) +ax.semilogx(frequencies, np.real(chi_complex), "r", lw=3) +ax.semilogx(frequencies, np.imag(chi_complex), "r--", lw=3) +ax.set_xlim(np.min(frequencies), np.max(frequencies)) +ax.set_ylim(-1.1*chi, 1.1*(chi+dchi)) +ax.set_xlabel("Frequency (Hz)") +ax.set_ylabel("Susceptibility") +ax.legend( + ["$\chi_{DC}$", "$Re[\chi (\omega)]$", "$Im[\chi (\omega)]$"], + loc="center right" +) + ####################################################################### # Define the Forward Simulation and Predict Data # ---------------------------------------------- @@ -137,21 +167,63 @@ dpred_2 = simulation_2.dpred(sigma_model) +# Simulate response for viscous remanent magnetization +simulation_3 = em1d.simulation.EM1DTMSimulation( + survey=survey, sigmaMap=maps.IdentityMap(nP=1), + chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, +) + +# m = mkvc(np.array(sigma)) +m = mkvc(np.array(1e-6)) +dpred_3 = simulation_3.dpred(m) + + +############################################ +# ANALYTIC + + +F = (1/np.log(tau2/tau1)) * (expi(times/tau2) + expi(-times/tau1)) + +dFdt = (1/np.log(tau2/tau1)) * (np.exp(-times/tau1) - np.exp(-times/tau2)) / times + + +mu0 = 4*np.pi*1e-7 +a = source_radius +z = 0.5 +h = 0.5 +B0 = (0.5*mu0*a**2) * (dchi/(2 + dchi)) * ((z + h)**2 + a**2)**-1.5 + + +Banal = B0*F +dBdtanal = B0*dFdt + + + + + + + +############################################ + fig = plt.figure(figsize = (6, 5)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(dpred_1[0:len(times)]), 'b', lw=3) +ax.loglog(times, np.abs(dpred_1[0:len(times)]), 'k', lw=3) ax.loglog(times, np.abs(dpred_2[0:len(times)]), 'r', lw=3) -ax.legend(["Non-Chargeable", "Chargeable"]) +ax.loglog(times, np.abs(dpred_3[0:len(times)]), 'b', lw=3) +ax.loglog(times, np.abs(Banal), 'b*') +ax.legend(["Purely Inductive", "Chargeable", "Viscous Remanent Mag."]) ax.set_xlabel("Times (s)") ax.set_ylabel("|B| (T)") ax.set_title("Magnetic Flux") fig = plt.figure(figsize = (6, 5)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(times, np.abs(dpred_1[len(times):]), 'b', lw=3) +ax.loglog(times, np.abs(dpred_1[len(times):]), 'k', lw=3) ax.loglog(times, np.abs(dpred_2[len(times):]), 'r', lw=3) -ax.legend(["Non-chargeable", "Chargeable"]) +ax.loglog(times, np.abs(dpred_3[len(times):]), 'b', lw=3) +ax.loglog(times, np.abs(dBdtanal), 'b*') +ax.legend(["Purely Inductive", "Chargeable", "Viscous Remanent Mag."]) ax.set_xlabel("Times (s)") ax.set_ylabel("|dB/dt| (T/s)") ax.set_title("Time-Derivative of Magnetic Flux") diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index c16e202..2306f82 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -102,8 +102,7 @@ # -source_current = 1. -source_radius = 5. +moment_amplitude = 1. receiver_locations = np.c_[source_locations[:, 0]+10., source_locations[:, 1:]] receiver_orientation = "z" # "x", "y" or "z" @@ -142,7 +141,7 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ) From 1c97814286e62369df2251633d4507ebc4465815 Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 28 Sep 2020 12:28:18 -0700 Subject: [PATCH 38/54] Fix bug VRM --- simpegEM1D/simulation.py | 10 ++++++---- tutorials/plot_1_tdem_fwd_chargeable.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 1ebaae5..7c47c51 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -281,9 +281,9 @@ def chi_log_uniform(self, frequencies): else: if np.isscalar(self.dchi): - dchi = self.dchi - tau1 = self.tau1 - tau2 = self.tau2 + dchi = self.dchi * np.ones_like(self.chi) + tau1 = self.tau1 * np.ones_like(self.chi) + tau2 = self.tau2 * np.ones_like(self.chi) else: dchi = np.tile(self.dchi.reshape([-1, 1]), (1, n_frequency)) tau1 = np.tile(self.tau1.reshape([-1, 1]), (1, n_frequency)) @@ -298,7 +298,9 @@ def chi_log_uniform(self, frequencies): [n_layer, n_frequency], dtype=np.complex128, order='F' ) chi_complex[:, :] = chi + dchi*( - 1 - np.log((1 + 1j+w*tau2)/(1 + 1j*w*tau1))/np.log(tau2/tau1) + 1 - (np.log(tau2/tau1))**-1 * np.log( + (1 + 1j*w*tau2)/(1 + 1j*w*tau1) + ) ) chi_complex_tensor = np.empty( diff --git a/tutorials/plot_1_tdem_fwd_chargeable.py b/tutorials/plot_1_tdem_fwd_chargeable.py index e7d7ee0..d8d0655 100644 --- a/tutorials/plot_1_tdem_fwd_chargeable.py +++ b/tutorials/plot_1_tdem_fwd_chargeable.py @@ -95,7 +95,7 @@ # half-space magnetic viscosity properties chi = 0.001 dchi = 0.001 -tau1 = 1e-6 +tau1 = 1e-7 tau2 = 1. From 02b62a934f74ef6c6f50b78a6bc24d3024da053f Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 28 Sep 2020 14:56:08 -0700 Subject: [PATCH 39/54] docstrings to simulation classes and at VRM to stitched 1D --- simpegEM1D/simulation.py | 533 ++++++++++-------- simpegEM1D/supporting_functions/kernels.py | 46 +- ...eable.py => plot_1_fdem_fwd_dispersive.py} | 4 +- tutorials/plot_2_fdem_fwd_stitched.py | 3 +- 4 files changed, 322 insertions(+), 264 deletions(-) rename tutorials/{plot_1_fdem_fwd_chargeable.py => plot_1_fdem_fwd_dispersive.py} (97%) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 7c47c51..207f2e7 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -37,18 +37,13 @@ class BaseEM1DSimulation(BaseSimulation): """ - Base simulation class for simulating the EM response over a 1D layered Earth. - The simulation computes the fields by solving the Hankel transform solutions - from Electromagnetic Theory for Geophysical Applications: Chapter 4 - (Ward and Hohmann, 1988). + Base simulation class for simulating the EM response over a 1D layered Earth + for a single sounding. The simulation computes the fields by solving the + Hankel transform solutions from Electromagnetic Theory for Geophysical + Applications: Chapter 4 (Ward and Hohmann, 1988). """ - - surveyPair = BaseEM1DSurvey - mapPair = maps.IdentityMap - chi = None hankel_filter = 'key_101_2009' # Default: Hankel filter - # hankel_filter = 'anderson_801_1982' # Default: Hankel filter hankel_pts_per_dec = None # Default: Standard DLF verbose = False fix_Jmatrix = False @@ -56,12 +51,9 @@ class BaseEM1DSimulation(BaseSimulation): _Jmatrix_height = None _pred = None + # Properties for electrical conductivity/resistivity sigma, sigmaMap, sigmaDeriv = props.Invertible( - "Electrical conductivity at infinite frequency(S/m)" - ) - - h, hMap, hDeriv = props.Invertible( - "Receiver Height (m), h > 0", + "Electrical conductivity at infinite frequency (S/m)" ) rho, rhoMap, rhoDeriv = props.Invertible( @@ -70,54 +62,57 @@ class BaseEM1DSimulation(BaseSimulation): props.Reciprocal(sigma, rho) - # Induced polarization eta, etaMap, etaDeriv = props.Invertible( - "Electrical chargeability (V/V), 0 <= eta < 1", + "Intrinsic chargeability (V/V), 0 <= eta < 1", default=0. ) tau, tauMap, tauDeriv = props.Invertible( - "Time constant (s)", + "Time constant for Cole-Cole model (s)", default=1. ) c, cMap, cDeriv = props.Invertible( - "Frequency Dependency, 0 < c < 1", + "Frequency Dependency for Cole-Cole model, 0 < c < 1", default=0.5 ) - # Viscous remanent magnetization + # Properties for magnetic susceptibility chi, chiMap, chiDeriv = props.Invertible( - "Magnetic susceptibility [SI]. In the case of VRM, it is the infinite-frequency susceptibility", + "Magnetic susceptibility at infinite frequency (SI)", default=0. ) dchi, dchiMap, dchiDeriv = props.Invertible( - "DC magnetic susceptibility for viscous remanent magnetization contribution [SI]", + "DC magnetic susceptibility for viscous remanent magnetization contribution (SI)", default=0. ) tau1, tau1Map, tau1Deriv = props.Invertible( - "Lower bound for log-uniform distribution of time-relaxation constants for VRM", + "Lower bound for log-uniform distribution of time-relaxation constants for viscous remanent magnetization (s)", default=1e-10 ) tau2, tau2Map, tau2Deriv = props.Invertible( - "Upper bound for log-uniform distribution of time-relaxation constants for VRM", + "Upper bound for log-uniform distribution of time-relaxation constants for viscous remanent magnetization (s)", default=10. ) + # Additional properties + h, hMap, hDeriv = props.Invertible( + "Receiver Height (m), h > 0", + ) + survey = properties.Instance( "a survey object", BaseEM1DSurvey, required=True ) topo = properties.Array("Topography (x, y, z)", dtype=float) - half_switch = properties.Bool("Switch for half-space") + halfspace_switch = properties.Bool("Switch for simulating half-space response") thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( - "thicknesses of the layers", - default=np.array([]) + "layer thicknesses (m)", default=np.array([]) ) def __init__(self, **kwargs): @@ -142,12 +137,10 @@ def __init__(self, **kwargs): @property def n_layer(self): - """ - number of layers - """ - if self.half_switch is False: + """number of layers""" + if self.halfspace_switch is False: return int(self.thicknesses.size + 1) - elif self.half_switch is True: + elif self.halfspace_switch is True: return int(1) @@ -156,28 +149,25 @@ def n_filter(self): """ Length of filter """ return self.fhtfilt.base.size + def depth(self): + """layer depths""" if self.thicknesses is not None: return np.r_[0., -np.cumsum(self.thicknesses)] - def sigma_cole(self, frequencies): + def compute_sigma_tensor(self, frequencies): """ - Computes Pelton's Cole-Cole conductivity model in the frequency domain. - - Parameter - --------- + Computes the complex conductivity tensor using Pelton's Cole-Cole model: - n_filter: int - the number of filter values - f: ndarray - frequency (Hz) + .. math :: + \\sigma (\\omega ) = \\sigma \\Bigg [ + 1 - \\eta \\Bigg ( \\frac{1}{1 + (1-\\eta ) (1 + i\\omega \\tau)^c} \\Bigg ) + \\Bigg ] - Return - ------ - - sigma_complex: ndarray (n_layer x n_frequency x n_filter) - Cole-Cole conductivity values at given frequencies + :param numpy.array frequencies: np.array(N,) containing frequencies + :rtype: numpy.ndarray: np.array(n_layer, n_frequency, n_filter) + :return: complex conductivity tensor """ n_layer = self.n_layer @@ -233,24 +223,20 @@ def sigma_cole(self, frequencies): return sigma_complex_tensor - def chi_log_uniform(self, frequencies): + def compute_chi_tensor(self, frequencies): """ - Computes the complex magnetic susceptibility in the frequency domain - in the case of viscous remanent magnetization. - - Parameter - --------- + Computes the complex magnetic susceptibility tensor assuming a log-uniform + distribution of time-relaxation constants: - n_filter: int - the number of filter values - f: ndarray - frequency (Hz) + .. math:: + \\chi (\\omega ) = \\chi + \\Delta \\chi \\Bigg [ + 1 - \\Bigg ( \\frac{1}{ln (\\tau_2 / \\tau_1 )} \\Bigg ) + ln \\Bigg ( \\frac{1 + i\\omega \\tau_2}{1 + i\\omega tau_1} ) \\Bigg ) + \\Bigg ] - Return - ------ - - sigma_complex: ndarray (n_layer x n_frequency x n_filter) - Cole-Cole conductivity values at given frequencies + :param numpy.array frequencies: np.array(N,) containing frequencies + :rtype: numpy.ndarray: np.array(n_layer, n_frequency, n_filter) + :return: complex magnetic susceptibility tensor """ @@ -265,7 +251,7 @@ def chi_log_uniform(self, frequencies): chi = np.tile(chi.reshape([-1, 1]), (1, n_frequency)) - # No VRM effect + # No magnetic viscosity if np.all(self.dchi) == 0.: chi_tensor = np.empty( @@ -277,7 +263,7 @@ def chi_log_uniform(self, frequencies): return chi_tensor - # VRM effects + # Magnetic viscosity else: if np.isscalar(self.dchi): @@ -315,46 +301,47 @@ def chi_log_uniform(self, frequencies): def compute_integral(self, m, output_type='response'): """ - + This method evaluates the Hankel transform for each source and + receiver and outputs it as a list. Used for computing response + or sensitivities. """ - # Assign flag if halfspace - if self.half_switch is None: + self.model = m + n_layer = self.n_layer + n_filter = self.n_filter + + # Set half-space switch if required. + if self.halfspace_switch is None: if len(self.thicknesses)==0: - self.half_switch=True + self.halfspace_switch=True else: - self.half_switch=False + self.halfspace_switch=False - # Set evaluation frequencies for time domain + # For time-domain simulations, set frequencies for the evaluation + # of the Hankel transform. if isinstance(self.survey, EM1DSurveyTD): - # self.set_time_intervals() # SOMETHING IS UP WITH THIS if self.frequencies_are_set is False: self.set_frequencies() - # Physical Properties - self.model = m - - n_layer = self.n_layer - - # Source height above topography + + # Define source height above topography by mapping or from sources and receivers. if self.hMap is not None: h_vector = np.array(self.h) else: if self.topo is None: h_vector = np.array([src.location[2] for src in self.survey.source_list]) else: - h_vector = np.array([src.location[2]-self.topo[-1] for src in self.survey.source_list]) - - n_filter = self.n_filter + h_vector = np.array( + [src.location[2]-self.topo[-1] for src in self.survey.source_list] + ) - fields_list = [] + + integral_output_list = [] for ii, src in enumerate(self.survey.source_list): - for jj, rx in enumerate(src.receiver_list): n_frequency = len(rx.frequencies) - # TODO: potentially store f = np.empty([n_frequency, n_filter], order='F') f[:, :] = np.tile( @@ -362,8 +349,8 @@ def compute_integral(self, m, output_type='response'): ) # Create globally, not for each receiver in the future - sig = self.sigma_cole(rx.frequencies) - chi = self.chi_log_uniform(rx.frequencies) + sig = self.compute_sigma_tensor(rx.frequencies) + chi = self.compute_chi_tensor(rx.frequencies) # Compute receiver height h = h_vector[ii] @@ -372,7 +359,7 @@ def compute_integral(self, m, output_type='response'): else: z = h + rx.locations[2] - src.location[2] - + # Hankel transform for x, y or z magnetic dipole source if isinstance(src, HarmonicMagneticDipoleSource) | isinstance(src, TimeDomainMagneticDipoleSource): # Radial distance @@ -384,17 +371,16 @@ def compute_integral(self, m, output_type='response'): r = np.sqrt(np.sum(r**2)) r_vec = r * np.ones(n_frequency) - # Use function from empymod - # size of lambd is (n_frequency x n_filter) + # Use function from empymod to define Hankel coefficients. + # Size of lambd is (n_frequency x n_filter) lambd = np.empty([n_frequency, n_filter], order='F') lambd[:, :], _ = get_dlf_points( self.fhtfilt, r_vec, self.hankel_pts_per_dec ) - # Get kernel function at all lambda and frequencies + # Get kernel function(s) at all lambda and frequencies PJ = magnetic_dipole_kernel( - self, lambd, f, n_layer, sig, chi, h, z, r, - src, rx, output_type + self, lambd, f, n_layer, sig, chi, h, z, r, src, rx, output_type ) PJ = tuple(PJ) @@ -402,35 +388,15 @@ def compute_integral(self, m, output_type='response'): if output_type=="sensitivity_sigma": r_vec = np.tile(r_vec, (n_layer, 1)) + # Evaluate Hankel transform using digital linear filter from empymod integral_output = dlf( PJ, lambd, r_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 ) - # elif src.orientation == "z": - - # z_vec = -1j *z * np.ones(n_frequency) - - # # Use function from empymod - # # size of lambd is (n_frequency x n_filter) - # lambd = np.empty([n_frequency, n_filter], order='F') - # lambd[:, :], _ = get_dlf_points( - # self.fhtfilt, z_vec, self.hankel_pts_per_dec - # ) - - # PJ = magnetic_dipole_fourier( - # self, lambd, f, n_layer, sig, chi, I, h, z, r, - # src, rx, output_type - # ) - - # integral_output = fourier_dlf( - # PJ, lambd, z_vec, filters.key_201_2009(kind='sin'), self.hankel_pts_per_dec - # ) - - - + # Hankel transform for horizontal loop source elif isinstance(src, HarmonicHorizontalLoopSource) | isinstance(src, TimeDomainHorizontalLoopSource): - # radial distance and loop radius + # radial distance (r) and loop radius (a) if rx.use_source_receiver_offset: r = rx.locations[0:2] else: @@ -439,53 +405,50 @@ def compute_integral(self, m, output_type='response'): r_vec = np.sqrt(np.sum(r**2)) * np.ones(n_frequency) a_vec = src.a * np.ones(n_frequency) - # Use function from empymod - # size of lambd is (n_frequency x n_filter) + # Use function from empymod to define Hankel coefficients. + # Size of lambd is (n_frequency x n_filter) lambd = np.empty([n_frequency, n_filter], order='F') lambd[:, :], _ = get_dlf_points( self.fhtfilt, a_vec, self.hankel_pts_per_dec ) + # Get kernel function(s) at all lambda and frequencies hz = horizontal_loop_kernel( self, lambd, f, n_layer, sig, chi, a_vec, h, z, r, src, rx, output_type ) - # kernels for each bessel function - # (j0, j1, j2) + # kernels associated with each bessel function (j0, j1, j2) PJ = (None, hz, None) # PJ1 if output_type == "sensitivity_sigma": a_vec = np.tile(a_vec, (n_layer, 1)) + # Evaluate Hankel transform using digital linear filter from empymod integral_output = dlf( PJ, lambd, a_vec, self.fhtfilt, self.hankel_pts_per_dec, ang_fact=None, ab=33 ) if output_type == "sensitivity_sigma": - fields_list.append(integral_output.T) + integral_output_list.append(integral_output.T) else: - fields_list.append(integral_output) + integral_output_list.append(integral_output) - return fields_list + return integral_output_list def fields(self, m): f = self.compute_integral(m, output_type='response') - f = self.projectFields(f) + f = self.project_fields(f) return np.hstack(f) def dpred(self, m, f=None): """ - Computes predicted data. - Here we do not store predicted data - because projection (`d = P(f)`) is cheap. + Computes predicted data. + Here we do not store predicted data + because projection (`d = P(f)`) is cheap. """ - # if f is None: - # f = self.fields(m) - # return utils.mkvc(self.projectFields(f)) - if f is None: if m is None: m = self.model @@ -495,39 +458,46 @@ def dpred(self, m, f=None): def getJ_height(self, m, f=None): """ - + Compute the sensitivity with respect to source height(s). """ + + # Null if source height is not parameter of the simulation. if self.hMap is None: return utils.Zero() if self._Jmatrix_height is not None: return self._Jmatrix_height + else: if self.verbose: print(">> Compute J height ") - dudz = self.compute_integral(m, output_type="sensitivity_height") - dudz = self.projectFields(dudz) + dudh = self.compute_integral(m, output_type="sensitivity_height") + dudh = self.project_fields(dudh) if self.survey.nSrc == 1: - self._Jmatrix_height = np.hstack(dudz).reshape([-1, 1]) + self._Jmatrix_height = np.hstack(dudh).reshape([-1, 1]) else: COUNT = 0 - dudz_by_source = [] + dudh_by_source = [] for ii, src in enumerate(self.survey.source_list): temp = np.array([]) for jj, rx in enumerate(src.receiver_list): - temp = np.r_[temp, dudz[COUNT]] + temp = np.r_[temp, dudh[COUNT]] COUNT += 1 - dudz_by_source.append(temp.reshape([-1, 1])) + dudh_by_source.append(temp.reshape([-1, 1])) - self._Jmatrix_height= block_diag(*dudz_by_source) + self._Jmatrix_height= block_diag(*dudh_by_source) return self._Jmatrix_height - # @profile + def getJ_sigma(self, m, f=None): + """ + Compute the sensitivity with respect to static conductivity. + """ + # Null if sigma is not parameter of the simulation. if self.sigmaMap is None: return utils.Zero() @@ -539,15 +509,16 @@ def getJ_sigma(self, m, f=None): print(">> Compute J sigma") dudsig = self.compute_integral(m, output_type="sensitivity_sigma") - # print("SIGMA SENSITIVITIES LIST") - # print(np.shape(dudsig)) - self._Jmatrix_sigma = np.vstack(self.projectFields(dudsig)) + self._Jmatrix_sigma = np.vstack(self.project_fields(dudsig)) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma def getJ(self, m, f=None): + """ + Fetch Jacobian. + """ return ( self.getJ_sigma(m, f=f) * self.sigmaDeriv + self.getJ_height(m, f=f) * self.hDeriv @@ -609,20 +580,27 @@ def get_JtJdiag(self, uncert): return JtJdiag - - - class EM1DFMSimulation(BaseEM1DSimulation): + """ + Simulation class for simulating the FEM response over a 1D layered Earth + for a single sounding. + """ def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) - def projectFields(self, u): + def project_fields(self, u): """ - Decompose frequency domain EM responses as real and imaginary - components + Project from the list of Hankel transform evaluations to the data or sensitivities. + Data can be real or imaginary component of: total field, secondary field or ppm. + + :param list u: list containing Hankel transform outputs for each unique + source-receiver pair. + :rtype: list: list containing predicted data for each unique + source-receiver pair. + :return: predicted data or sensitivities by source-receiver """ COUNT = 0 @@ -653,6 +631,10 @@ def projectFields(self, u): class EM1DTMSimulation(BaseEM1DSimulation): + """ + Simulation class for simulating the TEM response over a 1D layered Earth + for a single sounding. + """ time_intervals_are_set = False @@ -669,7 +651,7 @@ def __init__(self, **kwargs): def set_time_intervals(self): """ - Set time interval for particular receiver + Define time interval for all source-receiver pairs. """ for src in self.survey.source_list: @@ -701,14 +683,15 @@ def set_time_intervals(self): ) self.time_intervals_are_set = True - # print (tmin, tmax) def set_frequencies(self, pts_per_dec=-1): """ - Compute Frequency reqired for frequency to time transform + Set frequencies required for Hankel transform computation and for accurate + computation of the IFFT. """ + # Set range of time channels if self.time_intervals_are_set == False: self.set_time_intervals() @@ -734,37 +717,45 @@ def set_frequencies(self, pts_per_dec=-1): self.frequencies_are_set = True - def projectFields(self, u): + def project_fields(self, u): """ - Transform frequency domain responses to time domain responses + Project from the list of Hankel transform evaluations to the data or sensitivities. + + :param list u: list containing Hankel transform outputs for each unique + source-receiver pair. + :rtype: list: list containing predicted data for each unique + source-receiver pair. + :return: predicted data or sensitivities by source-receiver """ - # Compute frequency domain reponses right at filter coefficient values - # Src waveform: Step-off COUNT = 0 for ii, src in enumerate(self.survey.source_list): - for jj, rx in enumerate(src.receiver_list): u_temp = u[COUNT] + # use low-pass filter if src.use_lowpass_filter: factor = src.lowpass_filter.copy() else: factor = np.ones_like(rx.frequencies, dtype=complex) + # Multiplication factors if rx.component in ["b", "h"]: factor *= 1./(2j*np.pi*rx.frequencies) if rx.component in ["b", "dbdt"]: factor *= mu_0 + # For stepoff waveform if src.wave_type == 'stepoff': + # Compute EM responses if u_temp.size == rx.n_frequency: resp, _ = fourier_dlf( u_temp.flatten()*factor, rx.times, rx.frequencies, rx.ftarg ) + # Compute EM sensitivities else: resp = np.zeros( @@ -777,9 +768,11 @@ def projectFields(self, u): ) resp[:, i] = resp_i + # For general waveform. # Evaluate piecewise linear input current waveforms # Using Fittermann's approach (19XX) with Gaussian Quadrature elif src.wave_type == 'general': + # Compute EM responses if u_temp.size == rx.n_frequency: resp_int, _ = fourier_dlf( @@ -876,27 +869,34 @@ def dot(args): def run_simulation_FD(args): """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : + This method simulates the EM response or computes the sensitivities for + a single sounding. The method allows for parallelization of + the stitched 1D problem. + + :param src: a EM1DFM source object + :param topo: Topographic location (x, y, z) + :param np.array thicknesses: np.array(N-1,) layer thicknesses for a single sounding + :param np.array sigma: np.array(N,) layer conductivities for a single sounding + :param np.array eta: np.array(N,) intrinsic chargeabilities for a single sounding + :param np.array tau: np.array(N,) Cole-Cole time constant for a single sounding + :param np.array c: np.array(N,) Cole-Cole frequency distribution constant for a single sounding + :param np.array chi: np.array(N,) magnetic susceptibility for a single sounding + :param np.array dchi: np.array(N,) DC susceptibility for magnetic viscosity for a single sounding + :param np.array tau1: np.array(N,) lower time-relaxation constant for magnetic viscosity for a single sounding + :param np.array tau2: np.array(N,) upper time-relaxation constant for magnetic viscosity for a single sounding + :param float h: source height for a single sounding + :param string output_type: "response", "sensitivity_sigma", "sensitivity_height" + :param bool invert_height: boolean switch for inverting for source height + :param bool halfspace_switch: boolean switch for simulation for a halfspace + :return: response or sensitivities + """ - src, topo, thicknesses, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height, halfspace_switch = args n_layer = len(thicknesses) + 1 local_survey = EM1DSurveyFD([src]) - expmap = maps.ExpMap(nP=n_layer) + exp_map = maps.ExpMap(nP=n_layer) if not invert_height: # Use Exponential Map @@ -904,11 +904,11 @@ def run_simulation_FD(args): sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, - half_switch=half_switch, hankel_filter='key_101_2009' + sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, + topo=topo, halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' ) - if jac_switch == 'sensitivity_sigma': + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(np.log(sigma)) return utils.mkvc(drespdsig * sim.sigmaDeriv) else: @@ -917,21 +917,21 @@ def run_simulation_FD(args): else: wires = maps.Wires(('sigma', n_layer), ('h', 1)) - sigmaMap = expmap * wires.sigma + sigma_map = exp_map * wires.sigma sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, topo=topo, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' + sigmaMap=sigma_map, hMap=wires.h, topo=topo, + eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, + halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(m) return utils.mkvc(drespdsig * utils.sdiag(sigma)) # return utils.mkvc(drespdsig) - elif jac_switch == 'sensitivity_height': + elif output_type == 'sensitivity_height': drespdh = sim.getJ_height(m) return utils.mkvc(drespdh) else: @@ -941,38 +941,45 @@ def run_simulation_FD(args): def run_simulation_TD(args): """ - args - - src: source object - topo: Topographic location (x, y, z) - hz: Thickeness of the vertical layers - sigma: conductivities - eta - tau - c - chi - h - jac_switch - invert_height - half_switch : + This method simulates the EM response or computes the sensitivities for + a single sounding. The method allows for parallelization of + the stitched 1D problem. + + :param src: a EM1DTM source object + :param topo: Topographic location (x, y, z) + :param np.array thicknesses: np.array(N-1,) layer thicknesses for a single sounding + :param np.array sigma: np.array(N,) layer conductivities for a single sounding + :param np.array eta: np.array(N,) intrinsic chargeabilities for a single sounding + :param np.array tau: np.array(N,) Cole-Cole time constant for a single sounding + :param np.array c: np.array(N,) Cole-Cole frequency distribution constant for a single sounding + :param np.array chi: np.array(N,) magnetic susceptibility for a single sounding + :param np.array dchi: np.array(N,) DC susceptibility for magnetic viscosity for a single sounding + :param np.array tau1: np.array(N,) lower time-relaxation constant for magnetic viscosity for a single sounding + :param np.array tau2: np.array(N,) upper time-relaxation constant for magnetic viscosity for a single sounding + :param float h: source height for a single sounding + :param string output_type: "response", "sensitivity_sigma", "sensitivity_height" + :param bool invert_height: boolean switch for inverting for source height + :param bool halfspace_switch: boolean switch for simulation for a halfspace + :return: response or sensitivities + """ - src, topo, thicknesses, sigma, eta, tau, c, chi, h, jac_switch, invert_height, half_switch = args + src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height, halfspace_switch = args n_layer = len(thicknesses) + 1 local_survey = EM1DSurveyTD([src]) - expmap = maps.ExpMap(nP=n_layer) + exp_map = maps.ExpMap(nP=n_layer) if not invert_height: # Use Exponential Map # This is hard-wired at the moment sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=expmap, chi=chi, eta=eta, tau=tau, c=c, topo=topo, - half_switch=half_switch, hankel_filter='key_101_2009' + sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, + topo=topo, halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' ) - if jac_switch == 'sensitivity_sigma': + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(np.log(sigma)) return utils.mkvc(drespdsig * sim.sigmaDeriv) else: @@ -981,19 +988,19 @@ def run_simulation_TD(args): else: wires = maps.Wires(('sigma', n_layer), ('h', 1)) - sigmaMap = expmap * wires.sigma + sigma_map = exp_map * wires.sigma sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, - sigmaMap=sigmaMap, hMap=wires.h, topo=topo, - chi=chi, eta=eta, tau=tau, c=c, - half_switch=half_switch, hankel_filter='key_101_2009' + sigmaMap=sigma_map, hMap=wires.h, topo=topo, + eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, + halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] - if jac_switch == 'sensitivity_sigma': + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(m) return utils.mkvc(drespdsig * utils.sdiag(sigma)) - elif jac_switch == 'sensitivity_height': + elif output_type == 'sensitivity_height': drespdh = sim.getJ_height(m) return utils.mkvc(drespdh) else: @@ -1003,9 +1010,8 @@ def run_simulation_TD(args): class BaseStitchedEM1DSimulation(BaseSimulation): """ - The GlobalProblem allows you to run a whole bunch of SubProblems, - potentially in parallel, potentially of different meshes. - This is handy for working with lots of sources, + Base class for the stitched 1D simulation. This simulation models the EM + response for a set of 1D EM soundings. """ _Jmatrix_sigma = None @@ -1031,10 +1037,6 @@ class BaseStitchedEM1DSimulation(BaseSimulation): "Receiver Height (m), h > 0", ) - chi = props.PhysicalProperty( - "Magnetic susceptibility (H/m)", - ) - eta = props.PhysicalProperty( "Electrical chargeability (V/V), 0 <= eta < 1" ) @@ -1047,13 +1049,29 @@ class BaseStitchedEM1DSimulation(BaseSimulation): "Frequency Dependency, 0 < c < 1" ) + chi = props.PhysicalProperty( + "Magnetic susceptibility (SI)" + ) + + dchi = props.PhysicalProperty( + "DC magnetic susceptibility attributed to magnetic viscosity (SI)" + ) + + tau1 = props.PhysicalProperty( + "Lower bound for log-uniform distribution of time-relaxation constants (s)" + ) + + tau2 = props.PhysicalProperty( + "Lower bound for log-uniform distribution of time-relaxation constants (s)" + ) + topo = properties.Array("Topography (x, y, z)", dtype=float, shape=('*', 3)) survey = properties.Instance( "a survey object", BaseEM1DSurvey, required=True ) - half_switch = properties.Bool("Switch for half-space", default=False) + halfspace_switch = properties.Bool("Switch for half-space", default=False) def __init__(self, **kwargs): utils.setKwargs(self, **kwargs) @@ -1107,18 +1125,6 @@ def Sigma(self): self._Sigma = self.sigma.reshape((self.n_sounding, self.n_layer)) return self._Sigma - @property - def Chi(self): - if getattr(self, '_Chi', None) is None: - # Ordering: first z then x - if self.chi is None: - self._Chi = np.zeros( - (self.n_sounding, self.n_layer), dtype=float, order='C' - ) - else: - self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) - return self._Chi - @property def Eta(self): if getattr(self, '_Eta', None) is None: @@ -1155,6 +1161,54 @@ def C(self): self._C = self.c.reshape((self.n_sounding, self.n_layer)) return self._C + @property + def Chi(self): + if getattr(self, '_Chi', None) is None: + # Ordering: first z then x + if self.chi is None: + self._Chi = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Chi = self.chi.reshape((self.n_sounding, self.n_layer)) + return self._Chi + + @property + def dChi(self): + if getattr(self, '_dChi', None) is None: + # Ordering: first z then x + if self.dchi is None: + self._dChi = np.zeros( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._dChi = self.dchi.reshape((self.n_sounding, self.n_layer)) + return self._dChi + + @property + def Tau1(self): + if getattr(self, '_Tau1', None) is None: + # Ordering: first z then x + if self.tau1 is None: + self._Tau1 = 1e-10 * np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Tau1 = self.tau1.reshape((self.n_sounding, self.n_layer)) + return self._Tau1 + + @property + def Tau2(self): + if getattr(self, '_Tau2', None) is None: + # Ordering: first z then x + if self.tau2 is None: + self._Tau2 = 100. * np.ones( + (self.n_sounding, self.n_layer), dtype=float, order='C' + ) + else: + self._Tau2 = self.tau2.reshape((self.n_sounding, self.n_layer)) + return self._Tau2 + @property def JtJ_sigma(self): return self._JtJ_sigma @@ -1187,7 +1241,7 @@ def IJHeight(self): # ------------- For physics ------------- # - def input_args(self, i_sounding, jac_switch='forward'): + def input_args(self, i_sounding, output_type='forward'): output = ( self.survey.source_list[i_sounding], self.topo[i_sounding, :], @@ -1197,10 +1251,13 @@ def input_args(self, i_sounding, jac_switch='forward'): self.Tau[i_sounding, :], self.C[i_sounding, :], self.Chi[i_sounding, :], + self.dChi[i_sounding, :], + self.Tau1[i_sounding, :], + self.Tau2[i_sounding, :], self.H[i_sounding], - jac_switch, + output_type, self.invert_height, - self.half_switch + self.halfspace_switch ) return output @@ -1243,14 +1300,14 @@ def forward(self, m): result = pool.map( run_simulation, [ - self.input_args(i, jac_switch='forward') for i in range(self.n_sounding) + self.input_args(i, output_type='forward') for i in range(self.n_sounding) ] ) pool.close() pool.join() else: result = [ - run_simulation(self.input_args(i, jac_switch='forward')) for i in range(self.n_sounding) + run_simulation(self.input_args(i, output_type='forward')) for i in range(self.n_sounding) ] return np.hstack(result) @@ -1338,7 +1395,7 @@ def getJ_sigma(self, m): self._Jmatrix_sigma = pool.map( run_simulation, [ - self.input_args(i, jac_switch='sensitivity_sigma') for i in range(self.n_sounding) + self.input_args(i, output_type='sensitivity_sigma') for i in range(self.n_sounding) ] ) pool.close() @@ -1354,11 +1411,11 @@ def getJ_sigma(self, m): # _Jmatrix_sigma is block diagnoal matrix (sparse) # self._Jmatrix_sigma = sp.block_diag( # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + # run_simulation(self.input_args(i, output_type='sensitivity_sigma')) for i in range(self.n_sounding) # ] # ).tocsr() self._Jmatrix_sigma = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_sigma')) for i in range(self.n_sounding) + run_simulation(self.input_args(i, output_type='sensitivity_sigma')) for i in range(self.n_sounding) ] self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) self._Jmatrix_sigma = sp.coo_matrix( @@ -1391,7 +1448,7 @@ def getJ_height(self, m): self._Jmatrix_height = pool.map( run_simulation, [ - self.input_args(i, jac_switch="sensitivity_height") for i in range(self.n_sounding) + self.input_args(i, output_type="sensitivity_height") for i in range(self.n_sounding) ] ) pool.close() @@ -1405,11 +1462,11 @@ def getJ_height(self, m): else: # self._Jmatrix_height = sp.block_diag( # [ - # run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + # run_simulation(self.input_args(i, output_type='sensitivity_height')) for i in range(self.n_sounding) # ] # ).tocsr() self._Jmatrix_height = [ - run_simulation(self.input_args(i, jac_switch='sensitivity_height')) for i in range(self.n_sounding) + run_simulation(self.input_args(i, output_type='sensitivity_height')) for i in range(self.n_sounding) ] self._Jmatrix_height = np.hstack(self._Jmatrix_height) self._Jmatrix_height = sp.coo_matrix( @@ -1604,14 +1661,14 @@ def run_simulation(self, args): # result = pool.map( # run_simulation_TD, # [ - # self.input_args(i, jac_switch=False) for i in range(self.n_sounding) + # self.input_args(i, output_type=False) for i in range(self.n_sounding) # ] # ) # pool.close() # pool.join() # else: # result = [ - # run_simulation_TD(self.input_args(i, jac_switch=False)) for i in range(self.n_sounding) + # run_simulation_TD(self.input_args(i, output_type=False)) for i in range(self.n_sounding) # ] # return np.hstack(result) @@ -1629,7 +1686,7 @@ def run_simulation(self, args): # self._Jmatrix = pool.map( # run_simulation_TD, # [ - # self.input_args(i, jac_switch=True) for i in range(self.n_sounding) + # self.input_args(i, output_type=True) for i in range(self.n_sounding) # ] # ) # pool.close() @@ -1640,7 +1697,7 @@ def run_simulation(self, args): # # _Jmatrix is block diagnoal matrix (sparse) # self._Jmatrix = sp.block_diag( # [ - # run_simulation_TD(self.input_args(i, jac_switch=True)) for i in range(self.n_sounding) + # run_simulation_TD(self.input_args(i, output_type=True)) for i in range(self.n_sounding) # ] # ).tocsr() # return self._Jmatrix diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 3df4955..fa56996 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -11,7 +11,7 @@ -def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): +def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, halfspace_switch): """ Compute reflection coefficients for Transverse Electric (TE) mode. Only one for loop for multiple layers. @@ -30,7 +30,7 @@ def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): Susceptibility (SI); size = (n_layer,) depth: float, ndarray Top boundary of the layers; size = (n_ayer,) - HalfSwitch: bool + halfspace_switch: bool Switch for halfspace Returns @@ -79,7 +79,7 @@ def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, HalfSwitch): M0sum01 = Mtemp01 M0sum11 = Mtemp11 - if HalfSwitch: + if halfspace_switch: M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) @@ -138,7 +138,7 @@ def matmul(a00, a10, a01, a11, b00, b10, b01, b11): # TODO: make this to take a vector rather than a single frequency -def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): +def rTEfunjac(n_layer, f, lamda, sig, chi, thick, halfspace_switch): """ Compute sensitivity of reflection coefficients for Transverse Electric (TE) mode with regard to conductivity @@ -157,7 +157,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): Susceptibility (SI); size = (n_layer x 1) depth: float, ndarray Top boundary of the layers - HalfSwitch: bool + halfspace_switch: bool Switch for halfspace Returns @@ -248,7 +248,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): M0sum01 = Mtemp01.copy() M0sum11 = Mtemp11.copy() - if HalfSwitch or n_layer == 1: + if halfspace_switch or n_layer == 1: M1sum00 = M0sum00.copy() M1sum10 = M0sum10.copy() @@ -364,7 +364,7 @@ def rTEfunjac(n_layer, f, lamda, sig, chi, thick, HalfSwitch): # rTE = M1sum01/M1sum11 - if HalfSwitch or n_layer == 1: + if halfspace_switch or n_layer == 1: utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 @@ -584,12 +584,12 @@ def magnetic_dipole_kernel( if rte_fortran is None: thick = simulation.thicknesses drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.half_switch, drTE, + f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) @@ -601,12 +601,12 @@ def magnetic_dipole_kernel( if rte_fortran is None: thick = simulation.thicknesses rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.half_switch, + f, lamda, sig, chi, depth, simulation.halfspace_switch, rTE, n_layer, n_frequency, n_filter ) @@ -726,12 +726,12 @@ def magnetic_dipole_kernel( # if rte_fortran is None: # thick = simulation.thicknesses # drTE = rTEfunjac( -# n_layer, f, lamda, sig, chi, thick, simulation.half_switch +# n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch # ) # else: # depth = simulation.depth # rte_fortran.rte_sensitivity( -# f, lamda, sig, chi, depth, simulation.half_switch, drTE, +# f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, # n_layer, n_frequency, n_filter # ) @@ -743,12 +743,12 @@ def magnetic_dipole_kernel( # if rte_fortran is None: # thick = simulation.thicknesses # rTE = rTEfunfwd( -# n_layer, f, lamda, sig, chi, thick, simulation.half_switch +# n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch # ) # else: # depth = simulation.depth # rte_fortran.rte_forward( -# f, lamda, sig, chi, depth, simulation.half_switch, +# f, lamda, sig, chi, depth, simulation.halfspace_switch, # rTE, n_layer, n_frequency, n_filter # ) @@ -806,12 +806,12 @@ def horizontal_loop_kernel( if rte_fortran is None: thick = simulation.thicknesses drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.half_switch, + f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) @@ -823,12 +823,12 @@ def horizontal_loop_kernel( if rte_fortran is None: thick = simulation.thicknesses rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.half_switch, + f, lamda, sig, chi, depth, simulation.halfspace_switch, rTE, n_layer, n_frequency, n_filter ) @@ -863,12 +863,12 @@ def hz_kernel_horizontal_electric_dipole( if rte_fortran is None: thick = simulation.thicknesses drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.half_switch, + f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) @@ -880,12 +880,12 @@ def hz_kernel_horizontal_electric_dipole( if rte_fortran is None: thick = simulation.thicknesses rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.half_switch + n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch ) else: depth = simulation.depth rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.half_switch, + f, lamda, sig, chi, depth, simulation.halfspace_switch, rTE, n_layer, n_frequency, n_filter ) diff --git a/tutorials/plot_1_fdem_fwd_chargeable.py b/tutorials/plot_1_fdem_fwd_dispersive.py similarity index 97% rename from tutorials/plot_1_fdem_fwd_chargeable.py rename to tutorials/plot_1_fdem_fwd_dispersive.py index f54b9fc..d54ebbe 100644 --- a/tutorials/plot_1_fdem_fwd_chargeable.py +++ b/tutorials/plot_1_fdem_fwd_dispersive.py @@ -1,6 +1,6 @@ """ -Forward Simulation over a Chargeable Earth -========================================== +Forward Simulation for Dispersive Physical Properties +===================================================== diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index 1fa8d1e..f02ef59 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -57,6 +57,7 @@ source_locations = np.c_[x, np.zeros(n_sounding), 30 *np.ones(n_sounding)] source_current = 1. source_radius = 5. +moment_amplitude=1. receiver_locations = np.c_[x+10., np.zeros(n_sounding), 30 *np.ones(n_sounding)] receiver_orientation = "z" # "x", "y" or "z" @@ -97,7 +98,7 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ) From 897c0615fffd3b4c6647da543d4c428262e4502f Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 28 Sep 2020 16:44:37 -0700 Subject: [PATCH 40/54] rename analytics, tests for VRM forward and fix some test bugs. --- simpegEM1D/analytics.py | 213 +++++++++++++++----------- simpegEM1D/simulation.py | 8 +- tests/testEM1D_FD_fwd.py | 41 +++-- tests/testEM1D_TD_general_fwd.py | 4 +- tests/testEM1D_TD_off_fwd.py | 63 +++++++- tests/testGlobalEM1D_FD_jac_layers.py | 4 +- 6 files changed, 212 insertions(+), 121 deletions(-) diff --git a/simpegEM1D/analytics.py b/simpegEM1D/analytics.py index 717f644..1ec6734 100644 --- a/simpegEM1D/analytics.py +++ b/simpegEM1D/analytics.py @@ -6,7 +6,85 @@ from .supporting_functions.digital_filter import transFiltImpulse, transFilt, setFrequency -def Hzanal(sig, f, r, flag): +############################################################# +# PHYSICAL PROPERTIES +############################################################# + +def ColeCole(f, sig_inf=1e-2, eta=0.1, tau=0.1, c=1): + """ + Computing Cole-Cole model in frequency domain + + .. math :: + \\sigma (\\omega ) = \\sigma_{\\infty} \\Bigg [ + 1 - \\eta \\Bigg ( \\frac{1}{1 + (1-\\eta ) (1 + i\\omega \\tau)^c} \\Bigg ) + \\Bigg ] + + + """ + + if np.isscalar(sig_inf): + w = 2*np.pi*f + sigma = sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c) + else: + sigma = np.zeros((f.size,sig_inf.size), dtype=complex) + for i in range(f.size): + w = 2*np.pi*f[i] + sigma[i,:] = utils.mkvc(sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c)) + return sigma + + +def LogUniform(f, chi_inf=0.05, del_chi=0.05, tau1=1e-5, tau2=1e-2): + """ + Computing relaxation model in the frequency domain for a log-uniform + distribution of time-relaxation constants. + + .. math:: + \\chi (\\omega ) = \\chi_{\\infty} + \\Delta \\chi \\Bigg [ + 1 - \\Bigg ( \\frac{1}{ln (\\tau_2 / \\tau_1 )} \\Bigg ) + ln \\Bigg ( \\frac{1 + i\\omega \\tau_2}{1 + i\\omega tau_1} ) \\Bigg ) + \\Bigg ] + + + """ + + w = 2*np.pi*f + return chi_inf + del_chi*(1 - np.log((1 + 1j*w*tau2)/(1 + 1j*w*tau1))/np.log(tau2/tau1)) + + + +def diffusion_distance(t, sigma): + """ + Compute diffusion distance + + .. math:: + + d = \sqrt{\\frac{2t}{\mu_0\sigma}} + + assume \\\\(\\\\ \mu = \mu_0\\\\) is chargeability + """ + + return np.sqrt(2*t/mu_0/sigma) + + +def skin_depth(f, sigma): + """ + Compute skin depth + + .. math:: + + \delta = \sqrt{\\frac{2}{\omega\mu_0\sigma}} + + where \\\\(\\\\ \omega = 2\pi f \\\\) is chargeability + """ + + return np.sqrt(2/mu_0/sigma/f/(2*pi)) + + +############################################################# +# VMD SOURCE SOLUTIONS +############################################################# + +def Hz_vertical_magnetic_dipole(f, r, sig, flag="secondary"): """ @@ -28,17 +106,19 @@ def Hzanal(sig, f, r, flag): """ + mu0 = 4*np.pi*1e-7 w = 2*np.pi*f k = np.sqrt(-1j*w*mu0*sig) Hz = 1./(2*np.pi*k**2*r**5)*(9-(9+9*1j*k*r-4*k**2*r**2-1j*k**3*r**3)*np.exp(-1j*k*r)) + if flag == 'secondary': Hzp = -1/(4*np.pi*r**3) Hz = Hz-Hzp return Hz -def Hranal(sig, f, r): +def Hr_vertical_magnetic_dipole(f, r, sig): """ @@ -63,6 +143,7 @@ def Hranal(sig, f, r): """ + mu0 = 4*np.pi*1e-7 w = 2*np.pi*f k = np.sqrt(-1j*w*mu0*sig) @@ -72,12 +153,13 @@ def Hranal(sig, f, r): IK2 = spec.iv(2, alpha)*spec.kv(2, alpha) Hr = (-k**2/(4*np.pi*r))*(IK1 - IK2) + return Hr -def Hzanal_hmd(sig, f, r, x): +def Hz_horizontal_magnetic_dipole(f, r, x, sig): """ @@ -103,6 +185,7 @@ def Hzanal_hmd(sig, f, r, x): """ + mu0 = 4*np.pi*1e-7 w = 2*np.pi*f k = np.sqrt(-1j*w*mu0*sig) @@ -117,8 +200,24 @@ def Hzanal_hmd(sig, f, r, x): +def Bz_vertical_magnetic_dipole(r, t, sigma): + + theta = np.sqrt((sigma*mu_0)/(4*t)) + tr = theta*r + etr = spec.erf(tr) + t1 = (9/(2*tr**2) - 1)*etr + t2 = (1/np.sqrt(pi))*(9/tr + 4*tr)*np.exp(-tr**2) + hz = (t1 - t2)/(4*pi*r**3) + return mu_0*hz + + + +############################################################# +# HORIZONTAL LOOP SOURCE SOLUTIONS +############################################################# + -def HzanalCirc(sig, f, I, a, flag): +def Hz_horizontal_circular_loop(f, I, a, sig, flag="secondary"): """ @@ -134,16 +233,22 @@ def HzanalCirc(sig, f, I, a, flag): * I: Current intensity """ + mu_0 = 4*np.pi*1e-7 w = 2*np.pi*f k = np.sqrt(-1j*w*mu_0*sig) Hz = -I/(k**2*a**3)*(3-(3+3*1j*k*a-k**2*a**2)*np.exp(-1j*k*a)) + if flag == 'secondary': Hzp = I/2./a Hz = Hz-Hzp + return Hz + + + def dHzdsiganalCirc(sig, f, I, a, flag): """ @@ -164,71 +269,14 @@ def dHzdsiganalCirc(sig, f, I, a, flag): return dHzdsig -def ColeCole(f, sig_inf=1e-2, eta=0.1, tau=0.1, c=1): - """ - Computing Cole-Cole model in frequency domain - - .. math:: - - \sigma (\omega) = \sigma_{\infty} - - \\frac{\sigma_{\infty}\eta}{1+(1-\eta)(\imath\omega\\tau)^c} - - - - where \\\\(\\\\\sigma_{\\\\infty}\\\\) is conductivity at infinte frequency, - \\\\(\\\\\eta\\\\) is chargeability, - \\\\(\\\\\\tau\\\\) is chargeability, - \\\\(\\\\ c\\\\) is chargeability. - - """ - - if np.isscalar(sig_inf): - w = 2*np.pi*f - sigma = sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c) - else: - sigma = np.zeros((f.size,sig_inf.size), dtype=complex) - for i in range(f.size): - w = 2*np.pi*f[i] - sigma[i,:] = utils.mkvc(sig_inf - sig_inf*eta/(1+(1-eta)*(1j*w*tau)**c)) - return sigma - - -def LogUniform(f, chi_inf=0.05, del_chi=0.05, tau1=1e-5, tau2=1e-2): - """ - Computing Cole-Cole model in frequency domain - - .. math:: - - \sigma (\omega) = \sigma_{\infty} - - \\frac{\sigma_{\infty}\eta}{1+(1-\eta)(\imath\omega\\tau)^c} - - where \\\\(\\\\\sigma_{\\\\infty}\\\\) is conductivity at infinte frequency, - \\\\(\\\\\eta\\\\) is chargeability, - \\\\(\\\\\\tau\\\\) is chargeability, - \\\\(\\\\ c\\\\) is chargeability. - - """ - - w = 2*np.pi*f - return chi_inf + del_chi*(1 - np.log((1 + 1j*w*tau2)/(1 + 1j*w*tau1))/np.log(tau2/tau1)) -def BzAnalT(r, t, sigma): - theta = np.sqrt((sigma*mu_0)/(4*t)) - tr = theta*r - etr = spec.erf(tr) - t1 = (9/(2*tr**2) - 1)*etr - t2 = (1/np.sqrt(pi))*(9/tr + 4*tr)*np.exp(-tr**2) - hz = (t1 - t2)/(4*pi*r**3) - return mu_0*hz - - -def BzAnalCircT(a, t, sigma): +def Bz_horizontal_circular_loop(a, t, sigma): """ Hz component of analytic solution for half-space (Circular-loop source) Src and Rx are on the surface and receiver is located at the center of the loop. @@ -254,7 +302,7 @@ def BzAnalCircT(a, t, sigma): return mu_0*hz -def dBzdtAnalCircT(a, t, sigma): +def dBzdt_horizontal_circular_loop(a, t, sigma): """ Hz component of analytic solution for half-space (Circular-loop source) Src and Rx are on the surface and receiver is located at the center of the loop. @@ -279,10 +327,10 @@ def dBzdtAnalCircT(a, t, sigma): return mu_0*dhzdt -def BzAnalCircTCole(a, t, sigma): +def Bz_horizontal_circular_loop_ColeCole(a, t, sigma): wt, tbase, omega_int = setFrequency(t) - hz = HzanalCirc(sigma, omega_int/2/np.pi, 1., a, 'secondary') + hz = Hz_horizontal_circular_loop(omega_int/2/np.pi, 1., a, sigma, 'secondary') # Treatment for inaccuracy in analytic solutions ind = omega_int < 0.2 hz[ind] = 0. @@ -290,10 +338,10 @@ def BzAnalCircTCole(a, t, sigma): return hzTD*mu_0 -def dBzdtAnalCircTCole(a, t, sigma): +def dBzdt_horizontal_circular_loop_ColeCole(a, t, sigma): wt, tbase, omega_int = setFrequency(t) - hz = HzanalCirc(sigma, omega_int/2/np.pi, 1., a, 'secondary') + hz = Hz_horizontal_circular_loop(omega_int/2/np.pi, 1., a, sigma, 'secondary') # Treatment for inaccuracy in analytic solutions ind = omega_int < 0.2 hz[ind] = 0. @@ -302,29 +350,18 @@ def dBzdtAnalCircTCole(a, t, sigma): return dhzdtTD*mu_0 -def diffusion_distance(t, sigma): - """ - Compute diffusion distance - - .. math:: +def Bz_horizontal_circular_loop_VRM(a, z, h, t, dchi, tau1, tau2): - d = \sqrt{\\frac{2t}{\mu_0\sigma}} - - assume \\\\(\\\\ \mu = \mu_0\\\\) is chargeability - """ - - return np.sqrt(2*t/mu_0/sigma) - - -def skin_depth(f, sigma): - """ - Compute skin depth + mu0 = 4*np.pi*1e-7 + F = - (1/np.log(tau2/tau1)) * (spec.expi(t/tau2) + spec.expi(-t/tau1)) + B0 = (0.5*mu0*a**2) * (dchi/(2 + dchi)) * ((z + h)**2 + a**2)**-1.5 + return B0*F - .. math:: - \delta = \sqrt{\\frac{2}{\omega\mu_0\sigma}} +def dBzdt_horizontal_circular_loop_VRM(a, z, h, t, dchi, tau1, tau2): - where \\\\(\\\\ \omega = 2\pi f \\\\) is chargeability - """ + mu0 = 4*np.pi*1e-7 + dFdt = (1/np.log(tau2/tau1)) * (np.exp(-t/tau1) - np.exp(-t/tau2)) / t + B0 = (0.5*mu0*a**2) * (dchi/(2 + dchi)) * ((z + h)**2 + a**2)**-1.5 + return B0*dFdt - return np.sqrt(2/mu_0/sigma/f/(2*pi)) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 207f2e7..2e25937 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -306,10 +306,6 @@ def compute_integral(self, m, output_type='response'): or sensitivities. """ - self.model = m - n_layer = self.n_layer - n_filter = self.n_filter - # Set half-space switch if required. if self.halfspace_switch is None: if len(self.thicknesses)==0: @@ -317,6 +313,10 @@ def compute_integral(self, m, output_type='response'): else: self.halfspace_switch=False + self.model = m + n_layer = self.n_layer + n_filter = self.n_filter + # For time-domain simulations, set frequencies for the evaluation # of the Hankel transform. if isinstance(self.survey, EM1DSurveyTD): diff --git a/tests/testEM1D_FD_fwd.py b/tests/testEM1D_FD_fwd.py index a1610ef..ec3aa05 100644 --- a/tests/testEM1D_FD_fwd.py +++ b/tests/testEM1D_FD_fwd.py @@ -84,18 +84,17 @@ def test_EM1DFDfwd_VMD_Halfspace(self): sigma_map = maps.ExpMap(nP=1) sim = em1d.simulation.EM1DFMSimulation( - survey=self.survey, - sigmaMap=sigma_map, topo=self.topo + survey=self.survey, sigmaMap=sigma_map, topo=self.topo ) m_1D = np.array([np.log(self.sigma)]) H = sim.dpred(m_1D) - soln_anal_z = Hzanal( - self.sigma, self.frequencies, self.offset, 'secondary' + soln_anal_z = Hz_vertical_magnetic_dipole( + self.frequencies, self.offset, self.sigma, 'secondary' ) - soln_anal_r = Hranal( - self.sigma, self.frequencies, self.offset + soln_anal_r = Hr_vertical_magnetic_dipole( + self.frequencies, self.offset, self.sigma ) if self.showIt is True: @@ -126,11 +125,11 @@ def test_EM1DFDfwd_VMD_RealCond(self): m_1D = np.log(np.ones(self.nlayers)*self.sigma) H = sim.dpred(m_1D) - soln_anal_z = Hzanal( - self.sigma, self.frequencies, self.offset, 'secondary' + soln_anal_z = Hz_vertical_magnetic_dipole( + self.frequencies, self.offset, self.sigma, 'secondary' ) - soln_anal_r = Hranal( - self.sigma, self.frequencies, self.offset + soln_anal_r = Hr_vertical_magnetic_dipole( + self.frequencies, self.offset, self.sigma ) if self.showIt is True: @@ -170,11 +169,11 @@ def test_EM1DFDfwd_VMD_ComplexCond(self): self.frequencies, self.sigma, self.eta, self.tau, self.c ) - soln_anal_z = Hzanal( - sigma_colecole, self.frequencies, self.offset, 'secondary' + soln_anal_z = Hz_vertical_magnetic_dipole( + self.frequencies, self.offset, sigma_colecole, 'secondary' ) - soln_anal_r = Hranal( - sigma_colecole, self.frequencies, self.offset + soln_anal_r = Hr_vertical_magnetic_dipole( + self.frequencies, self.offset, sigma_colecole ) if self.showIt is True: @@ -234,8 +233,8 @@ def test_EM1DFDfwd_HMD_RealCond(self): m_1D = np.log(np.ones(self.nlayers)*self.sigma) Hz = sim.dpred(m_1D) - soln_anal = Hzanal_hmd( - self.sigma, self.frequencies, self.offset, self.offset + soln_anal = Hz_horizontal_magnetic_dipole( + self.frequencies, self.offset, self.offset, self.sigma ) if self.showIt is True: @@ -250,7 +249,7 @@ def test_EM1DFDfwd_HMD_RealCond(self): err = np.linalg.norm(Hz-soln_anal)/np.linalg.norm(soln_anal) self.assertTrue(err < 1e-5) - print ("EM1DFD-HMD for complex conductivity works") + print ("EM1DFD-HMD for real conductivity works") def test_EM1DFDfwd_CircularLoop_RealCond(self): @@ -293,8 +292,8 @@ def test_EM1DFDfwd_CircularLoop_RealCond(self): m_1D = np.log(np.ones(self.nlayers)*self.sigma) Hz = sim.dpred(m_1D) - soln_anal = HzanalCirc( - self.sigma, self.frequencies, 1., 5., 'secondary' + soln_anal = Hz_horizontal_circular_loop( + self.frequencies, 1., 5., self.sigma, 'secondary' ) if self.showIt is True: @@ -361,8 +360,8 @@ def test_EM1DFDfwd_CircularLoop_ComplexCond(self): self.frequencies, self.sigma, self.eta, self.tau, self.c ) - soln_anal = HzanalCirc( - sigma_colecole, self.frequencies, 1., 5., 'secondary' + soln_anal = Hz_horizontal_circular_loop( + self.frequencies, 1., 5., sigma_colecole, 'secondary' ) if self.showIt is True: diff --git a/tests/testEM1D_TD_general_fwd.py b/tests/testEM1D_TD_general_fwd.py index f547fbb..6e3443a 100644 --- a/tests/testEM1D_TD_general_fwd.py +++ b/tests/testEM1D_TD_general_fwd.py @@ -90,7 +90,7 @@ def test_em1dtd_circular_loop_single_pulse(self): dbdt = d[len(self.times):] def step_func_Bzt(times): - return BzAnalCircT( + return Bz_horizontal_circular_loop( self.a, times, self.sigma ) @@ -115,7 +115,7 @@ def step_func_Bzt(times): self.assertTrue(err < 6e-2) def step_func_dBzdt(times): - return dBzdtAnalCircT( + return dBzdt_horizontal_circular_loop( self.a, times, self.sigma ) diff --git a/tests/testEM1D_TD_off_fwd.py b/tests/testEM1D_TD_off_fwd.py index e73b3b5..fef4607 100644 --- a/tests/testEM1D_TD_off_fwd.py +++ b/tests/testEM1D_TD_off_fwd.py @@ -52,6 +52,9 @@ def setUp(self): tau = 1e-3 eta = 2e-1 c = 1. + dchi = 0.05 + tau1 = 1e-10 + tau2 = 1e2 self.topo = topo self.survey = survey @@ -61,6 +64,9 @@ def setUp(self): self.eta = eta self.c = c self.chi = chi + self.dchi = dchi + self.tau1 = tau1 + self.tau2 = tau2 self.times = times self.thicknesses = thicknesses self.nlayers = len(thicknesses)+1 @@ -79,11 +85,11 @@ def test_EM1DTDfwd_CirLoop_RealCond(self): bz = d[0:len(self.times)] dbdt = d[len(self.times):] - bzanal = BzAnalCircT( + bzanal = Bz_horizontal_circular_loop( self.a, self.times, self.sigma ) - dbdtanal = dBzdtAnalCircT( + dbdtanal = dBzdt_horizontal_circular_loop( self.a, self.times, self.sigma ) @@ -134,7 +140,7 @@ def test_EM1DTDfwd_CirLoop_ComplexCond(self): self.eta, self.tau, self.c ) - bzanal = BzAnalCircTCole( + bzanal = Bz_horizontal_circular_loop_ColeCole( self.a, self.times, sigCole ) @@ -148,7 +154,7 @@ def test_EM1DTDfwd_CirLoop_ComplexCond(self): print ('Bz error = ', err) self.assertTrue(err < 1e-2) - dbdtanal = dBzdtAnalCircTCole( + dbdtanal = dBzdt_horizontal_circular_loop_ColeCole( self.a, self.times, sigCole ) @@ -163,5 +169,54 @@ def test_EM1DTDfwd_CirLoop_ComplexCond(self): self.assertTrue(err < 5e-2) print ("EM1DTD-CirculurLoop for Complex conductivity works") + + def test_EM1DTDfwd_CirLoop_VRM(self): + + sigma_map = maps.IdentityMap(nP=self.nlayers) + chi = np.zeros(self.nlayers) + dchi = self.dchi*np.ones(self.nlayers) + tau1 = self.tau1*np.ones(self.nlayers) + tau2 = self.tau2*np.ones(self.nlayers) + + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, thicknesses=self.thicknesses, + sigmaMap=sigma_map, topo=self.topo, + chi=chi, dchi=dchi, tau1=tau1, tau2=tau2 + ) + + m_1D = 1e-8 * np.ones(self.nlayers) + d = sim.dpred(m_1D) + bz = d[0:len(self.times)] + dbdt = d[len(self.times):] + + bzanal = Bz_horizontal_circular_loop_VRM( + self.a, 1e-5, 1e-5, self.times, self.dchi, self.tau1, self.tau2 + ) + + if self.showIt is True: + + plt.loglog(self.times, (bz), 'b') + plt.loglog(self.times, (bzanal), 'b*') + plt.show() + + err = np.linalg.norm(bz-bzanal)/np.linalg.norm(bzanal) + print ('Bz error = ', err) + self.assertTrue(err < 5e-2) + + dbdtanal = dBzdt_horizontal_circular_loop_VRM( + self.a, 1e-5, 1e-5, self.times, self.dchi, self.tau1, self.tau2 + ) + + if self.showIt is True: + + plt.loglog(self.times, - dbdt, 'b') + plt.loglog(self.times, - dbdtanal, 'b*') + plt.show() + + err = np.linalg.norm(dbdt-dbdtanal)/np.linalg.norm(dbdtanal) + print ('dBzdt error = ', err) + self.assertTrue(err < 1e-2) + print ("EM1DTD-CirculurLoop for viscous remanent magnetization works") + if __name__ == '__main__': unittest.main() diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index ca73056..3154702 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -68,7 +68,7 @@ def setUp(self, parallel=True): source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - orientation="z", I=1. + orientation="z", moment_amplitude=1. ) ) @@ -197,7 +197,7 @@ def setUp(self, parallel=True): source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - orientation="z", I=1. + orientation="z", moment_amplitude=1. ) ) From 109c9629679451cb78e298cfa8cf7962f69ce3f6 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 29 Sep 2020 17:12:25 -0700 Subject: [PATCH 41/54] Fix bug in inverting for height. Add updated tests. --- simpegEM1D/simulation.py | 59 ++++--- tests/testEM1D_FD_jac_layers.py | 136 +++++++++++++- tests/testEM1D_TD_off_jac_layers.py | 114 ++++++++++++ tests/testGlobalEM1D_FD_jac_layers.py | 80 +-------- tests/testGlobalEM1D_TD_jac_layers.py | 243 ++++++++++++++------------ tutorials/plot_1_fdem_inv_height.py | 3 +- 6 files changed, 411 insertions(+), 224 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 2e25937..0defb7d 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -109,8 +109,6 @@ class BaseEM1DSimulation(BaseSimulation): topo = properties.Array("Topography (x, y, z)", dtype=float) - halfspace_switch = properties.Bool("Switch for simulating half-space response") - thicknesses, thicknessesMap, thicknessesDeriv = props.Invertible( "layer thicknesses (m)", default=np.array([]) ) @@ -135,6 +133,14 @@ def __init__(self, **kwargs): print(">> Use "+self.hankel_filter+" filter for Hankel Transform") + @property + def halfspace_switch(self): + """True = halfspace, False = layered Earth""" + if (self.thicknesses is None) | (len(self.thicknesses)==0): + return True + else: + return False + @property def n_layer(self): """number of layers""" @@ -143,7 +149,6 @@ def n_layer(self): elif self.halfspace_switch is True: return int(1) - @property def n_filter(self): """ Length of filter """ @@ -305,13 +310,6 @@ def compute_integral(self, m, output_type='response'): receiver and outputs it as a list. Used for computing response or sensitivities. """ - - # Set half-space switch if required. - if self.halfspace_switch is None: - if len(self.thicknesses)==0: - self.halfspace_switch=True - else: - self.halfspace_switch=False self.model = m n_layer = self.n_layer @@ -509,7 +507,6 @@ def getJ_sigma(self, m, f=None): print(">> Compute J sigma") dudsig = self.compute_integral(m, output_type="sensitivity_sigma") - self._Jmatrix_sigma = np.vstack(self.project_fields(dudsig)) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) @@ -751,18 +748,19 @@ def project_fields(self, u): if src.wave_type == 'stepoff': # Compute EM responses - if u_temp.size == rx.n_frequency: + if u_temp.ndim == 1: resp, _ = fourier_dlf( u_temp.flatten()*factor, rx.times, rx.frequencies, rx.ftarg ) # Compute EM sensitivities else: + resp = np.zeros( - (rx.n_time, self.n_layer), dtype=np.float64, order='F') - # ) + (rx.n_time, self.n_layer), dtype=np.float64, order='F' + ) # TODO: remove for loop - for i in range(self.n_layer): + for i in range(0, self.n_layer): resp_i, _ = fourier_dlf( u_temp[:, i]*factor, rx.times, rx.frequencies, rx.ftarg ) @@ -774,7 +772,7 @@ def project_fields(self, u): elif src.wave_type == 'general': # Compute EM responses - if u_temp.size == rx.n_frequency: + if u_temp.ndim == 1: resp_int, _ = fourier_dlf( u_temp.flatten()*factor, rx.time_interval, rx.frequencies, rx.ftarg ) @@ -819,7 +817,7 @@ def project_fields(self, u): (rx.n_time+src.n_time_dual_moment, self.n_layer), dtype=np.float64, order='F' ) - + # TODO: remove for loop (?) for i in range(self.n_layer): resp_int_i, _ = fourier_dlf( @@ -887,12 +885,11 @@ def run_simulation_FD(args): :param float h: source height for a single sounding :param string output_type: "response", "sensitivity_sigma", "sensitivity_height" :param bool invert_height: boolean switch for inverting for source height - :param bool halfspace_switch: boolean switch for simulation for a halfspace :return: response or sensitivities """ - src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height, halfspace_switch = args + src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height = args n_layer = len(thicknesses) + 1 local_survey = EM1DSurveyFD([src]) @@ -905,7 +902,7 @@ def run_simulation_FD(args): sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, - topo=topo, halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' + topo=topo, hankel_filter='key_101_2009' ) if output_type == 'sensitivity_sigma': @@ -923,7 +920,7 @@ def run_simulation_FD(args): survey=local_survey, thicknesses=thicknesses, sigmaMap=sigma_map, hMap=wires.h, topo=topo, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, - halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' + hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] @@ -959,12 +956,11 @@ def run_simulation_TD(args): :param float h: source height for a single sounding :param string output_type: "response", "sensitivity_sigma", "sensitivity_height" :param bool invert_height: boolean switch for inverting for source height - :param bool halfspace_switch: boolean switch for simulation for a halfspace :return: response or sensitivities """ - src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height, halfspace_switch = args + src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height = args n_layer = len(thicknesses) + 1 local_survey = EM1DSurveyTD([src]) @@ -976,7 +972,7 @@ def run_simulation_TD(args): sim = EM1DTMSimulation( survey=local_survey, thicknesses=thicknesses, sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, - topo=topo, halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' + topo=topo, hankel_filter='key_101_2009' ) if output_type == 'sensitivity_sigma': @@ -993,7 +989,7 @@ def run_simulation_TD(args): survey=local_survey, thicknesses=thicknesses, sigmaMap=sigma_map, hMap=wires.h, topo=topo, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, - halfspace_switch=halfspace_switch, hankel_filter='key_101_2009' + hankel_filter='key_101_2009' ) m = np.r_[np.log(sigma), h] @@ -1071,8 +1067,6 @@ class BaseStitchedEM1DSimulation(BaseSimulation): "a survey object", BaseEM1DSurvey, required=True ) - halfspace_switch = properties.Bool("Switch for half-space", default=False) - def __init__(self, **kwargs): utils.setKwargs(self, **kwargs) @@ -1100,6 +1094,14 @@ def __init__(self, **kwargs): # elif self.mesh.dim==3: # return self.mesh.dz + @property + def halfspace_switch(self): + """True = halfspace, False = layered Earth""" + if (self.thicknesses is None) | (len(self.thicknesses)==0): + return True + else: + return False + @property def n_layer(self): if self.thicknesses is None: @@ -1256,8 +1258,7 @@ def input_args(self, i_sounding, output_type='forward'): self.Tau2[i_sounding, :], self.H[i_sounding], output_type, - self.invert_height, - self.halfspace_switch + self.invert_height ) return output diff --git a/tests/testEM1D_FD_jac_layers.py b/tests/testEM1D_FD_jac_layers.py index 7b28b2e..de9a3f0 100644 --- a/tests/testEM1D_FD_jac_layers.py +++ b/tests/testEM1D_FD_jac_layers.py @@ -18,7 +18,7 @@ def setUp(self): src_location = np.array([0., 0., 100.+1e-5]) rx_location = np.array([10., 0., 100.+1e-5]) field_type = "secondary" # "secondary", "total" or "ppm" - frequencies = np.logspace(1, 8, 61) + frequencies = np.logspace(1, 8, 21) # Receiver list receiver_list = [] @@ -160,5 +160,139 @@ def misfit(m, dobs): print ("EM1DFD-layers Jtvec works") +class EM1D_FD_Jac_layers_ProblemTests_Height(unittest.TestCase): + + def setUp(self): + + topo = np.r_[0., 0., 100.] + + src_location = np.array([0., 0., 100.+20.]) + rx_location = np.array([10., 0., 100.+20.]) + field_type = "secondary" # "secondary", "total" or "ppm" + frequencies = np.logspace(1, 8, 21) + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="x", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="x", + field_type=field_type, component="imag" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="y", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="y", + field_type=field_type, component="imag" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", + field_type=field_type, component="real" + ) + ) + receiver_list.append( + em1d.receivers.HarmonicPointReceiver( + rx_location, frequencies, orientation="z", + field_type=field_type, component="imag" + ) + ) + + I = 1. + a = 10. + source_list = [ + em1d.sources.HarmonicHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, I=I, a=a + ) + ] + + # Survey + survey = em1d.survey.EM1DSurveyFD(source_list) + + wires = maps.Wires(('sigma', 1),('height', 1)) + expmap = maps.ExpMap(nP=1) + sigma_map = expmap * wires.sigma + + self.topo = topo + self.survey = survey + self.showIt = False + self.frequencies = frequencies + self.nlayers = 1 + self.sigma_map = sigma_map + self.h_map = wires.height + + sim = em1d.simulation.EM1DFMSimulation( + survey=self.survey, + sigmaMap=self.sigma_map, hMap=wires.height, topo=self.topo + ) + + self.sim = sim + + def test_EM1DFDJvec_Layers(self): + + sigma_half = 0.01 + height = 20. + + m_1D = np.r_[np.log(sigma_half), height] + + def fwdfun(m): + resp = self.sim.dpred(m) + return resp + # return Hz + + def jacfun(m, dm): + Jvec = self.sim.Jvec(m, dm) + return Jvec + + dm = m_1D*0.5 + derChk = lambda m: [fwdfun(m), lambda mx: jacfun(m, mx)] + passed = tests.checkDerivative( + derChk, m_1D, num=4, dx=dm, plotIt=False, eps=1e-15 + ) + + if passed: + print ("EM1DFD - Jvec with height works") + + def test_EM1DFDJtvec_Layers(self): + + sigma_half = 0.01 + height = 20. + + m_true = np.r_[np.log(sigma_half), height] + + dobs = self.sim.dpred(m_true) + + m_ini = m_true * 1.2 + resp_ini = self.sim.dpred(m_ini) + dr = resp_ini-dobs + + def misfit(m, dobs): + dpred = self.sim.dpred(m) + misfit = 0.5*np.linalg.norm(dpred-dobs)**2 + dmisfit = self.sim.Jtvec(m, dr) + return misfit, dmisfit + + derChk = lambda m: misfit(m, dobs) + passed = tests.checkDerivative( + derChk, m_ini, num=4, plotIt=False, eps=1e-27 + ) + self.assertTrue(passed) + if passed: + print ("EM1DFD - Jtvec with height works") + + + if __name__ == '__main__': unittest.main() diff --git a/tests/testEM1D_TD_off_jac_layers.py b/tests/testEM1D_TD_off_jac_layers.py index d529a2f..c29ae3b 100644 --- a/tests/testEM1D_TD_off_jac_layers.py +++ b/tests/testEM1D_TD_off_jac_layers.py @@ -126,5 +126,119 @@ def misfit(m, dobs): print ("EM1DTD-layers Jtvec works") + +class EM1D_TD_Jac_layers_ProblemTests_Height(unittest.TestCase): + + def setUp(self): + + topo = np.r_[0., 0., 100.] + + src_location = np.array([0., 0., 100.+20.]) + rx_location = np.array([0., 0., 100.+20.]) + receiver_orientation = "z" # "x", "y" or "z" + times = np.logspace(-5, -2, 31) + a = 20. + + # Receiver list + receiver_list = [] + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="b" + ) + ) + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + rx_location, times, orientation=receiver_orientation, + component="dbdt" + ) + ) + + source_list = [ + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, location=src_location, + a=a, I=1., wave_type="stepoff" + ) + ] + # Survey + survey = em1d.survey.EM1DSurveyTD(source_list) + + wires = maps.Wires(('sigma', 1),('height', 1)) + expmap = maps.ExpMap(nP=1) + sigma_map = expmap * wires.sigma + + self.topo = topo + self.survey = survey + self.showIt = False + self.times = times + self.nlayers = 1 + self.a = a + self.sigma_map = sigma_map + self.h_map = wires.height + + + def test_EM1DTDJvec_Layers(self): + + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, + sigmaMap=self.sigma_map, hMap=self.h_map, topo=self.topo + ) + + sigma_half = 0.01 + height = 20. + + m_1D = np.r_[np.log(sigma_half), height] + + def fwdfun(m): + resp = sim.dpred(m) + return resp + + def jacfun(m, dm): + Jvec = sim.Jvec(m, dm) + return Jvec + + dm = m_1D*0.5 + derChk = lambda m: [fwdfun(m), lambda mx: jacfun(m, mx)] + passed = tests.checkDerivative( + derChk, m_1D, num=4, dx=dm, plotIt=False, eps=1e-15 + ) + + if passed: + print ("EM1DTD-layers Jvec works") + + + def test_EM1DTDJtvec_Layers(self): + + sim = em1d.simulation.EM1DTMSimulation( + survey=self.survey, + sigmaMap=self.sigma_map, hMap=self.h_map, topo=self.topo + ) + + sigma_half = 0.01 + height = 20. + + m_true = np.r_[np.log(sigma_half), height] + + dobs = sim.dpred(m_true) + + m_ini = 1.2 * np.r_[np.log(sigma_half), height] + resp_ini = sim.dpred(m_ini) + dr = resp_ini-dobs + + def misfit(m, dobs): + dpred = sim.dpred(m) + misfit = 0.5*np.linalg.norm(dpred-dobs)**2 + dmisfit = sim.Jtvec(m, dr) + return misfit, dmisfit + + derChk = lambda m: misfit(m, dobs) + passed = tests.checkDerivative( + derChk, m_ini, num=4, plotIt=False, eps=1e-26 + ) + self.assertTrue(passed) + if passed: + print ("EM1DTD-layers Jtvec works") + + if __name__ == '__main__': unittest.main() diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index 3154702..1f8a1ce 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -146,10 +146,11 @@ class GlobalEM1DFD_Height(unittest.TestCase): def setUp(self, parallel=True): frequencies = np.array([900, 7200, 56000], dtype=float) - hz = np.r_[1.] + n_layer = 0 n_sounding = 10 dx = 20. hx = np.ones(n_sounding) * dx + hz = 1. # not used in simulation e = np.ones(n_sounding) mSynth = np.r_[e*np.log(1./100.), e*20.] mesh = TensorMesh([hx, hz], x0='00') @@ -241,83 +242,6 @@ def setUp(self, parallel=True): self.m0 = mSynth * 1.2 self.survey = survey - - - - - - - - - - - - - - - - - - - - - -# # frequency = np.array([900, 7200, 56000], dtype=float) -# # hz = np.r_[1.] -# # n_sounding = 10 -# # dx = 20. -# # hx = np.ones(n_sounding) * dx -# # e = np.ones(n_sounding) -# # mSynth = np.r_[e*np.log(1./100.), e*20] - -# # x = np.arange(n_sounding) -# # y = np.zeros_like(x) -# # z = np.ones_like(x) * 30. -# # rx_locations = np.c_[x, y, z] -# # src_locations = np.c_[x, y, z] -# # topo = np.c_[x, y, z-30.].astype(float) - -# # wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) -# # expmap = Maps.ExpMap(nP=n_sounding) -# # sigmaMap = expmap * wires.sigma - -# # survey = GlobalEM1DSurveyFD( -# # rx_locations=rx_locations, -# # src_locations=src_locations, -# # frequency=frequency, -# # offset=np.ones_like(frequency) * 8., -# # src_type="VMD", -# # rx_type="ppm", -# # field_type='secondary', -# # topo=topo, -# # half_switch=True -# # ) -# # -# # problem = GlobalEM1DProblemFD( -# # [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, -# # parallel=parallel, n_cpu=2 -# # ) -# # problem.pair(survey) -# # survey.makeSyntheticData(mSynth) - -# # # Now set up the problem to do some minimization -# # mesh = Mesh.TensorMesh([int(n_sounding * 2)]) -# # dmis = DataMisfit.l2_DataMisfit(survey) -# # reg = regularization.Tikhonov(mesh) -# # opt = Optimization.InexactGaussNewton( -# # maxIterLS=20, maxIter=10, tolF=1e-6, -# # tolX=1e-6, tolG=1e-6, maxIterCG=6 -# # ) - -# # invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) -# # inv = Inversion.BaseInversion(invProb) -# # self.inv = inv -# # self.reg = reg -# # self.p = problem -# # self.mesh = mesh -# # self.m0 = mSynth * 1.2 -# # self.survey = survey -# # self.dmis = dmis def test_misfit(self): passed = tests.checkDerivative( diff --git a/tests/testGlobalEM1D_TD_jac_layers.py b/tests/testGlobalEM1D_TD_jac_layers.py index f5d4898..d3b04e7 100644 --- a/tests/testGlobalEM1D_TD_jac_layers.py +++ b/tests/testGlobalEM1D_TD_jac_layers.py @@ -152,129 +152,142 @@ def test_dataObj(self): ) self.assertTrue(passed) -# class GlobalEM1DTD_Height(unittest.TestCase): +class GlobalEM1DTD_Height(unittest.TestCase): -# def setUp(self, parallel=True): -# time = np.logspace(-6, -3, 21) -# time_input_currents = wave.current_times[-7:] -# input_currents = wave.currents[-7:] -# hz = get_vertical_discretization_time( -# time, facter_tmax=0.5, factor_tmin=10. -# ) - -# hz = np.r_[1.] -# n_sounding = 10 -# dx = 20. -# hx = np.ones(n_sounding) * dx -# e = np.ones(n_sounding) -# mSynth = np.r_[e*np.log(1./100.), e*20] - -# x = np.arange(n_sounding) -# y = np.zeros_like(x) -# z = np.ones_like(x) * 30. -# rx_locations = np.c_[x, y, z] -# src_locations = np.c_[x, y, z] -# topo = np.c_[x, y, z-30.].astype(float) - -# rx_type_global = np.array( -# ["dBzdt"], dtype=str -# ).repeat(n_sounding, axis=0) -# field_type_global = np.array( -# ['secondary'], dtype=str -# ).repeat(n_sounding, axis=0) -# wave_type_global = np.array( -# ['general'], dtype=str -# ).repeat(n_sounding, axis=0) - -# time_global = [time for i in range(n_sounding)] - -# src_type_global = np.array( -# ["CircularLoop"], dtype=str -# ).repeat(n_sounding, axis=0) -# a_global = np.array( -# [13.], dtype=float -# ).repeat(n_sounding, axis=0) -# input_currents_global = [ -# input_currents for i in range(n_sounding) -# ] -# time_input_currents_global = [ -# time_input_currents for i in range(n_sounding) -# ] - -# wires = Maps.Wires(('sigma', n_sounding),('h', n_sounding)) -# expmap = Maps.ExpMap(nP=n_sounding) -# sigmaMap = expmap * wires.sigma + def setUp(self, parallel=True): + + times = np.logspace(-5, -2, 31) -# survey = GlobalEM1DSurveyTD( -# rx_locations=rx_locations, -# src_locations=src_locations, -# topo=topo, -# time=time_global, -# src_type=src_type_global, -# rx_type=rx_type_global, -# field_type=field_type_global, -# wave_type=wave_type_global, -# a=a_global, -# input_currents=input_currents_global, -# time_input_currents=time_input_currents_global, -# half_switch=True -# ) + hz = 1. + n_sounding = 10 + dx = 20. + hx = np.ones(n_sounding) * dx + e = np.ones(n_sounding) + mSynth = np.r_[e*np.log(1./100.), e*30] + mesh = TensorMesh([hx, hz], x0='00') + + wires = maps.Wires(('sigma', n_sounding),('height', n_sounding)) + expmap = maps.ExpMap(nP=n_sounding) + sigma_map = expmap * wires.sigma -# problem = GlobalEM1DProblemTD( -# [], sigmaMap=sigmaMap, hMap=wires.h, hz=hz, parallel=parallel, n_cpu=2 -# ) -# problem.pair(survey) + x = mesh.vectorCCx + y = np.zeros_like(x) + z = np.ones_like(x) * 30. + receiver_locations = np.c_[x, y, z] + source_locations = np.c_[x, y, z] + topo = np.c_[x, y, z-30.].astype(float) + + source_list = [] + + for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation="z", + component="b" + ) + ) + + receiver_list.append( + em1d.receivers.TimeDomainPointReceiver( + receiver_location, times, orientation="z", + component="dbdt" + ) + ) + + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] + input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) + + source_list.append( + em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, + location=source_location, + a=5., I=1., + wave_type="general", + time_input_currents=time_input_currents, + input_currents=input_currents, + n_pulse = 1, + base_frequency = 25., + use_lowpass_filter=False, + high_cut_frequency=210*1e3 + ) + ) + + survey = em1d.survey.EM1DSurveyTD(source_list) + + simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, sigmaMap=sigma_map, hMap=wires.height, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + ) -# survey.makeSyntheticData(mSynth) + dpred = simulation.dpred(mSynth) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) + dobs = dpred + noise + data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) + dmis.W = 1./uncertainties + + reg_mesh = TensorMesh([int(n_sounding)]) + reg_sigma = regularization.Tikhonov(reg_mesh, mapping=wires.sigma) + reg_height = regularization.Tikhonov(reg_mesh, mapping=wires.height) + + reg = reg_sigma + reg_height + + opt = optimization.InexactGaussNewton( + maxIterLS=20, maxIter=10, tolF=1e-6, + tolX=1e-6, tolG=1e-6, maxIterCG=6 + ) + + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) + inv = inversion.BaseInversion(invProb) + + self.data = data_object + self.dmis = dmis + self.inv = inv + self.reg = reg + self.sim = simulation + self.mesh = reg_mesh + self.m0 = mSynth * 1.2 + self.survey = survey -# # Now set up the problem to do some minimization -# mesh = Mesh.TensorMesh([int(n_sounding * 2)]) -# dmis = DataMisfit.l2_DataMisfit(survey) -# reg = regularization.Tikhonov(mesh) -# opt = Optimization.InexactGaussNewton( -# maxIterLS=20, maxIter=10, tolF=1e-6, -# tolX=1e-6, tolG=1e-6, maxIterCG=6 -# ) -# invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=0.) -# inv = Inversion.BaseInversion(invProb) -# self.inv = inv -# self.reg = reg -# self.p = problem -# self.mesh = mesh -# self.m0 = mSynth -# self.survey = survey -# self.dmis = dmis -# def test_misfit(self): -# passed = Tests.checkDerivative( -# lambda m: ( -# self.survey.dpred(m), -# lambda mx: self.p.Jvec(self.m0, mx) -# ), -# self.m0, -# plotIt=False, -# num=3 -# ) -# self.assertTrue(passed) + def test_misfit(self): + passed = tests.checkDerivative( + lambda m: ( + self.sim.dpred(m), + lambda mx: self.sim.Jvec(self.m0, mx) + ), + self.m0, + plotIt=False, + num=3 + ) + self.assertTrue(passed) -# def test_adjoint(self): -# # Adjoint Test -# v = np.random.rand(self.mesh.nC) -# w = np.random.rand(self.survey.dobs.shape[0]) -# wtJv = w.dot(self.p.Jvec(self.m0, v)) -# vtJtw = v.dot(self.p.Jtvec(self.m0, w)) -# passed = np.abs(wtJv - vtJtw) < 1e-10 -# print('Adjoint Test', np.abs(wtJv - vtJtw), passed) -# self.assertTrue(passed) + def test_adjoint(self): + # Adjoint Test + v = np.random.rand(2*self.mesh.nC) + w = np.random.rand(self.data.dobs.shape[0]) + wtJv = w.dot(self.sim.Jvec(self.m0, v)) + vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) + passed = np.abs(wtJv - vtJtw) < 1e-10 + print('Adjoint Test', np.abs(wtJv - vtJtw), passed) + self.assertTrue(passed) -# def test_dataObj(self): -# passed = Tests.checkDerivative( -# lambda m: [self.dmis(m), self.dmis.deriv(m)], -# self.m0, -# plotIt=False, -# num=3 -# ) -# self.assertTrue(passed) + def test_dataObj(self): + passed = tests.checkDerivative( + lambda m: [self.dmis(m), self.dmis.deriv(m)], + self.m0, + plotIt=False, + num=3 + ) + self.assertTrue(passed) if __name__ == '__main__': unittest.main() diff --git a/tutorials/plot_1_fdem_inv_height.py b/tutorials/plot_1_fdem_inv_height.py index 7077de7..a568d71 100644 --- a/tutorials/plot_1_fdem_inv_height.py +++ b/tutorials/plot_1_fdem_inv_height.py @@ -76,6 +76,7 @@ source_location = np.array([0., 0., 30.]) source_current = 1. source_radius = 5. +moment_amplitude=1. source_receiver_offset = np.array([10., 0., 0.]) receiver_orientation = "z" @@ -99,7 +100,7 @@ source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ] From dd5bed8d873cdf9cbd4f869230f2fdd72bf7c66b Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 30 Sep 2020 14:45:08 -0700 Subject: [PATCH 42/54] fix tutorial bugs and test parallelization --- simpegEM1D/simulation.py | 13 ++++++++----- tutorials/plot_1_fdem_fwd.py | 4 ++-- tutorials/plot_1_fdem_fwd_height.py | 3 ++- tutorials/plot_1_fdem_inv.py | 3 ++- tutorials/plot_1_tdem_fwd.py | 2 +- tutorials/plot_1_tdem_fwd_waveforms.py | 8 +++++--- tutorials/plot_2_fdem_fwd_stitched.py | 15 ++++++--------- tutorials/plot_2_fdem_inv_stitched.py | 7 +++++-- tutorials/plot_2_tdem_inv_stitched.py | 26 +++++--------------------- 9 files changed, 36 insertions(+), 45 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 0defb7d..ca2bd6f 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -642,8 +642,8 @@ def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) # self.fftfilt = filters.key_81_CosSin_2009() - # self.fftfilt = filters.key_101_CosSin_2012() - self.fftfilt = filters.key_601_CosSin_2009() + self.fftfilt = filters.key_101_CosSin_2012() + # self.fftfilt = filters.key_601_CosSin_2009() def set_time_intervals(self): @@ -1295,7 +1295,8 @@ def forward(self, m): else: run_simulation = run_simulation_TD - if self.parallel: + if (self.parallel) & (__name__=='__main__'): + pool = Pool(self.n_cpu) # This assumes the same # of layers for each of sounding result = pool.map( @@ -1391,7 +1392,8 @@ def getJ_sigma(self, m): else: run_simulation = run_simulation_TD - if self.parallel: + if (self.parallel) & (__name__=='__main__'): + pool = Pool(self.n_cpu) self._Jmatrix_sigma = pool.map( run_simulation, @@ -1401,6 +1403,7 @@ def getJ_sigma(self, m): ) pool.close() pool.join() + if self.parallel_jvec_jtvec is False: # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) @@ -1444,7 +1447,7 @@ def getJ_height(self, m): else: run_simulation = run_simulation_TD - if self.parallel: + if (self.parallel) & (__name__=='__main__'): pool = Pool(self.n_cpu) self._Jmatrix_height = pool.map( run_simulation, diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index 6036642..fe14e17 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Single Sounding Forward Simulation of 1D Frequency-Domain Data +============================================================== diff --git a/tutorials/plot_1_fdem_fwd_height.py b/tutorials/plot_1_fdem_fwd_height.py index f9f67a6..6c7822b 100644 --- a/tutorials/plot_1_fdem_fwd_height.py +++ b/tutorials/plot_1_fdem_fwd_height.py @@ -35,6 +35,7 @@ source_location = np.array([0., 0., 30.]) # Third entry will be redundant source_current = 1. source_radius = 5. +moment_amplitude = 1. source_receiver_offset = np.array([10., 0., 0.]) receiver_orientation = "z" # "x", "y" or "z" @@ -60,7 +61,7 @@ source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ] diff --git a/tutorials/plot_1_fdem_inv.py b/tutorials/plot_1_fdem_inv.py index 5cbc252..aa8929c 100644 --- a/tutorials/plot_1_fdem_inv.py +++ b/tutorials/plot_1_fdem_inv.py @@ -76,6 +76,7 @@ source_location = np.array([0., 0., 30.]) source_current = 1. source_radius = 5. +moment_amplitude=1. receiver_location = np.array([10., 0., 30.]) receiver_orientation = "z" @@ -107,7 +108,7 @@ source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ] diff --git a/tutorials/plot_1_tdem_fwd.py b/tutorials/plot_1_tdem_fwd.py index c87647d..dad739d 100644 --- a/tutorials/plot_1_tdem_fwd.py +++ b/tutorials/plot_1_tdem_fwd.py @@ -22,7 +22,7 @@ import simpegEM1D as em1d from simpegEM1D.utils import plotLayer -save_file = True +save_file = False plt.rcParams.update({'font.size': 16}) ##################################################################### diff --git a/tutorials/plot_1_tdem_fwd_waveforms.py b/tutorials/plot_1_tdem_fwd_waveforms.py index 734143f..e76812b 100644 --- a/tutorials/plot_1_tdem_fwd_waveforms.py +++ b/tutorials/plot_1_tdem_fwd_waveforms.py @@ -32,6 +32,7 @@ source_orientation = "z" # "x", "y" or "z" source_current = 1. source_radius = 10. +moment_amplitude=1. receiver_location = np.array([10., 0., 0.]) receiver_orientation = "z" # "x", "y" or "z" @@ -54,7 +55,8 @@ source_list.append( em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - orientation=source_orientation, I=source_current, wave_type="stepoff" + orientation=source_orientation, moment_amplitude=moment_amplitude, + wave_type="stepoff" ) ) @@ -64,7 +66,7 @@ source_list.append( em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - I=source_current, + moment_amplitude=moment_amplitude, orientation=source_orientation, wave_type="general", time_input_currents=time_input_currents, @@ -82,7 +84,7 @@ source_list.append( em1d.sources.TimeDomainMagneticDipoleSource( receiver_list=receiver_list, location=source_location, - I=source_current, + moment_amplitude=moment_amplitude, orientation=source_orientation, wave_type="general", time_input_currents=time_input_currents_2, diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index f02ef59..7f98140 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -237,17 +237,14 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity simulation = em1d.simulation.StitchedEM1DFMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=mapping, chi=chi, - topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + topo=topo, parallel=False, verbose=True, Solver=PardisoSolver ) -#simulation.model = sounding_models -# -#ARGS = simulation.input_args(0) -#print("Number of arguments") -#print(len(ARGS)) -#print("Print arguments") -#for ii in range(0, len(ARGS)): -# print(ARGS[ii]) +# simulation = em1d.simulation.StitchedEM1DFMSimulation( +# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, chi=chi, +# topo=topo, parallel=True, n_cpu=2, verbose=True, Solver=PardisoSolver +# ) + dpred = simulation.dpred(sounding_models) diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 2306f82..581400c 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -211,10 +211,13 @@ # Simulate response for static conductivity simulation = em1d.simulation.StitchedEM1DFMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=mapping, topo=topo, - parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + verbose=True, Solver=PardisoSolver ) - +# simulation = em1d.simulation.StitchedEM1DFMSimulation( +# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, topo=topo, +# parallel=True, n_cpu=3, verbose=True, Solver=PardisoSolver +# ) ######################################################################## diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index 22801ae..b2dfcc2 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -201,29 +201,13 @@ # Simulate response for static conductivity simulation = em1d.simulation.StitchedEM1DTMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=mapping, - topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + topo=topo, verbose=True, Solver=PardisoSolver ) -#simulation.model = starting_model -# -#simulation.set_ij_n_layer() -# -#simulation._Jmatrix_sigma = [ -# run_simulation_FD(simulation.input_args(i, jac_switch='sensitivity_sigma')) for i in range(simulation.n_sounding) -#] -#print("J_sigma matrix shape") -#simulation._Jmatrix_sigma = np.hstack(simulation._Jmatrix_sigma) -#print(simulation._Jmatrix_sigma.shape) -#print("IJLayers shapes") -#for x in simulation.IJLayers: -# print(x.shape) - - - - - - - +# simulation = em1d.simulation.StitchedEM1DTMSimulation( +# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, +# topo=topo, parallel=True, n_cpu=4, verbose=True, Solver=PardisoSolver +# ) From e44670c711113890748b4d6efc9314d531674ffa Mon Sep 17 00:00:00 2001 From: dccowan Date: Wed, 30 Sep 2020 17:43:18 -0700 Subject: [PATCH 43/54] Increase coefficients for ifft accuracy --- simpegEM1D/simulation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index ca2bd6f..a74878a 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -642,7 +642,7 @@ def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) # self.fftfilt = filters.key_81_CosSin_2009() - self.fftfilt = filters.key_101_CosSin_2012() + self.fftfilt = filters.key_201_CosSin_2012() # self.fftfilt = filters.key_601_CosSin_2009() From c8649cc9347303c345083060b9a011f4413a5225 Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Fri, 2 Oct 2020 17:35:32 -0700 Subject: [PATCH 44/54] - fix fortran rte function to handle dispersive chi - fix dual moment function --- simpegEM1D/Fortran/m_rTE_Fortran.f90 | 26 +-- simpegEM1D/receivers.py | 22 ++- simpegEM1D/simulation.py | 105 +++++++----- simpegEM1D/sources.py | 61 ++++--- simpegEM1D/supporting_functions/kernels.py | 18 +- tests/testEM1D_TD_dual_moment_fwd.py | 18 +- tests/testEM1D_TD_off_fwd.py | 31 ++-- tutorials/plot_1_fdem_fwd.py | 4 +- tutorials/plot_1_fdem_fwd_dispersive.py | 5 +- tutorials/plot_1_tdem_fwd_skytem.py | 181 +++++++++++++++++++++ 10 files changed, 339 insertions(+), 132 deletions(-) create mode 100644 tutorials/plot_1_tdem_fwd_skytem.py diff --git a/simpegEM1D/Fortran/m_rTE_Fortran.f90 b/simpegEM1D/Fortran/m_rTE_Fortran.f90 index a77c08e..363e2e5 100644 --- a/simpegEM1D/Fortran/m_rTE_Fortran.f90 +++ b/simpegEM1D/Fortran/m_rTE_Fortran.f90 @@ -27,7 +27,7 @@ subroutine rTE_forward(nLayers, nFrequencies, nFilter, frequencies, lambda, sig, !f2py intent(in) :: lambda complex(kind=8), intent(in) :: sig(nLayers, nFrequencies, nFilter) !f2py intent(in) :: sig - real(kind=8), intent(in) :: chi(nLayers) + complex(kind=8), intent(in) :: chi(nLayers, nFrequencies, nFilter) !f2py intent(in) :: chi real(kind=8), intent(in) :: depth(nLayers) !f2py intent(in) :: depth @@ -47,15 +47,15 @@ subroutine rTE_forward(nLayers, nFrequencies, nFilter, frequencies, lambda, sig, real(kind=8) :: tmp0 complex(kind=8) :: uTmp0, uTmp1, cTmp real(kind=8) :: thickness(nLayers - 1) - complex(kind=8) :: c1(nLayers) + complex(kind=8) :: c1(nLayers, nFrequencies, nFilter) if (halfSpace .or. nLayers == 1) then - cTmp = mu0 * (1.d0 + chi(1)) do jj = 1, nFilter do i = 1, nFrequencies omega = pi2 * frequencies(i, jj) uTmp0 = lambda(i, jj) + cTmp = mu0 * (1.d0 + chi(1, i, jj)) uTmp1 = sqrt(uTmp0**2.d0 + j * omega * cTmp * sig(1, i, jj)) c = mu0 * uTmp1 / (cTmp * uTmp0) @@ -72,9 +72,15 @@ subroutine rTE_forward(nLayers, nFrequencies, nFilter, frequencies, lambda, sig, do k = 1, nLayers - 1 thickness(k) = -(depth(k+1) - depth(k)) - c1(k) = 1.d0 + chi(k) enddo - c1(nLayers) = 1.d0 + chi(nLayers) + + do k = 1, nLayers + do jj = 1, nFilter + do i = 1, nFrequencies + c1(k, i, jj) = 1.d0 + chi(k, i, jj) + enddo + enddo + enddo do jj = 1, nFilter do i = 1, nFrequencies @@ -83,8 +89,8 @@ subroutine rTE_forward(nLayers, nFrequencies, nFilter, frequencies, lambda, sig, lam2 = lambda(i, jj)**2.d0 ! Set up first layer - uTmp1 = sqrt(lam2 + j * tmp0 * c1(1) * sig(1, i, jj)) - c = uTmp1 / (c1(1) * lambda(i, jj)) + uTmp1 = sqrt(lam2 + j * tmp0 * c1(1, i, jj) * sig(1, i, jj)) + c = uTmp1 / (c1(1, i, jj) * lambda(i, jj)) s0 = 0.5d0 * (1.d0 + c) s1 = 0.5d0 * (1.d0 - c) @@ -93,9 +99,9 @@ subroutine rTE_forward(nLayers, nFrequencies, nFilter, frequencies, lambda, sig, do k = 1, nLayers - 1 cTmp = j * tmp0 - uTmp0 = sqrt(lam2 + cTmp * c1(k) * sig(k, i, jj)) - uTmp1 = sqrt(lam2 + cTmp * c1(k + 1) * sig(k+1, i, jj)) - c = (c1(k) * uTmp1) / (c1(k + 1) * uTmp0) + uTmp0 = sqrt(lam2 + cTmp * c1(k, i, jj) * sig(k, i, jj)) + uTmp1 = sqrt(lam2 + cTmp * c1(k + 1, i, jj) * sig(k+1, i, jj)) + c = (c1(k, i, jj) * uTmp1) / (c1(k + 1, i, jj) * uTmp0) h = thickness(k) diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 146ae0a..0f082f1 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -1,7 +1,7 @@ import numpy as np import properties from SimPEG.survey import BaseRx, BaseTimeRx - + class HarmonicPointReceiver(BaseRx): """ @@ -22,7 +22,7 @@ class HarmonicPointReceiver(BaseRx): frequencies = properties.Array( "Frequency (Hz)", dtype=float, shape=("*",), required=True ) - + orientation = properties.StringChoice( "Field orientation", default="z", choices=["x", "y", "z"] ) @@ -59,7 +59,7 @@ def __init__(self, locations=None, frequencies=None, orientation=None, field_typ if use_source_receiver_offset is not None: self.use_source_receiver_offset = use_source_receiver_offset - + class TimeDomainPointReceiver(BaseTimeRx): """ @@ -83,7 +83,7 @@ class TimeDomainPointReceiver(BaseTimeRx): # times property is inherited from BaseTimeRx class orientation = properties.StringChoice( - "Field orientation", default="z", choices=["z"] + "Field orientation", default="z", choices=["x", "y", "z"] ) component = properties.StringChoice( @@ -105,6 +105,9 @@ class TimeDomainPointReceiver(BaseTimeRx): default=False ) + times_dual_moment = properties.Array( + "Off-time channels (s) for the dual moment", dtype=float + ) def __init__(self, locations=None, times=None, orientation=None, component=None, use_source_receiver_offset=None, **kwargs): @@ -126,13 +129,20 @@ def n_time(self): """ Number of time channels """ - return int(self.times.size) + if self.times_dual_moment is not None: + return int(self.times.size) + int(self.times_dual_moment.size) + else: + return int(self.times.size) @property def n_frequency(self): """ Number of frequencies """ - return int(self.frequencies.size) + @property + def nD(self): + """Number of data in the receiver.""" + return self.locations.shape[0] * self.n_time + diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index a74878a..fc1d2b5 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -154,7 +154,7 @@ def n_filter(self): """ Length of filter """ return self.fhtfilt.base.size - + @property def depth(self): """layer depths""" if self.thicknesses is not None: @@ -180,7 +180,7 @@ def compute_sigma_tensor(self, frequencies): n_filter = self.n_filter sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) - + # No IP effect if np.all(self.eta) == 0.: @@ -255,7 +255,7 @@ def compute_chi_tensor(self, frequencies): n_filter = self.n_filter chi = np.tile(chi.reshape([-1, 1]), (1, n_frequency)) - + # No magnetic viscosity if np.all(self.dchi) == 0.: @@ -302,7 +302,7 @@ def compute_chi_tensor(self, frequencies): ) return chi_complex_tensor - + def compute_integral(self, m, output_type='response'): """ @@ -310,18 +310,18 @@ def compute_integral(self, m, output_type='response'): receiver and outputs it as a list. Used for computing response or sensitivities. """ - + self.model = m n_layer = self.n_layer n_filter = self.n_filter - + # For time-domain simulations, set frequencies for the evaluation # of the Hankel transform. if isinstance(self.survey, EM1DSurveyTD): if self.frequencies_are_set is False: self.set_frequencies() - + # Define source height above topography by mapping or from sources and receivers. if self.hMap is not None: h_vector = np.array(self.h) @@ -333,14 +333,14 @@ def compute_integral(self, m, output_type='response'): [src.location[2]-self.topo[-1] for src in self.survey.source_list] ) - + integral_output_list = [] - + for ii, src in enumerate(self.survey.source_list): for jj, rx in enumerate(src.receiver_list): n_frequency = len(rx.frequencies) - + f = np.empty([n_frequency, n_filter], order='F') f[:, :] = np.tile( rx.frequencies.reshape([-1, 1]), (1, n_filter) @@ -371,6 +371,7 @@ def compute_integral(self, m, output_type='response'): # Use function from empymod to define Hankel coefficients. # Size of lambd is (n_frequency x n_filter) + lambd = np.empty([n_frequency, n_filter], order='F') lambd[:, :], _ = get_dlf_points( self.fhtfilt, r_vec, self.hankel_pts_per_dec @@ -465,7 +466,7 @@ def getJ_height(self, m, f=None): if self._Jmatrix_height is not None: return self._Jmatrix_height - + else: if self.verbose: @@ -485,7 +486,7 @@ def getJ_height(self, m, f=None): temp = np.r_[temp, dudh[COUNT]] COUNT += 1 dudh_by_source.append(temp.reshape([-1, 1])) - + self._Jmatrix_height= block_diag(*dudh_by_source) return self._Jmatrix_height @@ -587,7 +588,7 @@ class EM1DFMSimulation(BaseEM1DSimulation): def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) - + def project_fields(self, u): """ Project from the list of Hankel transform evaluations to the data or sensitivities. @@ -608,11 +609,19 @@ def project_fields(self, u): if rx.component == 'real': u_temp = np.real(u_temp) - else: + elif rx.component == 'imag': u_temp = np.imag(u_temp) - if rx.field_type != "secondary": + # TODO: have an option for both + # elif rx.component == 'both': + # u_temp_i = np.real(u_temp) + # u_temp_r = np.imag(u_temp) + else: + raise Exception() + + if rx.field_type != "secondary": + # Seogi note: this is not right u_primary = src.PrimaryField(rx.locations, rx.use_source_receiver_offset) if rx.field_type == "ppm": @@ -636,14 +645,20 @@ class EM1DTMSimulation(BaseEM1DSimulation): time_intervals_are_set = False frequencies_are_set = False + time_filter = 'key_81_CosSin_2009' def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) + if self.time_filter == 'key_81_CosSin_2009': + self.fftfilt = filters.key_81_CosSin_2009() + elif self.time_filter == 'key_201_CosSin_2012': + self.fftfilt = filters.key_201_CosSin_2012() + elif self.time_filter == 'key_601_CosSin_2012': + self.fftfilt = filters.key_601_CosSin_2009() + else: + raise Exception() - # self.fftfilt = filters.key_81_CosSin_2009() - self.fftfilt = filters.key_201_CosSin_2012() - # self.fftfilt = filters.key_601_CosSin_2009() def set_time_intervals(self): @@ -661,7 +676,7 @@ def set_time_intervals(self): period = src.period # Dual moment else: - time = np.unique(np.r_[rx.times, src.time_dual_moment]) + time = np.unique(np.r_[rx.times, rx.times_dual_moment]) pulse_period = np.maximum( src.pulse_period, src.pulse_period_dual_moment ) @@ -674,7 +689,7 @@ def set_time_intervals(self): else: raise NotImplementedError("n_pulse must be either 1 or 2") n_time = int((np.log10(tmax)-np.log10(tmin))*10+1) - + rx.time_interval = np.logspace( np.log10(tmin), np.log10(tmax), n_time ) @@ -691,10 +706,10 @@ def set_frequencies(self, pts_per_dec=-1): # Set range of time channels if self.time_intervals_are_set == False: self.set_time_intervals() - + for src in self.survey.source_list: for rx in src.receiver_list: - + if src.wave_type == "general": _, freq, ft, ftarg = check_time( rx.time_interval, -1, 'dlf', @@ -746,16 +761,16 @@ def project_fields(self, u): # For stepoff waveform if src.wave_type == 'stepoff': - + # Compute EM responses if u_temp.ndim == 1: resp, _ = fourier_dlf( u_temp.flatten()*factor, rx.times, rx.frequencies, rx.ftarg ) - + # Compute EM sensitivities else: - + resp = np.zeros( (rx.n_time, self.n_layer), dtype=np.float64, order='F' ) @@ -770,7 +785,7 @@ def project_fields(self, u): # Evaluate piecewise linear input current waveforms # Using Fittermann's approach (19XX) with Gaussian Quadrature elif src.wave_type == 'general': - + # Compute EM responses if u_temp.ndim == 1: resp_int, _ = fourier_dlf( @@ -794,7 +809,7 @@ def project_fields(self, u): # Compute response for the dual moment if src.moment_type == "dual": resp_dual_moment = piecewise_pulse_fast( - step_func, src.time_dual_moment, + step_func, rx.times_dual_moment, src.time_input_currents_dual_moment, src.input_currents_dual_moment, src.period_dual_moment, @@ -817,7 +832,7 @@ def project_fields(self, u): (rx.n_time+src.n_time_dual_moment, self.n_layer), dtype=np.float64, order='F' ) - + # TODO: remove for loop (?) for i in range(self.n_layer): resp_int_i, _ = fourier_dlf( @@ -842,14 +857,14 @@ def project_fields(self, u): else: resp_dual_moment_i = piecewise_pulse_fast( step_func, - src.time_dual_moment, + rx.times_dual_moment, src.time_input_currents_dual_moment, src.input_currents_dual_moment, src.period_dual_moment, n_pulse=src.n_pulse ) resp[:, i] = np.r_[resp_i, resp_dual_moment_i] - + u[COUNT] = resp * (-2.0/np.pi) COUNT = COUNT + 1 @@ -898,13 +913,13 @@ def run_simulation_FD(args): if not invert_height: # Use Exponential Map # This is hard-wired at the moment - + sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, topo=topo, hankel_filter='key_101_2009' ) - + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(np.log(sigma)) return utils.mkvc(drespdsig * sim.sigmaDeriv) @@ -912,17 +927,17 @@ def run_simulation_FD(args): resp = sim.dpred(np.log(sigma)) return resp else: - + wires = maps.Wires(('sigma', n_layer), ('h', 1)) sigma_map = exp_map * wires.sigma - + sim = EM1DFMSimulation( survey=local_survey, thicknesses=thicknesses, sigmaMap=sigma_map, hMap=wires.h, topo=topo, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, hankel_filter='key_101_2009' ) - + m = np.r_[np.log(sigma), h] if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(m) @@ -957,7 +972,7 @@ def run_simulation_TD(args): :param string output_type: "response", "sensitivity_sigma", "sensitivity_height" :param bool invert_height: boolean switch for inverting for source height :return: response or sensitivities - + """ src, topo, thicknesses, sigma, eta, tau, c, chi, dchi, tau1, tau2, h, output_type, invert_height = args @@ -974,7 +989,7 @@ def run_simulation_TD(args): sigmaMap=exp_map, eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, topo=topo, hankel_filter='key_101_2009' ) - + if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(np.log(sigma)) return utils.mkvc(drespdsig * sim.sigmaDeriv) @@ -982,7 +997,7 @@ def run_simulation_TD(args): resp = sim.dpred(np.log(sigma)) return resp else: - + wires = maps.Wires(('sigma', n_layer), ('h', 1)) sigma_map = exp_map * wires.sigma sim = EM1DTMSimulation( @@ -991,7 +1006,7 @@ def run_simulation_TD(args): eta=eta, tau=tau, c=c, chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, hankel_filter='key_101_2009' ) - + m = np.r_[np.log(sigma), h] if output_type == 'sensitivity_sigma': drespdsig = sim.getJ_sigma(m) @@ -1009,7 +1024,7 @@ class BaseStitchedEM1DSimulation(BaseSimulation): Base class for the stitched 1D simulation. This simulation models the EM response for a set of 1D EM soundings. """ - + _Jmatrix_sigma = None _Jmatrix_height = None run_simulation = None @@ -1069,7 +1084,7 @@ class BaseStitchedEM1DSimulation(BaseSimulation): def __init__(self, **kwargs): utils.setKwargs(self, **kwargs) - + if PARALLEL: if self.parallel: print(">> Use multiprocessing for parallelization") @@ -1093,7 +1108,7 @@ def __init__(self, **kwargs): # return self.mesh.dy # elif self.mesh.dim==3: # return self.mesh.dz - + @property def halfspace_switch(self): """True = halfspace, False = layered Earth""" @@ -1296,7 +1311,7 @@ def forward(self, m): run_simulation = run_simulation_TD if (self.parallel) & (__name__=='__main__'): - + pool = Pool(self.n_cpu) # This assumes the same # of layers for each of sounding result = pool.map( @@ -1393,7 +1408,7 @@ def getJ_sigma(self, m): run_simulation = run_simulation_TD if (self.parallel) & (__name__=='__main__'): - + pool = Pool(self.n_cpu) self._Jmatrix_sigma = pool.map( run_simulation, @@ -1403,7 +1418,7 @@ def getJ_sigma(self, m): ) pool.close() pool.join() - + if self.parallel_jvec_jtvec is False: # self._Jmatrix_sigma = sp.block_diag(self._Jmatrix_sigma).tocsr() self._Jmatrix_sigma = np.hstack(self._Jmatrix_sigma) diff --git a/simpegEM1D/sources.py b/simpegEM1D/sources.py index 7bf4bea..e60434a 100644 --- a/simpegEM1D/sources.py +++ b/simpegEM1D/sources.py @@ -11,14 +11,14 @@ class HarmonicMagneticDipoleSource(survey.BaseSrc): - """ - Harmonic magnetic dipole source. + """f + Harmonic magnetic dipole source. :param numpy.array location: source location (x,y,z) :param string orientation: dipole orientation 'x', 'y' or 'z' :param float moment_amplitude: magnitude of the dipole moment |m| """ - + orientation = properties.StringChoice( "Magnetic dipole orientation", default="z", choices=["x", "y", "z"] ) @@ -63,7 +63,7 @@ def PrimaryField(self, xyz, is_offset=False): class HarmonicHorizontalLoopSource(survey.BaseSrc): """ - Harmonic horizontal loop source. + Harmonic horizontal loop source. :param numpy.array locations: source location (x,y,z) :param float I: current amplitude [A] @@ -71,7 +71,7 @@ class HarmonicHorizontalLoopSource(survey.BaseSrc): """ I = properties.Float("Source loop current", default=1.) - + a = properties.Float("Source loop radius", default=1.) def __init__(self, receiver_list=None, **kwargs): @@ -135,12 +135,12 @@ def PrimaryField(self, xyz, is_offset=False): class HarmonicCurrentLineSource(survey.BaseSrc): """ - Harmonic current line source. + Harmonic current line source. - :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments + :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments :param float I: current amplitude [A] """ - + node_locations = properties.Array( "Source path (xi, yi, zi), i=0,...,N", dtype=float @@ -230,7 +230,7 @@ def PrimaryField(self, xyz): class BaseTimeSrc(survey.BaseSrc): """ - Base class for EM1D time-domain sources. + Base class for EM1D time-domain sources. :param numpy.array location: source location (x,y,z) :param string orientation: dipole orientation 'x', 'y' or 'z' @@ -277,10 +277,6 @@ class BaseTimeSrc(survey.BaseSrc): # ------------- For dual moment ------------- # - time_dual_moment = properties.Array( - "Off-time channels (s) for the dual moment", dtype=float - ) - time_input_currents_dual_moment = properties.Array( "Time for input currents (dual moment)", dtype=float ) @@ -311,10 +307,6 @@ def pulse_period(self): return Tp # ------------- For dual moment ------------- # - @property - def n_time_dual_moment(self): - return int(self.time_dual_moment.size) - @property def period_dual_moment(self): return 1./self.base_frequency_dual_moment @@ -327,21 +319,26 @@ def pulse_period_dual_moment(self): ) return Tp - @property - def nD(self): - """ - # of data - """ + # Note: not relevant here + # @property + # def n_time_dual_moment(self): + # return int(self.time_dual_moment.size) - if self.moment_type == "single": - return self.n_time - else: - return self.n_time + self.n_time_dual_moment + # @property + # def nD(self): + # """ + # # of data + # """ + + # if self.moment_type == "single": + # return self.n_time + # else: + # return self.n_time + self.n_time_dual_moment class TimeDomainMagneticDipoleSource(BaseTimeSrc): """ - Time-domain magnetic dipole source. + Time-domain magnetic dipole source. :param numpy.array location: source location (x,y,z) :param string orientation: dipole orientation 'z' @@ -360,7 +357,7 @@ def __init__(self, receiver_list=None, **kwargs): class TimeDomainHorizontalLoopSource(BaseTimeSrc): """ - Time-domain horizontal loop source. + Time-domain horizontal loop source. :param numpy.array location: source location (x,y,z) :param float I: source current amplitude [A] @@ -377,14 +374,14 @@ def __init__(self, receiver_list=None, **kwargs): class TimeDomainLineSource(BaseTimeSrc): """ - Time-domain current line source. + Time-domain current line source. - :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments + :param numpy.ndarray node_locations: np.array(N+1, 3) of node locations defining N line segments :param float I: current amplitude [A] """ I = properties.Float("Source loop current", default=1.) - + node_locations = properties.Array( "Source path (xi, yi, zi), i=0,...N", dtype=float @@ -392,5 +389,5 @@ class TimeDomainLineSource(BaseTimeSrc): def __init__(self, receiver_list=None, **kwargs): super(TimeDomainLineSource, self).__init__(receiver_list=receiver_list, **kwargs) - + diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index fa56996..cc4e9f5 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -2,15 +2,13 @@ from scipy.constants import mu_0 try: - from simpegEM1D.Fortran.m_rTE_Fortran import rte_fortran + from simpegEM1D.m_rTE_Fortran import rte_fortran + # rte_fortran = None except ImportError as e: rte_fortran = None - - - def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, halfspace_switch): """ Compute reflection coefficients for Transverse Electric (TE) mode. @@ -526,7 +524,7 @@ def magnetic_dipole_kernel( """ Kernel for vertical (Hz) and radial (Hrho) magnetic component due to vertical magnetic diopole (VMD) source in (kx,ky) domain. - + For vertical magnetic dipole: .. math:: @@ -589,7 +587,7 @@ def magnetic_dipole_kernel( else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, + f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) @@ -668,7 +666,7 @@ def magnetic_dipole_kernel( # """ # Kernel for vertical (Hz) and radial (Hrho) magnetic component due to # vertical magnetic diopole (VMD) source in (kx,ky) domain. - + # For vertical magnetic dipole: # .. math:: @@ -770,7 +768,7 @@ def horizontal_loop_kernel( Kernel for vertical (Hz) and radial (Hrho) magnetic component due to horizontal cirular loop source in (kx,ky) domain. - + For the vertical component: .. math:: @@ -811,7 +809,7 @@ def horizontal_loop_kernel( else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.halfspace_switch, + f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) @@ -868,7 +866,7 @@ def hz_kernel_horizontal_electric_dipole( else: depth = simulation.depth rte_fortran.rte_sensitivity( - f, lamda, sig, chi, depth, simulation.halfspace_switch, + f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, drTE, n_layer, n_frequency, n_filter ) diff --git a/tests/testEM1D_TD_dual_moment_fwd.py b/tests/testEM1D_TD_dual_moment_fwd.py index 75d65e3..0e37013 100644 --- a/tests/testEM1D_TD_dual_moment_fwd.py +++ b/tests/testEM1D_TD_dual_moment_fwd.py @@ -1,10 +1,13 @@ import unittest from SimPEG import Mesh, Maps, Utils +from SimPEG import maps +from SimPEG.utils import mkvc import matplotlib.pyplot as plt -from simpegEM1D import ( - EM1D, EM1DSurveyTD, EM1DAnalytics, piecewise_pulse, set_mesh_1d, - skytem_HM_2015, skytem_LM_2015, get_vertical_discretization_time -) +import simpegEM1D as em1d +from simpegEM1D.known_waveforms import piecewise_ramp +from simpegEM1D.analytics import * +from simpegEM1D.waveforms import TriangleFun +from simpegEM1D import skytem_HM_2015, skytem_LM_2015 import numpy as np from scipy import io from scipy.interpolate import interp1d @@ -19,12 +22,7 @@ def setUp(self): time_HM = wave_HM.time_gate_center[0::2] time_LM = wave_LM.time_gate_center[0::2] - hz = get_vertical_discretization_time( - np.unique(np.r_[time_HM, time_LM]), facter_tmax=0.5, factor_tmin=10. - ) - mesh1D = set_mesh_1d(hz) - depth = -mesh1D.gridN[:-1] - LocSigZ = -mesh1D.gridCC + thicknesses = np.ones(5) * 10. time_input_currents_HM = wave_HM.current_times[-7:] input_currents_HM = wave_HM.currents[-7:] diff --git a/tests/testEM1D_TD_off_fwd.py b/tests/testEM1D_TD_off_fwd.py index fef4607..90556bb 100644 --- a/tests/testEM1D_TD_off_fwd.py +++ b/tests/testEM1D_TD_off_fwd.py @@ -16,13 +16,13 @@ def setUp(self): deepthick = np.logspace(1, 2, 10) thicknesses = np.r_[nearthick, deepthick] topo = np.r_[0., 0., 100.] - - src_location = np.array([0., 0., 100.+1e-5]) + + src_location = np.array([0., 0., 100.+1e-5]) rx_location = np.array([0., 0., 100.+1e-5]) receiver_orientation = "z" # "x", "y" or "z" times = np.logspace(-5, -2, 31) a = 20. - + # Receiver list receiver_list = [] receiver_list.append( @@ -37,7 +37,7 @@ def setUp(self): component="dbdt" ) ) - + source_list = [ em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, location=src_location, @@ -73,22 +73,22 @@ def setUp(self): self.a = a def test_EM1DTDfwd_CirLoop_RealCond(self): - + sigma_map = maps.ExpMap(nP=self.nlayers) sim = em1d.simulation.EM1DTMSimulation( survey=self.survey, thicknesses=self.thicknesses, sigmaMap=sigma_map, topo=self.topo ) - + m_1D = np.log(np.ones(self.nlayers)*self.sigma) d = sim.dpred(m_1D) bz = d[0:len(self.times)] dbdt = d[len(self.times):] - + bzanal = Bz_horizontal_circular_loop( self.a, self.times, self.sigma ) - + dbdtanal = dBzdt_horizontal_circular_loop( self.a, self.times, self.sigma ) @@ -122,13 +122,13 @@ def test_EM1DTDfwd_CirLoop_ComplexCond(self): tau = self.tau*np.ones(self.nlayers) c = self.c*np.ones(self.nlayers) eta = self.eta*np.ones(self.nlayers) - + sim = em1d.simulation.EM1DTMSimulation( survey=self.survey, thicknesses=self.thicknesses, sigmaMap=sigma_map, topo=self.topo, eta=eta, tau=tau, c=c, chi=chi ) - + m_1D = np.ones(self.nlayers)*self.sigma d = sim.dpred(m_1D) bz = d[0:len(self.times)] @@ -153,7 +153,7 @@ def test_EM1DTDfwd_CirLoop_ComplexCond(self): err = np.linalg.norm(bz-bzanal)/np.linalg.norm(bzanal) print ('Bz error = ', err) self.assertTrue(err < 1e-2) - + dbdtanal = dBzdt_horizontal_circular_loop_ColeCole( self.a, self.times, sigCole ) @@ -177,13 +177,14 @@ def test_EM1DTDfwd_CirLoop_VRM(self): dchi = self.dchi*np.ones(self.nlayers) tau1 = self.tau1*np.ones(self.nlayers) tau2 = self.tau2*np.ones(self.nlayers) - + sim = em1d.simulation.EM1DTMSimulation( survey=self.survey, thicknesses=self.thicknesses, sigmaMap=sigma_map, topo=self.topo, - chi=chi, dchi=dchi, tau1=tau1, tau2=tau2 + chi=chi, dchi=dchi, tau1=tau1, tau2=tau2, + time_filter='key_201_CosSin_2012' ) - + m_1D = 1e-8 * np.ones(self.nlayers) d = sim.dpred(m_1D) bz = d[0:len(self.times)] @@ -202,7 +203,7 @@ def test_EM1DTDfwd_CirLoop_VRM(self): err = np.linalg.norm(bz-bzanal)/np.linalg.norm(bzanal) print ('Bz error = ', err) self.assertTrue(err < 5e-2) - + dbdtanal = dBzdt_horizontal_circular_loop_VRM( self.a, 1e-5, 1e-5, self.times, self.dchi, self.tau1, self.tau2 ) diff --git a/tutorials/plot_1_fdem_fwd.py b/tutorials/plot_1_fdem_fwd.py index fe14e17..a7b58ca 100644 --- a/tutorials/plot_1_fdem_fwd.py +++ b/tutorials/plot_1_fdem_fwd.py @@ -31,7 +31,7 @@ # # -source_location = np.array([0., 0., 30.]) +source_location = np.array([0., 0., 30.]) source_current = 1. source_radius = 5. moment_amplitude = 1. @@ -64,7 +64,7 @@ # I=source_current # ) #] - + source_list = [ em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", diff --git a/tutorials/plot_1_fdem_fwd_dispersive.py b/tutorials/plot_1_fdem_fwd_dispersive.py index d54ebbe..a7482a5 100644 --- a/tutorials/plot_1_fdem_fwd_dispersive.py +++ b/tutorials/plot_1_fdem_fwd_dispersive.py @@ -27,7 +27,7 @@ # # -source_location = np.array([0., 0., 0.]) +source_location = np.array([0., 0., 0.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. moment_amplitude = 1. @@ -110,9 +110,10 @@ ax.set_xlabel("Frequency (Hz)") ax.set_ylabel("Conductivity") ax.legend( - ["$\sigma_{DC}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], + ["$\sigma_{\infty}$", "$Re[\sigma (\omega)]$", "$Im[\sigma (\omega)]$"], loc="center right" ) +plt.show() ####################################################################### # Define the Forward Simulation and Predict Data diff --git a/tutorials/plot_1_tdem_fwd_skytem.py b/tutorials/plot_1_tdem_fwd_skytem.py new file mode 100644 index 0000000..795639e --- /dev/null +++ b/tutorials/plot_1_tdem_fwd_skytem.py @@ -0,0 +1,181 @@ +""" +Forward Simulation with Different Waveforms +=========================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +from matplotlib import pyplot as plt + +from SimPEG import maps +import simpegEM1D as em1d +from simpegEM1D import skytem_HM_2015, skytem_LM_2015 + + +##################################################################### +# Create Survey +# ------------- +# +# + +wave_HM = skytem_HM_2015() +wave_LM = skytem_LM_2015() +time_HM = wave_HM.time_gate_center[0::2] +time_LM = wave_LM.time_gate_center[0::2] + + +source_location = np.array([0., 0., 0.]) +source_orientation = "z" # "x", "y" or "z" +source_current = 1. +source_radius = 10. +moment_amplitude=1. + +receiver_location = np.array([10., 0., 0.]) +receiver_orientation = "z" # "x", "y" or "z" +field_type = "secondary" # "secondary", "total" or "ppm" + +times = np.logspace(-5, -2, 41) + +# Receiver list +rx = em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="dbdt" +) +receiver_list = [rx] + +# Sources + +time_input_currents_HM = wave_HM.current_times[-7:] +input_currents_HM = wave_HM.currents[-7:] +time_input_currents_LM = wave_LM.current_times[-13:] +input_currents_LM = wave_LM.currents[-13:] + +src = em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, + location=source_location, + moment_amplitude=moment_amplitude, + orientation=source_orientation, + wave_type="general", + moment_type='dual', + time_input_currents=time_input_currents_HM, + input_currents=input_currents_HM, + n_pulse = 1, + base_frequency = 25., + time_input_currents_dual_moment = time_input_currents_LM, + input_currents_dual_moment = input_currents_LM, + base_frequency_dual_moment = 210 +) +source_list = [src] + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################### +# Plot the Waveforms +# ------------------ +# +# + +fig = plt.figure(figsize=(6, 4)) +ax = fig.add_axes([0.1, 0.1, 0.85, 0.8]) +ax.plot(time_input_currents_HM, input_currents_HM, 'b', lw=2, label='HM') +ax.plot(time_input_currents_LM, input_currents_LM, 'r', lw=2, label='LM') +ax.set_xlabel("Time (s)") +ax.set_ylabel("Normalized Current (A)") +ax.legend() + + + + + + +############################################### +# Defining a 1D Layered Earth Model +# --------------------------------- +# +# Here, we define the layer thicknesses and electrical conductivities for our +# 1D simulation. If we have N layers, we define N electrical conductivity +# values and N-1 layer thicknesses. The lowest layer is assumed to extend to +# infinity. +# + +# Layer thicknesses +thicknesses = np.array([40., 40.]) +n_layer = len(thicknesses) + 1 + +# half-space physical properties +sigma = 1e-2 +# physical property models +sigma_model = sigma * np.ones(n_layer) + +# Define a mapping for conductivities +model_mapping = maps.IdentityMap(nP=n_layer) + + +####################################################################### +# Define the Forward Simulation and Predict Data +# ---------------------------------------------- +# + + +# Simulate response for static conductivity +simulation = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, +) + +dpred = simulation.dpred(sigma_model) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +fig = plt.figure(figsize = (6, 5)) +ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) +ax.loglog(rx.times, -dpred[:rx.times.size], 'k', lw=2, label='HM') +ax.loglog(rx.times_dual_moment, -dpred[rx.times.size:], 'r', lw=2, label='LM') + +ax.legend() +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dB/dt| (T/s)") + + + + + + + + + + + + + + + + + + + + + + + + + From f5d262eca1bd61e170cdc54360f9b743f479cdb7 Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Fri, 2 Oct 2020 17:55:02 -0700 Subject: [PATCH 45/54] add test --- tests/testEM1D_TD_dual_moment_fwd.py | 129 +++++++++++++++------------ 1 file changed, 71 insertions(+), 58 deletions(-) diff --git a/tests/testEM1D_TD_dual_moment_fwd.py b/tests/testEM1D_TD_dual_moment_fwd.py index 0e37013..0177b75 100644 --- a/tests/testEM1D_TD_dual_moment_fwd.py +++ b/tests/testEM1D_TD_dual_moment_fwd.py @@ -1,12 +1,9 @@ import unittest -from SimPEG import Mesh, Maps, Utils from SimPEG import maps -from SimPEG.utils import mkvc import matplotlib.pyplot as plt import simpegEM1D as em1d -from simpegEM1D.known_waveforms import piecewise_ramp +from simpegEM1D.known_waveforms import piecewise_ramp, piecewise_pulse from simpegEM1D.analytics import * -from simpegEM1D.waveforms import TriangleFun from simpegEM1D import skytem_HM_2015, skytem_LM_2015 import numpy as np from scipy import io @@ -22,87 +19,103 @@ def setUp(self): time_HM = wave_HM.time_gate_center[0::2] time_LM = wave_LM.time_gate_center[0::2] - thicknesses = np.ones(5) * 10. + + source_location = np.array([0., 0., 0.]) + source_orientation = "z" # "x", "y" or "z" + source_current = 1. + source_radius = 10. + moment_amplitude=1. + + receiver_location = np.array([10., 0., 0.]) + receiver_orientation = "z" # "x", "y" or "z" + field_type = "secondary" # "secondary", "total" or "ppm" + + times = np.logspace(-5, -2, 41) + + # Receiver list + rx = em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="dbdt" + ) + receiver_list = [rx] + + # Sources time_input_currents_HM = wave_HM.current_times[-7:] input_currents_HM = wave_HM.currents[-7:] time_input_currents_LM = wave_LM.current_times[-13:] input_currents_LM = wave_LM.currents[-13:] - TDsurvey = EM1DSurveyTD( - rx_location=np.array([0., 0., 100.]), - src_location=np.array([0., 0., 100.]), - topo=np.r_[0., 0., 100.], - depth=depth, - rx_type='dBzdt', - wave_type='general', - src_type='CircularLoop', - a=13., - I=1., - time=time_HM, + + src = em1d.sources.TimeDomainHorizontalLoopSource( + receiver_list=receiver_list, + location=source_location, + I=source_current, + a=source_radius, + wave_type="general", + moment_type='dual', time_input_currents=time_input_currents_HM, input_currents=input_currents_HM, - n_pulse=2, - base_frequency=25., - use_lowpass_filter=False, - high_cut_frequency=7e4, - moment_type='dual', - time_dual_moment=time_HM, - time_input_currents_dual_moment=time_input_currents_LM, - input_currents_dual_moment=input_currents_LM, - base_frequency_dual_moment=210, + n_pulse = 1, + base_frequency = 25., + time_input_currents_dual_moment = time_input_currents_LM, + input_currents_dual_moment = input_currents_LM, + base_frequency_dual_moment = 210 ) + source_list = [src] - sig_half=1e-2 - chi_half=0. + thicknesses = np.ones(3) + sigma = 1e-2 + n_layer = thicknesses.size + 1 - expmap = Maps.ExpMap(mesh1D) - m_1D = np.log(np.ones(TDsurvey.n_layer)*sig_half) - chi = np.zeros(TDsurvey.n_layer) - - prob = EM1D( - mesh1D, sigmaMap=expmap, chi=chi + sigma_model = sigma * np.ones(n_layer) + survey = em1d.survey.EM1DSurveyTD(source_list) + model_mapping = maps.IdentityMap(nP=n_layer) + simulation = em1d.simulation.EM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=model_mapping, ) - prob.pair(TDsurvey) - self.survey = TDsurvey - self.prob = prob - self.mesh1D = mesh1D + + self.survey = survey + self.simulation = simulation self.showIt = False - self.chi = chi - self.m_1D = m_1D - self.sig_half = sig_half - self.expmap = expmap + self.sigma_model = sigma_model + self.sigma_halfspace = sigma def test_em1dtd_circular_loop_single_pulse(self): - dBzdtTD = self.survey.dpred(self.m_1D) - dBzdtTD_HM = dBzdtTD[:self.survey.n_time] - dBzdtTD_LM = dBzdtTD[self.survey.n_time:] + src = self.survey.srcList[0] + rx = src.rxList[0] + dBzdtTD = self.simulation.dpred(self.sigma_model) + dBzdtTD_HM = dBzdtTD[:rx.times.size] + dBzdtTD_LM = dBzdtTD[rx.times.size:] def step_func_dBzdt(time): - return EM1DAnalytics.dBzdtAnalCircT( - self.survey.a, time, self.sig_half + return dBzdt_horizontal_circular_loop( + src.a, time, self.sigma_halfspace ) dBzdtTD_analytic_HM = piecewise_pulse( - step_func_dBzdt, self.survey.time, - self.survey.time_input_currents, - self.survey.input_currents, - self.survey.period + step_func_dBzdt, rx.times, + src.time_input_currents, + src.input_currents, + src.period ) dBzdtTD_analytic_LM = piecewise_pulse( - step_func_dBzdt, self.survey.time, - self.survey.time_input_currents_dual_moment, - self.survey.input_currents_dual_moment, - self.survey.period_dual_moment + step_func_dBzdt, rx.times_dual_moment, + src.time_input_currents_dual_moment, + src.input_currents_dual_moment, + src.period_dual_moment ) if self.showIt: - plt.loglog(self.survey.time, -dBzdtTD_HM) - plt.loglog(self.survey.time, -dBzdtTD_LM) - plt.loglog(self.survey.time, -dBzdtTD_analytic_HM, 'x') - plt.loglog(self.survey.time, -dBzdtTD_analytic_LM, 'x') + plt.loglog(rx.times, -dBzdtTD_HM) + plt.loglog(rx.times_dual_moment, -dBzdtTD_LM) + plt.loglog(rx.times, -dBzdtTD_analytic_HM, 'x') + plt.loglog(rx.times_dual_moment, -dBzdtTD_analytic_LM, 'x') plt.show() err = ( From d56426f3ca08d881f421338e93009a216b99b438 Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Fri, 2 Oct 2020 19:24:14 -0700 Subject: [PATCH 46/54] working on receiver object handling both real and imag together --- simpegEM1D/receivers.py | 29 ++++++-- simpegEM1D/simulation.py | 18 ++--- simpegEM1D/survey.py | 8 +-- tests/testEM1D_TD_dual_moment_fwd.py | 1 + tests/testGlobalEM1D_FD_jac_layers.py | 76 ++++++++++---------- tutorials/plot_2_fdem_fwd_stitched.py | 28 ++++---- tutorials/plot_2_fdem_fwd_stitched_height.py | 28 ++++---- 7 files changed, 104 insertions(+), 84 deletions(-) diff --git a/simpegEM1D/receivers.py b/simpegEM1D/receivers.py index 0f082f1..33009aa 100644 --- a/simpegEM1D/receivers.py +++ b/simpegEM1D/receivers.py @@ -19,6 +19,10 @@ class HarmonicPointReceiver(BaseRx): "Receiver Locations", dtype=float, shape=("*",), required=True ) + source_receiver_offset = properties.Array( + "Source receiver offset", dtype=float, shape=("*",), required=True + ) + frequencies = properties.Array( "Frequency (Hz)", dtype=float, shape=("*",), required=True ) @@ -28,10 +32,15 @@ class HarmonicPointReceiver(BaseRx): ) component = properties.StringChoice( - "component of the field (real or imag)", { - "real": ["re", "in-phase", "in phase"], - "imag": ["imaginary", "im", "out-of-phase", "out of phase"] - } + # "component of the field (real or imag or both)", { + # "real": ["re", "in-phase", "in phase"], + # "imag": ["imaginary", "im", "out-of-phase", "out of phase"], + # "both": ["both"] + # } + "component of the field (real or imag or both)", + choices=["real", "imag", "both"], + default="both", + ) field_type = properties.StringChoice( @@ -59,6 +68,16 @@ def __init__(self, locations=None, frequencies=None, orientation=None, field_typ if use_source_receiver_offset is not None: self.use_source_receiver_offset = use_source_receiver_offset + @property + def nD(self): + """ + Number of data in the receiver. + We assume that a receiver object, only have a single location + """ + if self.component is 'both': + return int(self.frequencies.size * 2) + else: + return self.frequencies.size class TimeDomainPointReceiver(BaseTimeRx): @@ -144,5 +163,5 @@ def n_frequency(self): @property def nD(self): """Number of data in the receiver.""" - return self.locations.shape[0] * self.n_time + return self.n_time diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index fc1d2b5..954fd16 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -611,24 +611,24 @@ def project_fields(self, u): u_temp = np.real(u_temp) elif rx.component == 'imag': u_temp = np.imag(u_temp) - - # TODO: have an option for both - # elif rx.component == 'both': - # u_temp_i = np.real(u_temp) - # u_temp_r = np.imag(u_temp) + elif rx.component == 'both': + u_temp_r = np.real(u_temp) + u_temp_i = np.imag(u_temp) + u_temp = np.r_[u_temp_r,u_temp_i] else: raise Exception() - + # Either total or ppm if rx.field_type != "secondary": - # Seogi note: this is not right u_primary = src.PrimaryField(rx.locations, rx.use_source_receiver_offset) - if rx.field_type == "ppm": k = [comp == rx.orientation for comp in ["x", "y", "z"]] u_temp = 1e6 * u_temp/u_primary[0, k] else: - u_temp =+ u_primary + if rx.component == 'both': + u_temp = np.r_[u_temp_r+u_primary, u_temp_i] + else: + u_temp =+ u_primary u[COUNT] = u_temp COUNT = COUNT + 1 diff --git a/simpegEM1D/survey.py b/simpegEM1D/survey.py index 7e734a8..77a3f3c 100644 --- a/simpegEM1D/survey.py +++ b/simpegEM1D/survey.py @@ -48,7 +48,7 @@ def nD(self): for src in self.source_list: for rx in src.receiver_list: - nD += len(rx.frequencies) + nD += rx.nD return int(nD) @@ -70,7 +70,7 @@ class EM1DSurveyTD(BaseEM1DSurvey): as well as stitched 1D simulation. """ - + def __init__(self, source_list=None, **kwargs): BaseEM1DSurvey.__init__(self, source_list, **kwargs) @@ -88,7 +88,7 @@ def nD(self): for src in self.source_list: for rx in src.receiver_list: - nD += len(rx.times) + nD += rx.nD return int(nD) @@ -103,7 +103,7 @@ def vnD_by_sounding(self): ) self._vnD_by_sounding = np.array(temp) return self._vnD_by_sounding - + @property def lowpass_filter(self): diff --git a/tests/testEM1D_TD_dual_moment_fwd.py b/tests/testEM1D_TD_dual_moment_fwd.py index 0177b75..98a9356 100644 --- a/tests/testEM1D_TD_dual_moment_fwd.py +++ b/tests/testEM1D_TD_dual_moment_fwd.py @@ -111,6 +111,7 @@ def step_func_dBzdt(time): src.input_currents_dual_moment, src.period_dual_moment ) + if self.showIt: plt.loglog(rx.times, -dBzdtTD_HM) plt.loglog(rx.times_dual_moment, -dBzdtTD_LM) diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index 1f8a1ce..11311b5 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -13,18 +13,18 @@ class GlobalEM1DFD(unittest.TestCase): def setUp(self, parallel=True): - + n_layer = 20 frequencies = np.array([900, 7200, 56000], dtype=float) thicknesses = get_vertical_discretization_frequency( frequencies, sigma_background=0.1, n_layer=n_layer-1 ) - + n_sounding = 10 dx = 20. hx = np.ones(n_sounding) * dx hz = np.r_[thicknesses, thicknesses[-1]] - + mesh = TensorMesh([hx, hz], x0='00') inds = mesh.gridCC[:, 1] < 25 inds_1 = mesh.gridCC[:, 1] < 50 @@ -40,18 +40,18 @@ def setUp(self, parallel=True): receiver_locations = np.c_[x+8., y, z] source_locations = np.c_[x, y, z] topo = np.c_[x, y, z-30.].astype(float) - + sigma_map = maps.ExpMap(mesh) - + source_list = [] for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(receiver_locations[ii, :]) - + receiver_list = [] - + receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation="z", @@ -64,41 +64,41 @@ def setUp(self, parallel=True): field_type="secondary", component="imag" ) ) - + source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", moment_amplitude=1. ) ) - + survey = em1d.survey.EM1DSurveyFD(source_list) - + simulation = em1d.simulation.StitchedEM1DFMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, - topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + topo=topo, parallel=False, n_cpu=2, verbose=False, Solver=PardisoSolver ) - - + + dpred = simulation.dpred(mSynth) noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) dobs = dpred + noise data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) - + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) dmis.W = 1./uncertainties - + reg = regularization.Tikhonov(mesh) - + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) inv = inversion.BaseInversion(invProb) - + self.data = data_object self.dmis = dmis self.inv = inv @@ -144,7 +144,7 @@ def test_dataObj(self): class GlobalEM1DFD_Height(unittest.TestCase): def setUp(self, parallel=True): - + frequencies = np.array([900, 7200, 56000], dtype=float) n_layer = 0 n_sounding = 10 @@ -154,7 +154,7 @@ def setUp(self, parallel=True): e = np.ones(n_sounding) mSynth = np.r_[e*np.log(1./100.), e*20.] mesh = TensorMesh([hx, hz], x0='00') - + x = mesh.vectorCCx y = np.zeros_like(x) z = np.ones_like(x) * 30. @@ -164,22 +164,22 @@ def setUp(self, parallel=True): np.zeros(n_sounding), np.zeros(n_sounding) ] - + # topo = np.c_[x, y, z-30.].astype(float) wires = maps.Wires(('sigma', n_sounding),('height', n_sounding)) expmap = maps.ExpMap(nP=n_sounding) sigma_map = expmap * wires.sigma - + source_list = [] for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_offset = receiver_offsets[ii, :] - + receiver_list = [] - + receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_offset, frequencies, orientation="z", @@ -194,45 +194,45 @@ def setUp(self, parallel=True): use_source_receiver_offset=True ) ) - + source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", moment_amplitude=1. ) ) - + survey = em1d.survey.EM1DSurveyFD(source_list) - + simulation = em1d.simulation.StitchedEM1DFMSimulation( survey=survey, sigmaMap=sigma_map, hMap=wires.height, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) - + dpred = simulation.dpred(mSynth) noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) dobs = dpred + noise data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) - - + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) dmis.W = 1./uncertainties - + reg_mesh = TensorMesh([int(n_sounding)]) reg_sigma = regularization.Tikhonov(reg_mesh, mapping=wires.sigma) reg_height = regularization.Tikhonov(reg_mesh, mapping=wires.height) - + reg = reg_sigma + reg_height - + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) inv = inversion.BaseInversion(invProb) - + self.data = data_object self.dmis = dmis self.inv = inv @@ -241,7 +241,7 @@ def setUp(self, parallel=True): self.mesh = reg_mesh self.m0 = mSynth * 1.2 self.survey = survey - + def test_misfit(self): passed = tests.checkDerivative( diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index 7f98140..aa96eb8 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -68,24 +68,24 @@ source_list = [] for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(receiver_locations[ii, :]) - + receiver_list = [] - - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation=receiver_orientation, - field_type=field_type, component="real" - ) - ) + receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation=receiver_orientation, - field_type=field_type, component="imag" + field_type=field_type, component="both" ) ) + # receiver_list.append( + # em1d.receivers.HarmonicPointReceiver( + # receiver_location, frequencies, orientation=receiver_orientation, + # field_type=field_type, component="imag" + # ) + # ) # Sources # source_list = [ @@ -94,7 +94,7 @@ # I=source_current # ) # ] - + source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", @@ -263,7 +263,7 @@ def PolygonInd(mesh, pts): for ii in range(0, n_sounding): ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) - + ax.set_xlabel("Frequency (Hz)") ax.set_ylabel("|Hs/Hp| (ppm)") ax.set_title("Magnetic Field as a Function of Frequency") @@ -286,11 +286,11 @@ def PolygonInd(mesh, pts): noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) dpred += noise fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' - + loc = np.repeat(source_locations, len(frequencies), axis=0) fvec = np.kron(np.ones(n_sounding), frequencies) dout = np.c_[dpred[0::2], dpred[1::2]] - + np.savetxt( fname, np.c_[loc, fvec, dout], diff --git a/tutorials/plot_2_fdem_fwd_stitched_height.py b/tutorials/plot_2_fdem_fwd_stitched_height.py index 56b980b..ed57e37 100644 --- a/tutorials/plot_2_fdem_fwd_stitched_height.py +++ b/tutorials/plot_2_fdem_fwd_stitched_height.py @@ -68,25 +68,25 @@ source_list = [] for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(source_receiver_offsets[ii, :]) - + receiver_list = [] - - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation=receiver_orientation, - field_type=field_type, component="real", use_source_receiver_offset=True - ) - ) + receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation=receiver_orientation, - field_type=field_type, component="imag", use_source_receiver_offset=True + field_type=field_type, component="both", use_source_receiver_offset=True ) ) - + # receiver_list.append( + # em1d.receivers.HarmonicPointReceiver( + # receiver_location, frequencies, orientation=receiver_orientation, + # field_type=field_type, component="imag", use_source_receiver_offset=True + # ) + # ) + source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", @@ -204,7 +204,7 @@ def PolygonInd(mesh, pts): for ii in range(0, n_sounding): ax.loglog(frequencies, np.abs(d[0:len(frequencies), ii]), '-', lw=2) ax.loglog(frequencies, np.abs(d[len(frequencies):, ii]), '--', lw=2) - + ax.set_xlabel("Frequency (Hz)") ax.set_ylabel("|Hs/Hp| (ppm)") ax.set_title("Magnetic Field as a Function of Frequency") @@ -227,11 +227,11 @@ def PolygonInd(mesh, pts): noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) dpred += noise fname = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' - + loc = np.repeat(source_locations, len(frequencies), axis=0) fvec = np.kron(np.ones(n_sounding), frequencies) dout = np.c_[dpred[0::2], dpred[1::2]] - + np.savetxt( fname, np.c_[loc, fvec, dout], From b5bcd3385e4df52ebb4da205f905e525be079b8c Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Fri, 2 Oct 2020 22:28:27 -0700 Subject: [PATCH 47/54] - update rx.nD - working version --- simpegEM1D/simulation.py | 50 +++++++++------ simpegEM1D/supporting_functions/kernels.py | 1 - simpegEM1D/survey.py | 4 +- tests/testEM1D_FD_jac_layers.py | 54 ++++++++-------- tests/testGlobalEM1D_FD_jac_layers.py | 30 ++++----- tests/testGlobalEM1D_TD_jac_layers.py | 74 +++++++++++----------- 6 files changed, 112 insertions(+), 101 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 954fd16..1b94756 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -22,6 +22,7 @@ try: from multiprocessing import Pool + from sys import platform except ImportError: print("multiprocessing is not available") PARALLEL = False @@ -438,7 +439,7 @@ def compute_integral(self, m, output_type='response'): def fields(self, m): f = self.compute_integral(m, output_type='response') - f = self.project_fields(f) + f = self.project_fields(f, output_type='response') return np.hstack(f) def dpred(self, m, f=None): @@ -473,20 +474,21 @@ def getJ_height(self, m, f=None): print(">> Compute J height ") dudh = self.compute_integral(m, output_type="sensitivity_height") - dudh = self.project_fields(dudh) - + self._Jmatrix_height = np.hstack(self.project_fields(dudh, output_type="sensitivity_height")) if self.survey.nSrc == 1: self._Jmatrix_height = np.hstack(dudh).reshape([-1, 1]) else: - COUNT = 0 - dudh_by_source = [] - for ii, src in enumerate(self.survey.source_list): - temp = np.array([]) - for jj, rx in enumerate(src.receiver_list): - temp = np.r_[temp, dudh[COUNT]] - COUNT += 1 - dudh_by_source.append(temp.reshape([-1, 1])) + # COUNT = 0 + # dudh_by_source = [] + # for ii, src in enumerate(self.survey.source_list): + # temp = np.array([]) + # for jj, rx in enumerate(src.receiver_list): + # temp = np.r_[temp, dudh[COUNT]] + # COUNT += 1 + + # dudh_by_source.append(temp.reshape([-1, 1])) + # self._Jmatrix_height= block_diag(*dudh_by_source) self._Jmatrix_height= block_diag(*dudh_by_source) return self._Jmatrix_height @@ -508,7 +510,7 @@ def getJ_sigma(self, m, f=None): print(">> Compute J sigma") dudsig = self.compute_integral(m, output_type="sensitivity_sigma") - self._Jmatrix_sigma = np.vstack(self.project_fields(dudsig)) + self._Jmatrix_sigma = np.vstack(self.project_fields(dudsig,output_type="sensitivity_sigma")) if self._Jmatrix_sigma.ndim == 1: self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma @@ -589,7 +591,7 @@ def __init__(self, **kwargs): BaseEM1DSimulation.__init__(self, **kwargs) - def project_fields(self, u): + def project_fields(self, u, output_type='response'): """ Project from the list of Hankel transform evaluations to the data or sensitivities. Data can be real or imaginary component of: total field, secondary field or ppm. @@ -614,7 +616,10 @@ def project_fields(self, u): elif rx.component == 'both': u_temp_r = np.real(u_temp) u_temp_i = np.imag(u_temp) - u_temp = np.r_[u_temp_r,u_temp_i] + if output_type == 'sensitivity_sigma': + u_temp = np.vstack((u_temp_r,u_temp_i)) + else: + u_temp = np.r_[u_temp_r,u_temp_i] else: raise Exception() @@ -626,7 +631,11 @@ def project_fields(self, u): u_temp = 1e6 * u_temp/u_primary[0, k] else: if rx.component == 'both': - u_temp = np.r_[u_temp_r+u_primary, u_temp_i] + if output_type == 'sensitivity_sigma': + u_temp = np.vstack((u_temp_r+u_primary,u_temp_i)) + else: + u_temp = np.r_[u_temp_r+u_primary, u_temp_i] + else: u_temp =+ u_primary @@ -729,7 +738,7 @@ def set_frequencies(self, pts_per_dec=-1): self.frequencies_are_set = True - def project_fields(self, u): + def project_fields(self, u, output_type=None): """ Project from the list of Hankel transform evaluations to the data or sensitivities. @@ -1310,8 +1319,10 @@ def forward(self, m): else: run_simulation = run_simulation_TD - if (self.parallel) & (__name__=='__main__'): - + # if (self.parallel) & (__name__=='__main__'): + if self.parallel: + if self.verbose: + print ('parallel') pool = Pool(self.n_cpu) # This assumes the same # of layers for each of sounding result = pool.map( @@ -1407,7 +1418,8 @@ def getJ_sigma(self, m): else: run_simulation = run_simulation_TD - if (self.parallel) & (__name__=='__main__'): + # if (self.parallel) & (__name__=='__main__'): + if self.parallel: pool = Pool(self.n_cpu) self._Jmatrix_sigma = pool.map( diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index cc4e9f5..069ec55 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -3,7 +3,6 @@ try: from simpegEM1D.m_rTE_Fortran import rte_fortran - # rte_fortran = None except ImportError as e: rte_fortran = None diff --git a/simpegEM1D/survey.py b/simpegEM1D/survey.py index 77a3f3c..77e1edd 100644 --- a/simpegEM1D/survey.py +++ b/simpegEM1D/survey.py @@ -58,7 +58,7 @@ def vnD_by_sounding(self): temp = [] for src in self.source_list: temp.append( - np.sum([len(rx.frequencies) for rx in src.receiver_list]) + np.sum([rx.nD for rx in src.receiver_list]) ) self._vnD_by_sounding = np.array(temp) return self._vnD_by_sounding @@ -99,7 +99,7 @@ def vnD_by_sounding(self): temp = [] for src in self.source_list: temp.append( - np.sum([len(rx.times) for rx in src.receiver_list]) + np.sum([rx.nD for rx in src.receiver_list]) ) self._vnD_by_sounding = np.array(temp) return self._vnD_by_sounding diff --git a/tests/testEM1D_FD_jac_layers.py b/tests/testEM1D_FD_jac_layers.py index de9a3f0..9c472d2 100644 --- a/tests/testEM1D_FD_jac_layers.py +++ b/tests/testEM1D_FD_jac_layers.py @@ -14,18 +14,18 @@ def setUp(self): deepthick = np.logspace(1, 2, 10) thicknesses = np.r_[nearthick, deepthick] topo = np.r_[0., 0., 100.] - - src_location = np.array([0., 0., 100.+1e-5]) + + src_location = np.array([0., 0., 100.+1e-5]) rx_location = np.array([10., 0., 100.+1e-5]) field_type = "secondary" # "secondary", "total" or "ppm" frequencies = np.logspace(1, 8, 21) - + # Receiver list receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="x", - field_type=field_type, component="real" + field_type=field_type, component="both" ) ) receiver_list.append( @@ -37,19 +37,19 @@ def setUp(self): receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="y", - field_type=field_type, component="real" + field_type=field_type, component="both" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="y", - field_type=field_type, component="imag" + field_type=field_type, component="real" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="z", - field_type=field_type, component="real" + field_type=field_type, component="both" ) ) receiver_list.append( @@ -58,7 +58,7 @@ def setUp(self): field_type=field_type, component="imag" ) ) - + I = 1. a = 10. source_list = [ @@ -77,12 +77,12 @@ def setUp(self): self.thicknesses = thicknesses self.nlayers = len(thicknesses)+1 self.sigma_map = maps.ExpMap(nP=self.nlayers) - + sim = em1d.simulation.EM1DFMSimulation( survey=self.survey, thicknesses=self.thicknesses, sigmaMap=self.sigma_map, topo=self.topo ) - + self.sim = sim def test_EM1DFDJvec_Layers(self): @@ -92,7 +92,7 @@ def test_EM1DFDJvec_Layers(self): sig = np.ones(self.nlayers)*sigma_half sig[3] = sigma_blk m_1D = np.log(sig) - + Hz = self.sim.dpred(m_1D) dHzdsig = self.sim.compute_integral( m_1D, output_type='sensitivity_sigma' @@ -136,7 +136,7 @@ def test_EM1DFDJtvec_Layers(self): sig = np.ones(self.nlayers)*sigma_half sig[3] = sigma_blk m_true = np.log(sig) - + dobs = self.sim.dpred(m_true) m_ini = np.log( @@ -165,30 +165,30 @@ class EM1D_FD_Jac_layers_ProblemTests_Height(unittest.TestCase): def setUp(self): topo = np.r_[0., 0., 100.] - - src_location = np.array([0., 0., 100.+20.]) + + src_location = np.array([0., 0., 100.+20.]) rx_location = np.array([10., 0., 100.+20.]) field_type = "secondary" # "secondary", "total" or "ppm" frequencies = np.logspace(1, 8, 21) - + # Receiver list receiver_list = [] receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="x", - field_type=field_type, component="real" + field_type=field_type, component="both" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="x", - field_type=field_type, component="imag" + field_type=field_type, component="both" ) ) receiver_list.append( em1d.receivers.HarmonicPointReceiver( - rx_location, frequencies, orientation="y", - field_type=field_type, component="real" + rx_location, frequencies, orientation="x", + field_type=field_type, component="imag" ) ) receiver_list.append( @@ -200,7 +200,7 @@ def setUp(self): receiver_list.append( em1d.receivers.HarmonicPointReceiver( rx_location, frequencies, orientation="z", - field_type=field_type, component="real" + field_type=field_type, component="both" ) ) receiver_list.append( @@ -209,7 +209,7 @@ def setUp(self): field_type=field_type, component="imag" ) ) - + I = 1. a = 10. source_list = [ @@ -220,7 +220,7 @@ def setUp(self): # Survey survey = em1d.survey.EM1DSurveyFD(source_list) - + wires = maps.Wires(('sigma', 1),('height', 1)) expmap = maps.ExpMap(nP=1) sigma_map = expmap * wires.sigma @@ -232,19 +232,19 @@ def setUp(self): self.nlayers = 1 self.sigma_map = sigma_map self.h_map = wires.height - + sim = em1d.simulation.EM1DFMSimulation( survey=self.survey, sigmaMap=self.sigma_map, hMap=wires.height, topo=self.topo ) - + self.sim = sim def test_EM1DFDJvec_Layers(self): sigma_half = 0.01 height = 20. - + m_1D = np.r_[np.log(sigma_half), height] def fwdfun(m): @@ -269,9 +269,9 @@ def test_EM1DFDJtvec_Layers(self): sigma_half = 0.01 height = 20. - + m_true = np.r_[np.log(sigma_half), height] - + dobs = self.sim.dpred(m_true) m_ini = m_true * 1.2 diff --git a/tests/testGlobalEM1D_FD_jac_layers.py b/tests/testGlobalEM1D_FD_jac_layers.py index 11311b5..2cf7ee8 100644 --- a/tests/testGlobalEM1D_FD_jac_layers.py +++ b/tests/testGlobalEM1D_FD_jac_layers.py @@ -55,15 +55,15 @@ def setUp(self, parallel=True): receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation="z", - field_type="secondary", component="real" - ) - ) - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_location, frequencies, orientation="z", - field_type="secondary", component="imag" + field_type="secondary", component="both" ) ) + # receiver_list.append( + # em1d.receivers.HarmonicPointReceiver( + # receiver_location, frequencies, orientation="z", + # field_type="secondary", component="imag" + # ) + # ) source_list.append( em1d.sources.HarmonicMagneticDipoleSource( @@ -183,17 +183,17 @@ def setUp(self, parallel=True): receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_offset, frequencies, orientation="z", - field_type="secondary", component="real", - use_source_receiver_offset=True - ) - ) - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_offset, frequencies, orientation="z", - field_type="secondary", component="imag", + field_type="secondary", component="both", use_source_receiver_offset=True ) ) + # receiver_list.append( + # em1d.receivers.HarmonicPointReceiver( + # receiver_offset, frequencies, orientation="z", + # field_type="secondary", component="imag", + # use_source_receiver_offset=True + # ) + # ) source_list.append( em1d.sources.HarmonicMagneticDipoleSource( diff --git a/tests/testGlobalEM1D_TD_jac_layers.py b/tests/testGlobalEM1D_TD_jac_layers.py index d3b04e7..a870ea9 100644 --- a/tests/testGlobalEM1D_TD_jac_layers.py +++ b/tests/testGlobalEM1D_TD_jac_layers.py @@ -15,13 +15,13 @@ class GlobalEM1DTD(unittest.TestCase): def setUp(self, parallel=True): - + times = np.logspace(-5, -2, 31) n_layer = 20 thicknesses = get_vertical_discretization_time( times, facter_tmax=0.5, factor_tmin=10., n_layer=n_layer-1 ) - + n_sounding = 5 dx = 20. hx = np.ones(n_sounding) * dx @@ -43,33 +43,33 @@ def setUp(self, parallel=True): topo = np.c_[x, y, z-30.].astype(float) sigma_map = maps.ExpMap(mesh) - + source_list = [] - + for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(receiver_locations[ii, :]) - + receiver_list = [] - + receiver_list.append( em1d.receivers.TimeDomainPointReceiver( receiver_location, times, orientation="z", component="b" ) ) - + receiver_list.append( em1d.receivers.TimeDomainPointReceiver( receiver_location, times, orientation="z", component="dbdt" ) ) - + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) - + source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, @@ -84,12 +84,12 @@ def setUp(self, parallel=True): high_cut_frequency=210*1e3 ) ) - + survey = em1d.survey.EM1DSurveyTD(source_list) - + simulation = em1d.simulation.StitchedEM1DTMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, - topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + topo=topo, parallel=False, n_cpu=2, verbose=False, solver=PardisoSolver ) dpred = simulation.dpred(mSynth) @@ -97,20 +97,20 @@ def setUp(self, parallel=True): uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) dobs = dpred + noise data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) - + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) dmis.W = 1./uncertainties - + reg = regularization.Tikhonov(mesh) - + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) inv = inversion.BaseInversion(invProb) - + self.data = data_object self.dmis = dmis self.inv = inv @@ -155,7 +155,7 @@ def test_dataObj(self): class GlobalEM1DTD_Height(unittest.TestCase): def setUp(self, parallel=True): - + times = np.logspace(-5, -2, 31) hz = 1. @@ -165,7 +165,7 @@ def setUp(self, parallel=True): e = np.ones(n_sounding) mSynth = np.r_[e*np.log(1./100.), e*30] mesh = TensorMesh([hx, hz], x0='00') - + wires = maps.Wires(('sigma', n_sounding),('height', n_sounding)) expmap = maps.ExpMap(nP=n_sounding) sigma_map = expmap * wires.sigma @@ -176,33 +176,33 @@ def setUp(self, parallel=True): receiver_locations = np.c_[x, y, z] source_locations = np.c_[x, y, z] topo = np.c_[x, y, z-30.].astype(float) - + source_list = [] - + for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(receiver_locations[ii, :]) - + receiver_list = [] - + receiver_list.append( em1d.receivers.TimeDomainPointReceiver( receiver_location, times, orientation="z", component="b" ) ) - + receiver_list.append( em1d.receivers.TimeDomainPointReceiver( receiver_location, times, orientation="z", component="dbdt" ) ) - + time_input_currents = np.r_[-np.logspace(-2, -5, 31), 0.] input_currents = TriangleFun(time_input_currents+0.01, 5e-3, 0.01) - + source_list.append( em1d.sources.TimeDomainHorizontalLoopSource( receiver_list=receiver_list, @@ -217,12 +217,12 @@ def setUp(self, parallel=True): high_cut_frequency=210*1e3 ) ) - + survey = em1d.survey.EM1DSurveyTD(source_list) - + simulation = em1d.simulation.StitchedEM1DTMSimulation( survey=survey, sigmaMap=sigma_map, hMap=wires.height, - topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver + topo=topo, parallel=False, n_cpu=2, verbose=False, solver=PardisoSolver ) dpred = simulation.dpred(mSynth) @@ -230,24 +230,24 @@ def setUp(self, parallel=True): uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) dobs = dpred + noise data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) - + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) dmis.W = 1./uncertainties - + reg_mesh = TensorMesh([int(n_sounding)]) reg_sigma = regularization.Tikhonov(reg_mesh, mapping=wires.sigma) reg_height = regularization.Tikhonov(reg_mesh, mapping=wires.height) - + reg = reg_sigma + reg_height - + opt = optimization.InexactGaussNewton( maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6 ) - + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) inv = inversion.BaseInversion(invProb) - + self.data = data_object self.dmis = dmis self.inv = inv From d1977c6d2e45a56f7e4dfee6c0565d1bf6c0f256 Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Sat, 3 Oct 2020 16:31:09 -0700 Subject: [PATCH 48/54] - working dual moment - add test for the dual moment - add example of fwd/inv of skytem - add field example (bookpurnong) --- .gitignore | 3 + docs/source/api_EM1Dcode.rst | 126 +- simpegEM1D/simulation.py | 20 +- simpegEM1D/survey.py | 1 + ...estGlobalEM1D_TD_jac_layers_dual_moment.py | 178 +++ .../assets/em1dtm_stitched_data_skytem.obs | 1300 +++++++++++++++++ tutorials/plot_1_tdem_fwd_skytem.py | 21 +- tutorials/plot_2_fdem_inv_stitched.py | 34 +- .../plot_2_fdem_inv_stitched_bookpurnong.py | 277 ++++ tutorials/plot_2_tdem_fwd_stitched_skytem.py | 330 +++++ tutorials/plot_2_tdem_inv_stitched_skytem.py | 482 ++++++ 11 files changed, 2665 insertions(+), 107 deletions(-) create mode 100644 tests/testGlobalEM1D_TD_jac_layers_dual_moment.py create mode 100644 tutorials/assets/em1dtm_stitched_data_skytem.obs create mode 100644 tutorials/plot_2_fdem_inv_stitched_bookpurnong.py create mode 100644 tutorials/plot_2_tdem_fwd_stitched_skytem.py create mode 100644 tutorials/plot_2_tdem_inv_stitched_skytem.py diff --git a/.gitignore b/.gitignore index 3bbc17c..b648614 100644 --- a/.gitignore +++ b/.gitignore @@ -39,4 +39,7 @@ nosetests.xml *.sublime-project *.sublime-workspace docs/_build/ +*.ipynb *.ipynb_checkpoints +.DS_Store +notebooks/ diff --git a/docs/source/api_EM1Dcode.rst b/docs/source/api_EM1Dcode.rst index 864b23c..57f03e3 100644 --- a/docs/source/api_EM1Dcode.rst +++ b/docs/source/api_EM1Dcode.rst @@ -14,68 +14,68 @@ Here, we used SimPEG's frame work so that we have following modules: EM1D problem ************ -.. autoclass:: simpegem1d.EM1D.EM1D - :show-inheritance: - :members: - :undoc-members: - :inherited-members: - -Computing reflection coefficients -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: simpegem1d.RTEfun - :show-inheritance: - :members: - :undoc-members: - :inherited-members: - - -Digital filtering -^^^^^^^^^^^^^^^^^ - -.. automodule:: simpegem1d.DigFilter - :show-inheritance: - :members: - :undoc-members: - :inherited-members: - -Source Waveform -^^^^^^^^^^^^^^^^^^^^ - -.. automodule:: simpegem1d.Waveform - :show-inheritance: - :members: - :undoc-members: - :inherited-members: - -EM1D survey -*********** - -.. autoclass:: simpegem1d.BaseEM1D.BaseEM1DSurvey - :show-inheritance: - :members: - :inherited-members: - -Frequency domain survey -^^^^^^^^^^^^^^^^^^^^^^^ -.. autoclass:: simpegem1d.BaseEM1D.EM1DSurveyFD - :show-inheritance: - :members: - -Time domain survey -^^^^^^^^^^^^^^^^^^ -.. autoclass:: simpegem1d.BaseEM1D.EM1DSurveyTD - :show-inheritance: - :members: - - -EM1D analaytic solutions -************************ - -.. automodule:: simpegem1d.EM1DAnal - :show-inheritance: - :members: - :undoc-members: - :inherited-members: +.. .. autoclass:: simpegEM1D.EM1D.EM1D +.. :show-inheritance: +.. :members: +.. :undoc-members: +.. :inherited-members: + +.. Computing reflection coefficients +.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. .. automodule:: simpegEM1D.RTEfun +.. :show-inheritance: +.. :members: +.. :undoc-members: +.. :inherited-members: + + +.. Digital filtering +.. ^^^^^^^^^^^^^^^^^ + +.. .. automodule:: simpegEM1D.DigFilter +.. :show-inheritance: +.. :members: +.. :undoc-members: +.. :inherited-members: + +.. Source Waveform +.. ^^^^^^^^^^^^^^^^^^^^ + +.. .. automodule:: simpegEM1D.Waveform +.. :show-inheritance: +.. :members: +.. :undoc-members: +.. :inherited-members: + +.. EM1D survey +.. *********** + +.. .. autoclass:: simpegEM1D.BaseEM1D.BaseEM1DSurvey +.. :show-inheritance: +.. :members: +.. :inherited-members: + +.. Frequency domain survey +.. ^^^^^^^^^^^^^^^^^^^^^^^ +.. .. autoclass:: simpegEM1D.BaseEM1D.EM1DSurveyFD +.. :show-inheritance: +.. :members: + +.. Time domain survey +.. ^^^^^^^^^^^^^^^^^^ +.. .. autoclass:: simpegEM1D.BaseEM1D.EM1DSurveyTD +.. :show-inheritance: +.. :members: + + +.. EM1D analaytic solutions +.. ************************ + +.. .. automodule:: simpegem1d.EM1DAnal +.. :show-inheritance: +.. :members: +.. :undoc-members: +.. :inherited-members: diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 1b94756..0f57fd3 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -831,16 +831,16 @@ def project_fields(self, u, output_type=None): # Compute EM sensitivities else: - if src.moment_type == "single": - resp = np.zeros( - (rx.n_time, self.n_layer), dtype=np.float64, order='F' - ) - else: - # For dual moment - resp = np.zeros( - (rx.n_time+src.n_time_dual_moment, self.n_layer), - dtype=np.float64, order='F' - ) + # if src.moment_type == "single": + resp = np.zeros( + (rx.n_time, self.n_layer), dtype=np.float64, order='F' + ) + # else: + # # For dual moment + # resp = np.zeros( + # (rx.n_time, self.n_layer), + # dtype=np.float64, order='F' + # ) # TODO: remove for loop (?) for i in range(self.n_layer): diff --git a/simpegEM1D/survey.py b/simpegEM1D/survey.py index 77e1edd..65c1fc7 100644 --- a/simpegEM1D/survey.py +++ b/simpegEM1D/survey.py @@ -90,6 +90,7 @@ def nD(self): for rx in src.receiver_list: nD += rx.nD + return int(nD) diff --git a/tests/testGlobalEM1D_TD_jac_layers_dual_moment.py b/tests/testGlobalEM1D_TD_jac_layers_dual_moment.py new file mode 100644 index 0000000..21a7338 --- /dev/null +++ b/tests/testGlobalEM1D_TD_jac_layers_dual_moment.py @@ -0,0 +1,178 @@ +from __future__ import print_function +import unittest +import numpy as np +import simpegEM1D as em1d +from simpegEM1D.utils import get_vertical_discretization_time +from simpegEM1D.waveforms import TriangleFun +from SimPEG import * +from discretize import TensorMesh +from pymatsolver import PardisoSolver +from simpegEM1D import skytem_HM_2015, skytem_LM_2015 + + +np.random.seed(41) + + +class GlobalEM1DTD(unittest.TestCase): + + def setUp(self, parallel=True): + wave_HM = skytem_HM_2015() + wave_LM = skytem_LM_2015() + time_HM = wave_HM.time_gate_center[0::2] + time_LM = wave_LM.time_gate_center[0::2] + + time_input_currents_HM = wave_HM.current_times[-7:] + input_currents_HM = wave_HM.currents[-7:] + time_input_currents_LM = wave_LM.current_times[-13:] + input_currents_LM = wave_LM.currents[-13:] + + n_layer = 20 + thicknesses = get_vertical_discretization_time( + time_LM, facter_tmax=0.5, factor_tmin=10., n_layer=n_layer-1 + ) + + n_sounding = 5 + dx = 20. + hx = np.ones(n_sounding) * dx + hz = np.r_[thicknesses, thicknesses[-1]] + mesh = TensorMesh([hx, hz], x0='00') + inds = mesh.gridCC[:, 1] < 25 + inds_1 = mesh.gridCC[:, 1] < 50 + sigma = np.ones(mesh.nC) * 1./100. + sigma[inds_1] = 1./10. + sigma[inds] = 1./50. + sigma_em1d = sigma.reshape(mesh.vnC, order='F').flatten() + mSynth = np.log(sigma_em1d) + + x = mesh.vectorCCx + y = np.zeros_like(x) + z = np.ones_like(x) * 30. + source_locations = np.c_[x, y, z] + source_current = 1. + source_orientation = 'z' + receiver_offset_r = 13.25 + receiver_offset_z = 2. + + receiver_locations = np.c_[x+receiver_offset_r, np.zeros(n_sounding), 30.*np.ones(n_sounding)+receiver_offset_z] + receiver_orientation = "z" # "x", "y" or "z" + + topo = np.c_[x, y, z-30.].astype(float) + + sigma_map = maps.ExpMap(mesh) + + source_list = [] + + for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [] + + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="dbdt" + ) + ] + + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="b" + ) + ] + + source_list.append( + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, + location=source_location, + moment_amplitude=source_current, + orientation=source_orientation, + wave_type="general", + moment_type='dual', + time_input_currents=time_input_currents_HM, + input_currents=input_currents_HM, + n_pulse = 1, + base_frequency = 25., + time_input_currents_dual_moment = time_input_currents_LM, + input_currents_dual_moment = input_currents_LM, + base_frequency_dual_moment = 210 + ) + ) + + survey = em1d.survey.EM1DSurveyTD(source_list) + + simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, + topo=topo, parallel=False, n_cpu=2, verbose=False, solver=PardisoSolver + ) + + dpred = simulation.dpred(mSynth) + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + uncertainties = 0.1*np.abs(dpred)*np.ones(np.shape(dpred)) + dobs = dpred + noise + data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) + dmis.W = 1./uncertainties + + reg = regularization.Tikhonov(mesh) + + opt = optimization.InexactGaussNewton( + maxIterLS=20, maxIter=10, tolF=1e-6, + tolX=1e-6, tolG=1e-6, maxIterCG=6 + ) + + invProb = inverse_problem.BaseInvProblem(dmis, reg, opt, beta=0.) + inv = inversion.BaseInversion(invProb) + + self.data = data_object + self.dmis = dmis + self.inv = inv + self.reg = reg + self.sim = simulation + self.mesh = mesh + self.m0 = mSynth + self.survey = survey + + + def test_misfit(self): + passed = tests.checkDerivative( + lambda m: ( + self.sim.dpred(m), + lambda mx: self.sim.Jvec(self.m0, mx) + ), + self.m0, + plotIt=False, + num=3 + ) + self.assertTrue(passed) + + def test_adjoint(self): + # Adjoint Test + v = np.random.rand(self.mesh.nC) + w = np.random.rand(self.data.dobs.shape[0]) + wtJv = w.dot(self.sim.Jvec(self.m0, v)) + vtJtw = v.dot(self.sim.Jtvec(self.m0, w)) + passed = np.abs(wtJv - vtJtw) < 1e-10 + print('Adjoint Test', np.abs(wtJv - vtJtw), passed) + self.assertTrue(passed) + + def test_dataObj(self): + passed = tests.checkDerivative( + lambda m: [self.dmis(m), self.dmis.deriv(m)], + self.m0, + plotIt=False, + num=3 + ) + self.assertTrue(passed) + +if __name__ == '__main__': + unittest.main() diff --git a/tutorials/assets/em1dtm_stitched_data_skytem.obs b/tutorials/assets/em1dtm_stitched_data_skytem.obs new file mode 100644 index 0000000..473e09a --- /dev/null +++ b/tutorials/assets/em1dtm_stitched_data_skytem.obs @@ -0,0 +1,1300 @@ +5.0000e+01 0.0000e+00 3.0000e+01 1.2715e-05 -4.4341e-10 +5.0000e+01 0.0000e+00 3.0000e+01 2.0715e-05 -2.8703e-10 +5.0000e+01 0.0000e+00 3.0000e+01 3.3215e-05 -2.2219e-10 +5.0000e+01 0.0000e+00 3.0000e+01 5.3715e-05 -1.6286e-10 +5.0000e+01 0.0000e+00 3.0000e+01 8.6215e-05 -1.3026e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.3672e-04 -9.4049e-11 +5.0000e+01 0.0000e+00 3.0000e+01 2.1771e-04 -6.7800e-11 +5.0000e+01 0.0000e+00 3.0000e+01 3.4671e-04 -3.6816e-11 +5.0000e+01 0.0000e+00 3.0000e+01 5.5172e-04 -2.0144e-11 +5.0000e+01 0.0000e+00 3.0000e+01 8.7721e-04 -9.5597e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.3942e-03 -3.5498e-12 +5.0000e+01 0.0000e+00 3.0000e+01 2.2167e-03 -1.2551e-12 +5.0000e+01 0.0000e+00 3.0000e+01 3.5237e-03 -4.3560e-13 +5.0000e+01 0.0000e+00 3.0000e+01 5.6012e-03 -1.2020e-13 +5.0000e+01 0.0000e+00 3.0000e+01 8.9022e-03 -3.4596e-14 +5.0000e+01 0.0000e+00 3.0000e+01 1.0215e-05 -3.5739e-09 +5.0000e+01 0.0000e+00 3.0000e+01 1.6215e-05 -1.8139e-09 +5.0000e+01 0.0000e+00 3.0000e+01 2.6215e-05 -8.0955e-10 +5.0000e+01 0.0000e+00 3.0000e+01 4.2215e-05 -4.2453e-10 +5.0000e+01 0.0000e+00 3.0000e+01 6.8215e-05 -2.3473e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.0872e-04 -1.3549e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.7222e-04 -8.8742e-11 +5.0000e+01 0.0000e+00 3.0000e+01 2.7471e-04 -4.7212e-11 +5.0000e+01 0.0000e+00 3.0000e+01 4.3771e-04 -2.2474e-11 +5.0000e+01 0.0000e+00 3.0000e+01 6.9571e-04 -9.1489e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.1057e-03 -3.1136e-12 +1.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2129e-10 +1.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7273e-10 +1.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0581e-10 +1.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5039e-10 +1.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2131e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.2491e-11 +1.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.1579e-11 +1.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.0799e-11 +1.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2279e-11 +1.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1208e-11 +1.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.7291e-12 +1.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7635e-12 +1.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.7414e-13 +1.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5344e-13 +1.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -3.9728e-14 +1.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4294e-09 +1.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9361e-09 +1.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.2916e-10 +1.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0520e-10 +1.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0584e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1630e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.4648e-11 +1.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.3500e-11 +1.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0682e-11 +1.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.9216e-12 +1.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6024e-12 +2.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.1820e-10 +2.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7642e-10 +2.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0369e-10 +2.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5843e-10 +2.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2185e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4034e-11 +2.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.2084e-11 +2.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.0066e-11 +2.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3327e-11 +2.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0492e-11 +2.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.8020e-12 +2.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7584e-12 +2.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.3885e-13 +2.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6469e-13 +2.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0466e-14 +2.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.5263e-09 +2.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8391e-09 +2.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.3827e-10 +2.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1700e-10 +2.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.2077e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2586e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0797e-11 +2.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.9832e-11 +2.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1180e-11 +2.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -1.0044e-11 +2.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5394e-12 +3.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0057e-10 +3.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7881e-10 +3.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9521e-10 +3.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5250e-10 +3.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1725e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4926e-11 +3.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.2370e-11 +3.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.9654e-11 +3.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3330e-11 +3.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0551e-11 +3.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.5348e-12 +3.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7875e-12 +3.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.2409e-13 +3.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5324e-13 +3.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2633e-14 +3.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4600e-09 +3.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8018e-09 +3.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7269e-10 +3.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9344e-10 +3.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0239e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2118e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.5157e-11 +3.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.1775e-11 +3.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.2767e-11 +3.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.9180e-12 +3.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5618e-12 +4.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2835e-10 +4.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8351e-10 +4.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9665e-10 +4.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5269e-10 +4.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2018e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4973e-11 +4.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.4063e-11 +4.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1693e-11 +4.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.1520e-11 +4.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1118e-11 +4.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.6485e-12 +4.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7068e-12 +4.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.4789e-13 +4.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6158e-13 +4.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0836e-14 +4.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6946e-09 +4.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8370e-09 +4.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.5952e-10 +4.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0691e-10 +4.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0696e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1712e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0297e-11 +4.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.0104e-11 +4.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0873e-11 +4.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4868e-12 +4.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.4264e-12 +5.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.9894e-10 +5.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9403e-10 +5.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.1347e-10 +5.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5634e-10 +5.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1595e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.2740e-11 +5.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.4123e-11 +5.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1052e-11 +5.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3298e-11 +5.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1180e-11 +5.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.7216e-12 +5.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.6671e-12 +5.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.4864e-13 +5.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5829e-13 +5.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2894e-14 +5.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.5771e-09 +5.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9134e-09 +5.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4317e-10 +5.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0477e-10 +5.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1172e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2325e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.3384e-11 +5.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.1685e-11 +5.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0525e-11 +5.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.3887e-12 +5.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.3760e-12 +6.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.9521e-10 +6.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7466e-10 +6.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0201e-10 +6.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.6004e-10 +6.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1240e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4150e-11 +6.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.0270e-11 +6.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1409e-11 +6.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2937e-11 +6.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1493e-11 +6.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.4608e-12 +6.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7577e-12 +6.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.7407e-13 +6.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5737e-13 +6.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0843e-14 +6.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.3906e-09 +6.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8384e-09 +6.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4515e-10 +6.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8288e-10 +6.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0260e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1555e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.5217e-11 +6.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.0670e-11 +6.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1403e-11 +6.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4437e-12 +6.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.3856e-12 +7.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2492e-10 +7.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8909e-10 +7.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9496e-10 +7.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4761e-10 +7.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1359e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -7.9914e-11 +7.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.9402e-11 +7.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7016e-11 +7.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3276e-11 +7.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.2464e-11 +7.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.2611e-12 +7.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1563e-12 +7.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.2573e-13 +7.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.1279e-13 +7.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.9720e-14 +7.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4627e-09 +7.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.7963e-09 +7.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7259e-10 +7.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8775e-10 +7.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1098e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1457e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.5299e-11 +7.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.7078e-11 +7.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9351e-11 +7.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4115e-12 +7.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.8796e-12 +8.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0510e-10 +8.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.6901e-10 +8.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9709e-10 +8.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4725e-10 +8.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1323e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.2149e-11 +8.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.0287e-11 +8.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7499e-11 +8.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3210e-11 +8.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1271e-11 +8.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.3003e-12 +8.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1544e-12 +8.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.1557e-13 +8.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.1188e-13 +8.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.4408e-14 +8.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6317e-09 +8.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9154e-09 +8.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.2481e-10 +8.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9249e-10 +8.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1414e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1780e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.5304e-11 +8.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.6143e-11 +8.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9528e-11 +8.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -8.7918e-12 +8.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6336e-12 +9.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0242e-10 +9.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8166e-10 +9.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9180e-10 +9.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4974e-10 +9.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1250e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4847e-11 +9.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.5088e-11 +9.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.8848e-11 +9.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2997e-11 +9.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.2273e-11 +9.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.1768e-12 +9.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1303e-12 +9.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.2010e-13 +9.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.0796e-13 +9.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.3781e-14 +9.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4953e-09 +9.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9342e-09 +9.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4505e-10 +9.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1389e-10 +9.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1304e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1984e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.4192e-11 +9.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.8118e-11 +9.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.8958e-11 +9.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.6332e-12 +9.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6097e-12 +1.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0890e-10 +1.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7245e-10 +1.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9979e-10 +1.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4616e-10 +1.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1215e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0270e-11 +1.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.9568e-11 +1.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.8349e-11 +1.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2653e-11 +1.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1257e-11 +1.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4840e-12 +1.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.1753e-12 +1.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -6.6946e-13 +1.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -1.9685e-13 +1.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.1926e-14 +1.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5714e-09 +1.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9285e-09 +1.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4618e-10 +1.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1991e-10 +1.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0984e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1804e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9524e-11 +1.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7685e-11 +1.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0293e-11 +1.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.0021e-12 +1.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6689e-12 +1.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9718e-10 +1.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7477e-10 +1.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0906e-10 +1.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4540e-10 +1.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0895e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.5212e-11 +1.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5993e-11 +1.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6441e-11 +1.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3702e-11 +1.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1326e-11 +1.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4216e-12 +1.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.0501e-12 +1.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.1114e-13 +1.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0462e-13 +1.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.3409e-14 +1.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4435e-09 +1.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7581e-09 +1.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9541e-10 +1.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8771e-10 +1.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0388e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2011e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8926e-11 +1.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6339e-11 +1.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.9061e-11 +1.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.4319e-12 +1.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.9099e-12 +1.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2568e-10 +1.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7439e-10 +1.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9518e-10 +1.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4391e-10 +1.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1210e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1362e-11 +1.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.8441e-11 +1.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6625e-11 +1.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3224e-11 +1.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1891e-11 +1.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5659e-12 +1.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.1618e-12 +1.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.1572e-13 +1.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0510e-13 +1.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.4696e-14 +1.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6636e-09 +1.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8598e-09 +1.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4467e-10 +1.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2037e-10 +1.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2152e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2216e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3430e-11 +1.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7981e-11 +1.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0057e-11 +1.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.3162e-12 +1.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5975e-12 +1.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0197e-10 +1.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8349e-10 +1.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0137e-10 +1.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5519e-10 +1.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1024e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8633e-11 +1.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6230e-11 +1.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6592e-11 +1.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3219e-11 +1.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2059e-11 +1.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1399e-12 +1.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -1.9762e-12 +1.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -6.8357e-13 +1.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0948e-13 +1.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.2919e-14 +1.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6929e-09 +1.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8061e-09 +1.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1762e-10 +1.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1835e-10 +1.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2290e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1857e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9523e-11 +1.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6467e-11 +1.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0060e-11 +1.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.0411e-12 +1.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.8198e-12 +1.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0762e-10 +1.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7534e-10 +1.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8978e-10 +1.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5561e-10 +1.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1313e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0659e-11 +1.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3860e-11 +1.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5136e-11 +1.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2094e-11 +1.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1783e-11 +1.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8915e-12 +1.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2989e-12 +1.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9809e-13 +1.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4722e-13 +1.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.4571e-14 +1.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5681e-09 +1.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8693e-09 +1.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7015e-10 +1.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0115e-10 +1.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1826e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2008e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3360e-11 +1.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5266e-11 +1.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8254e-11 +1.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.7340e-12 +1.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6557e-12 +1.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8526e-10 +1.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7987e-10 +1.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0029e-10 +1.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5168e-10 +1.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0737e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7011e-11 +1.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4887e-11 +1.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4676e-11 +1.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1518e-11 +1.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1342e-11 +1.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6670e-12 +1.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2745e-12 +1.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9602e-13 +1.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5988e-13 +1.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.1782e-14 +1.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6397e-09 +1.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8025e-09 +1.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.5616e-10 +1.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9105e-10 +1.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1277e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2381e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8013e-11 +1.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5756e-11 +1.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7190e-11 +1.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5454e-12 +1.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6277e-12 +1.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2610e-10 +1.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7629e-10 +1.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0220e-10 +1.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5186e-10 +1.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1542e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0724e-11 +1.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1813e-11 +1.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.7061e-11 +1.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0549e-11 +1.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2409e-11 +1.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9555e-12 +1.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3161e-12 +1.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9886e-13 +1.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.3849e-13 +1.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.3304e-14 +1.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6120e-09 +1.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9398e-09 +1.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1341e-10 +1.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9655e-10 +1.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1106e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2563e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6010e-11 +1.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5834e-11 +1.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8417e-11 +1.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.8149e-12 +1.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5357e-12 +1.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0129e-10 +1.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7628e-10 +1.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9415e-10 +1.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4210e-10 +1.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1370e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0506e-11 +1.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4540e-11 +1.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5282e-11 +1.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1967e-11 +1.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2159e-11 +1.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9293e-12 +1.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4364e-12 +1.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.0400e-13 +1.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5467e-13 +1.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.4046e-14 +1.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6904e-09 +1.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7847e-09 +1.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4371e-10 +1.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1537e-10 +1.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0513e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2365e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3623e-11 +1.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6493e-11 +1.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7717e-11 +1.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.3936e-12 +1.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6296e-12 +1.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2245e-10 +1.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8546e-10 +1.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9641e-10 +1.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5293e-10 +1.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1082e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9065e-11 +1.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2962e-11 +1.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5848e-11 +1.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1175e-11 +1.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1325e-11 +1.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4559e-12 +1.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4006e-12 +1.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.3883e-13 +1.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5411e-13 +1.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.5137e-14 +1.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4961e-09 +1.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8854e-09 +1.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8620e-10 +1.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1036e-10 +1.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1247e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1927e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9023e-11 +1.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4670e-11 +1.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8175e-11 +1.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.3471e-12 +1.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6285e-12 +1.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8822e-10 +1.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7536e-10 +1.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9477e-10 +1.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4305e-10 +1.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0625e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9300e-11 +1.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4698e-11 +1.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4790e-11 +1.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2665e-11 +1.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2228e-11 +1.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7607e-12 +1.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3964e-12 +1.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.4649e-13 +1.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5181e-13 +1.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.6702e-14 +1.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4187e-09 +1.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7677e-09 +1.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2842e-10 +1.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0908e-10 +1.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1876e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2352e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5875e-11 +1.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5183e-11 +1.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7169e-11 +1.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.4400e-12 +1.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.7166e-12 +2.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2549e-10 +2.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8298e-10 +2.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0044e-10 +2.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5551e-10 +2.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0496e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6476e-11 +2.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6876e-11 +2.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6952e-11 +2.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2183e-11 +2.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1300e-11 +2.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8034e-12 +2.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2839e-12 +2.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.2059e-13 +2.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4953e-13 +2.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.1890e-14 +2.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5436e-09 +2.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8781e-09 +2.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3459e-10 +2.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9659e-10 +2.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0577e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1878e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7731e-11 +2.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3892e-11 +2.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7840e-11 +2.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5888e-12 +2.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6133e-12 +2.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8787e-10 +2.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6813e-10 +2.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9121e-10 +2.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4973e-10 +2.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0873e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8873e-11 +2.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4208e-11 +2.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2197e-11 +2.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0973e-11 +2.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1683e-11 +2.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9192e-12 +2.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5534e-12 +2.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.1500e-13 +2.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9160e-13 +2.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6280e-14 +2.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4918e-09 +2.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8616e-09 +2.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9668e-10 +2.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1992e-10 +2.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2350e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1745e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6008e-11 +2.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3789e-11 +2.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7233e-11 +2.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7927e-12 +2.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3524e-12 +2.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9618e-10 +2.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8864e-10 +2.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0787e-10 +2.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4214e-10 +2.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1435e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5457e-11 +2.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5482e-11 +2.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4924e-11 +2.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0572e-11 +2.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1809e-11 +2.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9762e-12 +2.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3708e-12 +2.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2005e-13 +2.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9759e-13 +2.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.9715e-14 +2.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5818e-09 +2.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7706e-09 +2.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6197e-10 +2.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1280e-10 +2.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1668e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2468e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8456e-11 +2.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5201e-11 +2.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6133e-11 +2.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8759e-12 +2.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3901e-12 +2.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1056e-10 +2.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6396e-10 +2.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8944e-10 +2.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5239e-10 +2.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1096e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0830e-11 +2.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4790e-11 +2.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4307e-11 +2.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1260e-11 +2.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1813e-11 +2.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4740e-12 +2.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4425e-12 +2.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.8258e-13 +2.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8416e-13 +2.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.0946e-14 +2.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5446e-09 +2.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7999e-09 +2.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8367e-10 +2.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1831e-10 +2.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1389e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2088e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8818e-11 +2.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6114e-11 +2.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7206e-11 +2.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9786e-12 +2.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4277e-12 +2.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1736e-10 +2.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9021e-10 +2.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9327e-10 +2.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4578e-10 +2.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0454e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5088e-11 +2.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0690e-11 +2.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4067e-11 +2.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0286e-11 +2.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1328e-11 +2.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7098e-12 +2.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5660e-12 +2.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2213e-13 +2.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8856e-13 +2.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6323e-14 +2.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4364e-09 +2.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9450e-09 +2.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4901e-10 +2.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1491e-10 +2.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2253e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1860e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4867e-11 +2.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4563e-11 +2.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6374e-11 +2.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7053e-12 +2.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2085e-12 +2.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0982e-10 +2.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8448e-10 +2.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9663e-10 +2.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5036e-10 +2.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1398e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0045e-11 +2.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5510e-11 +2.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3679e-11 +2.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0998e-11 +2.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1468e-11 +2.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7960e-12 +2.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3854e-12 +2.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9136e-13 +2.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8430e-13 +2.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8862e-14 +2.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5308e-09 +2.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7673e-09 +2.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6599e-10 +2.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8645e-10 +2.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1880e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2048e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8306e-11 +2.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6369e-11 +2.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7726e-11 +2.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.0139e-12 +2.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2397e-12 +2.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1114e-10 +2.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6820e-10 +2.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0690e-10 +2.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5257e-10 +2.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1120e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9438e-11 +2.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3662e-11 +2.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5367e-11 +2.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0051e-11 +2.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1434e-11 +2.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7431e-12 +2.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4485e-12 +2.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.1408e-13 +2.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8169e-13 +2.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8914e-14 +2.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5461e-09 +2.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8075e-09 +2.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3470e-10 +2.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8659e-10 +2.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1196e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2754e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5379e-11 +2.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6545e-11 +2.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6750e-11 +2.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4235e-12 +2.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4695e-12 +2.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1879e-10 +2.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7818e-10 +2.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0392e-10 +2.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4201e-10 +2.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0911e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0526e-11 +2.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1309e-11 +2.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3133e-11 +2.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9389e-11 +2.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1941e-11 +2.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0376e-12 +2.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3912e-12 +2.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9217e-13 +2.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9766e-13 +2.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.4571e-14 +2.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6486e-09 +2.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9267e-09 +2.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2902e-10 +2.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9753e-10 +2.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0978e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2437e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0950e-11 +2.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3894e-11 +2.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7396e-11 +2.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.1442e-12 +2.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3584e-12 +2.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2738e-10 +2.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8468e-10 +2.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8944e-10 +2.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5325e-10 +2.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1408e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1049e-11 +2.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2608e-11 +2.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3887e-11 +2.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1385e-11 +2.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0981e-11 +2.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7459e-12 +2.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4405e-12 +2.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2813e-13 +2.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8934e-13 +2.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6121e-14 +2.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4998e-09 +2.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7843e-09 +2.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4874e-10 +2.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8565e-10 +2.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2374e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2188e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9888e-11 +2.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3460e-11 +2.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6694e-11 +2.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9775e-12 +2.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5009e-12 +2.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9974e-10 +2.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8831e-10 +2.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0423e-10 +2.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5274e-10 +2.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0845e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1043e-11 +2.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5373e-11 +2.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5609e-11 +2.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9534e-11 +2.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1210e-11 +2.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4992e-12 +2.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5103e-12 +2.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.0911e-13 +2.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9351e-13 +2.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8581e-14 +2.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3644e-09 +2.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9503e-09 +2.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1218e-10 +2.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2478e-10 +2.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2520e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2076e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9566e-11 +2.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4481e-11 +2.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6323e-11 +2.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9561e-12 +2.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3156e-12 +3.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2215e-10 +3.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7245e-10 +3.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0040e-10 +3.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4663e-10 +3.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0425e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8086e-11 +3.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2651e-11 +3.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4143e-11 +3.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0061e-11 +3.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1064e-11 +3.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5400e-12 +3.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5335e-12 +3.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5242e-13 +3.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.1019e-13 +3.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.0037e-14 +3.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6032e-09 +3.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8455e-09 +3.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3324e-10 +3.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9476e-10 +3.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2057e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2170e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6601e-11 +3.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7182e-11 +3.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7197e-11 +3.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6189e-12 +3.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1128e-12 +3.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1343e-10 +3.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6478e-10 +3.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8891e-10 +3.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5303e-10 +3.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1158e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5854e-11 +3.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4151e-11 +3.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3923e-11 +3.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9698e-11 +3.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0337e-11 +3.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7605e-12 +3.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5402e-12 +3.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0106e-12 +3.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3087e-13 +3.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.6725e-14 +3.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6985e-09 +3.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9333e-09 +3.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7614e-10 +3.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2429e-10 +3.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1354e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1856e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9402e-11 +3.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5018e-11 +3.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7520e-11 +3.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8364e-12 +3.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0125e-12 +3.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9685e-10 +3.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7181e-10 +3.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0501e-10 +3.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5299e-10 +3.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1503e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7660e-11 +3.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3041e-11 +3.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3764e-11 +3.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8847e-11 +3.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1408e-11 +3.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6915e-12 +3.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6342e-12 +3.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.7001e-13 +3.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3740e-13 +3.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.7245e-14 +3.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5294e-09 +3.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7762e-09 +3.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6912e-10 +3.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0916e-10 +3.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1433e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2528e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5725e-11 +3.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5520e-11 +3.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6738e-11 +3.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4239e-12 +3.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2522e-12 +3.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9198e-10 +3.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7496e-10 +3.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9209e-10 +3.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5029e-10 +3.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1371e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2273e-11 +3.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1471e-11 +3.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4472e-11 +3.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9556e-11 +3.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0279e-11 +3.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6898e-12 +3.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6487e-12 +3.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8874e-13 +3.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4029e-13 +3.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8922e-14 +3.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6158e-09 +3.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8341e-09 +3.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2559e-10 +3.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1343e-10 +3.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0977e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2663e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7131e-11 +3.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5827e-11 +3.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7441e-11 +3.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7741e-12 +3.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1928e-12 +3.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1116e-10 +3.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9084e-10 +3.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0312e-10 +3.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4820e-10 +3.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1426e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2638e-11 +3.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1454e-11 +3.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3896e-11 +3.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8790e-11 +3.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0291e-11 +3.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2868e-12 +3.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6195e-12 +3.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.7339e-13 +3.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3941e-13 +3.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8018e-14 +3.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5277e-09 +3.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8865e-09 +3.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8728e-10 +3.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8596e-10 +3.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1194e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2069e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9528e-11 +3.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3644e-11 +3.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6158e-11 +3.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6793e-12 +3.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2619e-12 +3.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1812e-10 +3.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8471e-10 +3.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9519e-10 +3.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4343e-10 +3.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0813e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6301e-11 +3.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4818e-11 +3.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2188e-11 +3.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9883e-11 +3.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0486e-11 +3.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3811e-12 +3.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4921e-12 +3.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.4283e-13 +3.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2676e-13 +3.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.2525e-14 +3.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3707e-09 +3.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8833e-09 +3.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.5353e-10 +3.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1956e-10 +3.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1794e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2738e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5272e-11 +3.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5106e-11 +3.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6437e-11 +3.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.1849e-12 +3.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0099e-12 +3.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2162e-10 +3.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8692e-10 +3.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9712e-10 +3.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5285e-10 +3.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1247e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6473e-11 +3.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0588e-11 +3.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5055e-11 +3.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0498e-11 +3.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0344e-11 +3.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3688e-12 +3.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5395e-12 +3.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.3371e-13 +3.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.1251e-13 +3.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8821e-14 +3.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4087e-09 +3.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7721e-09 +3.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9175e-10 +3.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1377e-10 +3.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2366e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1619e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4916e-11 +3.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3989e-11 +3.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6419e-11 +3.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9145e-12 +3.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2705e-12 +3.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2254e-10 +3.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8948e-10 +3.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9321e-10 +3.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5300e-10 +3.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1421e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5305e-11 +3.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1649e-11 +3.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1736e-11 +3.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0099e-11 +3.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1127e-11 +3.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3936e-12 +3.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6277e-12 +3.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8347e-13 +3.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2105e-13 +3.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8401e-14 +3.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5958e-09 +3.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9185e-09 +3.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3012e-10 +3.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2594e-10 +3.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2629e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2074e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9977e-11 +3.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6760e-11 +3.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6725e-11 +3.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7757e-12 +3.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1053e-12 +3.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0420e-10 +3.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6473e-10 +3.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0195e-10 +3.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4942e-10 +3.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1214e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8063e-11 +3.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2719e-11 +3.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2497e-11 +3.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8881e-11 +3.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0765e-11 +3.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4209e-12 +3.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4009e-12 +3.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9939e-13 +3.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3729e-13 +3.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.6021e-14 +3.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5025e-09 +3.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9249e-09 +3.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1294e-10 +3.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1261e-10 +3.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1845e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1816e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7530e-11 +3.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4162e-11 +3.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6670e-11 +3.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3751e-12 +3.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1407e-12 +3.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0342e-10 +3.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6448e-10 +3.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9446e-10 +3.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4815e-10 +3.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0746e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2217e-11 +3.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1519e-11 +3.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4939e-11 +3.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8818e-11 +3.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0022e-11 +3.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1119e-12 +3.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3837e-12 +3.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0313e-12 +3.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3856e-13 +3.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0493e-13 +3.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3892e-09 +3.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7792e-09 +3.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6556e-10 +3.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9674e-10 +3.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1804e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2282e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9991e-11 +3.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6709e-11 +3.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7330e-11 +3.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8585e-12 +3.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1906e-12 +4.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9607e-10 +4.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6487e-10 +4.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0837e-10 +4.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4362e-10 +4.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0977e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1815e-11 +4.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1300e-11 +4.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3981e-11 +4.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9706e-11 +4.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0833e-11 +4.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2616e-12 +4.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4027e-12 +4.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6631e-13 +4.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5178e-13 +4.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0216e-13 +4.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6737e-09 +4.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8641e-09 +4.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1731e-10 +4.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0690e-10 +4.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1096e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1975e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5144e-11 +4.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4279e-11 +4.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6540e-11 +4.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2493e-12 +4.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0460e-12 +4.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2333e-10 +4.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7384e-10 +4.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9544e-10 +4.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4314e-10 +4.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1152e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9601e-11 +4.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2766e-11 +4.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3420e-11 +4.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9542e-11 +4.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0908e-11 +4.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2680e-12 +4.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5706e-12 +4.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0026e-12 +4.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5337e-13 +4.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0054e-13 +4.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4398e-09 +4.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8343e-09 +4.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4582e-10 +4.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0562e-10 +4.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2214e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2500e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7517e-11 +4.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4468e-11 +4.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7197e-11 +4.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5610e-12 +4.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0181e-12 +4.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9836e-10 +4.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9053e-10 +4.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9078e-10 +4.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4311e-10 +4.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0404e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9375e-11 +4.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4336e-11 +4.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3820e-11 +4.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9921e-11 +4.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0883e-11 +4.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5150e-12 +4.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5747e-12 +4.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6742e-13 +4.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4686e-13 +4.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7795e-14 +4.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6414e-09 +4.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8645e-09 +4.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3072e-10 +4.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2092e-10 +4.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0917e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2655e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5009e-11 +4.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6448e-11 +4.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7491e-11 +4.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4394e-12 +4.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2011e-12 +4.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9254e-10 +4.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8928e-10 +4.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8909e-10 +4.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4555e-10 +4.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0844e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5139e-11 +4.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4709e-11 +4.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3850e-11 +4.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9243e-11 +4.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0634e-11 +4.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1167e-12 +4.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4370e-12 +4.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0304e-12 +4.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4912e-13 +4.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7833e-14 +4.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3943e-09 +4.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9250e-09 +4.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4960e-10 +4.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9517e-10 +4.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1474e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2475e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5629e-11 +4.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5090e-11 +4.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6870e-11 +4.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7196e-12 +4.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9319e-12 +4.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1993e-10 +4.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6417e-10 +4.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9492e-10 +4.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5121e-10 +4.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0557e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1878e-11 +4.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5501e-11 +4.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1827e-11 +4.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9033e-11 +4.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0978e-11 +4.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4819e-12 +4.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4476e-12 +4.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0362e-12 +4.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3945e-13 +4.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0648e-13 +4.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5243e-09 +4.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8522e-09 +4.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8063e-10 +4.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9782e-10 +4.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0731e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1736e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7394e-11 +4.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5527e-11 +4.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7290e-11 +4.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6645e-12 +4.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9931e-12 +4.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9122e-10 +4.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9185e-10 +4.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9477e-10 +4.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4043e-10 +4.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1507e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0621e-11 +4.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1678e-11 +4.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2655e-11 +4.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9239e-11 +4.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0757e-11 +4.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4738e-12 +4.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3696e-12 +4.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9477e-13 +4.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3686e-13 +4.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0487e-13 +4.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5987e-09 +4.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7838e-09 +4.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7531e-10 +4.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2059e-10 +4.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0448e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2440e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.1378e-11 +4.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6263e-11 +4.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7910e-11 +4.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4913e-12 +4.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1219e-12 +4.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1682e-10 +4.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7853e-10 +4.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9744e-10 +4.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4573e-10 +4.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1092e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6241e-11 +4.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3129e-11 +4.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4073e-11 +4.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9162e-11 +4.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0876e-11 +4.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5191e-12 +4.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4197e-12 +4.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6087e-13 +4.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3889e-13 +4.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7895e-14 +4.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3648e-09 +4.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8169e-09 +4.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6732e-10 +4.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2609e-10 +4.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1010e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2657e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5493e-11 +4.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3738e-11 +4.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7381e-11 +4.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2153e-12 +4.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9728e-12 +4.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2534e-10 +4.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7329e-10 +4.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9777e-10 +4.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4458e-10 +4.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0878e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5431e-11 +4.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1192e-11 +4.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2543e-11 +4.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8566e-11 +4.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0348e-11 +4.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5223e-12 +4.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3672e-12 +4.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6946e-13 +4.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4231e-13 +4.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.6723e-14 +4.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5036e-09 +4.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7730e-09 +4.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9294e-10 +4.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1406e-10 +4.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0630e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1961e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7836e-11 +4.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3864e-11 +4.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6520e-11 +4.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5631e-12 +4.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.8936e-12 +4.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9869e-10 +4.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8408e-10 +4.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9656e-10 +4.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5141e-10 +4.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0630e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8937e-11 +4.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3686e-11 +4.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4619e-11 +4.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9712e-11 +4.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0087e-11 +4.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2104e-12 +4.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5261e-12 +4.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0419e-12 +4.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3694e-13 +4.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0133e-13 +4.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4534e-09 +4.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8823e-09 +4.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9503e-10 +4.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0592e-10 +4.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1222e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2059e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5678e-11 +4.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7194e-11 +4.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6778e-11 +4.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9542e-12 +4.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0098e-12 +4.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9664e-10 +4.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8509e-10 +4.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9596e-10 +4.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4402e-10 +4.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1032e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8731e-11 +4.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0439e-11 +4.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4109e-11 +4.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8853e-11 +4.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0023e-11 +4.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2708e-12 +4.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3231e-12 +4.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0429e-12 +4.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3343e-13 +4.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0320e-13 +4.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7017e-09 +4.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9113e-09 +4.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1318e-10 +4.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9536e-10 +4.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1360e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2045e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0327e-11 +4.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4036e-11 +4.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6883e-11 +4.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3531e-12 +4.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1198e-12 diff --git a/tutorials/plot_1_tdem_fwd_skytem.py b/tutorials/plot_1_tdem_fwd_skytem.py index 795639e..673e2e6 100644 --- a/tutorials/plot_1_tdem_fwd_skytem.py +++ b/tutorials/plot_1_tdem_fwd_skytem.py @@ -33,18 +33,16 @@ time_LM = wave_LM.time_gate_center[0::2] -source_location = np.array([0., 0., 0.]) +source_location = np.array([0., 0., 40.]) source_orientation = "z" # "x", "y" or "z" source_current = 1. -source_radius = 10. moment_amplitude=1. - -receiver_location = np.array([10., 0., 0.]) +receiver_offset_r = 13.25 +receiver_offset_z = 2. +receiver_location = np.array([receiver_offset_r, 0., 40.+receiver_offset_z ]) receiver_orientation = "z" # "x", "y" or "z" field_type = "secondary" # "secondary", "total" or "ppm" -times = np.logspace(-5, -2, 41) - # Receiver list rx = em1d.receivers.TimeDomainPointReceiver( receiver_location, @@ -148,20 +146,13 @@ fig = plt.figure(figsize = (6, 5)) ax = fig.add_axes([0.1, 0.1, 0.8, 0.85]) -ax.loglog(rx.times, -dpred[:rx.times.size], 'k', lw=2, label='HM') +ax.loglog(rx.times, -dpred[:rx.times.size], 'b', lw=2, label='HM') ax.loglog(rx.times_dual_moment, -dpred[rx.times.size:], 'r', lw=2, label='LM') ax.legend() ax.set_xlabel("Times (s)") ax.set_ylabel("|dB/dt| (T/s)") - - - - - - - - +plt.show() diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 581400c..9e3a5f5 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -88,7 +88,7 @@ for ii in range(0, n_sounding): ax.loglog(frequencies, np.abs(dobs_plotting[0:len(frequencies), ii]), '-', lw=2) ax.loglog(frequencies, np.abs(dobs_plotting[len(frequencies):, ii]), '--', lw=2) - + ax.set_xlabel("Frequency (Hz)") ax.set_ylabel("|Hs/Hp| (ppm)") ax.set_title("Magnetic Field as a Function of Frequency") @@ -111,12 +111,12 @@ source_list = [] for ii in range(0, n_sounding): - + source_location = mkvc(source_locations[ii, :]) receiver_location = mkvc(receiver_locations[ii, :]) - + receiver_list = [] - + receiver_list.append( em1d.receivers.HarmonicPointReceiver( receiver_location, frequencies, orientation=receiver_orientation, @@ -137,7 +137,7 @@ # I=source_current # ) # ] - + source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", @@ -270,17 +270,13 @@ # Define how the optimization problem is solved. Here we will use an inexact # Gauss-Newton approach that employs the conjugate gradient solver. opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) - + # Define the inverse problem inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) - - - - ####################################################################### # Define Inversion Directives # --------------------------- @@ -296,7 +292,7 @@ # Reach target misfit for L2 solution, then use IRLS until model stops changing. #IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) #IRLS = directives.Update_IRLS( -# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, # beta_tol=1e-2, f_min_change=1e-5, # chifact_start = 1. #) @@ -316,8 +312,8 @@ update_IRLS = directives.Update_IRLS( - max_irls_iterations=20, minGNiter=1, - fix_Jmatrix=True, + max_irls_iterations=20, minGNiter=1, + fix_Jmatrix=True, f_min_change = 1e-3, coolingRate=3 ) @@ -415,11 +411,11 @@ def PolygonInd(mesh, pts): for ii, mod in enumerate(models_list): - + fig = plt.figure(figsize=(9, 3)) ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(mod) - + mesh_plotting.plotImage( log_mod, ax=ax1, grid=False, clim=(np.log10(true_model.min()), np.log10(true_model.max())), @@ -427,11 +423,11 @@ def PolygonInd(mesh, pts): pcolorOpts={"cmap": "viridis"}, ) ax1.set_ylim(mesh_plotting.vectorNy.min(), mesh_plotting.vectorNy.max()) - + ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") ax1.set_ylabel("depth (m)") - + ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) norm = mpl.colors.Normalize( vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) @@ -441,7 +437,7 @@ def PolygonInd(mesh, pts): ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" ) cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) - + @@ -457,7 +453,7 @@ def PolygonInd(mesh, pts): d2 = np.reshape(data_list[ii][1::2], (n_sounding, len(frequencies))) ax1.semilogy(x, np.abs(d1), color_list[ii], lw=1) ax2.semilogy(x, np.abs(d2), color_list[ii], lw=1) - + ax.set_xlabel("Frequencies (s)") ax.set_ylabel("Re[H] (A/m)") diff --git a/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py b/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py new file mode 100644 index 0000000..ad537d8 --- /dev/null +++ b/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py @@ -0,0 +1,277 @@ + +""" +Inversion of RESOLVE data acquired at Bookpurnong, Austrailia +============================================================= + +XXX + +""" + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +import SimPEG +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D import get_2d_mesh, LateralConstraint +from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency + +##################################################################### +# Load data +# ------------- +# +# + +import h5py +import tarfile +import os +import shutil +def download_and_unzip_data( + url = "https://storage.googleapis.com/simpeg/bookpurnong/bookpurnong_inversion.tar.gz" +): + """ + Download the data from the storage bucket, unzip the tar file, return + the directory where the data are + """ + # download the data + downloads = utils.download(url) + + # directory where the downloaded files are + directory = downloads.split(".")[0] + + # unzip the tarfile + tar = tarfile.open(downloads, "r") + tar.extractall() + tar.close() + + return downloads, directory + + + +# download the data +downloads, directory = download_and_unzip_data() + +# Load resolve data +resolve = h5py.File( + os.path.sep.join([directory, "booky_resolve.hdf5"]), "r" +) +river_path = resolve["river_path"].value # River path +nskip = 1 +nSounding = resolve["data"][::nskip, :].shape[0] # the # of soundings + +# Bird height from surface +b_height_resolve = (resolve["src_elevation"])[::nskip] + +# fetch the frequencies we are considering +cpi_inds = [0, 2, 6, 8, 10] # Indices for HCP in-phase +cpq_inds = [1, 3, 7, 9, 11] # Indices for HCP quadrature +frequency_cp = resolve["frequency_cp"].value +xy = (resolve["xy"].value)[::nskip, :] +line = resolve['line'][::nskip] + + +data_cpi = resolve["data"][::nskip, cpi_inds].astype(float) +data_cpq = resolve["data"][::nskip, cpq_inds].astype(float) + + +##################################################################### +# Create Survey +# ------------- +# +# + +from scipy.constants import mu_0 +frequencies = np.array([382, 1822, 7970, 35920, 130100], dtype=float) +n_frequency = frequencies.size +# thicknesses = get_vertical_discretization_frequency(frequencies, sigma_background=1./50) +thicknesses = 1 * 1.1**np.arange(19) +n_layer = thicknesses.size + 1 +# survey parameters +rxOffset = 7.86 # tx-rx separation +n_sounding = xy.shape[0] +b_height_resolve = resolve["src_elevation"].value[::nskip] +topo_resolve = resolve["ground_elevation"].value[::nskip] +uniq_line = np.unique(line) +x = xy[:,0] +y = xy[:,1] +z = topo_resolve + b_height_resolve +receiver_locations = np.c_[x+rxOffset, y, z] +source_locations = np.c_[x, y, z] +topo = np.c_[x, y, topo_resolve].astype(float) + + +receiver_orientation = 'z' +field_type = 'ppm' +source_list = [] +moment_amplitude = 1. +for ii in range(0, n_sounding): + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + rx = em1d.receivers.HarmonicPointReceiver( + receiver_location, frequencies, + orientation=receiver_orientation, + field_type=field_type, + component="both" + ) + receiver_list = [rx] + source_list.append( + em1d.sources.HarmonicMagneticDipoleSource( + receiver_list=receiver_list, location=source_location, orientation="z", + moment_amplitude=moment_amplitude + ) + ) + + +# Survey +survey = em1d.survey.EM1DSurveyFD(source_list) + +####################################################################### +# Define the Forward Simulation +# ---------------------------------------------- + +mapping = maps.ExpMap(nP=int(n_sounding*n_layer)) + +simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, topo=topo, + verbose=True, Solver=PardisoSolver, parallel=False +) + + +m0 = np.ones(mapping.nP) * np.log(1./50) + +DOBS = np.empty((simulation.n_sounding, 2, n_frequency)) +for i_freq in range(frequency_cp.size): + DOBS[:,0,i_freq] = data_cpi[:, i_freq] + DOBS[:,1,i_freq] = data_cpq[:, i_freq] + + +i_line = 3 +ind_line = line == uniq_line[i_line] +fig = plt.figure(figsize=(7, 7)) +ax = plt.subplot(111) +out = utils.plot2Ddata(xy, DOBS[:,0,0], scale='linear', contourOpts={'cmap':'jet', 'alpha':1}, ncontour=40, ax=ax) +# ax.plot(xy[:,0], xy[:,1], 'k.', ms=1) +ax.plot(river_path[:,0], river_path[:,1], 'k-') +cb = plt.colorbar(out[0], format="%.1e", ax=ax, fraction=0.05) +cb.set_label("Bz (ppm)") +ax.plot(xy[ind_line,0], xy[ind_line,1], 'k.', ms=3) + + +i_line = 4 +ind_line = line == uniq_line[i_line] +fig = plt.figure(figsize=(10, 5)) +for i_freq in range(n_frequency): + plt.semilogy(xy[ind_line,0], DOBS[ind_line,0,i_freq], 'k') +for i_freq in range(n_frequency): + plt.semilogy(xy[ind_line,0], DOBS[ind_line,1,i_freq], 'r') + + +######################################################################## +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. + +dobs = DOBS.flatten() +std = 0.1 +floor = 20. +uncertainties = std*abs(dobs)+floor +data_object = data.Data(survey, dobs=dobs, standard_deviation=uncertainties) + +from simpegEM1D import get_2d_mesh, LateralConstraint +hz = np.r_[thicknesses, thicknesses[-1]] +mesh_reg = get_2d_mesh(n_sounding, hz) +# Now we can create the regularization using the 2D mesh +reg = LateralConstraint(mesh_reg, mapping=maps.IdentityMap(nP=mesh_reg.nC)) + + +tri = reg.get_grad_horizontal(xy, hz) +fig = plt.figure(figsize=(10, 10)) +plt.triplot(xy[:,0], xy[:,1], tri.simplices) +plt.plot(xy[:,0], xy[:,1], '.') +# plt.show() + +m0 = np.ones(mesh_reg.nC) * np.log(1./100.) +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties +regmap = maps.IdentityMap(mesh_reg) + +reg = LateralConstraint( + mesh_reg, mapping=maps.IdentityMap(nP=mesh_reg.nC), + alpha_s = 1e-3, + alpha_x = 1., + alpha_y = 1., +) +tri = reg.get_grad_horizontal(xy, hz) +opt = optimization.InexactGaussNewton(maxIter = 10) +invProb = inverse_problem.BaseInvProblem(dmis, reg, opt) +beta = directives.BetaSchedule(coolingFactor=2, coolingRate=1) +betaest = directives.BetaEstimate_ByEig(beta0_ratio=1.) +target = directives.TargetMisfit() +inv = inversion.BaseInversion(invProb, directiveList=[beta,betaest,target]) +simulation.counter = opt.counter = utils.Counter() +opt.LSshorten = 0.5 +opt.remember('xc') +mopt = inv.run(m0) + +sigma = mapping * mopt + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +PRED = invProb.dpred.reshape((simulation.n_sounding, 2, n_frequency)) + +i_line = 14 +ind_line = line == uniq_line[i_line] +fig = plt.figure(figsize=(10, 5)) +for i_freq in range(n_frequency): + plt.semilogy(xy[ind_line,0], DOBS[ind_line,0,i_freq], 'k') + plt.semilogy(xy[ind_line,0], PRED[ind_line,0,i_freq], 'k.') +for i_freq in range(n_frequency): + plt.semilogy(xy[ind_line,0], DOBS[ind_line,1,i_freq], 'b') + plt.semilogy(xy[ind_line,0], PRED[ind_line,1,i_freq], 'r.') +plt.ylabel("Hz (ppm)") + + +from simpegEM1D import ModelIO +IO = ModelIO( + hz = hz, + topography=topo, + line=line, + physical_property=1./sigma +) + +i_line = 23 +IO.plot_section( + plot_type='pcolor', aspect=10, i_line=i_line, clim=(0.3, 50) , + scale='log', cmap='Spectral', dx=50 +) + + + + diff --git a/tutorials/plot_2_tdem_fwd_stitched_skytem.py b/tutorials/plot_2_tdem_fwd_stitched_skytem.py new file mode 100644 index 0000000..03d60f3 --- /dev/null +++ b/tutorials/plot_2_tdem_fwd_stitched_skytem.py @@ -0,0 +1,330 @@ +""" +Forward Simulation of 1D SkyTEM Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG import maps +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D.utils import plotLayer, get_vertical_discretization_time +from simpegEM1D import skytem_HM_2015, skytem_LM_2015 + +plt.rcParams.update({'font.size': 16}) +save_file = True + + +##################################################################### +# topography +# ------------- +# +# + +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + + + + + +##################################################################### +# Create Survey +# ------------- +# +# + +wave_HM = skytem_HM_2015() +wave_LM = skytem_LM_2015() +time_HM = wave_HM.time_gate_center[0::2] +time_LM = wave_LM.time_gate_center[0::2] + +time_input_currents_HM = wave_HM.current_times[-7:] +input_currents_HM = wave_HM.currents[-7:] +time_input_currents_LM = wave_LM.current_times[-13:] +input_currents_LM = wave_LM.currents[-13:] + + +x = np.linspace(50,4950,50) +#x = np.linspace(50,250,3) +n_sounding = len(x) + +source_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] +source_current = 1. +source_orientation = 'z' +receiver_offset_r = 13.25 +receiver_offset_z = 2. + +receiver_locations = np.c_[x+receiver_offset_r, np.zeros(n_sounding), 30.*np.ones(n_sounding)+receiver_offset_z] +receiver_orientation = "z" # "x", "y" or "z" + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="dbdt" + ) + ] + +# Sources + source_list.append( + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, + location=source_location, + moment_amplitude=source_current, + orientation=source_orientation, + wave_type="general", + moment_type='dual', + time_input_currents=time_input_currents_HM, + input_currents=input_currents_HM, + n_pulse = 1, + base_frequency = 25., + time_input_currents_dual_moment = time_input_currents_LM, + input_currents_dual_moment = input_currents_LM, + base_frequency_dual_moment = 210 + ) + ) + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + + +n_layer = 25 +thicknesses = get_vertical_discretization_time( + np.r_[time_HM, time_LM], sigma_background=0.1, n_layer=n_layer-1 +) + +dx = 100. +hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') + +n_param = n_layer*n_sounding + + + +############################################### +# Defining a Model +# ---------------------- +# + +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh2D.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +model = np.ones(n_param) * background_conductivity + +layer_ind = mesh2D.gridCC[:, -1] > -30. +model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh2D, pts) +model[poly_inds] = slope_conductivity + +mapping = maps.ExpMap(nP=n_param) + +# MODEL TO SOUNDING MODELS METHOD 1 +# sounding_models = model.reshape(mesh2D.vnC, order='F') +# sounding_models = np.fliplr(sounding_models) +# sounding_models = mkvc(sounding_models.T) + +# MODEL TO SOUNDING MODELS METHOD 2 +sounding_models = model.reshape(mesh_soundings.vnC, order='C') +sounding_models = np.flipud(sounding_models) +sounding_models = mkvc(sounding_models) + +# FROM SOUNDING MODEL TO REGULAR +# temp_model = sounding_models.reshape(mesh2D.vnC, order='C') +# temp_model = np.fliplr(temp_model) +# temp_model = mkvc(temp_model) + +chi = np.zeros_like(sounding_models) + + + +fig = plt.figure(figsize=(9, 3)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod = np.log10(model) +# log_mod = np.log10(temp_model) + +mesh2D.plotImage( + log_mod, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh2D.vectorNy.min(), mesh2D.vectorNy.max()) + +ax1.set_title("Conductivity Model") +ax1.set_xlabel("x (m)") +ax1.set_ylabel("z (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + + +fig = plt.figure(figsize=(4, 8)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod_sounding = np.log10(sounding_models) +sounding_models = np.log(sounding_models) + +mesh_soundings.plotImage( + log_mod_sounding, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh_soundings.vectorNy.min(), mesh_soundings.vectorNy.max()) + +ax1.set_title("Ordered Sounding Models") +ax1.set_xlabel("hz (m)") +ax1.set_ylabel("Profile Distance (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, chi=chi, + topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver +) + +#simulation.model = sounding_models +# +#ARGS = simulation.input_args(0) +#print("Number of arguments") +#print(len(ARGS)) +#print("Print arguments") +#for ii in range(0, len(ARGS)): +# print(ARGS[ii]) + +dpred = simulation.dpred(sounding_models) + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + +n_time = np.r_[time_LM, time_HM].size +d = np.reshape(dpred, (n_sounding, n_time)) + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) + +for ii in range(0, n_time): + ax.semilogy(x, np.abs(d[:, ii]), '-', lw=2) + +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dBdt| (T/s)") +plt.show() + + + + + +if save_file == True: + + noise = 0.1*np.abs(dpred)*np.random.rand(len(dpred)) + dpred += noise + fname = os.path.dirname(em1d.__file__) + '/../tutorials/assets/em1dtm_stitched_data_skytem.obs' + + loc = np.repeat(source_locations, n_time, axis=0) + fvec = np.kron(np.ones(n_sounding), np.r_[time_HM, time_LM]) + + np.savetxt( + fname, + np.c_[loc, fvec, dpred], + fmt='%.4e' + ) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tutorials/plot_2_tdem_inv_stitched_skytem.py b/tutorials/plot_2_tdem_inv_stitched_skytem.py new file mode 100644 index 0000000..01a6842 --- /dev/null +++ b/tutorials/plot_2_tdem_inv_stitched_skytem.py @@ -0,0 +1,482 @@ +""" +Forward Simulation of 1D Frequency-Domain Data +============================================== + + + + + +""" + +##################################################### +# Import Modules +# -------------- +# + +import numpy as np +import os +import matplotlib as mpl +from matplotlib import pyplot as plt +from matplotlib.colors import LogNorm +from discretize import TensorMesh +from pymatsolver import PardisoSolver + +from SimPEG.utils import mkvc +from SimPEG import ( + maps, data, data_misfit, inverse_problem, regularization, optimization, + directives, inversion, utils + ) + +from SimPEG.utils import mkvc +import simpegEM1D as em1d +from simpegEM1D import get_2d_mesh, LateralConstraint +from simpegEM1D.utils import plotLayer, get_vertical_discretization_time +from simpegEM1D import skytem_HM_2015, skytem_LM_2015 + +save_file = True + +plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) + + +############################################# +# Define File Names +# ----------------- +# +# File paths for assets we are loading. To set up the inversion, we require +# topography and field observations. The true model defined on the whole mesh +# is loaded to compare with the inversion result. +# + +data_filename = './assets/em1dtm_stitched_data_skytem.obs' + + + +##################################################################### +# topography +# ------------- +# +# + +x = np.linspace(50,4950,50) +y = np.zeros_like(x) +z = np.zeros_like(x) +topo = np.c_[x, y, z].astype(float) + +n_sounding = len(x) + +source_locations = np.c_[x, np.zeros(n_sounding), 30.*np.ones(n_sounding)] +source_current = 1. +source_orientation = 'z' +receiver_offset_r = 13.25 +receiver_offset_z = 2. + +receiver_locations = np.c_[x+receiver_offset_r, np.zeros(n_sounding), 30.*np.ones(n_sounding)+receiver_offset_z] +receiver_orientation = "z" # "x", "y" or "z" + + + + + +############################################# +# Load Data and Plot +# ------------------ +# + +# Load field data +dobs = np.loadtxt(str(data_filename)) +dobs = mkvc(dobs[:, -1]) + + +###################################################### +# Create Survey +# ------------- +# + +wave_HM = skytem_HM_2015() +wave_LM = skytem_LM_2015() +time_HM = wave_HM.time_gate_center[0::2] +time_LM = wave_LM.time_gate_center[0::2] + +time_input_currents_HM = wave_HM.current_times[-7:] +input_currents_HM = wave_HM.currents[-7:] +time_input_currents_LM = wave_LM.current_times[-13:] +input_currents_LM = wave_LM.currents[-13:] + + +source_list = [] + +for ii in range(0, n_sounding): + + source_location = mkvc(source_locations[ii, :]) + receiver_location = mkvc(receiver_locations[ii, :]) + receiver_list = [ + em1d.receivers.TimeDomainPointReceiver( + receiver_location, + times=time_HM, + times_dual_moment=time_LM, + orientation=receiver_orientation, + component="dbdt" + ) + ] + +# Sources + source_list.append( + em1d.sources.TimeDomainMagneticDipoleSource( + receiver_list=receiver_list, + location=source_location, + moment_amplitude=source_current, + orientation=source_orientation, + wave_type="general", + moment_type='dual', + time_input_currents=time_input_currents_HM, + input_currents=input_currents_HM, + n_pulse = 1, + base_frequency = 25., + time_input_currents_dual_moment = time_input_currents_LM, + input_currents_dual_moment = input_currents_LM, + base_frequency_dual_moment = 210 + ) + ) + + +# Survey +survey = em1d.survey.EM1DSurveyTD(source_list) + + + +############################################# +# Assign Uncertainties +# -------------------- +# +# + +uncertainties = 0.1*np.abs(dobs)*np.ones(np.shape(dobs)) + + +############################################### +# Define Data +# -------------------- +# +# Here is where we define the data that are inverted. The data are defined by +# the survey, the observation values and the uncertainties. +# + +data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) + + + +############################################### +# Defining a Global Mesh +# ---------------------- +# + +n_layer = 25 +thicknesses = get_vertical_discretization_time( + time_HM, sigma_background=0.1, n_layer=n_layer-1 +) + +dx = 100. +hx = np.ones(n_sounding) * dx +hz = np.r_[thicknesses, thicknesses[-1]] +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') + +n_param = n_layer*n_sounding + + +############################################### +# Defining a Model +# ---------------------- +# + +conductivity = np.ones(n_param) * 0.1 + +mapping = maps.ExpMap(nP=n_param) +starting_model = np.log(conductivity) + +####################################################################### +# Define the Forward Simulation and Predic Data +# ---------------------------------------------- +# + + + +# Simulate response for static conductivity +# simulation = em1d.simulation.StitchedEM1DTMSimulation( +# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, +# topo=topo, verbose=True, Solver=PardisoSolver +# ) + +simulation = em1d.simulation.StitchedEM1DTMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=mapping, + topo=topo, parallel=True, n_cpu=4, verbose=True, Solver=PardisoSolver +) + + +pred = simulation.dpred(starting_model) +fig = plt.figure() +plt.semilogy(-pred, '.', ms=1) +plt.semilogy(-dobs, 'x') +plt.show() + + + +######################################################################## +# Define Inverse Problem +# ---------------------- +# +# The inverse problem is defined by 3 things: +# +# 1) Data Misfit: a measure of how well our recovered model explains the field data +# 2) Regularization: constraints placed on the recovered model and a priori information +# 3) Optimization: the numerical approach used to solve the inverse problem +# +# + +# Define the data misfit. Here the data misfit is the L2 norm of the weighted +# residual between the observed data and the data predicted for a given model. +# The weighting is defined by the reciprocal of the uncertainties. +dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) +dmis.W = 1./uncertainties + + +# Define the regularization (model objective function) +mesh_reg = get_2d_mesh(n_sounding, hz) +reg_map = maps.IdentityMap(mesh_reg) +reg = LateralConstraint( + mesh_reg, mapping=reg_map, + alpha_s = 0.1, + alpha_x = 1., + alpha_y = 1., +) +xy = utils.ndgrid(x, np.r_[0.]) +reg.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) + + +# reg_map = maps.IdentityMap(nP=mesh_soundings.nC) +# reg = regularization.Sparse( +# mesh_reg, mapping=reg_map, +# ) + +ps, px, py = 1, 1, 1 +reg.norms = np.c_[ps, px, py, 0] + +reg.mref = starting_model +reg.mrefInSmooth = False + +# Define how the optimization problem is solved. Here we will use an inexact +# Gauss-Newton approach that employs the conjugate gradient solver. +opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) + +# Define the inverse problem +inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) + + + + + + + + +####################################################################### +# Define Inversion Directives +# --------------------------- +# +# Here we define any directiveas that are carried out during the inversion. This +# includes the cooling schedule for the trade-off parameter (beta), stopping +# criteria for the inversion and saving inversion results at each iteration. +# + +# Apply and update sensitivity weighting as the model updates +#sensitivity_weights = directives.UpdateSensitivityWeights() + +# Reach target misfit for L2 solution, then use IRLS until model stops changing. +#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) +#IRLS = directives.Update_IRLS( +# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, +# beta_tol=1e-2, f_min_change=1e-5, +# chifact_start = 1. +#) + +# Defining a starting value for the trade-off parameter (beta) between the data +# misfit and the regularization. +starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=10) + + +beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) + +# Update the preconditionner +update_Jacobi = directives.UpdatePreconditioner() + +# Options for outputting recovered models and predicted data for each beta. +save_iteration = directives.SaveOutputEveryIteration(save_txt=False) + + +update_IRLS = directives.Update_IRLS( + max_irls_iterations=20, minGNiter=1, + fix_Jmatrix=True, + f_min_change = 1e-3, + coolingRate=3 +) + +# Updating the preconditionner if it is model dependent. +update_jacobi = directives.UpdatePreconditioner() + +# Setting a stopping criteria for the inversion. +target_misfit = directives.TargetMisfit(chifact=1) + +# Add sensitivity weights +sensitivity_weights = directives.UpdateSensitivityWeights() + +target = directives.TargetMisfit() + +# The directives are defined as a list. +directives_list = [ + # sensitivity_weights, + starting_beta, + beta_schedule, + save_iteration, + # target_misfit, + update_IRLS, + # update_jacobi, +] + +##################################################################### +# Running the Inversion +# --------------------- +# +# To define the inversion object, we need to define the inversion problem and +# the set of directives. We can then run the inversion. +# + +# Here we combine the inverse problem and the set of directives +inv = inversion.BaseInversion(inv_prob, directives_list) + +# Run the inversion +recovered_model = inv.run(starting_model) + + + +####################################################################### +# Plotting Results +# ------------------------------------------------- +# +# + + +# True model +from scipy.spatial import Delaunay +def PolygonInd(mesh, pts): + hull = Delaunay(pts) + inds = hull.find_simplex(mesh.gridCC)>=0 + return inds + + +background_conductivity = 0.1 +overburden_conductivity = 0.025 +slope_conductivity = 0.4 + +true_model = np.ones(mesh2D.nC) * background_conductivity + +layer_ind = mesh2D.gridCC[:, -1] > -30. +true_model[layer_ind] = overburden_conductivity + + +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] +pts = np.vstack((x0, x1, x2, x3, x0)) +poly_inds = PolygonInd(mesh2D, pts) +true_model[poly_inds] = slope_conductivity + +# true_model = true_model.reshape(mesh_soundings.vnC, order='C') +# true_model = np.flipud(true_model) +# true_model = mkvc(true_model) + + +l2_model = inv_prob.l2model +dpred_l2 = simulation.dpred(l2_model) +l2_model = np.exp(l2_model) +# l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer),) +# l2_model = mkvc(l2_model) + +dpred = simulation.dpred(recovered_model) +recovered_model = np.exp(recovered_model) +# recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) +# recovered_model = mkvc(recovered_model) + + +mesh_plotting = TensorMesh([hx, np.flipud(hz)], x0='0N') +l2_model = l2_model.reshape(mesh_plotting.vnC, order='C') +l2_model = mkvc(np.fliplr(l2_model)) +recovered_model = recovered_model.reshape(mesh_plotting.vnC, order='C') +recovered_model = mkvc(np.fliplr(recovered_model)) + + +models_list = [true_model, l2_model, recovered_model] + + +for ii, mod in enumerate(models_list): + + fig = plt.figure(figsize=(9, 3)) + ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) + log_mod = np.log10(mod) + + mesh_plotting.plotImage( + log_mod, ax=ax1, grid=False, + clim=(np.log10(true_model.min()), np.log10(true_model.max())), +# clim=(np.log10(0.1), np.log10(1)), + pcolorOpts={"cmap": "viridis"}, + ) + ax1.set_ylim(mesh_plotting.vectorNy.min(), mesh_plotting.vectorNy.max()) + + ax1.set_title("Conductivity Model") + ax1.set_xlabel("x (m)") + ax1.set_ylabel("depth (m)") + + ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) + norm = mpl.colors.Normalize( + vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) +# vmin=np.log10(0.1), vmax=np.log10(1) + ) + cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" + ) + cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + + + +data_list = [dobs, dpred_l2, dpred] +color_list = ['k', 'b', 'r'] + +fig, ax = plt.subplots(1,1, figsize = (7, 7)) +n_time = time_HM.size + time_LM.size +for ii in range(0, len(data_list)): + d = np.reshape(data_list[ii], (n_sounding, n_time)) + ax.semilogy(x, np.abs(d), color_list[ii], lw=1) + +ax.set_xlabel("Times (s)") +ax.set_ylabel("|dBdt| (T/s)") +plt.show() + + + + + + + + + + + + + + + + + + + + From e61880371ec3b26ed285e238a59fdc86401b6711 Mon Sep 17 00:00:00 2001 From: seogi_macbook Date: Sat, 3 Oct 2020 16:32:14 -0700 Subject: [PATCH 49/54] turn off parallel --- tutorials/plot_2_tdem_inv_stitched_skytem.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tutorials/plot_2_tdem_inv_stitched_skytem.py b/tutorials/plot_2_tdem_inv_stitched_skytem.py index 01a6842..1471c04 100644 --- a/tutorials/plot_2_tdem_inv_stitched_skytem.py +++ b/tutorials/plot_2_tdem_inv_stitched_skytem.py @@ -201,17 +201,17 @@ -# Simulate response for static conductivity -# simulation = em1d.simulation.StitchedEM1DTMSimulation( -# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, -# topo=topo, verbose=True, Solver=PardisoSolver -# ) - +Simulate response for static conductivity simulation = em1d.simulation.StitchedEM1DTMSimulation( survey=survey, thicknesses=thicknesses, sigmaMap=mapping, - topo=topo, parallel=True, n_cpu=4, verbose=True, Solver=PardisoSolver + topo=topo, verbose=True, Solver=PardisoSolver ) +# simulation = em1d.simulation.StitchedEM1DTMSimulation( +# survey=survey, thicknesses=thicknesses, sigmaMap=mapping, +# topo=topo, parallel=True, n_cpu=4, verbose=True, Solver=PardisoSolver +# ) + pred = simulation.dpred(starting_model) fig = plt.figure() From e9d499d9cdadf29244629c14b1662381b91244dd Mon Sep 17 00:00:00 2001 From: dccowan Date: Mon, 5 Oct 2020 16:29:53 -0700 Subject: [PATCH 50/54] remove example --- ...CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll | Bin 0 -> 68051 bytes ...CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll | Bin 0 -> 68051 bytes ...KEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll | Bin 0 -> 66515 bytes tutorials/plot_2_fdem_inv_stitched_height.py | 472 ------------------ 4 files changed, 472 deletions(-) create mode 100644 simpegEM1D/.libs/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll create mode 100644 simpegEM1D/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll create mode 100644 simpegEM1D/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll delete mode 100644 tutorials/plot_2_fdem_inv_stitched_height.py diff --git a/simpegEM1D/.libs/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll b/simpegEM1D/.libs/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll new file mode 100644 index 0000000000000000000000000000000000000000..d9dd09b01c1f268a7a2404a231b57fff2dedef72 GIT binary patch literal 68051 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 a;kYzHzVBVkSu+}`HPNU(YX;~(kNhW({V$XN literal 0 HcmV?d00001 diff --git a/simpegEM1D/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll b/simpegEM1D/libm_rTE_Fo.GJJ4AYK2AYSJ7CBWPHQAFWIN6WGRAIYI.gfortran-win_amd64.dll new file mode 100644 index 0000000000000000000000000000000000000000..d9dd09b01c1f268a7a2404a231b57fff2dedef72 GIT binary patch literal 68051 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 a;kYzHzVBVkSu+}`HPNU(YX;~(kNhW({V$XN literal 0 HcmV?d00001 diff --git a/simpegEM1D/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll b/simpegEM1D/libm_rTE_Fo.SCBVWIJUD5OFZKEAKP4Z75X5N7TGU6NN.gfortran-win_amd64.dll new file mode 100644 index 0000000000000000000000000000000000000000..1b5b93e93539604adf3e2f919c4a7339b839e3c5 GIT binary patch literal 66515 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 literal 0 HcmV?d00001 diff --git a/tutorials/plot_2_fdem_inv_stitched_height.py b/tutorials/plot_2_fdem_inv_stitched_height.py deleted file mode 100644 index 37eb697..0000000 --- a/tutorials/plot_2_fdem_inv_stitched_height.py +++ /dev/null @@ -1,472 +0,0 @@ -""" -Forward Simulation of 1D Frequency-Domain Data -============================================== - - - - - -""" - -##################################################### -# Import Modules -# -------------- -# - -import numpy as np -import os -import matplotlib as mpl -from matplotlib import pyplot as plt -from matplotlib.colors import LogNorm -from discretize import TensorMesh -from pymatsolver import PardisoSolver - -from SimPEG.utils import mkvc -from SimPEG import ( - maps, data, data_misfit, inverse_problem, regularization, optimization, - directives, inversion, utils - ) - -from SimPEG.utils import mkvc -import simpegEM1D as em1d -from simpegEM1D import get_2d_mesh, LateralConstraint -from simpegEM1D.utils import plotLayer, get_vertical_discretization_frequency - -save_file = True - -plt.rcParams.update({'font.size': 16, 'lines.linewidth': 2, 'lines.markersize':8}) - - -############################################# -# Define File Names -# ----------------- -# -# File paths for assets we are loading. To set up the inversion, we require -# topography and field observations. The true model defined on the whole mesh -# is loaded to compare with the inversion result. -# - -data_filename = os.path.dirname(em1d.__file__) + '\\..\\tutorials\\assets\\em1dfm_stitched_data.obs' - - - -##################################################################### -# topography -# ------------- -# -# - -x = np.linspace(50,4950,50) -#x = np.linspace(50,250,3) -y = np.zeros_like(x) -z = np.zeros_like(x) -topo = np.c_[x, y, z].astype(float) - - - - - -############################################# -# Load Data and Plot -# ------------------ -# - -# Load field data -dobs = np.loadtxt(str(data_filename)) - - -source_locations = np.unique(dobs[:, 0:3], axis=0) -frequencies = np.unique(dobs[:, 3]) -dobs = mkvc(dobs[:, 4:].T) - -n_sounding = np.shape(source_locations)[0] - -dobs_plotting = np.reshape(dobs, (n_sounding, 2*len(frequencies))).T - -fig, ax = plt.subplots(1,1, figsize = (7, 7)) - -for ii in range(0, n_sounding): - ax.loglog(frequencies, np.abs(dobs_plotting[0:len(frequencies), ii]), '-', lw=2) - ax.loglog(frequencies, np.abs(dobs_plotting[len(frequencies):, ii]), '--', lw=2) - -ax.set_xlabel("Frequency (Hz)") -ax.set_ylabel("|Hs/Hp| (ppm)") -ax.set_title("Magnetic Field as a Function of Frequency") -ax.legend(["real", "imaginary"]) - - - -###################################################### -# Create Survey -# ------------- -# - - -source_current = 1. -source_radius = 5. - -source_heights = mkvc(source_locations[:, -1]) -receiver_offsets = np.c_[source_locations[:, 0]+10., source_locations[:, 1], np.zeros(np.size(source_heights))] -receiver_orientation = "z" # "x", "y" or "z" -field_type = "ppm" # "secondary", "total" or "ppm" - -source_list = [] - -for ii in range(0, n_sounding): - - source_location = mkvc(source_locations[ii, :]) - receiver_offset = mkvc(receiver_offsets[ii, :]) - - receiver_list = [] - - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_offset, frequencies, orientation=receiver_orientation, - field_type=field_type, component="real", use_source_receiver_offset=True - ) - ) - receiver_list.append( - em1d.receivers.HarmonicPointReceiver( - receiver_offset, frequencies, orientation=receiver_orientation, - field_type=field_type, component="imag", use_source_receiver_offset=True - ) - ) - - source_list.append( - em1d.sources.HarmonicMagneticDipoleSource( - receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current - ) - ) - -# Survey -survey = em1d.survey.EM1DSurveyFD(source_list) - - - -############################################# -# Assign Uncertainties -# -------------------- -# -# - -uncertainties = 0.1*np.abs(dobs)*np.ones(np.shape(dobs)) - - -############################################### -# Define Data -# -------------------- -# -# Here is where we define the data that are inverted. The data are defined by -# the survey, the observation values and the uncertainties. -# - -data_object = data.Data(survey, dobs=dobs, noise_floor=uncertainties) - - - -############################################### -# Defining a Global Mesh -# ---------------------- -# - -dx = 100. -hz = get_vertical_discretization_frequency( - frequencies, sigma_background=0.1, n_layer=30 -) -hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') - - -############################################### -# Defining a Model -# ---------------------- -# - -conductivity = np.ones(mesh.nC) * 0.1 - -wires = maps.Wires(('sigma', mesh.nC),('height', n_sounding)) -sigma_map = maps.ExpMap(mesh) * wires.sigma -height_map = wires.height - -starting_model = np.r_[ - np.log(conductivity.reshape(mesh.vnC, order='F').flatten()), - 25*np.ones(n_sounding) -] - -####################################################################### -# Define the Forward Simulation and Predic Data -# ---------------------------------------------- -# - - - -# Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=sigma_map, hMap=height_map, hz=hz, topo=topo, - parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver -) - - - - -######################################################################## -# Define Inverse Problem -# ---------------------- -# -# The inverse problem is defined by 3 things: -# -# 1) Data Misfit: a measure of how well our recovered model explains the field data -# 2) Regularization: constraints placed on the recovered model and a priori information -# 3) Optimization: the numerical approach used to solve the inverse problem -# -# - -# Define the data misfit. Here the data misfit is the L2 norm of the weighted -# residual between the observed data and the data predicted for a given model. -# The weighting is defined by the reciprocal of the uncertainties. -dmis = data_misfit.L2DataMisfit(simulation=simulation, data=data_object) -dmis.W = 1./uncertainties - - -# Define the regularization (model objective function) -mesh_reg = get_2d_mesh(n_sounding, hz) -reg_lateral = LateralConstraint( - mesh_reg, mapping=maps.IdentityMap(nP=mesh.nC), - alpha_s = 0.1, - alpha_x = 0.0001, - alpha_y = 1., -) -xy = utils.ndgrid(np.arange(n_sounding), np.r_[0.]) -reg_lateral.get_grad_horizontal(xy, hz, dim=2, use_cell_weights=True) - - -reg_map = maps.IdentityMap(nP=mesh.nC) -reg_sigma = regularization.Sparse( - mesh, mapping=wires.sigma, -) -ps, px, py = 1, 1, 1 -reg_sigma.norms = np.c_[ps, px, py, 0] - - -mesh_height = TensorMesh([dx*np.ones(n_sounding)]) -reg_height = regularization.Sparse(mesh_height, mapping=wires.height) - - -reg = reg_sigma + reg_height - -reg.mref = starting_model -reg.mrefInSmooth = True - -# Define how the optimization problem is solved. Here we will use an inexact -# Gauss-Newton approach that employs the conjugate gradient solver. -opt = optimization.InexactGaussNewton(maxIter = 40, maxIterCG=20) - -# Define the inverse problem -inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt) - - - - - - - - -####################################################################### -# Define Inversion Directives -# --------------------------- -# -# Here we define any directiveas that are carried out during the inversion. This -# includes the cooling schedule for the trade-off parameter (beta), stopping -# criteria for the inversion and saving inversion results at each iteration. -# - -# Apply and update sensitivity weighting as the model updates -#sensitivity_weights = directives.UpdateSensitivityWeights() - -# Reach target misfit for L2 solution, then use IRLS until model stops changing. -#IRLS = directives.Update_IRLS(max_irls_iterations=40, minGNiter=1, f_min_change=1e-5, chifact_start=2) -#IRLS = directives.Update_IRLS( -# max_irls_iterations=20, minGNiter=1, fix_Jmatrix=True, coolingRate=2, -# beta_tol=1e-2, f_min_change=1e-5, -# chifact_start = 1. -#) - -# Defining a starting value for the trade-off parameter (beta) between the data -# misfit and the regularization. -starting_beta = directives.BetaEstimate_ByEig(beta0_ratio=1e1) - - -beta_schedule = directives.BetaSchedule(coolingFactor=2, coolingRate=2) - -# Update the preconditionner -update_Jacobi = directives.UpdatePreconditioner() - -# Options for outputting recovered models and predicted data for each beta. -save_iteration = directives.SaveOutputEveryIteration(save_txt=False) - - -update_IRLS = directives.Update_IRLS( - max_irls_iterations=20, minGNiter=1, - fix_Jmatrix=True, - f_min_change = 1e-3, - coolingRate=3 -) - -# Updating the preconditionner if it is model dependent. -update_jacobi = directives.UpdatePreconditioner() - -# Setting a stopping criteria for the inversion. -#target_misfit = directives.TargetMisfit(chifact=1) - -# Add sensitivity weights -sensitivity_weights = directives.UpdateSensitivityWeights() - -target = directives.TargetMisfit() - -# The directives are defined as a list. -directives_list = [ - sensitivity_weights, - starting_beta, - beta_schedule, - save_iteration, - update_IRLS, - update_jacobi, -] - - -opt.LSshorten = 0.5 -opt.remember('xc') - -##################################################################### -# Running the Inversion -# --------------------- -# -# To define the inversion object, we need to define the inversion problem and -# the set of directives. We can then run the inversion. -# - -# Here we combine the inverse problem and the set of directives -inv = inversion.BaseInversion(inv_prob, directives_list) - -# Run the inversion -recovered_model = inv.run(starting_model) - - - -####################################################################### -# Plotting Results -# ------------------------------------------------- -# -# - - -# True model -from scipy.spatial import Delaunay -def PolygonInd(mesh, pts): - hull = Delaunay(pts) - inds = hull.find_simplex(mesh.gridCC)>=0 - return inds - - -background_conductivity = 0.1 -overburden_conductivity = 0.025 -slope_conductivity = 0.4 - -true_model = np.ones(mesh.nC) * background_conductivity - -layer_ind = mesh.gridCC[:, -1] < 30. -true_model[layer_ind] = overburden_conductivity - - -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 120.] -x3 = np.r_[0., 50.] -pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) -true_model[poly_inds] = slope_conductivity - -l2_model = inv_prob.l2model -dpred_l2 = simulation.dpred(l2_model) -l2_model = np.exp(l2_model) -l2_model = l2_model.reshape((simulation.n_sounding, simulation.n_layer)) -l2_model = mkvc(l2_model) - -dpred = simulation.dpred(recovered_model) -recovered_model = np.exp(recovered_model) -recovered_model = recovered_model.reshape((simulation.n_sounding, simulation.n_layer)) -recovered_model = mkvc(recovered_model) - -models_list = [true_model, l2_model, simulation.Sigma] - -for ii, mod in enumerate(models_list): - - fig = plt.figure(figsize=(9, 3)) - ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) - log_mod = np.log10(mod) - - mesh.plotImage( - log_mod, ax=ax1, grid=False, - clim=(np.log10(true_model.min()), np.log10(true_model.max())), -# clim=(np.log10(0.1), np.log10(1)), - pcolorOpts={"cmap": "viridis"}, - ) - ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) - - ax1.set_title("Conductivity Model") - ax1.set_xlabel("x (m)") - ax1.set_ylabel("depth (m)") - - ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) - norm = mpl.colors.Normalize( - vmin=np.log10(true_model.min()), vmax=np.log10(true_model.max()) -# vmin=np.log10(0.1), vmax=np.log10(1) - ) - cbar = mpl.colorbar.ColorbarBase( - ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" - ) - cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) - - - - - -data_list = [dobs, dpred_l2, dpred] -color_list = ['k', 'b', 'r'] - -fig = plt.figure(figsize = (12, 6)) -ax1 = fig.add_axes([0.05, 0.1, 0.4, 0.8]) -ax2 = fig.add_axes([0.55, 0.1, 0.4, 0.8]) - -for ii in range(0, len(data_list)): - d1 = np.reshape(data_list[ii][0::2], (n_sounding, len(frequencies))) - d2 = np.reshape(data_list[ii][1::2], (n_sounding, len(frequencies))) - ax1.semilogy(x, np.abs(d1), color_list[ii], lw=1) - ax2.semilogy(x, np.abs(d2), color_list[ii], lw=1) - -ax.set_xlabel("Frequencies (s)") -ax.set_ylabel("Re[H] (A/m)") - - - - - - - - - - - - - - - - - - - - - - - From b4bb758a24e9c7fde52556d67f9e6d4ff5c52604 Mon Sep 17 00:00:00 2001 From: dccowan Date: Tue, 6 Oct 2020 10:03:11 -0700 Subject: [PATCH 51/54] fix small bugs in a couple tutorials --- tutorials/assets/em1dfm_stitched_data.obs | 600 ++-- .../assets/em1dtm_stitched_data_skytem.obs | 2600 ++++++++--------- tutorials/plot_2_fdem_fwd_stitched_height.py | 90 +- 3 files changed, 1671 insertions(+), 1619 deletions(-) diff --git a/tutorials/assets/em1dfm_stitched_data.obs b/tutorials/assets/em1dfm_stitched_data.obs index 1138a6a..20bd439 100644 --- a/tutorials/assets/em1dfm_stitched_data.obs +++ b/tutorials/assets/em1dfm_stitched_data.obs @@ -1,300 +1,300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.5644e+01 9.2877e+01 -5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.8064e+02 8.3142e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5062e+03 3.2525e+03 -5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.3879e+01 2.1769e+02 -5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.4733e+02 6.6115e+02 -5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2513e+03 2.2943e+03 -1.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5558e+01 9.7407e+01 -1.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.6069e+02 8.5417e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4819e+03 3.4677e+03 -1.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4509e+01 2.0863e+02 -1.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1860e+02 6.3196e+02 -1.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2786e+03 2.3420e+03 -2.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5506e+01 9.5495e+01 -2.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.5563e+02 8.6296e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5285e+03 3.2972e+03 -2.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.4111e+01 2.2511e+02 -2.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3199e+02 6.2327e+02 -2.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.3040e+03 2.2418e+03 -3.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6162e+01 9.8155e+01 -3.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8408e+02 8.8812e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4105e+03 3.5049e+03 -3.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.3398e+01 2.2517e+02 -3.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2872e+02 6.3440e+02 -3.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2302e+03 2.2402e+03 -4.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8108e+01 1.0981e+02 -4.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7952e+02 8.5770e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4478e+03 3.3802e+03 -4.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.9047e+01 2.3390e+02 -4.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2900e+02 6.3397e+02 -4.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2422e+03 2.1872e+03 -5.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8401e+01 1.0810e+02 -5.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7849e+02 8.6657e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5260e+03 3.5433e+03 -5.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7407e+01 2.2906e+02 -5.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1148e+02 6.3522e+02 -5.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2458e+03 2.3044e+03 -6.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7328e+01 1.0821e+02 -6.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8228e+02 8.5307e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4607e+03 3.2943e+03 -6.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7099e+01 2.2879e+02 -6.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3260e+02 6.2632e+02 -6.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2552e+03 2.2460e+03 -7.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.7948e+01 1.1381e+02 -7.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8434e+02 8.2817e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5024e+03 3.4555e+03 -7.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5900e+01 2.2970e+02 -7.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2476e+02 5.9656e+02 -7.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.3422e+03 -8.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.0083e+01 1.2104e+02 -8.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2064e+02 8.8500e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4558e+03 3.3859e+03 -8.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.4474e+01 2.2976e+02 -8.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2859e+02 6.2420e+02 -8.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2980e+03 2.2178e+03 -9.5000e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1752e+01 1.1830e+02 -9.5000e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2351e+02 8.5409e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4930e+03 3.3880e+03 -9.5000e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2658e+01 2.3228e+02 -9.5000e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3377e+02 6.0744e+02 -9.5000e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2549e+03 2.2835e+03 -1.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0027e+01 1.1802e+02 -1.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1475e+02 8.3861e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4324e+03 3.3694e+03 -1.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.2198e+01 2.2518e+02 -1.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9986e+02 6.4483e+02 -1.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3040e+03 2.2316e+03 -1.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1629e+01 1.1884e+02 -1.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9144e+02 8.8477e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4863e+03 3.3224e+03 -1.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6509e+01 2.4025e+02 -1.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2173e+02 6.0666e+02 -1.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2903e+03 2.3271e+03 -1.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0933e+01 1.2221e+02 -1.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1380e+02 8.1309e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4026e+03 3.4616e+03 -1.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6986e+01 2.3322e+02 -1.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0905e+02 6.3030e+02 -1.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2379e+03 2.2671e+03 -1.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.0883e+01 1.2794e+02 -1.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1606e+02 8.2206e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4705e+03 3.4287e+03 -1.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.1098e+01 2.3564e+02 -1.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1994e+02 6.0010e+02 -1.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3045e+03 2.2916e+03 -1.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4528e+01 1.3506e+02 -1.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9674e+02 8.8416e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5405e+03 3.5310e+03 -1.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0948e+01 2.4108e+02 -1.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1375e+02 6.0907e+02 -1.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2765e+03 2.2121e+03 -1.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3983e+01 1.2678e+02 -1.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1881e+02 8.7705e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5148e+03 3.3596e+03 -1.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6117e+01 2.4507e+02 -1.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2273e+02 6.2586e+02 -1.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2011e+03 2.2344e+03 -1.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4185e+01 1.2841e+02 -1.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1693e+02 8.6507e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4999e+03 3.5066e+03 -1.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0744e+01 2.3906e+02 -1.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0380e+02 6.5622e+02 -1.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2376e+03 2.2843e+03 -1.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.2703e+01 1.2962e+02 -1.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2177e+02 8.1162e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4117e+03 3.3201e+03 -1.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.6720e+01 2.2945e+02 -1.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1992e+02 6.2284e+02 -1.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2743e+03 2.1527e+03 -1.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3679e+01 1.3818e+02 -1.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2144e+02 8.7984e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4064e+03 3.3212e+03 -1.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8384e+01 2.3788e+02 -1.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1377e+02 6.0028e+02 -1.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2092e+03 2.2450e+03 -1.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3017e+01 1.3531e+02 -1.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9813e+02 8.5618e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4717e+03 3.2944e+03 -1.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7526e+01 2.4273e+02 -1.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1903e+02 6.3129e+02 -1.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2890e+03 2.2724e+03 -2.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5433e+01 1.4428e+02 -2.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2724e+02 8.7332e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4760e+03 3.4829e+03 -2.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4964e+01 2.3964e+02 -2.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9750e+02 6.4098e+02 -2.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2842e+03 2.3186e+03 -2.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5238e+01 1.4375e+02 -2.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2406e+02 8.2795e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4909e+03 3.2576e+03 -2.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1867e+01 2.3375e+02 -2.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1088e+02 6.2248e+02 -2.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2009e+03 2.1464e+03 -2.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5457e+01 1.3749e+02 -2.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0930e+02 8.7117e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4510e+03 3.4270e+03 -2.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4440e+01 2.3960e+02 -2.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9981e+02 6.3136e+02 -2.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1943e+03 2.2976e+03 -2.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6685e+01 1.4751e+02 -2.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1090e+02 8.1502e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4465e+03 3.2942e+03 -2.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3706e+01 2.4273e+02 -2.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9726e+02 6.2252e+02 -2.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2749e+03 2.1784e+03 -2.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5866e+01 1.4255e+02 -2.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9497e+02 8.4620e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4805e+03 3.4671e+03 -2.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7488e+01 2.2750e+02 -2.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9302e+02 6.3370e+02 -2.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2349e+03 2.3372e+03 -2.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6230e+01 1.3758e+02 -2.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1929e+02 8.1689e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4091e+03 3.3259e+03 -2.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.9293e+01 2.4724e+02 -2.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1604e+02 6.1566e+02 -2.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1959e+03 2.1470e+03 -2.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7798e+01 1.4062e+02 -2.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9939e+02 8.2317e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4453e+03 3.3404e+03 -2.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1627e+01 2.2448e+02 -2.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0794e+02 6.4106e+02 -2.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2782e+03 2.2150e+03 -2.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9166e+01 1.4229e+02 -2.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1113e+02 8.4384e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5310e+03 3.4133e+03 -2.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7378e+01 2.4181e+02 -2.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1149e+02 6.4344e+02 -2.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2405e+03 2.2986e+03 -2.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8080e+01 1.4227e+02 -2.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0989e+02 8.4534e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4112e+03 3.5263e+03 -2.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1257e+01 2.2577e+02 -2.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9080e+02 6.4779e+02 -2.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2157e+03 2.2189e+03 -2.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7966e+01 1.4973e+02 -2.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0353e+02 8.7628e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5374e+03 3.4957e+03 -2.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4599e+01 2.3415e+02 -2.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7653e+02 6.5751e+02 -2.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1999e+03 2.2873e+03 -3.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8136e+01 1.5064e+02 -3.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1188e+02 8.2875e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4138e+03 3.2930e+03 -3.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4067e+01 2.4015e+02 -3.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9675e+02 6.3558e+02 -3.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1914e+03 2.2257e+03 -3.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8544e+01 1.4661e+02 -3.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1353e+02 8.5148e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5364e+03 3.4704e+03 -3.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2039e+01 2.3940e+02 -3.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7713e+02 6.4221e+02 -3.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2654e+03 2.3064e+03 -3.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7921e+01 1.4516e+02 -3.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9939e+02 8.4140e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5259e+03 3.3719e+03 -3.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8194e+01 2.2649e+02 -3.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9601e+02 6.1080e+02 -3.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2196e+03 2.3170e+03 -3.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1705e+01 1.5324e+02 -3.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2095e+02 8.4345e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5023e+03 3.3316e+03 -3.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9696e+01 2.3873e+02 -3.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7987e+02 6.3314e+02 -3.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2912e+03 2.2492e+03 -3.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1935e+01 1.4880e+02 -3.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9344e+02 8.4432e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4997e+03 3.3247e+03 -3.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6729e+01 2.2363e+02 -3.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0789e+02 6.2146e+02 -3.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2812e+03 2.3369e+03 -3.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2039e+01 1.5747e+02 -3.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9186e+02 8.1130e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5414e+03 3.3878e+03 -3.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1757e+01 2.3219e+02 -3.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0429e+02 6.2298e+02 -3.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2550e+03 2.2433e+03 -3.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2285e+01 1.4815e+02 -3.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1311e+02 8.8099e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4969e+03 3.4108e+03 -3.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0046e+02 2.2744e+02 -3.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8429e+02 6.2971e+02 -3.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2348e+03 2.1992e+03 -3.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0031e+01 1.5798e+02 -3.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9259e+02 8.3066e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4993e+03 3.2888e+03 -3.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3328e+01 2.4203e+02 -3.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8675e+02 6.3647e+02 -3.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2543e+03 2.2505e+03 -3.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0566e+01 1.4480e+02 -3.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9174e+02 8.8102e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4864e+03 3.4513e+03 -3.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8808e+01 2.3438e+02 -3.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8855e+02 6.2136e+02 -3.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2056e+03 2.2819e+03 -3.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2172e+01 1.5853e+02 -3.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9796e+02 8.6204e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4548e+03 3.5497e+03 -3.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6434e+01 2.3033e+02 -3.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8886e+02 6.1057e+02 -3.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2041e+03 2.3287e+03 -4.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0239e+01 1.5026e+02 -4.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1579e+02 8.5794e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5056e+03 3.3568e+03 -4.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8674e+01 2.3948e+02 -4.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0335e+02 6.3668e+02 -4.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2266e+03 2.2473e+03 -4.1500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4567e+01 1.5455e+02 -4.1500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1249e+02 8.1661e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4499e+03 3.3114e+03 -4.1500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3054e+01 2.3136e+02 -4.1500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7894e+02 6.5349e+02 -4.1500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2778e+03 2.1547e+03 -4.2500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3204e+01 1.5114e+02 -4.2500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0341e+02 8.4277e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5053e+03 3.3563e+03 -4.2500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8757e+01 2.2333e+02 -4.2500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0019e+02 6.4678e+02 -4.2500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2348e+03 2.2716e+03 -4.3500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2582e+01 1.5548e+02 -4.3500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1617e+02 8.1179e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4105e+03 3.3408e+03 -4.3500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0020e+02 2.2490e+02 -4.3500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7391e+02 6.2507e+02 -4.3500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2255e+03 2.2522e+03 -4.4500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2969e+01 1.5757e+02 -4.4500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9770e+02 8.4404e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4503e+03 3.4497e+03 -4.4500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.8641e+01 2.2794e+02 -4.4500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8590e+02 6.3100e+02 -4.4500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3072e+03 2.1880e+03 -4.5500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4984e+01 1.5702e+02 -4.5500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1859e+02 8.8318e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4918e+03 3.2869e+03 -4.5500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4300e+01 2.2776e+02 -4.5500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9758e+02 6.1629e+02 -4.5500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2307e+03 2.2786e+03 -4.6500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3305e+01 1.4824e+02 -4.6500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9417e+02 8.6938e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5143e+03 3.4942e+03 -4.6500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3025e+01 2.2868e+02 -4.6500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8804e+02 6.5104e+02 -4.6500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2389e+03 2.2192e+03 -4.7500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2437e+01 1.5451e+02 -4.7500e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9832e+02 8.1975e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4415e+03 3.3154e+03 -4.7500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6862e+01 2.4049e+02 -4.7500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9053e+02 6.4840e+02 -4.7500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2342e+03 2.3107e+03 -4.8500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4977e+01 1.5231e+02 -4.8500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0162e+02 8.4111e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5142e+03 3.2894e+03 -4.8500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.9263e+01 2.2702e+02 -4.8500e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9171e+02 6.1191e+02 -4.8500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2054e+03 2.2890e+03 -4.9500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2540e+01 1.5216e+02 -4.9500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0831e+02 8.2566e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5304e+03 3.3213e+03 -4.9500e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3075e+01 2.3822e+02 -4.9500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1017e+02 6.3025e+02 -4.9500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2320e+03 2.3465e+03 +5.0000e+01 0.0000e+00 3.0000e+01 2.5000e+01 1.5606e+01 9.6046e+01 +5.0000e+01 0.0000e+00 3.0000e+01 1.0000e+02 3.8519e+02 8.9716e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.8200e+02 1.5032e+03 3.2671e+03 +5.0000e+01 0.0000e+00 3.0000e+01 1.8220e+03 7.4660e+01 2.1133e+02 +5.0000e+01 0.0000e+00 3.0000e+01 7.9700e+03 4.1500e+02 6.0974e+02 +5.0000e+01 0.0000e+00 3.0000e+01 3.5920e+04 1.2827e+03 2.2959e+03 +1.5204e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5603e+01 9.2510e+01 +1.5204e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8297e+02 8.5130e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4161e+03 3.4851e+03 +1.5204e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2045e+01 2.1442e+02 +1.5204e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1677e+02 6.2407e+02 +1.5204e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2663e+03 2.3338e+03 +2.5408e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.6366e+01 9.3543e+01 +2.5408e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.6136e+02 8.4677e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5129e+03 3.5034e+03 +2.5408e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.1123e+01 2.2543e+02 +2.5408e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.4347e+02 6.5359e+02 +2.5408e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2158e+03 2.3554e+03 +3.5612e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.5981e+01 9.3973e+01 +3.5612e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.7641e+02 8.6617e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5054e+03 3.4991e+03 +3.5612e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.2118e+01 2.1138e+02 +3.5612e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2440e+02 6.4941e+02 +3.5612e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.3020e+03 2.3466e+03 +4.5816e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8785e+01 1.0889e+02 +4.5816e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9850e+02 8.5479e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4083e+03 3.4963e+03 +4.5816e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.8620e+01 2.1678e+02 +4.5816e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2793e+02 6.3598e+02 +4.5816e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2196e+03 2.2412e+03 +5.6020e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8525e+01 1.1133e+02 +5.6020e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9753e+02 8.6251e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4942e+03 3.5131e+03 +5.6020e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.5944e+01 2.3371e+02 +5.6020e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.0939e+02 6.1540e+02 +5.6020e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2397e+03 2.3132e+03 +6.6224e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8689e+01 1.1003e+02 +6.6224e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.8302e+02 8.1974e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4260e+03 3.4989e+03 +6.6224e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.2381e+01 2.3498e+02 +6.6224e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1104e+02 6.5562e+02 +6.6224e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2166e+03 2.3490e+03 +7.6429e+02 0.0000e+00 3.0000e+01 2.5000e+01 1.8309e+01 1.0647e+02 +7.6429e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9946e+02 8.1501e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5265e+03 3.4564e+03 +7.6429e+02 0.0000e+00 3.0000e+01 1.8220e+03 7.7327e+01 2.2469e+02 +7.6429e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.2125e+02 6.2057e+02 +7.6429e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2726e+03 2.3345e+03 +8.6633e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1328e+01 1.2342e+02 +8.6633e+02 0.0000e+00 3.0000e+01 1.0000e+02 4.2183e+02 8.2353e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.5354e+03 3.5192e+03 +8.6633e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1432e+01 2.3799e+02 +8.6633e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.1647e+02 6.2336e+02 +8.6633e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2688e+03 2.3384e+03 +9.6837e+02 0.0000e+00 3.0000e+01 2.5000e+01 2.1199e+01 1.2374e+02 +9.6837e+02 0.0000e+00 3.0000e+01 1.0000e+02 3.9738e+02 8.4230e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.8200e+02 1.4646e+03 3.3011e+03 +9.6837e+02 0.0000e+00 3.0000e+01 1.8220e+03 8.1993e+01 2.2868e+02 +9.6837e+02 0.0000e+00 3.0000e+01 7.9700e+03 4.3144e+02 6.3013e+02 +9.6837e+02 0.0000e+00 3.0000e+01 3.5920e+04 1.2143e+03 2.2167e+03 +1.0704e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1469e+01 1.1775e+02 +1.0704e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1509e+02 8.7510e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4920e+03 3.3553e+03 +1.0704e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4999e+01 2.3355e+02 +1.0704e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2070e+02 6.4082e+02 +1.0704e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.1888e+03 2.2539e+03 +1.1724e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1188e+01 1.2397e+02 +1.1724e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1035e+02 8.4336e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5244e+03 3.4664e+03 +1.1724e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.3320e+01 2.3924e+02 +1.1724e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1676e+02 6.4500e+02 +1.1724e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3046e+03 2.2683e+03 +1.2745e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1608e+01 1.2223e+02 +1.2745e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.8776e+02 8.5215e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5077e+03 3.3253e+03 +1.2745e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.2602e+01 2.4414e+02 +1.2745e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9790e+02 6.0698e+02 +1.2745e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2090e+03 2.2844e+03 +1.3765e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.1214e+01 1.2295e+02 +1.3765e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9100e+02 8.2347e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5303e+03 3.3509e+03 +1.3765e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7446e+01 2.3867e+02 +1.3765e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.3435e+02 5.9844e+02 +1.3765e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2254e+03 2.1671e+03 +1.4786e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3874e+01 1.2952e+02 +1.4786e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2650e+02 8.3204e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5097e+03 3.5291e+03 +1.4786e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2258e+01 2.2705e+02 +1.4786e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1204e+02 6.4131e+02 +1.4786e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2140e+03 2.1710e+03 +1.5806e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4476e+01 1.3067e+02 +1.5806e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2429e+02 8.8372e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4682e+03 3.5048e+03 +1.5806e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0070e+01 2.4261e+02 +1.5806e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1940e+02 6.5024e+02 +1.5806e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2490e+03 2.2790e+03 +1.6827e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4133e+01 1.2661e+02 +1.6827e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2478e+02 8.4708e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4092e+03 3.3138e+03 +1.6827e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0613e+01 2.4592e+02 +1.6827e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0889e+02 6.1549e+02 +1.6827e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3036e+03 2.2417e+03 +1.7847e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3911e+01 1.3046e+02 +1.7847e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2146e+02 8.5448e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4688e+03 3.4341e+03 +1.7847e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.8268e+01 2.3633e+02 +1.7847e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9646e+02 6.2443e+02 +1.7847e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3046e+03 2.3417e+03 +1.8867e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.3556e+01 1.3905e+02 +1.8867e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0851e+02 8.6441e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4133e+03 3.4519e+03 +1.8867e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.7074e+01 2.2931e+02 +1.8867e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.2219e+02 6.3849e+02 +1.8867e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2320e+03 2.2737e+03 +1.9888e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.4114e+01 1.3419e+02 +1.9888e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2730e+02 8.6813e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5116e+03 3.2653e+03 +1.9888e+03 0.0000e+00 3.0000e+01 1.8220e+03 8.4782e+01 2.3191e+02 +1.9888e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9307e+02 6.0247e+02 +1.9888e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2594e+03 2.1716e+03 +2.0908e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7125e+01 1.3835e+02 +2.0908e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1291e+02 8.2919e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4762e+03 3.2894e+03 +2.0908e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3909e+01 2.3123e+02 +2.0908e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1411e+02 6.0495e+02 +2.0908e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2736e+03 2.2501e+03 +2.1929e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5927e+01 1.3775e+02 +2.1929e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0857e+02 8.7900e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4204e+03 3.2969e+03 +2.1929e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1328e+01 2.4547e+02 +2.1929e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1122e+02 6.0887e+02 +2.1929e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2325e+03 2.2430e+03 +2.2949e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.6466e+01 1.4223e+02 +2.2949e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9750e+02 8.2999e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5190e+03 3.4143e+03 +2.2949e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0534e+01 2.2686e+02 +2.2949e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8470e+02 6.2387e+02 +2.2949e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3057e+03 2.2634e+03 +2.3969e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7194e+01 1.3788e+02 +2.3969e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0436e+02 8.5087e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4702e+03 3.4273e+03 +2.3969e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0233e+01 2.4573e+02 +2.3969e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9560e+02 6.5777e+02 +2.3969e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2301e+03 2.3404e+03 +2.4990e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5965e+01 1.3594e+02 +2.4990e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0391e+02 8.7976e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4245e+03 3.5097e+03 +2.4990e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4302e+01 2.4087e+02 +2.4990e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9836e+02 6.2446e+02 +2.4990e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2371e+03 2.1872e+03 +2.6010e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.5599e+01 1.4449e+02 +2.6010e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9919e+02 8.4703e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4335e+03 3.2928e+03 +2.6010e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0165e+01 2.2902e+02 +2.6010e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7989e+02 6.4923e+02 +2.6010e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2662e+03 2.1977e+03 +2.7031e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7619e+01 1.4593e+02 +2.7031e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1157e+02 8.2439e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5014e+03 3.5535e+03 +2.7031e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3633e+01 2.4034e+02 +2.7031e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9419e+02 6.2174e+02 +2.7031e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2331e+03 2.1575e+03 +2.8051e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9016e+01 1.5350e+02 +2.8051e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1546e+02 8.2468e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4890e+03 3.4021e+03 +2.8051e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1567e+01 2.2608e+02 +2.8051e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9143e+02 6.2606e+02 +2.8051e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2069e+03 2.2966e+03 +2.9071e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7609e+01 1.4929e+02 +2.9071e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2932e+02 8.8045e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4214e+03 3.3545e+03 +2.9071e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.1376e+01 2.3736e+02 +2.9071e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9422e+02 6.3765e+02 +2.9071e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2772e+03 2.2733e+03 +3.0092e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8409e+01 1.5025e+02 +3.0092e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2510e+02 8.0933e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4715e+03 3.3544e+03 +3.0092e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2744e+01 2.3631e+02 +3.0092e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7580e+02 6.1658e+02 +3.0092e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2570e+03 2.3300e+03 +3.1112e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9725e+01 1.4391e+02 +3.1112e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2754e+02 8.5695e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4535e+03 3.3952e+03 +3.1112e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.0874e+01 2.2690e+02 +3.1112e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8478e+02 6.1954e+02 +3.1112e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2868e+03 2.1938e+03 +3.2133e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.8879e+01 1.4675e+02 +3.2133e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9582e+02 8.1620e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4859e+03 3.2470e+03 +3.2133e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4619e+01 2.3150e+02 +3.2133e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8577e+02 6.4483e+02 +3.2133e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2692e+03 2.3082e+03 +3.3153e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.7708e+01 1.4521e+02 +3.3153e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2056e+02 8.5777e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5207e+03 3.5285e+03 +3.3153e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2469e+01 2.3651e+02 +3.3153e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0313e+02 6.0714e+02 +3.3153e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2741e+03 2.3038e+03 +3.4173e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0433e+01 1.5763e+02 +3.4173e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0402e+02 8.7872e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4227e+03 3.4858e+03 +3.4173e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7655e+01 2.2335e+02 +3.4173e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8139e+02 6.0888e+02 +3.4173e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2395e+03 2.2904e+03 +3.5194e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1628e+01 1.4889e+02 +3.5194e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1783e+02 8.3463e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5369e+03 3.4505e+03 +3.5194e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3081e+01 2.2217e+02 +3.5194e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0273e+02 6.4240e+02 +3.5194e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2030e+03 2.3307e+03 +3.6214e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1363e+01 1.4516e+02 +3.6214e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9396e+02 8.5422e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4936e+03 3.4384e+03 +3.6214e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4984e+01 2.2766e+02 +3.6214e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0723e+02 6.1819e+02 +3.6214e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2651e+03 2.1447e+03 +3.7235e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.1743e+01 1.4574e+02 +3.7235e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9875e+02 8.7826e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4072e+03 3.4710e+03 +3.7235e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7492e+01 2.3601e+02 +3.7235e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9074e+02 6.0640e+02 +3.7235e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2081e+03 2.1700e+03 +3.8255e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9782e+01 1.5309e+02 +3.8255e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0955e+02 8.2608e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5373e+03 3.3086e+03 +3.8255e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7866e+01 2.2745e+02 +3.8255e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0504e+02 6.5760e+02 +3.8255e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3063e+03 2.3156e+03 +3.9276e+03 0.0000e+00 3.0000e+01 2.5000e+01 2.9858e+01 1.5070e+02 +3.9276e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2754e+02 8.7186e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4989e+03 3.5045e+03 +3.9276e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.6990e+01 2.3450e+02 +3.9276e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.1077e+02 6.1764e+02 +3.9276e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2007e+03 2.3129e+03 +4.0296e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.0244e+01 1.5649e+02 +4.0296e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2716e+02 8.7276e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4284e+03 3.3413e+03 +4.0296e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7552e+01 2.3344e+02 +4.0296e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7408e+02 6.2319e+02 +4.0296e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2739e+03 2.2989e+03 +4.1316e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2120e+01 1.4770e+02 +4.1316e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2481e+02 8.2810e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4980e+03 3.2320e+03 +4.1316e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5473e+01 2.3833e+02 +4.1316e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9768e+02 6.0198e+02 +4.1316e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2081e+03 2.2211e+03 +4.2337e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4061e+01 1.5519e+02 +4.2337e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0291e+02 8.2246e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4968e+03 3.2816e+03 +4.2337e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7601e+01 2.2712e+02 +4.2337e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7813e+02 6.1279e+02 +4.2337e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2776e+03 2.3223e+03 +4.3357e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4862e+01 1.5547e+02 +4.3357e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.1347e+02 8.1402e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4877e+03 3.2334e+03 +4.3357e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.3674e+01 2.4144e+02 +4.3357e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0534e+02 6.1165e+02 +4.3357e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2684e+03 2.2538e+03 +4.4378e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.3594e+01 1.6007e+02 +4.4378e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2552e+02 8.3098e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5240e+03 3.5471e+03 +4.4378e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7724e+01 2.4151e+02 +4.4378e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9422e+02 6.3991e+02 +4.4378e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2298e+03 2.2566e+03 +4.5398e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4216e+01 1.5941e+02 +4.5398e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2319e+02 8.7728e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4371e+03 3.4961e+03 +4.5398e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0025e+02 2.3968e+02 +4.5398e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.8610e+02 6.3267e+02 +4.5398e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2130e+03 2.2504e+03 +4.6418e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2566e+01 1.4697e+02 +4.6418e+03 0.0000e+00 3.0000e+01 1.0000e+02 3.9844e+02 8.3702e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4047e+03 3.2312e+03 +4.6418e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.2777e+01 2.3249e+02 +4.6418e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.7673e+02 6.2574e+02 +4.6418e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.3066e+03 2.3129e+03 +4.7439e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2164e+01 1.5814e+02 +4.7439e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2067e+02 8.6221e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.5238e+03 3.5021e+03 +4.7439e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.5642e+01 2.3404e+02 +4.7439e+03 0.0000e+00 3.0000e+01 7.9700e+03 3.9722e+02 6.5210e+02 +4.7439e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2102e+03 2.2731e+03 +4.8459e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2371e+01 1.5482e+02 +4.8459e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0348e+02 8.3424e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4448e+03 3.2629e+03 +4.8459e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.4784e+01 2.2872e+02 +4.8459e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0674e+02 6.2209e+02 +4.8459e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2435e+03 2.3019e+03 +4.9480e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.2148e+01 1.5122e+02 +4.9480e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.2037e+02 8.8401e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4135e+03 3.4919e+03 +4.9480e+03 0.0000e+00 3.0000e+01 1.8220e+03 9.7472e+01 2.3739e+02 +4.9480e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0967e+02 6.4613e+02 +4.9480e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2232e+03 2.2441e+03 +5.0500e+03 0.0000e+00 3.0000e+01 2.5000e+01 3.4708e+01 1.5626e+02 +5.0500e+03 0.0000e+00 3.0000e+01 1.0000e+02 4.0571e+02 8.4041e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.8200e+02 1.4309e+03 3.5081e+03 +5.0500e+03 0.0000e+00 3.0000e+01 1.8220e+03 1.0064e+02 2.2170e+02 +5.0500e+03 0.0000e+00 3.0000e+01 7.9700e+03 4.0311e+02 6.4101e+02 +5.0500e+03 0.0000e+00 3.0000e+01 3.5920e+04 1.2109e+03 2.3528e+03 diff --git a/tutorials/assets/em1dtm_stitched_data_skytem.obs b/tutorials/assets/em1dtm_stitched_data_skytem.obs index 473e09a..5b4f375 100644 --- a/tutorials/assets/em1dtm_stitched_data_skytem.obs +++ b/tutorials/assets/em1dtm_stitched_data_skytem.obs @@ -1,1300 +1,1300 @@ -5.0000e+01 0.0000e+00 3.0000e+01 1.2715e-05 -4.4341e-10 -5.0000e+01 0.0000e+00 3.0000e+01 2.0715e-05 -2.8703e-10 -5.0000e+01 0.0000e+00 3.0000e+01 3.3215e-05 -2.2219e-10 -5.0000e+01 0.0000e+00 3.0000e+01 5.3715e-05 -1.6286e-10 -5.0000e+01 0.0000e+00 3.0000e+01 8.6215e-05 -1.3026e-10 -5.0000e+01 0.0000e+00 3.0000e+01 1.3672e-04 -9.4049e-11 -5.0000e+01 0.0000e+00 3.0000e+01 2.1771e-04 -6.7800e-11 -5.0000e+01 0.0000e+00 3.0000e+01 3.4671e-04 -3.6816e-11 -5.0000e+01 0.0000e+00 3.0000e+01 5.5172e-04 -2.0144e-11 -5.0000e+01 0.0000e+00 3.0000e+01 8.7721e-04 -9.5597e-12 -5.0000e+01 0.0000e+00 3.0000e+01 1.3942e-03 -3.5498e-12 -5.0000e+01 0.0000e+00 3.0000e+01 2.2167e-03 -1.2551e-12 -5.0000e+01 0.0000e+00 3.0000e+01 3.5237e-03 -4.3560e-13 -5.0000e+01 0.0000e+00 3.0000e+01 5.6012e-03 -1.2020e-13 -5.0000e+01 0.0000e+00 3.0000e+01 8.9022e-03 -3.4596e-14 -5.0000e+01 0.0000e+00 3.0000e+01 1.0215e-05 -3.5739e-09 -5.0000e+01 0.0000e+00 3.0000e+01 1.6215e-05 -1.8139e-09 -5.0000e+01 0.0000e+00 3.0000e+01 2.6215e-05 -8.0955e-10 -5.0000e+01 0.0000e+00 3.0000e+01 4.2215e-05 -4.2453e-10 -5.0000e+01 0.0000e+00 3.0000e+01 6.8215e-05 -2.3473e-10 -5.0000e+01 0.0000e+00 3.0000e+01 1.0872e-04 -1.3549e-10 -5.0000e+01 0.0000e+00 3.0000e+01 1.7222e-04 -8.8742e-11 -5.0000e+01 0.0000e+00 3.0000e+01 2.7471e-04 -4.7212e-11 -5.0000e+01 0.0000e+00 3.0000e+01 4.3771e-04 -2.2474e-11 -5.0000e+01 0.0000e+00 3.0000e+01 6.9571e-04 -9.1489e-12 -5.0000e+01 0.0000e+00 3.0000e+01 1.1057e-03 -3.1136e-12 -1.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2129e-10 -1.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7273e-10 -1.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0581e-10 -1.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5039e-10 -1.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2131e-10 -1.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.2491e-11 -1.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.1579e-11 -1.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.0799e-11 -1.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2279e-11 -1.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1208e-11 -1.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.7291e-12 -1.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7635e-12 -1.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.7414e-13 -1.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5344e-13 -1.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -3.9728e-14 -1.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4294e-09 -1.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9361e-09 -1.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.2916e-10 -1.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0520e-10 -1.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0584e-10 -1.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1630e-10 -1.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.4648e-11 -1.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.3500e-11 -1.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0682e-11 -1.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.9216e-12 -1.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6024e-12 -2.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.1820e-10 -2.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7642e-10 -2.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0369e-10 -2.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5843e-10 -2.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2185e-10 -2.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4034e-11 -2.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.2084e-11 -2.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.0066e-11 -2.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3327e-11 -2.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0492e-11 -2.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.8020e-12 -2.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7584e-12 -2.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.3885e-13 -2.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6469e-13 -2.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0466e-14 -2.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.5263e-09 -2.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8391e-09 -2.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.3827e-10 -2.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1700e-10 -2.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.2077e-10 -2.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2586e-10 -2.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0797e-11 -2.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.9832e-11 -2.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1180e-11 -2.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -1.0044e-11 -2.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5394e-12 -3.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0057e-10 -3.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7881e-10 -3.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9521e-10 -3.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5250e-10 -3.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1725e-10 -3.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4926e-11 -3.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.2370e-11 -3.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.9654e-11 -3.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3330e-11 -3.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0551e-11 -3.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.5348e-12 -3.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7875e-12 -3.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.2409e-13 -3.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5324e-13 -3.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2633e-14 -3.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4600e-09 -3.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8018e-09 -3.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7269e-10 -3.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9344e-10 -3.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0239e-10 -3.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2118e-10 -3.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.5157e-11 -3.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.1775e-11 -3.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.2767e-11 -3.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.9180e-12 -3.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5618e-12 -4.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2835e-10 -4.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8351e-10 -4.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9665e-10 -4.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5269e-10 -4.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2018e-10 -4.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4973e-11 -4.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.4063e-11 -4.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1693e-11 -4.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.1520e-11 -4.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1118e-11 -4.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.6485e-12 -4.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7068e-12 -4.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.4789e-13 -4.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6158e-13 -4.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0836e-14 -4.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6946e-09 -4.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8370e-09 -4.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.5952e-10 -4.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0691e-10 -4.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0696e-10 -4.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1712e-10 -4.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0297e-11 -4.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.0104e-11 -4.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0873e-11 -4.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4868e-12 -4.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.4264e-12 -5.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.9894e-10 -5.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9403e-10 -5.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.1347e-10 -5.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5634e-10 -5.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1595e-10 -5.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.2740e-11 -5.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.4123e-11 -5.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1052e-11 -5.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3298e-11 -5.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1180e-11 -5.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.7216e-12 -5.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.6671e-12 -5.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.4864e-13 -5.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5829e-13 -5.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2894e-14 -5.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.5771e-09 -5.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9134e-09 -5.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4317e-10 -5.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0477e-10 -5.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1172e-10 -5.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2325e-10 -5.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.3384e-11 -5.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.1685e-11 -5.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0525e-11 -5.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.3887e-12 -5.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.3760e-12 -6.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.9521e-10 -6.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.7466e-10 -6.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0201e-10 -6.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.6004e-10 -6.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1240e-10 -6.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4150e-11 -6.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.0270e-11 -6.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1409e-11 -6.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2937e-11 -6.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1493e-11 -6.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.4608e-12 -6.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7577e-12 -6.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.7407e-13 -6.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5737e-13 -6.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0843e-14 -6.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.3906e-09 -6.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8384e-09 -6.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4515e-10 -6.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8288e-10 -6.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0260e-10 -6.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1555e-10 -6.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.5217e-11 -6.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.0670e-11 -6.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1403e-11 -6.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4437e-12 -6.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.3856e-12 -7.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2492e-10 -7.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8909e-10 -7.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9496e-10 -7.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4761e-10 -7.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1359e-10 -7.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -7.9914e-11 -7.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.9402e-11 -7.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7016e-11 -7.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3276e-11 -7.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.2464e-11 -7.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.2611e-12 -7.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1563e-12 -7.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.2573e-13 -7.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.1279e-13 -7.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.9720e-14 -7.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4627e-09 -7.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.7963e-09 -7.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7259e-10 -7.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8775e-10 -7.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1098e-10 -7.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1457e-10 -7.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.5299e-11 -7.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.7078e-11 -7.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9351e-11 -7.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4115e-12 -7.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.8796e-12 -8.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0510e-10 -8.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.6901e-10 -8.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9709e-10 -8.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4725e-10 -8.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1323e-10 -8.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.2149e-11 -8.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.0287e-11 -8.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7499e-11 -8.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3210e-11 -8.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1271e-11 -8.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.3003e-12 -8.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1544e-12 -8.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.1557e-13 -8.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.1188e-13 -8.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.4408e-14 -8.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6317e-09 -8.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9154e-09 -8.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.2481e-10 -8.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9249e-10 -8.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1414e-10 -8.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1780e-10 -8.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.5304e-11 -8.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.6143e-11 -8.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9528e-11 -8.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -8.7918e-12 -8.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6336e-12 -9.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0242e-10 -9.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8166e-10 -9.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9180e-10 -9.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4974e-10 -9.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1250e-10 -9.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4847e-11 -9.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.5088e-11 -9.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.8848e-11 -9.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2997e-11 -9.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.2273e-11 -9.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.1768e-12 -9.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1303e-12 -9.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.2010e-13 -9.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.0796e-13 -9.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.3781e-14 -9.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4953e-09 -9.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9342e-09 -9.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4505e-10 -9.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1389e-10 -9.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1304e-10 -9.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1984e-10 -9.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.4192e-11 -9.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.8118e-11 -9.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.8958e-11 -9.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.6332e-12 -9.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6097e-12 -1.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0890e-10 -1.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7245e-10 -1.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9979e-10 -1.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4616e-10 -1.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1215e-10 -1.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0270e-11 -1.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.9568e-11 -1.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.8349e-11 -1.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2653e-11 -1.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1257e-11 -1.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4840e-12 -1.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.1753e-12 -1.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -6.6946e-13 -1.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -1.9685e-13 -1.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.1926e-14 -1.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5714e-09 -1.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9285e-09 -1.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4618e-10 -1.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1991e-10 -1.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0984e-10 -1.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1804e-10 -1.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9524e-11 -1.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7685e-11 -1.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0293e-11 -1.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.0021e-12 -1.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6689e-12 -1.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9718e-10 -1.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7477e-10 -1.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0906e-10 -1.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4540e-10 -1.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0895e-10 -1.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.5212e-11 -1.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5993e-11 -1.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6441e-11 -1.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3702e-11 -1.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1326e-11 -1.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4216e-12 -1.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.0501e-12 -1.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.1114e-13 -1.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0462e-13 -1.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.3409e-14 -1.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4435e-09 -1.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7581e-09 -1.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9541e-10 -1.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8771e-10 -1.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0388e-10 -1.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2011e-10 -1.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8926e-11 -1.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6339e-11 -1.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.9061e-11 -1.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.4319e-12 -1.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.9099e-12 -1.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2568e-10 -1.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7439e-10 -1.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9518e-10 -1.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4391e-10 -1.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1210e-10 -1.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1362e-11 -1.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.8441e-11 -1.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6625e-11 -1.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3224e-11 -1.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1891e-11 -1.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5659e-12 -1.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.1618e-12 -1.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.1572e-13 -1.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0510e-13 -1.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.4696e-14 -1.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6636e-09 -1.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8598e-09 -1.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4467e-10 -1.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2037e-10 -1.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2152e-10 -1.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2216e-10 -1.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3430e-11 -1.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7981e-11 -1.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0057e-11 -1.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.3162e-12 -1.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5975e-12 -1.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0197e-10 -1.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8349e-10 -1.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0137e-10 -1.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5519e-10 -1.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1024e-10 -1.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8633e-11 -1.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6230e-11 -1.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6592e-11 -1.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3219e-11 -1.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2059e-11 -1.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1399e-12 -1.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -1.9762e-12 -1.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -6.8357e-13 -1.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0948e-13 -1.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.2919e-14 -1.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6929e-09 -1.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8061e-09 -1.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1762e-10 -1.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1835e-10 -1.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2290e-10 -1.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1857e-10 -1.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9523e-11 -1.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6467e-11 -1.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0060e-11 -1.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.0411e-12 -1.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.8198e-12 -1.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0762e-10 -1.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7534e-10 -1.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8978e-10 -1.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5561e-10 -1.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1313e-10 -1.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0659e-11 -1.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3860e-11 -1.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5136e-11 -1.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2094e-11 -1.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1783e-11 -1.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8915e-12 -1.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2989e-12 -1.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9809e-13 -1.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4722e-13 -1.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.4571e-14 -1.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5681e-09 -1.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8693e-09 -1.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7015e-10 -1.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0115e-10 -1.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1826e-10 -1.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2008e-10 -1.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3360e-11 -1.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5266e-11 -1.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8254e-11 -1.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.7340e-12 -1.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6557e-12 -1.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8526e-10 -1.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7987e-10 -1.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0029e-10 -1.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5168e-10 -1.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0737e-10 -1.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7011e-11 -1.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4887e-11 -1.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4676e-11 -1.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1518e-11 -1.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1342e-11 -1.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6670e-12 -1.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2745e-12 -1.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9602e-13 -1.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5988e-13 -1.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.1782e-14 -1.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6397e-09 -1.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8025e-09 -1.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.5616e-10 -1.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9105e-10 -1.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1277e-10 -1.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2381e-10 -1.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8013e-11 -1.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5756e-11 -1.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7190e-11 -1.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5454e-12 -1.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6277e-12 -1.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2610e-10 -1.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7629e-10 -1.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0220e-10 -1.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5186e-10 -1.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1542e-10 -1.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0724e-11 -1.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1813e-11 -1.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.7061e-11 -1.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0549e-11 -1.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2409e-11 -1.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9555e-12 -1.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3161e-12 -1.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9886e-13 -1.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.3849e-13 -1.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.3304e-14 -1.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6120e-09 -1.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9398e-09 -1.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1341e-10 -1.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9655e-10 -1.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1106e-10 -1.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2563e-10 -1.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6010e-11 -1.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5834e-11 -1.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8417e-11 -1.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.8149e-12 -1.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5357e-12 -1.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0129e-10 -1.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7628e-10 -1.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9415e-10 -1.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4210e-10 -1.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1370e-10 -1.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0506e-11 -1.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4540e-11 -1.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5282e-11 -1.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1967e-11 -1.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2159e-11 -1.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9293e-12 -1.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4364e-12 -1.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.0400e-13 -1.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5467e-13 -1.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.4046e-14 -1.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6904e-09 -1.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7847e-09 -1.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4371e-10 -1.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1537e-10 -1.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0513e-10 -1.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2365e-10 -1.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3623e-11 -1.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6493e-11 -1.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7717e-11 -1.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.3936e-12 -1.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6296e-12 -1.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2245e-10 -1.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8546e-10 -1.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9641e-10 -1.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5293e-10 -1.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1082e-10 -1.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9065e-11 -1.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2962e-11 -1.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5848e-11 -1.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1175e-11 -1.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1325e-11 -1.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4559e-12 -1.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4006e-12 -1.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.3883e-13 -1.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5411e-13 -1.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.5137e-14 -1.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4961e-09 -1.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8854e-09 -1.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8620e-10 -1.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1036e-10 -1.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1247e-10 -1.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1927e-10 -1.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9023e-11 -1.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4670e-11 -1.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8175e-11 -1.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.3471e-12 -1.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6285e-12 -1.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8822e-10 -1.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7536e-10 -1.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9477e-10 -1.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4305e-10 -1.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0625e-10 -1.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9300e-11 -1.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4698e-11 -1.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4790e-11 -1.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2665e-11 -1.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2228e-11 -1.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7607e-12 -1.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3964e-12 -1.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.4649e-13 -1.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5181e-13 -1.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.6702e-14 -1.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4187e-09 -1.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7677e-09 -1.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2842e-10 -1.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0908e-10 -1.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1876e-10 -1.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2352e-10 -1.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5875e-11 -1.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5183e-11 -1.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7169e-11 -1.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.4400e-12 -1.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.7166e-12 -2.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2549e-10 -2.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8298e-10 -2.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0044e-10 -2.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5551e-10 -2.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0496e-10 -2.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6476e-11 -2.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6876e-11 -2.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6952e-11 -2.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2183e-11 -2.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1300e-11 -2.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8034e-12 -2.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2839e-12 -2.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.2059e-13 -2.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4953e-13 -2.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.1890e-14 -2.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5436e-09 -2.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8781e-09 -2.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3459e-10 -2.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9659e-10 -2.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0577e-10 -2.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1878e-10 -2.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7731e-11 -2.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3892e-11 -2.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7840e-11 -2.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5888e-12 -2.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6133e-12 -2.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8787e-10 -2.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6813e-10 -2.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9121e-10 -2.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4973e-10 -2.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0873e-10 -2.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8873e-11 -2.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4208e-11 -2.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2197e-11 -2.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0973e-11 -2.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1683e-11 -2.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9192e-12 -2.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5534e-12 -2.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.1500e-13 -2.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9160e-13 -2.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6280e-14 -2.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4918e-09 -2.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8616e-09 -2.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9668e-10 -2.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1992e-10 -2.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2350e-10 -2.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1745e-10 -2.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6008e-11 -2.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3789e-11 -2.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7233e-11 -2.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7927e-12 -2.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3524e-12 -2.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9618e-10 -2.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8864e-10 -2.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0787e-10 -2.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4214e-10 -2.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1435e-10 -2.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5457e-11 -2.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5482e-11 -2.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4924e-11 -2.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0572e-11 -2.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1809e-11 -2.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9762e-12 -2.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3708e-12 -2.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2005e-13 -2.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9759e-13 -2.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.9715e-14 -2.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5818e-09 -2.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7706e-09 -2.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6197e-10 -2.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1280e-10 -2.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1668e-10 -2.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2468e-10 -2.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8456e-11 -2.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5201e-11 -2.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6133e-11 -2.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8759e-12 -2.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3901e-12 -2.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1056e-10 -2.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6396e-10 -2.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8944e-10 -2.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5239e-10 -2.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1096e-10 -2.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0830e-11 -2.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4790e-11 -2.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4307e-11 -2.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1260e-11 -2.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1813e-11 -2.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4740e-12 -2.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4425e-12 -2.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.8258e-13 -2.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8416e-13 -2.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.0946e-14 -2.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5446e-09 -2.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7999e-09 -2.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8367e-10 -2.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1831e-10 -2.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1389e-10 -2.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2088e-10 -2.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8818e-11 -2.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6114e-11 -2.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7206e-11 -2.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9786e-12 -2.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4277e-12 -2.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1736e-10 -2.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9021e-10 -2.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9327e-10 -2.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4578e-10 -2.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0454e-10 -2.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5088e-11 -2.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0690e-11 -2.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4067e-11 -2.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0286e-11 -2.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1328e-11 -2.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7098e-12 -2.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5660e-12 -2.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2213e-13 -2.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8856e-13 -2.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6323e-14 -2.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4364e-09 -2.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9450e-09 -2.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4901e-10 -2.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1491e-10 -2.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2253e-10 -2.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1860e-10 -2.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4867e-11 -2.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4563e-11 -2.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6374e-11 -2.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7053e-12 -2.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2085e-12 -2.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0982e-10 -2.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8448e-10 -2.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9663e-10 -2.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5036e-10 -2.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1398e-10 -2.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0045e-11 -2.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5510e-11 -2.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3679e-11 -2.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0998e-11 -2.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1468e-11 -2.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7960e-12 -2.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3854e-12 -2.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9136e-13 -2.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8430e-13 -2.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8862e-14 -2.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5308e-09 -2.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7673e-09 -2.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6599e-10 -2.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8645e-10 -2.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1880e-10 -2.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2048e-10 -2.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8306e-11 -2.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6369e-11 -2.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7726e-11 -2.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.0139e-12 -2.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2397e-12 -2.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1114e-10 -2.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6820e-10 -2.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0690e-10 -2.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5257e-10 -2.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1120e-10 -2.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9438e-11 -2.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3662e-11 -2.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5367e-11 -2.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0051e-11 -2.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1434e-11 -2.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7431e-12 -2.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4485e-12 -2.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.1408e-13 -2.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8169e-13 -2.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8914e-14 -2.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5461e-09 -2.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8075e-09 -2.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3470e-10 -2.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8659e-10 -2.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1196e-10 -2.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2754e-10 -2.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5379e-11 -2.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6545e-11 -2.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6750e-11 -2.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4235e-12 -2.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4695e-12 -2.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1879e-10 -2.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7818e-10 -2.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0392e-10 -2.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4201e-10 -2.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0911e-10 -2.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0526e-11 -2.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1309e-11 -2.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3133e-11 -2.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9389e-11 -2.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1941e-11 -2.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0376e-12 -2.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3912e-12 -2.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9217e-13 -2.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9766e-13 -2.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.4571e-14 -2.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6486e-09 -2.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9267e-09 -2.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2902e-10 -2.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9753e-10 -2.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0978e-10 -2.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2437e-10 -2.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0950e-11 -2.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3894e-11 -2.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7396e-11 -2.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.1442e-12 -2.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3584e-12 -2.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2738e-10 -2.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8468e-10 -2.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8944e-10 -2.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5325e-10 -2.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1408e-10 -2.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1049e-11 -2.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2608e-11 -2.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3887e-11 -2.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1385e-11 -2.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0981e-11 -2.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7459e-12 -2.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4405e-12 -2.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.2813e-13 -2.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8934e-13 -2.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.6121e-14 -2.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4998e-09 -2.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7843e-09 -2.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4874e-10 -2.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8565e-10 -2.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2374e-10 -2.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2188e-10 -2.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9888e-11 -2.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3460e-11 -2.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6694e-11 -2.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9775e-12 -2.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5009e-12 -2.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9974e-10 -2.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8831e-10 -2.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0423e-10 -2.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5274e-10 -2.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0845e-10 -2.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1043e-11 -2.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5373e-11 -2.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5609e-11 -2.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9534e-11 -2.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1210e-11 -2.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4992e-12 -2.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5103e-12 -2.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.0911e-13 -2.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9351e-13 -2.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.8581e-14 -2.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3644e-09 -2.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9503e-09 -2.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1218e-10 -2.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2478e-10 -2.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2520e-10 -2.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2076e-10 -2.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9566e-11 -2.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4481e-11 -2.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6323e-11 -2.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9561e-12 -2.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3156e-12 -3.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2215e-10 -3.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7245e-10 -3.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0040e-10 -3.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4663e-10 -3.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0425e-10 -3.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8086e-11 -3.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2651e-11 -3.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4143e-11 -3.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0061e-11 -3.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1064e-11 -3.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5400e-12 -3.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5335e-12 -3.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5242e-13 -3.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.1019e-13 -3.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.0037e-14 -3.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6032e-09 -3.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8455e-09 -3.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3324e-10 -3.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9476e-10 -3.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2057e-10 -3.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2170e-10 -3.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6601e-11 -3.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7182e-11 -3.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7197e-11 -3.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6189e-12 -3.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1128e-12 -3.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1343e-10 -3.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6478e-10 -3.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8891e-10 -3.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5303e-10 -3.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1158e-10 -3.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5854e-11 -3.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4151e-11 -3.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3923e-11 -3.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9698e-11 -3.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0337e-11 -3.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7605e-12 -3.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5402e-12 -3.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0106e-12 -3.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3087e-13 -3.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.6725e-14 -3.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6985e-09 -3.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9333e-09 -3.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7614e-10 -3.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2429e-10 -3.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1354e-10 -3.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1856e-10 -3.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9402e-11 -3.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5018e-11 -3.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7520e-11 -3.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8364e-12 -3.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0125e-12 -3.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9685e-10 -3.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7181e-10 -3.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0501e-10 -3.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5299e-10 -3.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1503e-10 -3.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7660e-11 -3.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3041e-11 -3.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3764e-11 -3.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8847e-11 -3.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1408e-11 -3.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6915e-12 -3.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6342e-12 -3.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.7001e-13 -3.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3740e-13 -3.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.7245e-14 -3.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5294e-09 -3.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7762e-09 -3.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6912e-10 -3.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0916e-10 -3.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1433e-10 -3.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2528e-10 -3.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5725e-11 -3.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5520e-11 -3.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6738e-11 -3.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4239e-12 -3.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2522e-12 -3.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9198e-10 -3.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7496e-10 -3.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9209e-10 -3.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5029e-10 -3.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1371e-10 -3.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2273e-11 -3.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1471e-11 -3.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4472e-11 -3.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9556e-11 -3.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0279e-11 -3.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6898e-12 -3.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6487e-12 -3.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8874e-13 -3.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4029e-13 -3.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8922e-14 -3.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6158e-09 -3.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8341e-09 -3.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2559e-10 -3.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1343e-10 -3.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0977e-10 -3.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2663e-10 -3.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7131e-11 -3.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5827e-11 -3.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7441e-11 -3.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7741e-12 -3.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1928e-12 -3.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1116e-10 -3.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9084e-10 -3.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0312e-10 -3.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4820e-10 -3.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1426e-10 -3.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2638e-11 -3.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1454e-11 -3.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3896e-11 -3.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8790e-11 -3.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0291e-11 -3.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2868e-12 -3.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6195e-12 -3.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.7339e-13 -3.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3941e-13 -3.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8018e-14 -3.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5277e-09 -3.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8865e-09 -3.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8728e-10 -3.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8596e-10 -3.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1194e-10 -3.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2069e-10 -3.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9528e-11 -3.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3644e-11 -3.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6158e-11 -3.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6793e-12 -3.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2619e-12 -3.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1812e-10 -3.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8471e-10 -3.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9519e-10 -3.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4343e-10 -3.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0813e-10 -3.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6301e-11 -3.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4818e-11 -3.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2188e-11 -3.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9883e-11 -3.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0486e-11 -3.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3811e-12 -3.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4921e-12 -3.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.4283e-13 -3.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2676e-13 -3.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.2525e-14 -3.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3707e-09 -3.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8833e-09 -3.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.5353e-10 -3.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1956e-10 -3.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1794e-10 -3.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2738e-10 -3.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5272e-11 -3.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5106e-11 -3.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6437e-11 -3.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.1849e-12 -3.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0099e-12 -3.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2162e-10 -3.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8692e-10 -3.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9712e-10 -3.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5285e-10 -3.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1247e-10 -3.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6473e-11 -3.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0588e-11 -3.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5055e-11 -3.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0498e-11 -3.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0344e-11 -3.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3688e-12 -3.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5395e-12 -3.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.3371e-13 -3.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.1251e-13 -3.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8821e-14 -3.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4087e-09 -3.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7721e-09 -3.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9175e-10 -3.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1377e-10 -3.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2366e-10 -3.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1619e-10 -3.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4916e-11 -3.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3989e-11 -3.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6419e-11 -3.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9145e-12 -3.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2705e-12 -3.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2254e-10 -3.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8948e-10 -3.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9321e-10 -3.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5300e-10 -3.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1421e-10 -3.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5305e-11 -3.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1649e-11 -3.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1736e-11 -3.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0099e-11 -3.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1127e-11 -3.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3936e-12 -3.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6277e-12 -3.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8347e-13 -3.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2105e-13 -3.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8401e-14 -3.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5958e-09 -3.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9185e-09 -3.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3012e-10 -3.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2594e-10 -3.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2629e-10 -3.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2074e-10 -3.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9977e-11 -3.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6760e-11 -3.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6725e-11 -3.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7757e-12 -3.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1053e-12 -3.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0420e-10 -3.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6473e-10 -3.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0195e-10 -3.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4942e-10 -3.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1214e-10 -3.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8063e-11 -3.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2719e-11 -3.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2497e-11 -3.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8881e-11 -3.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0765e-11 -3.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4209e-12 -3.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4009e-12 -3.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9939e-13 -3.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3729e-13 -3.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.6021e-14 -3.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5025e-09 -3.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9249e-09 -3.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1294e-10 -3.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1261e-10 -3.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1845e-10 -3.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1816e-10 -3.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7530e-11 -3.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4162e-11 -3.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6670e-11 -3.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3751e-12 -3.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1407e-12 -3.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0342e-10 -3.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6448e-10 -3.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9446e-10 -3.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4815e-10 -3.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0746e-10 -3.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2217e-11 -3.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1519e-11 -3.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4939e-11 -3.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8818e-11 -3.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0022e-11 -3.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1119e-12 -3.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3837e-12 -3.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0313e-12 -3.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3856e-13 -3.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0493e-13 -3.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3892e-09 -3.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7792e-09 -3.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6556e-10 -3.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9674e-10 -3.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1804e-10 -3.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2282e-10 -3.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9991e-11 -3.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6709e-11 -3.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7330e-11 -3.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8585e-12 -3.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1906e-12 -4.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9607e-10 -4.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6487e-10 -4.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0837e-10 -4.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4362e-10 -4.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0977e-10 -4.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1815e-11 -4.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1300e-11 -4.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3981e-11 -4.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9706e-11 -4.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0833e-11 -4.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2616e-12 -4.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4027e-12 -4.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6631e-13 -4.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5178e-13 -4.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0216e-13 -4.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6737e-09 -4.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8641e-09 -4.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1731e-10 -4.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0690e-10 -4.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1096e-10 -4.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1975e-10 -4.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5144e-11 -4.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4279e-11 -4.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6540e-11 -4.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2493e-12 -4.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0460e-12 -4.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2333e-10 -4.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7384e-10 -4.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9544e-10 -4.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4314e-10 -4.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1152e-10 -4.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9601e-11 -4.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2766e-11 -4.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3420e-11 -4.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9542e-11 -4.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0908e-11 -4.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2680e-12 -4.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5706e-12 -4.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0026e-12 -4.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5337e-13 -4.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0054e-13 -4.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4398e-09 -4.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8343e-09 -4.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4582e-10 -4.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0562e-10 -4.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2214e-10 -4.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2500e-10 -4.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7517e-11 -4.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4468e-11 -4.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7197e-11 -4.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5610e-12 -4.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0181e-12 -4.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9836e-10 -4.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9053e-10 -4.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9078e-10 -4.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4311e-10 -4.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0404e-10 -4.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9375e-11 -4.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4336e-11 -4.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3820e-11 -4.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9921e-11 -4.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0883e-11 -4.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5150e-12 -4.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5747e-12 -4.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6742e-13 -4.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4686e-13 -4.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7795e-14 -4.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6414e-09 -4.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8645e-09 -4.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3072e-10 -4.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2092e-10 -4.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0917e-10 -4.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2655e-10 -4.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5009e-11 -4.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6448e-11 -4.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7491e-11 -4.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4394e-12 -4.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2011e-12 -4.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9254e-10 -4.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8928e-10 -4.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8909e-10 -4.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4555e-10 -4.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0844e-10 -4.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5139e-11 -4.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4709e-11 -4.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3850e-11 -4.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9243e-11 -4.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0634e-11 -4.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1167e-12 -4.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4370e-12 -4.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0304e-12 -4.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4912e-13 -4.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7833e-14 -4.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3943e-09 -4.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9250e-09 -4.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4960e-10 -4.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9517e-10 -4.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1474e-10 -4.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2475e-10 -4.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5629e-11 -4.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5090e-11 -4.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6870e-11 -4.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7196e-12 -4.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9319e-12 -4.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1993e-10 -4.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6417e-10 -4.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9492e-10 -4.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5121e-10 -4.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0557e-10 -4.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1878e-11 -4.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5501e-11 -4.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1827e-11 -4.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9033e-11 -4.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0978e-11 -4.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4819e-12 -4.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4476e-12 -4.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0362e-12 -4.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3945e-13 -4.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0648e-13 -4.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5243e-09 -4.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8522e-09 -4.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8063e-10 -4.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9782e-10 -4.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0731e-10 -4.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1736e-10 -4.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7394e-11 -4.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5527e-11 -4.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7290e-11 -4.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6645e-12 -4.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9931e-12 -4.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9122e-10 -4.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9185e-10 -4.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9477e-10 -4.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4043e-10 -4.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1507e-10 -4.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0621e-11 -4.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1678e-11 -4.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2655e-11 -4.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9239e-11 -4.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0757e-11 -4.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4738e-12 -4.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3696e-12 -4.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9477e-13 -4.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3686e-13 -4.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0487e-13 -4.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5987e-09 -4.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7838e-09 -4.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7531e-10 -4.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2059e-10 -4.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0448e-10 -4.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2440e-10 -4.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.1378e-11 -4.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6263e-11 -4.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7910e-11 -4.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4913e-12 -4.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1219e-12 -4.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1682e-10 -4.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7853e-10 -4.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9744e-10 -4.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4573e-10 -4.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1092e-10 -4.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6241e-11 -4.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3129e-11 -4.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4073e-11 -4.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9162e-11 -4.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0876e-11 -4.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5191e-12 -4.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4197e-12 -4.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6087e-13 -4.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3889e-13 -4.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.7895e-14 -4.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3648e-09 -4.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8169e-09 -4.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6732e-10 -4.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2609e-10 -4.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1010e-10 -4.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2657e-10 -4.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5493e-11 -4.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3738e-11 -4.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7381e-11 -4.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2153e-12 -4.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9728e-12 -4.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2534e-10 -4.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7329e-10 -4.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9777e-10 -4.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4458e-10 -4.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0878e-10 -4.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5431e-11 -4.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1192e-11 -4.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2543e-11 -4.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8566e-11 -4.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0348e-11 -4.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5223e-12 -4.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3672e-12 -4.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6946e-13 -4.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4231e-13 -4.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.6723e-14 -4.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5036e-09 -4.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7730e-09 -4.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9294e-10 -4.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1406e-10 -4.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0630e-10 -4.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1961e-10 -4.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7836e-11 -4.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3864e-11 -4.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6520e-11 -4.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5631e-12 -4.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.8936e-12 -4.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9869e-10 -4.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8408e-10 -4.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9656e-10 -4.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5141e-10 -4.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0630e-10 -4.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8937e-11 -4.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3686e-11 -4.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4619e-11 -4.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9712e-11 -4.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0087e-11 -4.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2104e-12 -4.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5261e-12 -4.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0419e-12 -4.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3694e-13 -4.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0133e-13 -4.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4534e-09 -4.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8823e-09 -4.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9503e-10 -4.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0592e-10 -4.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1222e-10 -4.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2059e-10 -4.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5678e-11 -4.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7194e-11 -4.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6778e-11 -4.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9542e-12 -4.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0098e-12 -4.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9664e-10 -4.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8509e-10 -4.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9596e-10 -4.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4402e-10 -4.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1032e-10 -4.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8731e-11 -4.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0439e-11 -4.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4109e-11 -4.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8853e-11 -4.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0023e-11 -4.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2708e-12 -4.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3231e-12 -4.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0429e-12 -4.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3343e-13 -4.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0320e-13 -4.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7017e-09 -4.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9113e-09 -4.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1318e-10 -4.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9536e-10 -4.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1360e-10 -4.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2045e-10 -4.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0327e-11 -4.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4036e-11 -4.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6883e-11 -4.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3531e-12 -4.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1198e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.2715e-05 -4.2631e-10 +5.0000e+01 0.0000e+00 3.0000e+01 2.0715e-05 -2.8403e-10 +5.0000e+01 0.0000e+00 3.0000e+01 3.3215e-05 -2.0863e-10 +5.0000e+01 0.0000e+00 3.0000e+01 5.3715e-05 -1.6779e-10 +5.0000e+01 0.0000e+00 3.0000e+01 8.6215e-05 -1.3146e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.3672e-04 -9.7454e-11 +5.0000e+01 0.0000e+00 3.0000e+01 2.1771e-04 -6.3052e-11 +5.0000e+01 0.0000e+00 3.0000e+01 3.4671e-04 -3.7947e-11 +5.0000e+01 0.0000e+00 3.0000e+01 5.5172e-04 -1.9629e-11 +5.0000e+01 0.0000e+00 3.0000e+01 8.7721e-04 -9.1949e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.3942e-03 -3.8319e-12 +5.0000e+01 0.0000e+00 3.0000e+01 2.2167e-03 -1.3786e-12 +5.0000e+01 0.0000e+00 3.0000e+01 3.5237e-03 -4.0902e-13 +5.0000e+01 0.0000e+00 3.0000e+01 5.6012e-03 -1.2181e-13 +5.0000e+01 0.0000e+00 3.0000e+01 8.9022e-03 -3.1796e-14 +5.0000e+01 0.0000e+00 3.0000e+01 1.0215e-05 -3.6693e-09 +5.0000e+01 0.0000e+00 3.0000e+01 1.6215e-05 -1.7696e-09 +5.0000e+01 0.0000e+00 3.0000e+01 2.6215e-05 -8.2731e-10 +5.0000e+01 0.0000e+00 3.0000e+01 4.2215e-05 -3.9150e-10 +5.0000e+01 0.0000e+00 3.0000e+01 6.8215e-05 -2.2198e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.0872e-04 -1.3396e-10 +5.0000e+01 0.0000e+00 3.0000e+01 1.7222e-04 -8.2787e-11 +5.0000e+01 0.0000e+00 3.0000e+01 2.7471e-04 -4.8253e-11 +5.0000e+01 0.0000e+00 3.0000e+01 4.3771e-04 -2.2157e-11 +5.0000e+01 0.0000e+00 3.0000e+01 6.9571e-04 -8.8775e-12 +5.0000e+01 0.0000e+00 3.0000e+01 1.1057e-03 -3.0308e-12 +1.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.1659e-10 +1.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9507e-10 +1.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0912e-10 +1.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.6284e-10 +1.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1661e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.1838e-11 +1.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.3225e-11 +1.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1342e-11 +1.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2989e-11 +1.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1243e-11 +1.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.4749e-12 +1.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7570e-12 +1.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.8062e-13 +1.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6350e-13 +1.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0216e-14 +1.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.5684e-09 +1.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8775e-09 +1.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.3434e-10 +1.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8598e-10 +1.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1785e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2214e-10 +1.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0793e-11 +1.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.3754e-11 +1.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.2165e-11 +1.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.5353e-12 +1.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5755e-12 +2.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.1526e-10 +2.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8558e-10 +2.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0565e-10 +2.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.6285e-10 +2.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1340e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.4768e-11 +2.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.5054e-11 +2.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.8543e-11 +2.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3198e-11 +2.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0536e-11 +2.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.4771e-12 +2.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7182e-12 +2.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.3311e-13 +2.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5641e-13 +2.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2171e-14 +2.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6228e-09 +2.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8505e-09 +2.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7396e-10 +2.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9719e-10 +2.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1314e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2158e-10 +2.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.0529e-11 +2.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.0667e-11 +2.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.0993e-11 +2.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.4215e-12 +2.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5748e-12 +3.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2910e-10 +3.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8338e-10 +3.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9469e-10 +3.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5219e-10 +3.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1263e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.0137e-11 +3.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.9694e-11 +3.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7929e-11 +3.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2936e-11 +3.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1261e-11 +3.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.8708e-12 +3.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.6544e-12 +3.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.3608e-13 +3.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5668e-13 +3.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.1325e-14 +3.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6701e-09 +3.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9418e-09 +3.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.5456e-10 +3.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0931e-10 +3.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0326e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2222e-10 +3.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.6076e-11 +3.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.9747e-11 +3.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.2405e-11 +3.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.8987e-12 +3.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.4249e-12 +4.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.9000e-10 +4.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8633e-10 +4.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.0965e-10 +4.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.4737e-10 +4.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1640e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -9.1785e-11 +4.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.9716e-11 +4.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1511e-11 +4.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2660e-11 +4.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.0805e-11 +4.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.5822e-12 +4.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7511e-12 +4.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.5563e-13 +4.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6340e-13 +4.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2770e-14 +4.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.4788e-09 +4.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.9368e-09 +4.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.5014e-10 +4.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.9418e-10 +4.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0679e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1628e-10 +4.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.3934e-11 +4.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.9742e-11 +4.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.2028e-11 +4.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.1955e-12 +4.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.3983e-12 +5.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0031e-10 +5.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9132e-10 +5.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.1536e-10 +5.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5404e-10 +5.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.2170e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.8147e-11 +5.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.5439e-11 +5.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.8366e-11 +5.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.2337e-11 +5.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1099e-11 +5.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.5563e-12 +5.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7262e-12 +5.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.8164e-13 +5.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.5894e-13 +5.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.0141e-14 +5.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6946e-09 +5.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8875e-09 +5.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.0797e-10 +5.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1828e-10 +5.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0427e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1843e-10 +5.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.8972e-11 +5.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -4.3327e-11 +5.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1113e-11 +5.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.2124e-12 +5.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.4073e-12 +6.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.0077e-10 +6.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9122e-10 +6.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -2.1447e-10 +6.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.6203e-10 +6.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.1246e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.6866e-11 +6.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -6.2667e-11 +6.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -4.1629e-11 +6.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.1936e-11 +6.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1135e-11 +6.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -4.6232e-12 +6.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -1.7842e-12 +6.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -5.4903e-13 +6.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.6355e-13 +6.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -4.2611e-14 +6.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.3502e-09 +6.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.7902e-09 +6.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.0898e-10 +6.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1891e-10 +6.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0430e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2587e-10 +6.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -7.1189e-11 +6.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.9933e-11 +6.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -2.1133e-11 +6.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.2637e-12 +6.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.4721e-12 +7.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2637e-10 +7.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9284e-10 +7.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9530e-10 +7.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5476e-10 +7.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.0832e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -7.8753e-11 +7.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.7914e-11 +7.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.6828e-11 +7.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.1959e-11 +7.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1301e-11 +7.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.0883e-12 +7.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1208e-12 +7.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -6.8725e-13 +7.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -2.0593e-13 +7.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.4703e-14 +7.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.7123e-09 +7.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8158e-09 +7.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.4104e-10 +7.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.1672e-10 +7.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.0499e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2451e-10 +7.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.6099e-11 +7.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.5744e-11 +7.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9442e-11 +7.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -8.9152e-12 +7.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.8321e-12 +8.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -3.8980e-10 +8.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.8338e-10 +8.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9562e-10 +8.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5694e-10 +8.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.0703e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -7.9560e-11 +8.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.7867e-11 +8.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.7550e-11 +8.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.1878e-11 +8.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.1411e-11 +8.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.6162e-12 +8.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.0104e-12 +8.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.0299e-13 +8.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.9661e-13 +8.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.0139e-14 +8.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6851e-09 +8.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.8713e-09 +8.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.7586e-10 +8.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -3.8720e-10 +8.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1440e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.2508e-10 +8.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.4460e-11 +8.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.5368e-11 +8.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.9818e-11 +8.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -9.1277e-12 +8.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.5559e-12 +9.5000e+02 0.0000e+00 3.0000e+01 1.2715e-05 -4.2619e-10 +9.5000e+02 0.0000e+00 3.0000e+01 2.0715e-05 -2.9245e-10 +9.5000e+02 0.0000e+00 3.0000e+01 3.3215e-05 -1.9894e-10 +9.5000e+02 0.0000e+00 3.0000e+01 5.3715e-05 -1.5014e-10 +9.5000e+02 0.0000e+00 3.0000e+01 8.6215e-05 -1.0665e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.3672e-04 -8.6070e-11 +9.5000e+02 0.0000e+00 3.0000e+01 2.1771e-04 -5.4681e-11 +9.5000e+02 0.0000e+00 3.0000e+01 3.4671e-04 -3.9694e-11 +9.5000e+02 0.0000e+00 3.0000e+01 5.5172e-04 -2.3032e-11 +9.5000e+02 0.0000e+00 3.0000e+01 8.7721e-04 -1.2303e-11 +9.5000e+02 0.0000e+00 3.0000e+01 1.3942e-03 -5.4588e-12 +9.5000e+02 0.0000e+00 3.0000e+01 2.2167e-03 -2.1203e-12 +9.5000e+02 0.0000e+00 3.0000e+01 3.5237e-03 -7.0647e-13 +9.5000e+02 0.0000e+00 3.0000e+01 5.6012e-03 -1.9419e-13 +9.5000e+02 0.0000e+00 3.0000e+01 8.9022e-03 -5.1780e-14 +9.5000e+02 0.0000e+00 3.0000e+01 1.0215e-05 -3.6191e-09 +9.5000e+02 0.0000e+00 3.0000e+01 1.6215e-05 -1.7898e-09 +9.5000e+02 0.0000e+00 3.0000e+01 2.6215e-05 -8.8557e-10 +9.5000e+02 0.0000e+00 3.0000e+01 4.2215e-05 -4.0442e-10 +9.5000e+02 0.0000e+00 3.0000e+01 6.8215e-05 -2.1727e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.0872e-04 -1.1745e-10 +9.5000e+02 0.0000e+00 3.0000e+01 1.7222e-04 -6.4452e-11 +9.5000e+02 0.0000e+00 3.0000e+01 2.7471e-04 -3.5702e-11 +9.5000e+02 0.0000e+00 3.0000e+01 4.3771e-04 -1.8551e-11 +9.5000e+02 0.0000e+00 3.0000e+01 6.9571e-04 -8.8491e-12 +9.5000e+02 0.0000e+00 3.0000e+01 1.1057e-03 -3.6048e-12 +1.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0624e-10 +1.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9176e-10 +1.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9231e-10 +1.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4368e-10 +1.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0660e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7677e-11 +1.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4838e-11 +1.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.7129e-11 +1.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3340e-11 +1.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1846e-11 +1.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5958e-12 +1.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.0310e-12 +1.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.2811e-13 +1.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0973e-13 +1.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.3536e-14 +1.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6563e-09 +1.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9406e-09 +1.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9030e-10 +1.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0274e-10 +1.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0315e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2024e-10 +1.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3358e-11 +1.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5245e-11 +1.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0334e-11 +1.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.9527e-12 +1.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6710e-12 +1.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1565e-10 +1.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7783e-10 +1.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9224e-10 +1.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4751e-10 +1.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1676e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1335e-11 +1.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5419e-11 +1.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6522e-11 +1.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1925e-11 +1.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1925e-11 +1.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5724e-12 +1.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.0932e-12 +1.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.2343e-13 +1.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0355e-13 +1.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.1735e-14 +1.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4226e-09 +1.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8693e-09 +1.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7658e-10 +1.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9676e-10 +1.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2132e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1329e-10 +1.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5768e-11 +1.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7578e-11 +1.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.9919e-11 +1.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.6460e-12 +1.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6006e-12 +1.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2441e-10 +1.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7985e-10 +1.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9910e-10 +1.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5227e-10 +1.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1427e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.5570e-11 +1.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.9852e-11 +1.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.8133e-11 +1.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2237e-11 +1.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2171e-11 +1.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4304e-12 +1.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -1.9680e-12 +1.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.1864e-13 +1.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0147e-13 +1.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.4575e-14 +1.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6984e-09 +1.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8062e-09 +1.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9149e-10 +1.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1769e-10 +1.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0801e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2395e-10 +1.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6184e-11 +1.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6655e-11 +1.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -2.0227e-11 +1.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.9350e-12 +1.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.7871e-12 +1.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0037e-10 +1.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9243e-10 +1.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9110e-10 +1.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5059e-10 +1.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0733e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2759e-11 +1.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6485e-11 +1.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.9616e-11 +1.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.3774e-11 +1.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1779e-11 +1.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6336e-12 +1.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.0165e-12 +1.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.2677e-13 +1.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.0544e-13 +1.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -5.3126e-14 +1.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6643e-09 +1.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9460e-09 +1.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7076e-10 +1.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2025e-10 +1.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1109e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1914e-10 +1.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9635e-11 +1.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6652e-11 +1.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8524e-11 +1.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -9.3266e-12 +1.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.7643e-12 +1.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0639e-10 +1.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7236e-10 +1.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0345e-10 +1.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4078e-10 +1.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0610e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5224e-11 +1.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4112e-11 +1.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4854e-11 +1.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1743e-11 +1.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2425e-11 +1.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4376e-12 +1.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2423e-12 +1.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.1637e-13 +1.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5259e-13 +1.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.3074e-14 +1.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6273e-09 +1.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8689e-09 +1.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3931e-10 +1.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9211e-10 +1.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1297e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1439e-10 +1.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.3612e-11 +1.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5735e-11 +1.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8260e-11 +1.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.0248e-12 +1.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.5365e-12 +1.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2566e-10 +1.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7726e-10 +1.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0371e-10 +1.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5121e-10 +1.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0863e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7439e-11 +1.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2734e-11 +1.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6654e-11 +1.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1505e-11 +1.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2337e-11 +1.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0100e-12 +1.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2788e-12 +1.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.9936e-13 +1.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5312e-13 +1.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.2593e-14 +1.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5721e-09 +1.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7793e-09 +1.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9087e-10 +1.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2456e-10 +1.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0387e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2599e-10 +1.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9560e-11 +1.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3469e-11 +1.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8107e-11 +1.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.7972e-12 +1.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4602e-12 +1.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1452e-10 +1.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7793e-10 +1.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9834e-10 +1.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4788e-10 +1.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0630e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1813e-11 +1.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1882e-11 +1.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5511e-11 +1.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0963e-11 +1.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2121e-11 +1.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0143e-12 +1.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2404e-12 +1.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.4076e-13 +1.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4614e-13 +1.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.5389e-14 +1.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4811e-09 +1.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9370e-09 +1.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6559e-10 +1.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1392e-10 +1.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2412e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2011e-10 +1.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6270e-11 +1.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5139e-11 +1.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7689e-11 +1.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5728e-12 +1.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4945e-12 +1.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0894e-10 +1.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8010e-10 +1.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0829e-10 +1.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4908e-10 +1.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1114e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0647e-11 +1.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3366e-11 +1.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.6953e-11 +1.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1783e-11 +1.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1656e-11 +1.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8188e-12 +1.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4478e-12 +1.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.3174e-13 +1.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5943e-13 +1.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.2220e-14 +1.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6673e-09 +1.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9045e-09 +1.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3770e-10 +1.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1307e-10 +1.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1711e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1626e-10 +1.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8236e-11 +1.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3834e-11 +1.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.8435e-11 +1.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.2239e-12 +1.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6293e-12 +1.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9316e-10 +1.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7816e-10 +1.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9418e-10 +1.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5073e-10 +1.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1443e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6071e-11 +1.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3966e-11 +1.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5947e-11 +1.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.2392e-11 +1.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1704e-11 +1.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5633e-12 +1.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2330e-12 +1.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.2634e-13 +1.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.3648e-13 +1.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.4861e-14 +1.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6278e-09 +1.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8139e-09 +1.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2360e-10 +1.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0866e-10 +1.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1176e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1748e-10 +1.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9825e-11 +1.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3584e-11 +1.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7042e-11 +1.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.5789e-12 +1.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6751e-12 +1.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0715e-10 +1.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6708e-10 +1.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9814e-10 +1.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5527e-10 +1.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0493e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1434e-11 +1.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3113e-11 +1.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5001e-11 +1.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1841e-11 +1.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.2044e-11 +1.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9367e-12 +1.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4205e-12 +1.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -7.7967e-13 +1.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.4256e-13 +1.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.7293e-14 +1.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5734e-09 +1.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9019e-09 +1.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7994e-10 +1.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2051e-10 +1.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0425e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1551e-10 +1.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7387e-11 +1.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6610e-11 +1.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6901e-11 +1.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.2778e-12 +1.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.6172e-12 +2.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0858e-10 +2.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8252e-10 +2.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9072e-10 +2.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5128e-10 +2.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0538e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.1608e-11 +2.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.6136e-11 +2.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5333e-11 +2.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1107e-11 +2.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1463e-11 +2.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0052e-12 +2.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.2861e-12 +2.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.0699e-13 +2.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.5919e-13 +2.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -6.7167e-14 +2.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5918e-09 +2.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8271e-09 +2.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4388e-10 +2.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1828e-10 +2.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2115e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2527e-10 +2.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4574e-11 +2.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4993e-11 +2.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7459e-11 +2.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.7508e-12 +2.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.7446e-12 +2.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1089e-10 +2.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8380e-10 +2.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9174e-10 +2.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4185e-10 +2.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1302e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0830e-11 +2.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4991e-11 +2.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5604e-11 +2.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0031e-11 +2.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1590e-11 +2.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6693e-12 +2.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3921e-12 +2.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.4569e-13 +2.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9484e-13 +2.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.0884e-14 +2.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4478e-09 +2.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9008e-09 +2.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9353e-10 +2.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2756e-10 +2.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2438e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1891e-10 +2.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6769e-11 +2.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4754e-11 +2.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6537e-11 +2.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4750e-12 +2.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.4754e-12 +2.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2567e-10 +2.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6833e-10 +2.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9044e-10 +2.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4084e-10 +2.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0709e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2442e-11 +2.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5318e-11 +2.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4995e-11 +2.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0972e-11 +2.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1593e-11 +2.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8593e-12 +2.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6124e-12 +2.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.1246e-13 +2.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.0065e-13 +2.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.7659e-14 +2.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6229e-09 +2.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8948e-09 +2.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.8839e-10 +2.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9626e-10 +2.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0436e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1962e-10 +2.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4953e-11 +2.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4159e-11 +2.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6647e-11 +2.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4411e-12 +2.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2763e-12 +2.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2036e-10 +2.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7974e-10 +2.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9177e-10 +2.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4352e-10 +2.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0861e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9061e-11 +2.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1090e-11 +2.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3472e-11 +2.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0246e-11 +2.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1203e-11 +2.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.8881e-12 +2.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3786e-12 +2.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.3252e-13 +2.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8327e-13 +2.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.1458e-14 +2.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7141e-09 +2.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8926e-09 +2.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.7625e-10 +2.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9634e-10 +2.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0368e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2513e-10 +2.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6124e-11 +2.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6830e-11 +2.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6989e-11 +2.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4504e-12 +2.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3936e-12 +2.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1682e-10 +2.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8295e-10 +2.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0721e-10 +2.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5394e-10 +2.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1504e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7062e-11 +2.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0666e-11 +2.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2579e-11 +2.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0161e-11 +2.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1504e-11 +2.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0190e-12 +2.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5652e-12 +2.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9923e-13 +2.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.8935e-13 +2.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.0330e-14 +2.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6748e-09 +2.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8834e-09 +2.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3743e-10 +2.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9006e-10 +2.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1333e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1793e-10 +2.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7412e-11 +2.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5905e-11 +2.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6085e-11 +2.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9484e-12 +2.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2603e-12 +2.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0501e-10 +2.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8727e-10 +2.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0787e-10 +2.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5344e-10 +2.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0684e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2880e-11 +2.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4938e-11 +2.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4831e-11 +2.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1128e-11 +2.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1044e-11 +2.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.9611e-12 +2.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3836e-12 +2.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.4421e-13 +2.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.0409e-13 +2.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.7829e-14 +2.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5100e-09 +2.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9249e-09 +2.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4655e-10 +2.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0526e-10 +2.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0752e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2365e-10 +2.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6660e-11 +2.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5453e-11 +2.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7265e-11 +2.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.0454e-12 +2.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3553e-12 +2.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9428e-10 +2.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6846e-10 +2.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0963e-10 +2.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4815e-10 +2.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0536e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.8224e-11 +2.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0547e-11 +2.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3181e-11 +2.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9479e-11 +2.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1610e-11 +2.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6658e-12 +2.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5883e-12 +2.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.9766e-13 +2.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9052e-13 +2.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.7684e-14 +2.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6081e-09 +2.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8657e-09 +2.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3039e-10 +2.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0240e-10 +2.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2460e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1839e-10 +2.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5577e-11 +2.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3265e-11 +2.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6955e-11 +2.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7183e-12 +2.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.3936e-12 +2.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9930e-10 +2.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7728e-10 +2.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9829e-10 +2.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5029e-10 +2.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0417e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5722e-11 +2.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1443e-11 +2.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5381e-11 +2.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0076e-11 +2.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1926e-11 +2.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -6.0074e-12 +2.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5448e-12 +2.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6229e-13 +2.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.9450e-13 +2.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.1628e-14 +2.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4490e-09 +2.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8857e-09 +2.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2285e-10 +2.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2468e-10 +2.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0640e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2720e-10 +2.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9725e-11 +2.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3575e-11 +2.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6765e-11 +2.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -8.1393e-12 +2.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2049e-12 +2.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9696e-10 +2.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6397e-10 +2.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0473e-10 +2.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5405e-10 +2.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0792e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0322e-11 +2.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2547e-11 +2.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4509e-11 +2.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.1043e-11 +2.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1378e-11 +2.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7616e-12 +2.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4018e-12 +2.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6410e-13 +2.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -2.7480e-13 +2.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.3716e-14 +2.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7107e-09 +2.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8840e-09 +2.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3153e-10 +2.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9814e-10 +2.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0879e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2343e-10 +2.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0644e-11 +2.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6214e-11 +2.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7744e-11 +2.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.8185e-12 +2.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2904e-12 +2.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2620e-10 +2.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6831e-10 +2.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9385e-10 +2.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4207e-10 +2.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0905e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2840e-11 +2.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3148e-11 +2.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2679e-11 +2.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0502e-11 +2.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0918e-11 +2.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7784e-12 +2.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3958e-12 +2.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -8.7800e-13 +2.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.0459e-13 +2.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -7.9385e-14 +2.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6550e-09 +2.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7779e-09 +2.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9488e-10 +2.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1770e-10 +2.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2232e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1944e-10 +2.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6858e-11 +2.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5481e-11 +2.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7540e-11 +2.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6787e-12 +2.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2911e-12 +3.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9356e-10 +3.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8605e-10 +3.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0600e-10 +3.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4933e-10 +3.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1316e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2780e-11 +3.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3886e-11 +3.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4279e-11 +3.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0645e-11 +3.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1379e-11 +3.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.7032e-12 +3.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5351e-12 +3.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5317e-13 +3.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3002e-13 +3.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.0092e-14 +3.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5721e-09 +3.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8166e-09 +3.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4164e-10 +3.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0920e-10 +3.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1867e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2248e-10 +3.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.4486e-11 +3.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.7150e-11 +3.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6705e-11 +3.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4616e-12 +3.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1964e-12 +3.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0579e-10 +3.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8769e-10 +3.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0593e-10 +3.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4128e-10 +3.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1496e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9158e-11 +3.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.5313e-11 +3.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3648e-11 +3.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8740e-11 +3.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0748e-11 +3.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4060e-12 +3.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6263e-12 +3.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.7185e-13 +3.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3103e-13 +3.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.4087e-14 +3.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5353e-09 +3.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8304e-09 +3.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2155e-10 +3.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2520e-10 +3.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1407e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2700e-10 +3.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5811e-11 +3.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3759e-11 +3.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7776e-11 +3.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3212e-12 +3.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2326e-12 +3.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0261e-10 +3.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7120e-10 +3.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9039e-10 +3.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4123e-10 +3.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0394e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0894e-11 +3.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3273e-11 +3.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4125e-11 +3.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9580e-11 +3.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1232e-11 +3.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6522e-12 +3.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5733e-12 +3.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8120e-13 +3.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3413e-13 +3.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.4240e-14 +3.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6823e-09 +3.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9009e-09 +3.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.5197e-10 +3.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0953e-10 +3.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1859e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1638e-10 +3.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9025e-11 +3.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6706e-11 +3.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7454e-11 +3.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2867e-12 +3.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2019e-12 +3.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2687e-10 +3.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8985e-10 +3.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9776e-10 +3.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4075e-10 +3.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1022e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0480e-11 +3.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1788e-11 +3.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4029e-11 +3.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0358e-11 +3.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0532e-11 +3.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6850e-12 +3.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6133e-12 +3.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9592e-13 +3.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.0857e-13 +3.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.9220e-14 +3.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5565e-09 +3.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7976e-09 +3.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.3740e-10 +3.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1653e-10 +3.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0406e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1643e-10 +3.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6353e-11 +3.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3667e-11 +3.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6287e-11 +3.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.6337e-12 +3.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1390e-12 +3.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0426e-10 +3.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7487e-10 +3.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0171e-10 +3.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5127e-10 +3.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1325e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0506e-11 +3.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0943e-11 +3.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1758e-11 +3.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8797e-11 +3.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0442e-11 +3.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4009e-12 +3.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4872e-12 +3.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.3126e-13 +3.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2838e-13 +3.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.1029e-14 +3.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5078e-09 +3.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7816e-09 +3.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4912e-10 +3.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8666e-10 +3.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1171e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2564e-10 +3.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5373e-11 +3.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5751e-11 +3.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6977e-11 +3.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4435e-12 +3.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2689e-12 +3.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9127e-10 +3.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8690e-10 +3.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0832e-10 +3.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4627e-10 +3.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0582e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7944e-11 +3.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4727e-11 +3.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2197e-11 +3.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0071e-11 +3.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0471e-11 +3.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3276e-12 +3.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.6361e-12 +3.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9927e-13 +3.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3805e-13 +3.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.4530e-14 +3.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6697e-09 +3.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8701e-09 +3.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6826e-10 +3.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0224e-10 +3.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0777e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2239e-10 +3.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0154e-11 +3.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4453e-11 +3.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7531e-11 +3.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.1510e-12 +3.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1449e-12 +3.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9741e-10 +3.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6883e-10 +3.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0417e-10 +3.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4582e-10 +3.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0916e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5501e-11 +3.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0860e-11 +3.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3222e-11 +3.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0513e-11 +3.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.1053e-11 +3.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3638e-12 +3.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4453e-12 +3.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.3516e-13 +3.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.0874e-13 +3.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.1521e-14 +3.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6674e-09 +3.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8933e-09 +3.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2719e-10 +3.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2024e-10 +3.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2220e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1767e-10 +3.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.7372e-11 +3.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6126e-11 +3.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6633e-11 +3.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3487e-12 +3.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0079e-12 +3.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2098e-10 +3.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6576e-10 +3.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.8906e-10 +3.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4801e-10 +3.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0777e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9975e-11 +3.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4747e-11 +3.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4073e-11 +3.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8825e-11 +3.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0542e-11 +3.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.6410e-12 +3.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4684e-12 +3.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8634e-13 +3.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.1094e-13 +3.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.1383e-14 +3.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3935e-09 +3.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8476e-09 +3.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1414e-10 +3.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1579e-10 +3.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1225e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2594e-10 +3.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6580e-11 +3.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5506e-11 +3.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6991e-11 +3.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4278e-12 +3.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1141e-12 +3.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8532e-10 +3.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7172e-10 +3.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0276e-10 +3.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4295e-10 +3.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1340e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.7460e-11 +3.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4864e-11 +3.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.5150e-11 +3.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9140e-11 +3.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0835e-11 +3.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5890e-12 +3.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4695e-12 +3.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.8916e-13 +3.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2073e-13 +3.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -8.8330e-14 +3.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3520e-09 +3.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8719e-09 +3.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6857e-10 +3.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9417e-10 +3.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1224e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2587e-10 +3.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8538e-11 +3.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5779e-11 +3.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6219e-11 +3.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5241e-12 +3.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.0104e-12 +3.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.8588e-10 +3.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6633e-10 +3.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9886e-10 +3.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4945e-10 +3.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0893e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2606e-11 +3.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0834e-11 +3.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1804e-11 +3.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9247e-11 +3.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -9.9803e-12 +3.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4763e-12 +3.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4175e-12 +3.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0245e-12 +3.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2821e-13 +3.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0206e-13 +3.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5529e-09 +3.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9124e-09 +3.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2627e-10 +3.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.1626e-10 +3.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2143e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2037e-10 +3.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8553e-11 +3.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5224e-11 +3.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7153e-11 +3.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3880e-12 +3.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1452e-12 +4.0500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1825e-10 +4.0500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.6629e-10 +4.0500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9457e-10 +4.0500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4876e-10 +4.0500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0403e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5190e-11 +4.0500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.1303e-11 +4.0500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4432e-11 +4.0500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0271e-11 +4.0500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0124e-11 +4.0500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.1464e-12 +4.0500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4839e-12 +4.0500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5285e-13 +4.0500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2996e-13 +4.0500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0376e-13 +4.0500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5328e-09 +4.0500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8424e-09 +4.0500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2160e-10 +4.0500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2570e-10 +4.0500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2314e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2257e-10 +4.0500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9306e-11 +4.0500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.3850e-11 +4.0500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6396e-11 +4.0500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.5137e-12 +4.0500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1967e-12 +4.1500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9682e-10 +4.1500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7372e-10 +4.1500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0497e-10 +4.1500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5090e-10 +4.1500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0418e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.6031e-11 +4.1500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3178e-11 +4.1500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4696e-11 +4.1500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9134e-11 +4.1500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0993e-11 +4.1500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2671e-12 +4.1500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4571e-12 +4.1500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0441e-12 +4.1500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4703e-13 +4.1500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.8801e-14 +4.1500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3617e-09 +4.1500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8517e-09 +4.1500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1311e-10 +4.1500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2801e-10 +4.1500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2284e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2019e-10 +4.1500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6499e-11 +4.1500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4908e-11 +4.1500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6750e-11 +4.1500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.9738e-12 +4.1500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9965e-12 +4.2500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.2518e-10 +4.2500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9002e-10 +4.2500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0126e-10 +4.2500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4267e-10 +4.2500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0941e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.2639e-11 +4.2500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0801e-11 +4.2500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.3402e-11 +4.2500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9186e-11 +4.2500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0800e-11 +4.2500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3632e-12 +4.2500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3630e-12 +4.2500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.6269e-13 +4.2500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5183e-13 +4.2500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0015e-13 +4.2500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5349e-09 +4.2500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7780e-09 +4.2500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1373e-10 +4.2500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8746e-10 +4.2500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2403e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2008e-10 +4.2500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.5452e-11 +4.2500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4365e-11 +4.2500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7607e-11 +4.2500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3549e-12 +4.2500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9658e-12 +4.3500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1406e-10 +4.3500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8704e-10 +4.3500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9013e-10 +4.3500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4668e-10 +4.3500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1416e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9903e-11 +4.3500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3250e-11 +4.3500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4952e-11 +4.3500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -2.0262e-11 +4.3500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0351e-11 +4.3500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.0911e-12 +4.3500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.3328e-12 +4.3500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5848e-13 +4.3500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.5017e-13 +4.3500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.6188e-14 +4.3500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7134e-09 +4.3500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8423e-09 +4.3500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1286e-10 +4.3500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2508e-10 +4.3500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2304e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1792e-10 +4.3500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9298e-11 +4.3500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4242e-11 +4.3500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7180e-11 +4.3500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4661e-12 +4.3500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1687e-12 +4.4500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.0024e-10 +4.4500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8107e-10 +4.4500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0753e-10 +4.4500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4609e-10 +4.4500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1503e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0655e-11 +4.4500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2225e-11 +4.4500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.2673e-11 +4.4500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9097e-11 +4.4500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0023e-11 +4.4500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5345e-12 +4.4500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4221e-12 +4.4500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0469e-12 +4.4500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.2774e-13 +4.4500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.9495e-14 +4.4500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5105e-09 +4.4500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.7971e-09 +4.4500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.1109e-10 +4.4500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9041e-10 +4.4500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.1869e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1770e-10 +4.4500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8335e-11 +4.4500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.4092e-11 +4.4500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7237e-11 +4.4500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.4598e-12 +4.4500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2004e-12 +4.5500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9321e-10 +4.5500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7382e-10 +4.5500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0014e-10 +4.5500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4560e-10 +4.5500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1114e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5550e-11 +4.5500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.2562e-11 +4.5500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1802e-11 +4.5500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9662e-11 +4.5500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0675e-11 +4.5500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.2212e-12 +4.5500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4450e-12 +4.5500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0195e-12 +4.5500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.6205e-13 +4.5500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -9.8914e-14 +4.5500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.7098e-09 +4.5500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8300e-09 +4.5500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.9700e-10 +4.5500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2026e-10 +4.5500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0675e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1661e-10 +4.5500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.9757e-11 +4.5500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5959e-11 +4.5500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7112e-11 +4.5500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.7092e-12 +4.5500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9038e-12 +4.6500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1810e-10 +4.6500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8917e-10 +4.6500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0864e-10 +4.6500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4686e-10 +4.6500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.1273e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -8.0698e-11 +4.6500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.0473e-11 +4.6500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4814e-11 +4.6500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8791e-11 +4.6500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0798e-11 +4.6500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.4743e-12 +4.6500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4974e-12 +4.6500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -1.0285e-12 +4.6500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.6167e-13 +4.6500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0469e-13 +4.6500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.3626e-09 +4.6500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8683e-09 +4.6500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.0935e-10 +4.6500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.9996e-10 +4.6500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0543e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2185e-10 +4.6500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.8067e-11 +4.6500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.5381e-11 +4.6500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.7328e-11 +4.6500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.1935e-12 +4.6500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.2116e-12 +4.7500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9875e-10 +4.7500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.8932e-10 +4.7500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0466e-10 +4.7500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.4653e-10 +4.7500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0639e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.9879e-11 +4.7500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4398e-11 +4.7500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4645e-11 +4.7500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.8629e-11 +4.7500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0750e-11 +4.7500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3586e-12 +4.7500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.5566e-12 +4.7500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5891e-13 +4.7500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3762e-13 +4.7500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0465e-13 +4.7500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.4503e-09 +4.7500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9106e-09 +4.7500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.4767e-10 +4.7500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -3.8624e-10 +4.7500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2084e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2063e-10 +4.7500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.1059e-11 +4.7500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6481e-11 +4.7500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6334e-11 +4.7500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.3157e-12 +4.7500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -2.9809e-12 +4.8500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -4.1812e-10 +4.8500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.7091e-10 +4.8500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -2.0142e-10 +4.8500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5374e-10 +4.8500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0624e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5629e-11 +4.8500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.3338e-11 +4.8500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.1818e-11 +4.8500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9188e-11 +4.8500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0639e-11 +4.8500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.5538e-12 +4.8500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4438e-12 +4.8500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.9864e-13 +4.8500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.4472e-13 +4.8500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0537e-13 +4.8500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.5031e-09 +4.8500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.8554e-09 +4.8500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.2249e-10 +4.8500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.0741e-10 +4.8500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.0677e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.1612e-10 +4.8500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -6.6649e-11 +4.8500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6044e-11 +4.8500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6971e-11 +4.8500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2861e-12 +4.8500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1049e-12 +4.9500e+03 0.0000e+00 3.0000e+01 1.2715e-05 -3.9135e-10 +4.9500e+03 0.0000e+00 3.0000e+01 2.0715e-05 -2.9127e-10 +4.9500e+03 0.0000e+00 3.0000e+01 3.3215e-05 -1.9330e-10 +4.9500e+03 0.0000e+00 3.0000e+01 5.3715e-05 -1.5404e-10 +4.9500e+03 0.0000e+00 3.0000e+01 8.6215e-05 -1.0428e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.3672e-04 -7.5099e-11 +4.9500e+03 0.0000e+00 3.0000e+01 2.1771e-04 -5.4537e-11 +4.9500e+03 0.0000e+00 3.0000e+01 3.4671e-04 -3.4867e-11 +4.9500e+03 0.0000e+00 3.0000e+01 5.5172e-04 -1.9784e-11 +4.9500e+03 0.0000e+00 3.0000e+01 8.7721e-04 -1.0445e-11 +4.9500e+03 0.0000e+00 3.0000e+01 1.3942e-03 -5.3089e-12 +4.9500e+03 0.0000e+00 3.0000e+01 2.2167e-03 -2.4837e-12 +4.9500e+03 0.0000e+00 3.0000e+01 3.5237e-03 -9.5445e-13 +4.9500e+03 0.0000e+00 3.0000e+01 5.6012e-03 -3.3166e-13 +4.9500e+03 0.0000e+00 3.0000e+01 8.9022e-03 -1.0619e-13 +4.9500e+03 0.0000e+00 3.0000e+01 1.0215e-05 -3.6609e-09 +4.9500e+03 0.0000e+00 3.0000e+01 1.6215e-05 -1.9386e-09 +4.9500e+03 0.0000e+00 3.0000e+01 2.6215e-05 -8.6119e-10 +4.9500e+03 0.0000e+00 3.0000e+01 4.2215e-05 -4.2716e-10 +4.9500e+03 0.0000e+00 3.0000e+01 6.8215e-05 -2.2551e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.0872e-04 -1.2481e-10 +4.9500e+03 0.0000e+00 3.0000e+01 1.7222e-04 -7.0745e-11 +4.9500e+03 0.0000e+00 3.0000e+01 2.7471e-04 -3.6553e-11 +4.9500e+03 0.0000e+00 3.0000e+01 4.3771e-04 -1.6824e-11 +4.9500e+03 0.0000e+00 3.0000e+01 6.9571e-04 -7.2240e-12 +4.9500e+03 0.0000e+00 3.0000e+01 1.1057e-03 -3.1049e-12 diff --git a/tutorials/plot_2_fdem_fwd_stitched_height.py b/tutorials/plot_2_fdem_fwd_stitched_height.py index ed57e37..b8306ff 100644 --- a/tutorials/plot_2_fdem_fwd_stitched_height.py +++ b/tutorials/plot_2_fdem_fwd_stitched_height.py @@ -58,6 +58,7 @@ source_locations = np.c_[x, np.zeros(n_sounding), 30 *np.ones(n_sounding)] source_current = 1. source_radius = 5. +moment_amplitude = 1. source_receiver_offsets = np.c_[10.*np.ones(n_sounding), np.zeros(n_sounding), np.zeros(n_sounding)] receiver_orientation = "z" # "x", "y" or "z" @@ -90,7 +91,7 @@ source_list.append( em1d.sources.HarmonicMagneticDipoleSource( receiver_list=receiver_list, location=source_location, orientation="z", - I=source_current + moment_amplitude=moment_amplitude ) ) @@ -103,10 +104,18 @@ # ---------------------- # +n_layer = 30 +thicknesses = get_vertical_discretization_frequency( + frequencies, sigma_background=0.1, n_layer=n_layer-1 +) + dx = 100. -hz = get_vertical_discretization_frequency(frequencies, sigma_background=0.1, n_layer=30) hx = np.ones(n_sounding) * dx -mesh = TensorMesh([hx, hz], x0='00') +hz = np.r_[thicknesses, thicknesses[-1]] +mesh2D = TensorMesh([hx, np.flipud(hz)], x0='0N') +mesh_soundings = TensorMesh([hz, hx], x0='00') + +n_param = n_layer*n_sounding ############################################### # Defining a Model @@ -124,33 +133,49 @@ def PolygonInd(mesh, pts): overburden_conductivity = 0.025 slope_conductivity = 0.4 -model = np.ones(mesh.nC) * background_conductivity +model = np.ones(n_param) * background_conductivity -layer_ind = mesh.gridCC[:, -1] < 30. +layer_ind = mesh2D.gridCC[:, -1] > -30. model[layer_ind] = overburden_conductivity -x0 = np.r_[0., 30.] -x1 = np.r_[dx*n_sounding, 30.] -x2 = np.r_[dx*n_sounding, 130.] -x3 = np.r_[0., 50.] +x0 = np.r_[0., -30.] +x1 = np.r_[dx*n_sounding, -30.] +x2 = np.r_[dx*n_sounding, -130.] +x3 = np.r_[0., -50.] pts = np.vstack((x0, x1, x2, x3, x0)) -poly_inds = PolygonInd(mesh, pts) +poly_inds = PolygonInd(mesh2D, pts) model[poly_inds] = slope_conductivity -# model = model.reshape(mesh.vnC, order='F').flatten() -chi = np.zeros_like(model) +mapping = maps.ExpMap(nP=n_param) + +# MODEL TO SOUNDING MODELS METHOD 1 +# sounding_models = model.reshape(mesh2D.vnC, order='F') +# sounding_models = np.fliplr(sounding_models) +# sounding_models = mkvc(sounding_models.T) + +# MODEL TO SOUNDING MODELS METHOD 2 +sounding_models = model.reshape(mesh_soundings.vnC, order='C') +sounding_models = np.flipud(sounding_models) +sounding_models = mkvc(sounding_models) + +chi = np.zeros_like(sounding_models) + + + + + fig = plt.figure(figsize=(9, 3)) ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) log_mod = np.log10(model) -mesh.plotImage( +mesh2D.plotImage( log_mod, ax=ax1, grid=True, clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), pcolorOpts={"cmap": "viridis"}, ) -ax1.set_ylim(mesh.vectorNy.max(), mesh.vectorNy.min()) +ax1.set_ylim(mesh2D.vectorNy.min(), mesh2D.vectorNy.max()) ax1.set_title("Conductivity Model") ax1.set_xlabel("x (m)") @@ -167,12 +192,39 @@ def PolygonInd(mesh, pts): -model = np.r_[np.log(model), source_heights] -wires = maps.Wires(('sigma', mesh.nC),('h', n_sounding)) -sigma_map = maps.ExpMap(mesh) * wires.sigma +fig = plt.figure(figsize=(4, 8)) +ax1 = fig.add_axes([0.1, 0.12, 0.73, 0.78]) +log_mod_sounding = np.log10(sounding_models) +sounding_models = np.log(sounding_models) + +mesh_soundings.plotImage( + log_mod_sounding, ax=ax1, grid=True, + clim=(np.log10(overburden_conductivity), np.log10(slope_conductivity)), + pcolorOpts={"cmap": "viridis"}, +) +ax1.set_ylim(mesh_soundings.vectorNy.min(), mesh_soundings.vectorNy.max()) + +ax1.set_title("Ordered Sounding Models") +ax1.set_xlabel("hz (m)") +ax1.set_ylabel("Profile Distance (m)") + +ax2 = fig.add_axes([0.85, 0.12, 0.05, 0.78]) +norm = mpl.colors.Normalize( + vmin=np.log10(overburden_conductivity), vmax=np.log10(slope_conductivity) +) +cbar = mpl.colorbar.ColorbarBase( + ax2, norm=norm, cmap=mpl.cm.viridis, orientation="vertical", format="$10^{%.1f}$" +) +cbar.set_label("Conductivity [S/m]", rotation=270, labelpad=15, size=12) + + +wires = maps.Wires(('sigma', n_param),('h', n_sounding)) +sigma_map = maps.ExpMap(nP=n_param) * wires.sigma h_map = wires.h +model = np.r_[sounding_models, source_heights] + ####################################################################### # Define the Forward Simulation and Predict Data @@ -182,8 +234,8 @@ def PolygonInd(mesh, pts): # Simulate response for static conductivity -simulation = em1d.simulation_stitched1d.GlobalEM1DSimulationFD( - mesh, survey=survey, sigmaMap=sigma_map, hMap=h_map, chi=chi, hz=hz, topo=topo, +simulation = em1d.simulation.StitchedEM1DFMSimulation( + survey=survey, thicknesses=thicknesses, sigmaMap=sigma_map, hMap=h_map, topo=topo, parallel=False, n_cpu=2, verbose=True, Solver=PardisoSolver ) From f86dec9e540dcf0dd4a643d2c47fd44e86d73ec3 Mon Sep 17 00:00:00 2001 From: Seogi Kang Date: Tue, 5 Jan 2021 13:57:40 -0800 Subject: [PATCH 52/54] use calculation of rTE from geoana --- simpegEM1D/simulation.py | 63 +- simpegEM1D/supporting_functions/dummy.py | 513 ++++++++++++++ simpegEM1D/supporting_functions/kernels.py | 745 +-------------------- 3 files changed, 565 insertions(+), 756 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index 0f57fd3..b5efe98 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -162,9 +162,9 @@ def depth(self): return np.r_[0., -np.cumsum(self.thicknesses)] - def compute_sigma_tensor(self, frequencies): + def compute_sigma_matrix(self, frequencies): """ - Computes the complex conductivity tensor using Pelton's Cole-Cole model: + Computes the complex conductivity matrix using Pelton's Cole-Cole model: .. math :: \\sigma (\\omega ) = \\sigma \\Bigg [ @@ -172,27 +172,19 @@ def compute_sigma_tensor(self, frequencies): \\Bigg ] :param numpy.array frequencies: np.array(N,) containing frequencies - :rtype: numpy.ndarray: np.array(n_layer, n_frequency, n_filter) - :return: complex conductivity tensor + :rtype: numpy.ndarray: np.array(n_layer, n_frequency) + :return: complex conductivity matrix """ n_layer = self.n_layer n_frequency = len(frequencies) - n_filter = self.n_filter + # n_filter = self.n_filter sigma = np.tile(self.sigma.reshape([-1, 1]), (1, n_frequency)) # No IP effect if np.all(self.eta) == 0.: - - sigma_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - sigma_tensor[:, :, :] = np.tile(sigma.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) - - return sigma_tensor + return sigma # IP effect else: @@ -219,19 +211,12 @@ def compute_sigma_tensor(self, frequencies): sigma*eta/(1+(1-eta)*(1j*w*tau)**c) ) - sigma_complex_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - sigma_complex_tensor[:, :, :] = np.tile(sigma_complex.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) - - return sigma_complex_tensor + return sigma_complex - def compute_chi_tensor(self, frequencies): + def compute_chi_matrix(self, frequencies): """ - Computes the complex magnetic susceptibility tensor assuming a log-uniform + Computes the complex magnetic susceptibility matrix assuming a log-uniform distribution of time-relaxation constants: .. math:: @@ -241,8 +226,8 @@ def compute_chi_tensor(self, frequencies): \\Bigg ] :param numpy.array frequencies: np.array(N,) containing frequencies - :rtype: numpy.ndarray: np.array(n_layer, n_frequency, n_filter) - :return: complex magnetic susceptibility tensor + :rtype: numpy.ndarray: np.array(n_layer, n_frequency) + :return: complex magnetic susceptibility matrix """ @@ -253,21 +238,16 @@ def compute_chi_tensor(self, frequencies): n_layer = self.n_layer n_frequency = len(frequencies) - n_filter = self.n_filter - + # n_filter = self.n_filter + chi = np.tile(chi.reshape([-1, 1]), (1, n_frequency)) # No magnetic viscosity if np.all(self.dchi) == 0.: - chi_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - chi_tensor[:, :, :] = np.tile(chi.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) + - return chi_tensor + return chi # Magnetic viscosity else: @@ -295,14 +275,7 @@ def compute_chi_tensor(self, frequencies): ) ) - chi_complex_tensor = np.empty( - [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' - ) - chi_complex_tensor[:, :, :] = np.tile(chi_complex.reshape( - (n_layer, n_frequency, 1)), (1, 1, n_filter) - ) - - return chi_complex_tensor + return chi_complex def compute_integral(self, m, output_type='response'): @@ -348,8 +321,8 @@ def compute_integral(self, m, output_type='response'): ) # Create globally, not for each receiver in the future - sig = self.compute_sigma_tensor(rx.frequencies) - chi = self.compute_chi_tensor(rx.frequencies) + sig = self.compute_sigma_matrix(rx.frequencies) + chi = self.compute_chi_matrix(rx.frequencies) # Compute receiver height h = h_vector[ii] diff --git a/simpegEM1D/supporting_functions/dummy.py b/simpegEM1D/supporting_functions/dummy.py index bd9ded3..6af050b 100644 --- a/simpegEM1D/supporting_functions/dummy.py +++ b/simpegEM1D/supporting_functions/dummy.py @@ -1,3 +1,516 @@ +# ------------ Dummy codes for older version ------------ # +# Deprecated with the latest versions in geoana +# ------------------------------------------------------- # + +# try: +# from simpegEM1D.m_rTE_Fortran import rte_fortran +# except ImportError as e: +# rte_fortran = None + +# def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, halfspace_switch): +# """ +# Compute reflection coefficients for Transverse Electric (TE) mode. +# Only one for loop for multiple layers. + +# Parameters +# ---------- +# n_layer : int +# The number layers +# f : complex, ndarray +# Frequency (Hz); size = (n_frequency x n_filter) +# lamda : complex, ndarray +# Frequency (Hz); size = (n_frequency x n_filter) +# sig: compelx, ndarray +# Conductivity (S/m); size = (n_layer x n_frequency x n_filter) +# chi: compelx, ndarray +# Susceptibility (SI); size = (n_layer,) +# depth: float, ndarray +# Top boundary of the layers; size = (n_ayer,) +# halfspace_switch: bool +# Switch for halfspace + +# Returns +# ------- +# rTE: compex, ndarray +# Reflection coefficients; +# size = (n_frequency x n_lamba) +# """ + +# n_frequency, n_filter = lamda.shape + +# Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# w = 2*np.pi*f + +# rTE = np.zeros((n_frequency, n_filter), dtype=complex) +# utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) +# utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) +# const = np.zeros((n_frequency, n_filter), dtype=complex) + +# utemp0 = lamda +# utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0, :, :])*sig[0, :, :]) +# const = mu_0*utemp1/(mu_0*(1+chi[0, :, :])*utemp0) + +# Mtemp00 = 0.5*(1+const) +# Mtemp10 = 0.5*(1-const) +# Mtemp01 = 0.5*(1-const) +# Mtemp11 = 0.5*(1+const) + +# # may be store these and reuse for sensitivity? +# M00 = [] +# M10 = [] +# M01 = [] +# M11 = [] + +# M0sum00 = Mtemp00 +# M0sum10 = Mtemp10 +# M0sum01 = Mtemp01 +# M0sum11 = Mtemp11 + +# if halfspace_switch: + +# M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# M1sum00 = M0sum00 +# M1sum10 = M0sum10 +# M1sum01 = M0sum01 +# M1sum11 = M0sum11 + +# else: + +# for j in range(n_layer-1): +# utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j, :, :])*sig[j, :, :]) +# utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1, :, :])*sig[j+1, :, :]) +# const = mu_0*(1+chi[j, :, :])*utemp1/(mu_0*(1+chi[j+1, :, :])*utemp0) + +# h0 = thick[j] + +# Mtemp00 = 0.5*(1.+const)*np.exp(-2.*utemp0*h0) +# Mtemp10 = 0.5*(1.-const) +# Mtemp01 = 0.5*(1.-const)*np.exp(-2.*utemp0*h0) +# Mtemp11 = 0.5*(1.+const) + +# M1sum00 = M0sum00*Mtemp00 + M0sum01*Mtemp10 +# M1sum10 = M0sum10*Mtemp00 + M0sum11*Mtemp10 +# M1sum01 = M0sum00*Mtemp01 + M0sum01*Mtemp11 +# M1sum11 = M0sum10*Mtemp01 + M0sum11*Mtemp11 + +# M0sum00 = M1sum00 +# M0sum10 = M1sum10 +# M0sum01 = M1sum01 +# M0sum11 = M1sum11 + +# rTE = M1sum01/M1sum11 + +# return rTE + + +# def matmul(a00, a10, a01, a11, b00, b10, b01, b11): +# """ +# Compute 2x2 matrix mutiplication in vector way +# C = A*B +# C = [a00 a01] * [b00 b01] = [c00 c01] +# [a10 a11] [b10 b11] [c10 c11] +# """ + +# c00 = a00*b00 + a01*b10 +# c10 = a10*b00 + a11*b10 +# c01 = a00*b01 + a01*b11 +# c11 = a10*b01 + a11*b11 + +# return c00, c10, c01, c11 + + + +# # TODO: make this to take a vector rather than a single frequency +# def rTEfunjac(n_layer, f, lamda, sig, chi, thick, halfspace_switch): +# """ +# Compute sensitivity of reflection coefficients for +# Transverse Electric (TE) mode with regard to conductivity + +# Parameters +# ---------- +# n_layer : int +# The number layers +# f : complex, ndarray +# Frequency (Hz); size = (n_frequency x n_finlter) +# lamda : complex, ndarray +# Frequency (Hz); size = (n_frequency x n_finlter) +# sig: complex, ndarray +# Conductivity (S/m); size = (n_layer x 1) +# chi: compelx, ndarray +# Susceptibility (SI); size = (n_layer x 1) +# depth: float, ndarray +# Top boundary of the layers +# halfspace_switch: bool +# Switch for halfspace + +# Returns +# ------- +# rTE: compex, ndarray +# Derivative of reflection coefficients; +# size = (n_frequency x n_layer x n_finlter) +# """ +# # Initializing arrays +# n_frequency, n_filter = lamda.shape + +# Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# M0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# M0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# M0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# M0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dMtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dMtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dMtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dMtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dj0temp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj0temp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj0temp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj0temp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dj1temp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj1temp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj1temp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dj1temp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# w = 2*np.pi*f + +# rTE = np.zeros((n_frequency, n_filter), dtype=complex) +# drTE = np.zeros((n_layer, n_frequency, n_filter), dtype=complex) +# utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) +# utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) +# const = np.zeros((n_frequency, n_filter), dtype=complex) + +# utemp0 = lamda +# utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) +# const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + +# # Compute M1 +# Mtemp00 = 0.5*(1+const) +# Mtemp10 = 0.5*(1-const) +# Mtemp01 = 0.5*(1-const) +# Mtemp11 = 0.5*(1+const) + +# utemp0 = lamda +# utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) +# const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) + +# # Compute dM1du1 +# dj0Mtemp00 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) +# dj0Mtemp10 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) +# dj0Mtemp01 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) +# dj0Mtemp11 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) + +# # TODO: for computing Jacobian +# M00 = [] +# M10 = [] +# M01 = [] +# M11 = [] + +# dJ00 = [] +# dJ10 = [] +# dJ01 = [] +# dJ11 = [] + +# M00.append(Mtemp00) +# M01.append(Mtemp01) +# M10.append(Mtemp10) +# M11.append(Mtemp11) + +# M0sum00 = Mtemp00.copy() +# M0sum10 = Mtemp10.copy() +# M0sum01 = Mtemp01.copy() +# M0sum11 = Mtemp11.copy() + +# if halfspace_switch or n_layer == 1: + +# M1sum00 = M0sum00.copy() +# M1sum10 = M0sum10.copy() +# M1sum01 = M0sum01.copy() +# M1sum11 = M0sum11.copy() + +# else: + +# for j in range(n_layer-1): + +# dJ_10Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ_10Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ_10Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ_10Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dJ01Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ01Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ01Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ01Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) +# utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) +# const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) + +# h0 = thick[j] + +# Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) +# Mtemp10 = 0.5*(1.- const) +# Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) +# Mtemp11 = 0.5*(1.+ const) + +# M1sum00, M1sum10, M1sum01, M1sum11 = matmul( +# M0sum00, M0sum10, M0sum01, M0sum11, +# Mtemp00, Mtemp10, Mtemp01, Mtemp11 +# ) + +# M0sum00 = M1sum00 +# M0sum10 = M1sum10 +# M0sum01 = M1sum01 +# M0sum11 = M1sum11 + +# # TODO: for Computing Jacobian + +# dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 + +# if j == 0: + +# const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) +# const1b = const1a*utemp0 + +# dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) +# dj1Mtemp10 = 0.5*const1a +# dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) +# dj1Mtemp11 = -0.5*const1a + +# # Compute dM1dm1*M2 +# dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( +# dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, +# Mtemp00, Mtemp10, Mtemp01, Mtemp11 +# ) + +# # Compute M1*dM2dm1 +# dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( +# M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, +# dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 +# ) + +# dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) +# dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) +# dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) +# dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) + +# else: + +# h_1 = thick[j-1] +# utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j-1])*sig[j-1]) +# const0 = mu_0*(1+chi[j-1])/(mu_0*(1+chi[j])*utemp_1) + +# dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) +# dj0Mtemp10 = -0.5*(const0) +# dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) +# dj0Mtemp11 = 0.5*(const0) + +# const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) +# const1b = const1a*utemp0 + +# dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) +# dj1Mtemp10 = 0.5*const1a +# dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) +# dj1Mtemp11 = -0.5*const1a + +# # Compute dMjdmj*Mj+1 +# dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( +# dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, +# Mtemp00, Mtemp10, Mtemp01, Mtemp11 +# ) + +# # Compute Mj*dMj+1dmj +# dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( +# M00[j], M10[j], M01[j], M11[j], +# dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 +# ) + +# dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) +# dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) +# dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) +# dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) + +# M00.append(Mtemp00) +# M01.append(Mtemp01) +# M10.append(Mtemp10) +# M11.append(Mtemp11) + +# # rTE = M1sum01/M1sum11 + +# if halfspace_switch or n_layer == 1: + +# utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) +# dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 + +# dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dJ1sum00 = dudsig*dj0Mtemp00 +# dJ1sum10 = dudsig*dj0Mtemp10 +# dJ1sum01 = dudsig*dj0Mtemp01 +# dJ1sum11 = dudsig*dj0Mtemp11 + +# drTE = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 + +# else: + +# # j = n_layer +# utemp0 = ( +# np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-1])*sig[n_layer-1, :, :]) +# ) +# dudsig = 0.5*1j*w*mu_0*(1+chi[n_layer-1])/utemp0 + +# h_1 = thick[n_layer-2] + +# utemp_1 = ( +# np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-2])*sig[n_layer-2, :, :]) +# ) +# const0 = mu_0*(1+chi[n_layer-2])/(mu_0*(1+chi[n_layer-1])*utemp_1) + +# dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) +# dj0Mtemp10 = -0.5*(const0) +# dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) +# dj0Mtemp11 = 0.5*(const0) + +# dJ_10Mtemp00 = dj0Mtemp00 +# dJ_10Mtemp10 = dj0Mtemp10 +# dJ_10Mtemp01 = dj0Mtemp01 +# dJ_10Mtemp11 = dj0Mtemp11 + +# dJ00.append(dudsig*dJ_10Mtemp00) +# dJ10.append(dudsig*dJ_10Mtemp10) +# dJ01.append(dudsig*dJ_10Mtemp01) +# dJ11.append(dudsig*dJ_10Mtemp11) + +# for i in range(n_layer): + +# dJ0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) +# dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) + +# if i == 0: + +# for j in range(n_layer-2): + +# if j == 0: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ00[i], dJ10[i], dJ01[i], dJ11[i], +# M00[j+2], M10[j+2], M01[j+2], M11[j+2] +# ) + +# else: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# M00[j+2], M10[j+2], M01[j+2], M11[j+2] +# ) + +# dJ0sum00 = dJ1sum00 +# dJ0sum10 = dJ1sum10 +# dJ0sum01 = dJ1sum01 +# dJ0sum11 = dJ1sum11 + +# elif (i > 0) & (i < n_layer-1): + +# dJ0sum00 = M00[0] +# dJ0sum10 = M10[0] +# dJ0sum01 = M01[0] +# dJ0sum11 = M11[0] + +# for j in range (n_layer-2): + +# if j==i-1: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# dJ00[i], dJ10[i], dJ01[i], dJ11[i] +# ) + +# elif j < i-1: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# M00[j+1], M10[j+1], M01[j+1], M11[j+1] +# ) + +# elif j > i-1: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# M00[j+2], M10[j+2], M01[j+2], M11[j+2] +# ) + +# dJ0sum00 = dJ1sum00 +# dJ0sum10 = dJ1sum10 +# dJ0sum01 = dJ1sum01 +# dJ0sum11 = dJ1sum11 + +# elif i == n_layer-1: + +# dJ0sum00 = M00[0] +# dJ0sum10 = M10[0] +# dJ0sum01 = M01[0] +# dJ0sum11 = M11[0] + +# for j in range(n_layer-1): + +# if j < n_layer-2: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# M00[j+1], M10[j+1], M01[j+1], M11[j+1] +# ) + +# elif j == n_layer-2: + +# dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( +# dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, +# dJ00[i], dJ10[i], dJ01[i], dJ11[i] +# ) + +# dJ0sum00 = dJ1sum00 +# dJ0sum10 = dJ1sum10 +# dJ0sum01 = dJ1sum01 +# dJ0sum11 = dJ1sum11 + +# drTE[i, :] = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 + +# return drTE + # Still worthwhile to output both? + # return rTE, drTE + # ------------ Dummy codes for older version ------------ # # This can be used in later use for handling on-time data. diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 069ec55..0073d8c 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -1,519 +1,6 @@ import numpy as np from scipy.constants import mu_0 - -try: - from simpegEM1D.m_rTE_Fortran import rte_fortran -except ImportError as e: - rte_fortran = None - - - -def rTEfunfwd(n_layer, f, lamda, sig, chi, thick, halfspace_switch): - """ - Compute reflection coefficients for Transverse Electric (TE) mode. - Only one for loop for multiple layers. - - Parameters - ---------- - n_layer : int - The number layers - f : complex, ndarray - Frequency (Hz); size = (n_frequency x n_filter) - lamda : complex, ndarray - Frequency (Hz); size = (n_frequency x n_filter) - sig: compelx, ndarray - Conductivity (S/m); size = (n_layer x n_frequency x n_filter) - chi: compelx, ndarray - Susceptibility (SI); size = (n_layer,) - depth: float, ndarray - Top boundary of the layers; size = (n_ayer,) - halfspace_switch: bool - Switch for halfspace - - Returns - ------- - rTE: compex, ndarray - Reflection coefficients; - size = (n_frequency x n_lamba) - """ - - n_frequency, n_filter = lamda.shape - - Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - w = 2*np.pi*f - - rTE = np.zeros((n_frequency, n_filter), dtype=complex) - utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) - utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) - const = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0, :, :])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0, :, :])*utemp0) - - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - # may be store these and reuse for sensitivity? - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - M0sum00 = Mtemp00 - M0sum10 = Mtemp10 - M0sum01 = Mtemp01 - M0sum11 = Mtemp11 - - if halfspace_switch: - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = M0sum00 - M1sum10 = M0sum10 - M1sum01 = M0sum01 - M1sum11 = M0sum11 - - else: - - for j in range(n_layer-1): - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j, :, :])*sig[j, :, :]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1, :, :])*sig[j+1, :, :]) - const = mu_0*(1+chi[j, :, :])*utemp1/(mu_0*(1+chi[j+1, :, :])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.-const) - Mtemp01 = 0.5*(1.-const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+const) - - M1sum00 = M0sum00*Mtemp00 + M0sum01*Mtemp10 - M1sum10 = M0sum10*Mtemp00 + M0sum11*Mtemp10 - M1sum01 = M0sum00*Mtemp01 + M0sum01*Mtemp11 - M1sum11 = M0sum10*Mtemp01 + M0sum11*Mtemp11 - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - rTE = M1sum01/M1sum11 - - return rTE - - -def matmul(a00, a10, a01, a11, b00, b10, b01, b11): - """ - Compute 2x2 matrix mutiplication in vector way - C = A*B - C = [a00 a01] * [b00 b01] = [c00 c01] - [a10 a11] [b10 b11] [c10 c11] - """ - - c00 = a00*b00 + a01*b10 - c10 = a10*b00 + a11*b10 - c01 = a00*b01 + a01*b11 - c11 = a10*b01 + a11*b11 - - return c00, c10, c01, c11 - - - -# TODO: make this to take a vector rather than a single frequency -def rTEfunjac(n_layer, f, lamda, sig, chi, thick, halfspace_switch): - """ - Compute sensitivity of reflection coefficients for - Transverse Electric (TE) mode with regard to conductivity - - Parameters - ---------- - n_layer : int - The number layers - f : complex, ndarray - Frequency (Hz); size = (n_frequency x n_finlter) - lamda : complex, ndarray - Frequency (Hz); size = (n_frequency x n_finlter) - sig: complex, ndarray - Conductivity (S/m); size = (n_layer x 1) - chi: compelx, ndarray - Susceptibility (SI); size = (n_layer x 1) - depth: float, ndarray - Top boundary of the layers - halfspace_switch: bool - Switch for halfspace - - Returns - ------- - rTE: compex, ndarray - Derivative of reflection coefficients; - size = (n_frequency x n_layer x n_finlter) - """ - # Initializing arrays - n_frequency, n_filter = lamda.shape - - Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - M0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - M0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dMtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dMtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dj0temp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dj0temp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dj1temp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dj1temp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - w = 2*np.pi*f - - rTE = np.zeros((n_frequency, n_filter), dtype=complex) - drTE = np.zeros((n_layer, n_frequency, n_filter), dtype=complex) - utemp0 = np.zeros((n_frequency, n_filter), dtype=complex) - utemp1 = np.zeros((n_frequency, n_filter), dtype=complex) - const = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute M1 - Mtemp00 = 0.5*(1+const) - Mtemp10 = 0.5*(1-const) - Mtemp01 = 0.5*(1-const) - Mtemp11 = 0.5*(1+const) - - utemp0 = lamda - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0, :, :]) - const = mu_0*utemp1/(mu_0*(1+chi[0])*utemp0) - - # Compute dM1du1 - dj0Mtemp00 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp10 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp01 = -0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - dj0Mtemp11 = 0.5*(mu_0/(mu_0*(1+chi[0])*utemp0)) - - # TODO: for computing Jacobian - M00 = [] - M10 = [] - M01 = [] - M11 = [] - - dJ00 = [] - dJ10 = [] - dJ01 = [] - dJ11 = [] - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - M0sum00 = Mtemp00.copy() - M0sum10 = Mtemp10.copy() - M0sum01 = Mtemp01.copy() - M0sum11 = Mtemp11.copy() - - if halfspace_switch or n_layer == 1: - - M1sum00 = M0sum00.copy() - M1sum10 = M0sum10.copy() - M1sum01 = M0sum01.copy() - M1sum11 = M0sum11.copy() - - else: - - for j in range(n_layer-1): - - dJ_10Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ_10Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ01Mtemp00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ01Mtemp11 = np.zeros((n_frequency, n_filter), dtype=complex) - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j])*sig[j, :, :]) - utemp1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j+1])*sig[j+1, :, :]) - const = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0) - - h0 = thick[j] - - Mtemp00 = 0.5*(1.+ const)*np.exp(-2.*utemp0*h0) - Mtemp10 = 0.5*(1.- const) - Mtemp01 = 0.5*(1.- const)*np.exp(-2.*utemp0*h0) - Mtemp11 = 0.5*(1.+ const) - - M1sum00, M1sum10, M1sum01, M1sum11 = matmul( - M0sum00, M0sum10, M0sum01, M0sum11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - M0sum00 = M1sum00 - M0sum10 = M1sum10 - M0sum01 = M1sum01 - M0sum11 = M1sum11 - - # TODO: for Computing Jacobian - - dudsig = 0.5*1j*w*mu_0*(1+chi[j])/utemp0 - - if j == 0: - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - # Compute dM1dm1*M2 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( - dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - # Compute M1*dM2dm1 - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( - M00[j], M10[j], M01[j], M11[j], dj1Mtemp00, - dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 - ) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - else: - - h_1 = thick[j-1] - utemp_1 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[j-1])*sig[j-1]) - const0 = mu_0*(1+chi[j-1])/(mu_0*(1+chi[j])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - const1a = mu_0*(1+chi[j])*utemp1/(mu_0*(1+chi[j+1])*utemp0**2) - const1b = const1a*utemp0 - - dj1Mtemp00 = -0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1+const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp10 = 0.5*const1a - dj1Mtemp01 = 0.5*const1a*np.exp(-2.*utemp0*h0)-h0*(1-const1b)*np.exp(-2.*utemp0*h0) - dj1Mtemp11 = -0.5*const1a - - # Compute dMjdmj*Mj+1 - dJ_10Mtemp00, dJ_10Mtemp10, dJ_10Mtemp01, dJ_10Mtemp11 = matmul( - dj0Mtemp00, dj0Mtemp10, dj0Mtemp01, dj0Mtemp11, - Mtemp00, Mtemp10, Mtemp01, Mtemp11 - ) - - # Compute Mj*dMj+1dmj - dJ01Mtemp00, dJ01Mtemp10, dJ01Mtemp01, dJ01Mtemp11 = matmul( - M00[j], M10[j], M01[j], M11[j], - dj1Mtemp00, dj1Mtemp10, dj1Mtemp01, dj1Mtemp11 - ) - - dJ00.append(dudsig*(dJ_10Mtemp00+dJ01Mtemp00)) - dJ10.append(dudsig*(dJ_10Mtemp10+dJ01Mtemp10)) - dJ01.append(dudsig*(dJ_10Mtemp01+dJ01Mtemp01)) - dJ11.append(dudsig*(dJ_10Mtemp11+dJ01Mtemp11)) - - M00.append(Mtemp00) - M01.append(Mtemp01) - M10.append(Mtemp10) - M11.append(Mtemp11) - - # rTE = M1sum01/M1sum11 - - if halfspace_switch or n_layer == 1: - - utemp0 = np.sqrt(lamda**2+1j*w*mu_0*(1+chi[0])*sig[0]) - dudsig = 0.5*1j*w*mu_0*(1+chi[0])/utemp0 - - dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ1sum00 = dudsig*dj0Mtemp00 - dJ1sum10 = dudsig*dj0Mtemp10 - dJ1sum01 = dudsig*dj0Mtemp01 - dJ1sum11 = dudsig*dj0Mtemp11 - - drTE = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - else: - - # j = n_layer - utemp0 = ( - np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-1])*sig[n_layer-1, :, :]) - ) - dudsig = 0.5*1j*w*mu_0*(1+chi[n_layer-1])/utemp0 - - h_1 = thick[n_layer-2] - - utemp_1 = ( - np.sqrt(lamda**2+1j*w*mu_0*(1+chi[n_layer-2])*sig[n_layer-2, :, :]) - ) - const0 = mu_0*(1+chi[n_layer-2])/(mu_0*(1+chi[n_layer-1])*utemp_1) - - dj0Mtemp00 = 0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp10 = -0.5*(const0) - dj0Mtemp01 = -0.5*(const0)*np.exp(-2.*utemp_1*h_1) - dj0Mtemp11 = 0.5*(const0) - - dJ_10Mtemp00 = dj0Mtemp00 - dJ_10Mtemp10 = dj0Mtemp10 - dJ_10Mtemp01 = dj0Mtemp01 - dJ_10Mtemp11 = dj0Mtemp11 - - dJ00.append(dudsig*dJ_10Mtemp00) - dJ10.append(dudsig*dJ_10Mtemp10) - dJ01.append(dudsig*dJ_10Mtemp01) - dJ11.append(dudsig*dJ_10Mtemp11) - - for i in range(n_layer): - - dJ0sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ0sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - dJ1sum00 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum10 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum01 = np.zeros((n_frequency, n_filter), dtype=complex) - dJ1sum11 = np.zeros((n_frequency, n_filter), dtype=complex) - - if i == 0: - - for j in range(n_layer-2): - - if j == 0: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ00[i], dJ10[i], dJ01[i], dJ11[i], - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - else: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif (i > 0) & (i < n_layer-1): - - dJ0sum00 = M00[0] - dJ0sum10 = M10[0] - dJ0sum01 = M01[0] - dJ0sum11 = M11[0] - - for j in range (n_layer-2): - - if j==i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - dJ00[i], dJ10[i], dJ01[i], dJ11[i] - ) - - elif j < i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+1], M10[j+1], M01[j+1], M11[j+1] - ) - - elif j > i-1: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+2], M10[j+2], M01[j+2], M11[j+2] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - elif i == n_layer-1: - - dJ0sum00 = M00[0] - dJ0sum10 = M10[0] - dJ0sum01 = M01[0] - dJ0sum11 = M11[0] - - for j in range(n_layer-1): - - if j < n_layer-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - M00[j+1], M10[j+1], M01[j+1], M11[j+1] - ) - - elif j == n_layer-2: - - dJ1sum00, dJ1sum10, dJ1sum01, dJ1sum11 = matmul( - dJ0sum00, dJ0sum10, dJ0sum01, dJ0sum11, - dJ00[i], dJ10[i], dJ01[i], dJ11[i] - ) - - dJ0sum00 = dJ1sum00 - dJ0sum10 = dJ1sum10 - dJ0sum01 = dJ1sum01 - dJ0sum11 = dJ1sum11 - - drTE[i, :] = dJ1sum01/M1sum11 - M1sum01/(M1sum11**2)*dJ1sum11 - - return drTE - # Still worthwhile to output both? - # return rTE, drTE - - - +from geoana.kernels import rTE_forward, rTE_gradient def magnetic_dipole_kernel( simulation, lamda, f, n_layer, sig, chi, h, z, r, @@ -571,41 +58,28 @@ def magnetic_dipole_kernel( n_frequency = len(f) n_filter = simulation.n_filter - + thicknesses = simulation.thicknesses + mu = (chi+1)*mu_0 # COMPUTE TE-MODE REFLECTION COEFFICIENT if output_type == 'sensitivity_sigma': drTE = np.zeros( [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch + + drTE, _, _ = rTE_gradient( + f[:,0], lamda[0,:], sig, mu, thicknesses ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, drTE, - n_layer, n_frequency, n_filter - ) temp = drTE * np.exp(-lamda*(z+h)) else: rTE = np.empty( [n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.halfspace_switch, - rTE, n_layer, n_frequency, n_filter - ) + depth = simulation.depth + rTE = rTE_forward( + f[:,0], lamda[0,:], sig, mu, thicknesses + ) temp = rTE * np.exp(-lamda*(z+h)) if output_type == 'sensitivity_height': @@ -723,12 +197,12 @@ def magnetic_dipole_kernel( # if rte_fortran is None: # thick = simulation.thicknesses # drTE = rTEfunjac( -# n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch +# n_layer, f, lamda[0,:], sig, chi, thick, simulation.halfspace_switch # ) # else: # depth = simulation.depth # rte_fortran.rte_sensitivity( -# f, lamda, sig, chi, depth, simulation.halfspace_switch, drTE, +# f, lamda[0,:], sig, chi, depth, simulation.halfspace_switch, drTE, # n_layer, n_frequency, n_filter # ) @@ -740,12 +214,12 @@ def magnetic_dipole_kernel( # if rte_fortran is None: # thick = simulation.thicknesses # rTE = rTEfunfwd( -# n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch +# n_layer, f, lamda[0,:], sig, chi, thick, simulation.halfspace_switch # ) # else: # depth = simulation.depth # rte_fortran.rte_forward( -# f, lamda, sig, chi, depth, simulation.halfspace_switch, +# f, lamda[0,:], sig, chi, depth, simulation.halfspace_switch, # rTE, n_layer, n_frequency, n_filter # ) @@ -794,40 +268,27 @@ def horizontal_loop_kernel( radius[:, :] = np.tile(a.reshape([-1, 1]), (1, n_filter)) coefficient_wavenumber = src.I*radius*0.5*lamda**2/u0 - + thicknesses = simulation.thicknesses + mu = (chi+1)*mu_0 + if output_type == 'sensitivity_sigma': drTE = np.empty( [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - drTE[:, :] = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, - drTE, n_layer, n_frequency, n_filter - ) - + + drTE, _, _ = rTE_gradient( + f[:,0], lamda[0,:], sig, mu, thicknesses + ) kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber else: rTE = np.empty( [n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - rTE[:, :] = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.halfspace_switch, - rTE, n_layer, n_frequency, n_filter - ) + + rTE = rTE_forward( + f[:,0], lamda[0,:], sig, mu, thicknesses + ) kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber @@ -851,40 +312,27 @@ def hz_kernel_horizontal_electric_dipole( u0 = lamda coefficient_wavenumber = 1/(4*np.pi)*lamda**2/u0 + thicknesses = simulation.thicknesses + mu = (chi+1)*mu_0 if output_type == 'sensitivity_sigma': drTE = np.zeros( [n_layer, n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - drTE = rTEfunjac( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_sensitivity( - f, lamda, sig, chi[:,0,0].real, depth, simulation.halfspace_switch, - drTE, n_layer, n_frequency, n_filter - ) + + drTE, _, _ = rTE_gradient( + f[:,0], lamda[0,:], sig, mu, thicknesses + ) kernel = drTE * np.exp(-u0*(z+h)) * coefficient_wavenumber else: rTE = np.empty( [n_frequency, n_filter], dtype=np.complex128, order='F' ) - if rte_fortran is None: - thick = simulation.thicknesses - rTE = rTEfunfwd( - n_layer, f, lamda, sig, chi, thick, simulation.halfspace_switch - ) - else: - depth = simulation.depth - rte_fortran.rte_forward( - f, lamda, sig, chi, depth, simulation.halfspace_switch, - rTE, n_layer, n_frequency, n_filter - ) + rTE = rTE_forward( + f[:,0], lamda[0,:], sig, mu, thicknesses + ) kernel = rTE * np.exp(-u0*(z+h)) * coefficient_wavenumber if output_type == 'sensitivity_height': @@ -892,128 +340,3 @@ def hz_kernel_horizontal_electric_dipole( return kernel - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# import numpy as np -# from scipy.constants import mu_0 -# from .DigFilter import EvalDigitalFilt -# from RTEfun import rTEfun - -# def HzKernel_layer(lamda, f, nlay, sig, chi, depth, h, z, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) due to vertical magnetic -# diopole (VMD) source in (kx,ky) domain - -# """ -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag=='secondary': -# # Note -# # Here only computes secondary field. -# # I am not sure why it does not work if we add primary term. -# # This term can be analytically evaluated, where h = 0. - -# kernel = 1/(4*np.pi)*(rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# else: -# kernel = 1/(4*np.pi)*(np.exp(u0*(z-h))+ rTE*np.exp(-u0*(z+h)))*lamda**3/u0 - -# return kernel - -# def HzkernelCirc_layer(lamda, f, nlay, sig, chi, depth, h, z, I, a, flag): - -# """ - -# Kernel for vertical magnetic component (Hz) at the center -# due to circular loop source in (kx,ky) domain - -# .. math:: - -# H_z = \\frac{Ia}{2} \int_0^{\infty} [e^{-u_0|z+h|} + r_{TE}e^{u_0|z-h|}] \\frac{\lambda^2}{u_0} J_1(\lambda a)] d \lambda - -# """ - -# w = 2*np.pi*f -# rTE = np.zeros(lamda.size, dtype=complex) -# u0 = lamda -# rTE, M00, M01, M10, M11 = rTEfun(nlay, f, lamda, sig, chi, depth) - -# if flag == 'secondary': -# kernel = I*a*0.5*(rTE*np.exp(-u0*(z+h)))*lamda**2/u0 -# else: -# kernel = I*a*0.5*(np.exp(u0*(z-h))+rTE*np.exp(-u0*(z+h)))*lamda**2/u0 - -# return kernel - -#TODO: Get rid of below two functions and put in in main class -# def HzFreq_layer(nlay, sig, chi, depth, f, z, h, r, flag, YBASE, WT0): -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzKernel_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT0, kernel, r) - -# return HzFHT - -# def HzCircFreq_layer(nlay, sig, chi, depth, f, z, h, I, a, flag, YBASE, WT1): - -# """ - -# """ -# nfreq = np.size(f) -# HzFHT = np.zeros(nfreq, dtype = complex) -# for ifreq in range(nfreq): - -# kernel = lambda x: HzkernelCirc_layer(x, f[ifreq], nlay, sig, chi, depth, h, z, I, a, flag) -# HzFHT[ifreq] = EvalDigitalFilt(YBASE, WT1, kernel, a) - -# return HzFHT From 240a9a2664078e1deb9643a46be0fc5e7c854368 Mon Sep 17 00:00:00 2001 From: Seogi Kang Date: Tue, 5 Jan 2021 15:21:51 -0800 Subject: [PATCH 53/54] modify titles of tutorials --- tutorials/plot_2_fdem_fwd_stitched.py | 4 ++-- tutorials/plot_2_fdem_fwd_stitched_height.py | 4 ++-- tutorials/plot_2_fdem_inv_stitched.py | 4 ++-- tutorials/plot_2_fdem_inv_stitched_bookpurnong.py | 10 +++++----- tutorials/plot_2_tdem_fwd_stitched.py | 8 ++------ tutorials/plot_2_tdem_fwd_stitched_skytem.py | 4 ++-- tutorials/plot_2_tdem_inv_stitched.py | 4 ++-- tutorials/plot_2_tdem_inv_stitched_skytem.py | 4 ++-- 8 files changed, 19 insertions(+), 23 deletions(-) diff --git a/tutorials/plot_2_fdem_fwd_stitched.py b/tutorials/plot_2_fdem_fwd_stitched.py index aa96eb8..6b287d6 100644 --- a/tutorials/plot_2_fdem_fwd_stitched.py +++ b/tutorials/plot_2_fdem_fwd_stitched.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Forward Simulation of Stitched Frequency-Domain Data +==================================================== diff --git a/tutorials/plot_2_fdem_fwd_stitched_height.py b/tutorials/plot_2_fdem_fwd_stitched_height.py index b8306ff..e59f832 100644 --- a/tutorials/plot_2_fdem_fwd_stitched_height.py +++ b/tutorials/plot_2_fdem_fwd_stitched_height.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Forward Simulation of Stitched Frequency-Domain Data with Height +================================================================ diff --git a/tutorials/plot_2_fdem_inv_stitched.py b/tutorials/plot_2_fdem_inv_stitched.py index 9e3a5f5..a852b4b 100644 --- a/tutorials/plot_2_fdem_inv_stitched.py +++ b/tutorials/plot_2_fdem_inv_stitched.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Forward Simulation of Stitched Frequency-Domain Data +==================================================== diff --git a/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py b/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py index ad537d8..0d8023a 100644 --- a/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py +++ b/tutorials/plot_2_fdem_inv_stitched_bookpurnong.py @@ -66,7 +66,7 @@ def download_and_unzip_data( resolve = h5py.File( os.path.sep.join([directory, "booky_resolve.hdf5"]), "r" ) -river_path = resolve["river_path"].value # River path +river_path = resolve["river_path"] # River path nskip = 1 nSounding = resolve["data"][::nskip, :].shape[0] # the # of soundings @@ -76,8 +76,8 @@ def download_and_unzip_data( # fetch the frequencies we are considering cpi_inds = [0, 2, 6, 8, 10] # Indices for HCP in-phase cpq_inds = [1, 3, 7, 9, 11] # Indices for HCP quadrature -frequency_cp = resolve["frequency_cp"].value -xy = (resolve["xy"].value)[::nskip, :] +frequency_cp = resolve["frequency_cp"] +xy = (resolve["xy"])[::nskip, :] line = resolve['line'][::nskip] @@ -100,8 +100,8 @@ def download_and_unzip_data( # survey parameters rxOffset = 7.86 # tx-rx separation n_sounding = xy.shape[0] -b_height_resolve = resolve["src_elevation"].value[::nskip] -topo_resolve = resolve["ground_elevation"].value[::nskip] +b_height_resolve = resolve["src_elevation"][::nskip] +topo_resolve = resolve["ground_elevation"][::nskip] uniq_line = np.unique(line) x = xy[:,0] y = xy[:,1] diff --git a/tutorials/plot_2_tdem_fwd_stitched.py b/tutorials/plot_2_tdem_fwd_stitched.py index 2d295a8..f2ec5b9 100644 --- a/tutorials/plot_2_tdem_fwd_stitched.py +++ b/tutorials/plot_2_tdem_fwd_stitched.py @@ -1,10 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== - - - - +Forward Simulation of Stitched Time-Domain Data +=============================================== """ diff --git a/tutorials/plot_2_tdem_fwd_stitched_skytem.py b/tutorials/plot_2_tdem_fwd_stitched_skytem.py index 03d60f3..07b78a6 100644 --- a/tutorials/plot_2_tdem_fwd_stitched_skytem.py +++ b/tutorials/plot_2_tdem_fwd_stitched_skytem.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D SkyTEM Data -============================================== +Forward Simulation of Stitched SkyTEM Data +========================================== diff --git a/tutorials/plot_2_tdem_inv_stitched.py b/tutorials/plot_2_tdem_inv_stitched.py index b2dfcc2..35148db 100644 --- a/tutorials/plot_2_tdem_inv_stitched.py +++ b/tutorials/plot_2_tdem_inv_stitched.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Forward Simulation of Stitched Time-Domain Data +=============================================== diff --git a/tutorials/plot_2_tdem_inv_stitched_skytem.py b/tutorials/plot_2_tdem_inv_stitched_skytem.py index 1471c04..5219cb3 100644 --- a/tutorials/plot_2_tdem_inv_stitched_skytem.py +++ b/tutorials/plot_2_tdem_inv_stitched_skytem.py @@ -1,6 +1,6 @@ """ -Forward Simulation of 1D Frequency-Domain Data -============================================== +Forward Simulation of Stitched SkyTEM Data +========================================== From 362efc4c4d8244ee7ddc6c044d139de6b22fdb1a Mon Sep 17 00:00:00 2001 From: Seogi Kang Date: Tue, 5 Jan 2021 22:11:02 -0800 Subject: [PATCH 54/54] minor update --- simpegEM1D/simulation.py | 140 +++++---------------- simpegEM1D/supporting_functions/kernels.py | 1 + 2 files changed, 29 insertions(+), 112 deletions(-) diff --git a/simpegEM1D/simulation.py b/simpegEM1D/simulation.py index b5efe98..b9ded81 100644 --- a/simpegEM1D/simulation.py +++ b/simpegEM1D/simulation.py @@ -488,6 +488,30 @@ def getJ_sigma(self, m, f=None): self._Jmatrix_sigma = self._Jmatrix_sigma.reshape([-1, 1]) return self._Jmatrix_sigma + def getJ_eta(self, m, f=None): + """ + Compute the sensitivity with respect to static conductivity. + """ + + # Null if eta is not parameter of the simulation. + if self.etaMap is None: + return utils.Zero() + + if self._Jmatrix_eta is not None: + return self._Jmatrix_eta + else: + + if self.verbose: + print(">> Compute J eta") + + dudsig = self.compute_integral(m, output_type="sensitivity_sigma") + # Need to modify + dsigdeta = np.empty((m.size, m.size)) + self._Jmatrix_eta = np.vstack(self.project_fields(dudsig.dot(dsigdeta),output_type="sensitivity_sigma")) + if self._Jmatrix_eta.ndim == 1: + self._Jmatrix_eta = self._Jmatrix_eta.reshape([-1, 1]) + return self._Jmatrix_eta + def getJ(self, m, f=None): """ Fetch Jacobian. @@ -1482,6 +1506,7 @@ def getJ_height(self, m): def Jvec(self, m, v, f=None): J_sigma = self.getJ_sigma(m) J_height = self.getJ_height(m) + # This is deprecated at the moment # if self.parallel and self.parallel_jvec_jtvec: # # Extra division of sigma is because: @@ -1509,6 +1534,7 @@ def Jvec(self, m, v, f=None): # pool.close() # pool.join() # else: + Jv = J_sigma*(utils.sdiag(1./self.sigma)*(self.sigmaDeriv * v)) if self.hMap is not None: Jv += J_height*(self.hDeriv * v) @@ -1517,6 +1543,7 @@ def Jvec(self, m, v, f=None): def Jtvec(self, m, v, f=None): J_sigma = self.getJ_sigma(m) J_height = self.getJ_height(m) + # This is deprecated at the moment # if self.parallel and self.parallel_jvec_jtvec: # pool = Pool(self.n_cpu) @@ -1542,6 +1569,7 @@ def Jtvec(self, m, v, f=None): # Extra division of sigma is because: # J_sigma = dF/dlog(sigma) # And here sigmaMap also includes ExpMap + Jtv = self.sigmaDeriv.T * (utils.sdiag(1./self.sigma) * (J_sigma.T*v)) if self.hMap is not None: Jtv += self.hDeriv.T*(J_height.T*v) @@ -1588,125 +1616,13 @@ def run_simulation(self, args): print(">> Frequency-domain") return run_simulation_FD(args) - # @property - # def frequency(self): - # return self.survey.frequency - - # @property - # def switch_real_imag(self): - # return self.survey.switch_real_imag - - class StitchedEM1DTMSimulation(BaseStitchedEM1DSimulation): - # @property - # def wave_type(self): - # return self.survey.wave_type - - # @property - # def input_currents(self): - # return self.survey.input_currents - - # @property - # def time_input_currents(self): - # return self.survey.time_input_currents - - # @property - # def n_pulse(self): - # return self.survey.n_pulse - - # @property - # def base_frequency(self): - # return self.survey.base_frequency - - # @property - # def time(self): - # return self.survey.time - - # @property - # def use_lowpass_filter(self): - # return self.survey.use_lowpass_filter - - # @property - # def high_cut_frequency(self): - # return self.survey.high_cut_frequency - - # @property - # def moment_type(self): - # return self.survey.moment_type - - # @property - # def time_dual_moment(self): - # return self.survey.time_dual_moment - - # @property - # def time_input_currents_dual_moment(self): - # return self.survey.time_input_currents_dual_moment - - # @property - # def input_currents_dual_moment(self): - # return self.survey.input_currents_dual_moment - - # @property - # def base_frequency_dual_moment(self): - # return self.survey.base_frequency_dual_moment - def run_simulation(self, args): if self.verbose: print(">> Time-domain") return run_simulation_TD(args) - # def forward(self, m, f=None): - # self.model = m - - # if self.parallel: - # pool = Pool(self.n_cpu) - # # This assumes the same # of layer for each of soundings - # result = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, output_type=False) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # else: - # result = [ - # run_simulation_TD(self.input_args(i, output_type=False)) for i in range(self.n_sounding) - # ] - # return np.hstack(result) - - # def getJ(self, m): - # """ - # Compute d F / d sigma - # """ - # if self._Jmatrix is not None: - # return self._Jmatrix - # if self.verbose: - # print(">> Compute J") - # self.model = m - # if self.parallel: - # pool = Pool(self.n_cpu) - # self._Jmatrix = pool.map( - # run_simulation_TD, - # [ - # self.input_args(i, output_type=True) for i in range(self.n_sounding) - # ] - # ) - # pool.close() - # pool.join() - # if self.parallel_jvec_jtvec is False: - # self._Jmatrix = sp.block_diag(self._Jmatrix).tocsr() - # else: - # # _Jmatrix is block diagnoal matrix (sparse) - # self._Jmatrix = sp.block_diag( - # [ - # run_simulation_TD(self.input_args(i, output_type=True)) for i in range(self.n_sounding) - # ] - # ).tocsr() - # return self._Jmatrix - - diff --git a/simpegEM1D/supporting_functions/kernels.py b/simpegEM1D/supporting_functions/kernels.py index 0073d8c..94492c6 100644 --- a/simpegEM1D/supporting_functions/kernels.py +++ b/simpegEM1D/supporting_functions/kernels.py @@ -2,6 +2,7 @@ from scipy.constants import mu_0 from geoana.kernels import rTE_forward, rTE_gradient +# TODO: reduce f and lamda as 1D arrays, and use numpy broadcast def magnetic_dipole_kernel( simulation, lamda, f, n_layer, sig, chi, h, z, r, src, rx, output_type='response'