{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# PDE python exercise 4" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "In this exercise we will apply an iterative method to solve a non-linear elliptic PDE. The problem we consider is a squared plate and in particular the distribution of a variable $u$ for a given set of boundary conditions. This plate is illustrated in the figure below as well as its boundary conditions." ] }, { "attachments": { "image.png": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArYAAAFOCAYAAABzKl4FAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACtqADAAQAAAABAAABTgAAAABO5fZkAABAAElEQVR4Ae2dB7gURdaGD4qYA4oZc86C2TWgmNaIGXPOrjkvKkbMac2iYs45izlnzKKYFYzogqKCYP/11r819p3bM9MTb8+933mey8xUV1dXv1VNf33qVHWnyJnJREAEREAEREAEREAERKDJCUzU5PVX9UVABERABERABERABETAE5CwVUcQAREQAREQAREQARFoFwQkbNtFM+okREAEREAEREAEREAEJGzVB0RABERABERABERABNoFAQnbdtGMOgkREAEREAEREAEREAEJW/UBERABERABERABERCBdkFAwrZdNKNOQgREQAREQAREQAREoHMtEfz111/20ksv2ZgxY2yFFVawaaaZppbFqywREAEREAEREAEREAERKEigZh7bjz76yFZffXW744477Oqrr7Y555zTnnvuuYIHJv/iiy9uW221VcE82iACIiACIiACIiACIiACaQl0qsWbx37++WdbY4017JZbbrGFFlrIvv32W5t11ln996FDhybW5dBDD7VzzjnH5p57bvvss88S8yhRBERABERABERABERABNISqInH9uijj7YDDzzQC1kOjLDFPvzwQxs1apT/nv/PU0895ZNWW221/E36LQIiIAIiIAIiIAIiIAJlE6ha2P7yyy82ePBg22GHHXIHf+ihh/x3YmynnnrqXHr4gth96623/M9evXqFZH2KgAiIgAiIgAiIgAiIQMUEqha2b7zxhm2++ebWufPf89BuvPFGX6FNN93UJpqo9SGeffZZmzBhgs8jYVtx22lHERABERABERABERCBGIHWqjO2Mc3Xbt262V577ZXLitB99913/e9ddtkllx7/EsIQ5pprLptnnnnim/RdBERABERABERABERABCoi8LebtaLdzRZbbLEWe15//fX+N6siFIqfffrpp30eeWtboNMPERABERABERABERCBKghU7bGNH9utsGC33XabT9pmm22sU6dO8c3+O/G1Q4YM8d8lbFvhUYIIiIAIiIAIiIAIiECFBGoqbF9//XX7+uuvfVU22WSTxCqxtm2Ir2WJMJkIiIAIiIAIiIAIiIAI1IJATYVtiJ2dbrrp/JvHkioY8rB+LTG2MhEQAREQAREQAREQARGoBYGaClsmjmHLLbdc4moIbAvCVmEI0JCJgAiIgAiIgAiIgAjUikBNhe3333/v6zXvvPMm1i8eX6swhEREShQBERABERABERABEaiQQE2F7bTTTuurMdlkkyVW5+abb87F18pjm4hIiSIgAiIgAiIgAiIgAhUSqKmwXXvttX013n///VbVefvtt+2II47w6axdy3JgpWzddde1nj17lsqm7SIgAiIgAiIgAiIgAiJgNRW2u+66q6244or2xBNP2AMPPODxjhs3zgYNGmR77LGHTTLJJD4tTRgCS4c9+uijfmmwP//8U00lAiIgAiIgAiIgAiIgAkUJ1FTYdunSxZ588kk7+eST7cQTT/Te1jXXXNOGDx9uhCH89NNPvjKklTImmXXt2tVmn312e/DBB0tl13YREAEREAEREAEREIEOTqCT84xGjWBw5ZVX2u67726IXyaZhXjcQsfeaaedbKqpprIxY8YYk87uuuuuQlmVLgIiIAIiIAIiIAIiIAK1CUUgVOCSSy6x4447zkaPHp2IFWGL7bDDDiVF7a+//mr33HOPzTzzzDbTTDN5L/CPP/6YWK4SRUAEREAEREAEREAERAACNQlF6N+/v+2777520kkn+XjafLTE3L744ote0JK3lPFaXlZNICZ34oknto033thuuOGGUrtpuwiIgAiIgAiIgAiIQAcmUBNhG2JgO3XqZEsttVQLnL///rvtvffexraBAwda9+7dW2xP+sFks5133jm3ie+kyURABERABERABERABESgEIGaCNtZZpnFNthgA7vvvvts9dVXzx1r7Nix1rdvX/v000/t8ssvty222CK3rdAX8n7wwQe+vJCHVRRGjhxpLBkmEwEREAEREAEREAEREIEkAjURtv369bMvvvjCT/ZiLhoxt4MHD7aVV17Zi1RCEZg4lsYo59prr/VhCEwwm3766b2395prrrERI0akKUJ5REAEREAEREAEREAEOiCBmq2KgDf1rLPOsqFDhxridr755rM+ffp4L23nzp0rQjtgwAA/GY1PmQiIgAiIgAiIgAiIgAgUI1CZ4kwocckll/Se1oRNFScRlzvRRDVxKldcB+0oAiIgAiIgAiIgAiLQHAQyrRrx/P7111/NQVK1FAEREAEREAEREAERaFMCmRa2bUpGBxcBERABERABERABEWgqApkWtoQhEI4gEwEREAEREAEREAEREIFSBDItbAlDaNAbf0tx0nYREAEREAEREAEREIGME8i0sM04O1VPBERABERABERABEQgQwQyLWy1KkKGeoqqIgIiIAIiIAIiIAIZJ5BpYatVETLee1Q9ERABERABERABEcgQgUwL2wxxUlVEQAREQAREQAREQAQyTiDTwlarImS896h6IiACIiACIiACIpAhApkWtloVIUM9RVURAREQAREQAREQgYwTyLSwzTg7VU8EREAEREAEREAERCBDBDItbLUqQoZ6iqoiAiIgAiIgAiIgAhknkGlhq1URMt57VD0REAEREAEREAERyBCBTAvbDHFSVURABERABERABERABDJOQMI24w2k6omACIiACIiACIiACKQjkGlhq+W+0jWicomACIiACIiACIiACJjVTdg++OCDNmzYsKoYa7mvqvBpZxEQAREQAREQARHoUATqImyHDx9uG264oSFuZSIgAiIgAiIgAiIgAiLQCAI1F7Z//PGH7bvvvsaKBtWaQhGqJaj9RUAEREAEREAERKDjEOhcq1O98MILbfDgwfb000/bqFGjalKsQhFqglGFiIAIiIAIiIAIiECHIFAzYdutWzdbfPHF/d+YMWPs/PPP7xAAdZIiIAIiIAIiIAIiIALZIFAzYdu3b1/jDxs5cqSEbTbaV7UQAREQAREQAREQgQ5DoOYxtrUkp1fq1pKmyhIBERABERABERCB9k2gZh7bemCq9yt1Tz75ZBs/fnw9qq4yRUAE/kfg2GOPtYknnlg8REAEREAERKDuBBoubCeddFIbN25c6hM7/PDDU+ctN+NJJ51UVl3KLV/5RUAEzI455hgJW3UEERABERCBhhBouLAdO3Zs6hMbMGCAjR49OnX+SjP269dPN95K4Wk/EShAgBGRCRMmFNiqZBEQAREQARGoPYGGC9tyTqFR69gyVNqlS5dyqqa8IiACJQjwYCphWwKSNouACIiACNSUQKYnj2kd25q2tQoTAREQAREQAREQgXZNINPCtl2T18mJgAiIgAiIgAiIgAjUlICEbU1xqjAREAEREAEREAEREIG2IlAXYUtsLFbtEj+NirFtK/g6rgiIgAiIgAiIgAiIQO0I1GXyWNeuXY01aKs1xdhWS1D7i4AIiIAIiIAIiEDHIVAXj23HwaczFQEREAEREAEREAERyAoBCdustITqIQIiIAIiIAIiIAIiUBUBCduq8GlnERABERABERABERCBrBDItLDV5LGsdBPVQwREQAREQAREQASyTyDTwlaTx7LfgVRDERABERABERABEcgKgUwL26xAUj1EQAREQAREQAREQASyT0DCNvttpBqKgAiIgAiIgAiIgAikIJBpYasY2xQtqCwiIAIiIAIiIAIiIAKeQKaFrWJs1UtFQAREQAREQAREQATSEsi0sE17EsonAiIgAiIgAiIgAiIgAhK26gMiIAIiIAIiIAIiIALtgoCEbbtoRp2ECIiACIiACIiACIhApoWtJo+pg4qACIiACIiACIiACKQlkGlhq8ljaZtR+URABERABERABERABDItbNU8IiACIiACIiACIiACIpCWgIRtWlLKJwIiIAIiIAIiIAIikGkCEraZbh5VTgREQAREQAREQAREIC2BTAvbTp06GRPIZCIgAiIgAiIgAiIgAiJQikCmVWMURcYEMpkIiIAIiIAIiIAIiIAIlCKQaWFbqvLaLgIiIAIiIAIiIAIiIAKBgIRtIKFPERABERABERABERCBpiYgYdvUzafKi4AIiIAIiIAIiIAIBAKZFraaPBaaSZ8iIAIiIAIiIAIiIAKlCGRa2GryWKnm03YREAEREAEREAEREIFAINPCNlRSnyIgAiIgAiIgAiIgAiJQioCEbSlC2i4CIiACIiACIiACItAUBCRsm6KZVEkREAEREAEREAEREIFSBDqXytCW2zV5rC3p69giIAIi0HgC3333nV111VU2duxYm2+++WyHHXZofCV0RBHIIzB06FD7/vvv7ccff7QePXrYPPPMk5dDP7NCINPCVpPHstJNVA8REAERaE3gnXfesauvvto23XRTW2CBBWzqqae2b775xp5//nkbNWqUHXDAAa13KpLy9ttv27rrrmvXX3+9/fHHH9anTx/r0qWLbb311kX2qs+mb7/91gYOHGjjx4+3X3/91RZaaCHbZZddrHPnTN826wOjQKkTJkywiSeeuMDWwsmfffaZnX322XbhhRcWzpSxLfTzwYMH25AhQ+zGG29s98KWt76eccYZttpqq9nKK6+csdYoXh1docX5aKsIiIAIiEABAoi/c8891//FsyyxxBL24IMPxpNSfd93331tvfXWs969e9sjjzxi3bp1s2mnnTbVvrXM9NZbb9lmm21mt912m/Xs2dMXfdZZZ/l6Pfzwwzb55JPX8nBNVxYPNKeddpp9/PHH9vLLL6eq/7PPPmt4Pcl/xx13+HZtJmF7+umn27bbbmtLL710qvNtxkxcz88884x98MEH9sADD9irr75qt9xyS9OdimJsm67JVGEREAERyA6BZZZZxlZYYQVbeOGFbZ111rFLLrnEXnvtNevevXtZlcRDi6d3lVVW8fvhucX7i9BtpOGF3GabbWyPPfbIiVqOf9hhh3nv7bHHHtvI6mTqWC+88IJttNFG3oO+1lpr2XPPPZe6fiNHjrSZZprJTjnllKb1drb3B5rff//dj5RssMEGdtBBB6Vu26xllMc2ay2i+oiACIhAExHYcccdyw45SDo9hvuxthYPeGTxWHFzz7f111/f8NydeOKJNsUUU+Rvrur3p59+ameeeabNPffcduSRR1ZVVq13fuihh7yH9rfffrOjjz7ah4hMNFF5fjHCSmTZJkDccIgdxhvfrFZez2zwWXLhMIFMJgIiIAIiIAKNIHDvvff6w8w777ytDsdN/5dffrGnnnqq1bZKExjW32677bxneskll8yMpwzPNcPQTJQiDANPNUPThGiUK2orZaP9RKASApn22BK8zAQymQiIgAh0FALEIBLfNs0003iRE5+sxP+Jd955p/cmtrVnM789/vvf/xp/hCDE65yfL+n3DTfc4MMO2Pb444/b6NGjfba99tor59wYMWKED3PgnsAf4mqfffax2WabLVckcb2Irx9++MEYKic0gjhOfm+11Va23HLL5fIW+vLmm2/6+k855ZStskw33XQ+jTx4b6sxwi4GDBhgX331lR1xxBF27bXXVjQRC5H9xBNP+DAJJrcxie/FF180vKyTTDKJ7brrrjb77LOnriqrUVAXxOyiiy5ql112mS2//PKp929ERsJWBg0aZMOHD/dD5/wmPnuRRRZpcXhipN99912/ksHGG2/sY6Rvuukmz5w+sfbaaxdsR0YQmCT2ySefGH2BvsMqHZUYITWs9MFQ//7772+zzDJLi2Kefvpp40FqjjnmaJGuH5URyLSwreyUtJcIiIAINCcBBAlChaHuZZdd1q8IEF9Z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9Hj8aRvajX4Wn1CWlkE98nH9EobB9UMbwQaJCDsYwaCc67oedUxTpoSthG2afqI8IlA2AQnbspFphw5OgJhhHmAqfXVrB8eXydNHFOLt5IHPvZQiV0feCvfpp596MZ5L1JeaEFCMbU0wqhAREAEREAERqI4A4QX8tYURF423uxzD07rZZpuVs0uHy8uwPqtLELcdXqhBWAaeUV6KIas9AQnb2jNViSIgAiIgAiLQVARY8aFcYZs2xrSpQNS4soQgEApDeA4GY4QuYUW9e/eu8dFUHAQkbNUPREAEREAERKCDE2BNYlntCbAUHS8qYVIbbx5j4h/x87zVTVYfApkWtgQuhyDz+py+ShUBERABERABERCB+hBgrgEhCEySk6apD+P8UjMtbMNsvPxK67cIiIAIiIAIiIAINAuBNGvVNsu5ZL2eWsc26y2k+omACIiACIiACIiACKQiIGGbCpMyiYAIiIAIiIAIiIAIZJ2AhG3WW0j1EwEREAEREAEREAERSEVAwjYVJmUSAREQAREQAREQARHIOgEJ26y3kOonAiIgAiIgAiIgAiKQioCEbSpMyiQCIiACIiACIiACIpB1AhK2WW8h1U8EREAEREAEREAERCAVAQnbVJiUSQREQAREQAREQAREIOsEJGyz3kKqnwiIgAiIgAiIgAiIQCoCmX7zmF4/l6oNlUkEREAEMkGA14amfcPSn3/+aZNMMklV9f7iiy/suOOOs1lmmcX4vu+++9pqq61WVZnV7jx+/Hjr3DnTt9ZqT7Hh+5fTrxpeuYQDPvXUU/b444/bjz/+aHPOOacdffTRCbnaV1KW+n2mrz69Urd9dXydjQiIQPslwM18l112seeee85mn332xBP97bff7KSTTrLRo0fbbLPNZp988ol1797d+vXrZ126dEncp1Di999/byuttJKddtpptskmm1i3bt1s2LBh9vrrrxfapW7pn3/+uT8v6jDFFFPY+++/7+u07bbb1u2YzVbwSy+9ZAsuuKBNP/30ZVX9rbfe8v3qggsusFVWWaWsfdsqM317oYUWsnPPPdf+8Y9/tGthe8kll9jLL7/s2/abb76xP/74w0499VSbccYZ2wq/ZVrYthkVHVgEREAERKAkgTvvvNNuvfVWGzNmjCHu+MO7lmSkb7zxxrbqqqvagAEDclkOPfRQ23LLLe2ee+7JpaX5cuGFF3rP6A477OCzH3744bbIIouk2bWmeUaMGOHFy4033mirr766L3vs2LHWq1cvQ3wfdNBBNT1esxX2wAMP+PbGo3fTTTelErbPPPOMXXbZZf4BCIZDhgwp2K+yyAMBzx9ivD0bnuh33nnH7r33Xptoov+PbL3tttv89fDKK6/YdNNN1zan77yimTWn+qOjjjqqbvVzHoLIUY/cf0J1O4YKFoGOSkDXV/tv+VGjRkW//PKLP9EDDzzQ/3/qQgIST/zqq6+Opppqqsh5bVtspwz6irshtkgv9WPTTTeN1lxzzVLZ6r59xx13jNZaa61Wx3nwwQejySabLBo+fHirbbVKcKKvVkXVtBwnYiMn9KMll1wyWnvttSM3LF9W+b/++mv0888/+33OP/9836/ciEBZZWQh84orrhits846WahKzevw3nvvRU7MRk7Atip76aWXjtwDa6v0RiVo8ljbPE/oqCIgAiLQ9ASmmWYac2I11XlcccUVtswyy9jkk0/eIj9lLL744sb2cmzcuHGp43nLKbecvE6Ue4910hD5yiuv7Idlr7vuunKKTJX32WeftfXXX9+HO6TaoUGZ8FRfeumltvDCC9sdd9xhV111lT366KPmHkDKqsGUU07Zdt6+smracTNfeeWVNumkk/prOp8CfX/QoEFGHH1bmIRtW1DXMUVABESgAxEgVIEYS2IPk4yYXMQaw9W1tL/++ssQn/Wy559/3ovXpJjiaaed1hBoTzzxRE0O77xddv/99/th3mOOOcb2339/e+GFF2pSdrWFEDN9xhln+OF3hqCp5+23354oeqo9VqX70xd++umnpgppqPRcG7Efk+OYtBlCEOLH5HoYOXKkvf322/Hkhn1XjG3DUOtAIiACIlCaABNO3DCsjyu8/PLLbdZZZ83tRPrBBx9sp5xySsEJWrnMGfry0UcfGcKikHeX9N9//93H6M4///xFa04sK3+vvvqqL3PDDTf0+V0ohLlhb/+d48GICSzcZD/88EMvMo8//njDQ4whwA455BA/c33qqae2p59+2s4880xjXwQQscOkF7MPPvjAby50XuzPRLJqjNjkm2++2QvHOeaYw38yIakSu/vuu/1540n773//6yc3vfHGG/bQQw/5eGU8rkzGSxIrScf74YcfzIUKeO/cFltsYQh9JgNmyZjMdPbZZ/v+xcQ1HrDwNJI200wz5ar68MMP+wmArGTAA9hjjz1mF110kY8f/+677+zdd9+1008/PVGsf/vtt75dmByJ2IPvBhtskCu7nC/EFPN/gAvx8aMb9Mm40VYvvviinXjiifHkhn8fOnSof5BJOnC4buj7jNI02iRsG01cxxMBERCBAgSYMOPi02yNNdawZZdd1k8+iU+0YmLGNddcYwi0UsYN/bXXXqvIQ4WYZvJLrQwBhBVaBiusiMBNvZSwZaUB/hC0CA68g3Fjhvbmm2/uxdoSSyyR28RDAkOkTExC4Cy//PJ+mHzrrbf24hOh869//cuLG4Qzqzv885//zO2f9AURhBVa4ozlzDinSoz2YygfkbPccssZIQ0uZrWSovw+iGO8vsxYx7bffnvPkTLpYzvttJNde+21Po0+WMyY/U45d911l+22227GygUzzDBDsV3abBuT9/Ccn3XWWcYSotjee+/tPd9MSgsPJeutt57vHy4m1ot++sN2222Xe4Dcb7/9bKONNvIPX6G/UhYPBohY2qlv374keeN4rNJRrrBj+bpzzjnHvvrqKx/SQbsQqhMMQUt/KyVsWf7uczeZs1zjoYb2D+I0aX9ENw9Bxfo9+4XrPqmMeqZJ2NaTrsoWAREQgZQEGIbnRrvXXnt5b42bnNHK6/Pkk0/6G+0888xTslRujBdffHFFwpYbWy3X3uQmiJXyBIZ8JU+uQAb232qrrWybbbaxuKgl+5577uk9cAgUZudjLM1FPry1rDeK4D3iiCOsR48eOe+vz1jgH8QnVugGj5Aq95wInWAJJf4Q1o888ojNO++8BWqQLhlPP57K8847L7cDwuWWW26xgQMH+jRY9OnTxxZddNFcnkJfKIsHrJ133tngmVVRS/15kMGzjgAP58Z6xzxEsqqHm/yXO028+aysQRjFYostlhO1ZGDFC64nVgEIYhUPLcyIIY6LWvIfdthhZa+KQFtTFm3BAxoWX+uZkB6Ws6OPljI80JWEwXCNMirEg18hC326WL9n33B9FCqnXukStvUiq3JFQAREoAwCn332mb9JsgsTb7gpINLixlqxbgZ+PKng9wUWWMAP2RfM0MANQdDiMUwywhSwkC8pT5o0PNpffvllwfVOEScsE4Y3LcTFIj7xQIWluvBWx8VOseOG+hY6L8IIgpewWDlsw/uM8Lz++uu9MEfYMKxdCyPWEWEXN4bWGRUIw/EI6bTmVqTwowoM1SOA8J4j5Oaee+60RTQsH6ESPCTGl4IL4T08/CUZAjKEtYTtiE2MEI5gtBVlwCPJwj5J25LSKAtPOkbZeGpZDzcYoR6EOTCiU8p4QOavHhb6dLF+z3HD9VGPOhQrU8K2GB1tEwEREIEGEUCI8ofdcMMNfjgQr1EwYtqI5evVq1dIaprPMNxbaHJYSGfIuBojfAArtDg86dyMmXTF2rnBuFEHoRvS0nyWOi+EbchTqjxeboFwIQ42jXApVV58exDtIQ2PG2Eq1ayxyxql//73v32cMjPkEYJueSs78sgjWwydh2O21Sf1gifr6eLBxAMahFl4oMqvG/0wHm4Q3x7fB28wlmYEJV5Goe+7776738R1zuQs4p3jxsgC9SKkpi0t9Olw3ebXhX6PhXz52+v9e6J6H6Ca8lH7oQNWU472FQEREIFmIcDEJTyzTMaJG2kYQ5XNZmFCEZ6wJGNWPVaJuIyXx9BwMQv3k/x6EPsbH/ItVkZ8W5rzSntO9913nx/qZhIcS3mxSkS9jMlHjAjkC95KjsfybazQwHD/uuuu62N0eRFHVlZs4GGBeHFGQfAqMwGMz2IW+kmxPGwL/a2SvlOsbB5uENDxhy/y838AHvL8JfOKlVWPbUy+4y17+ddROFatrudQXrmfmfbY0rCFXN3lnqjyi4AIiEAzEAjLXuWHHOCtmWuuubx3CFHy9ddfF51oRSwgk6yC96Scc19ttdX8eqTl7FMsLzGiePjCZKv8vExGYtg9DBHnb0/7O0x4I6Y0yXhowEK+pDzlpIVYy6RJMtzcET7E66Yx4hWZrESb4V0MMc58VjrDvtBx8QYi5uPr73K/RZzGRwkK7Z+UTnkMo3MOTOjjTXCcE/UvNQkvqbxapDGBimPz514QUrBIQgBYcaJcCyMshfpbueWF/MTSM4kyHtqBiGQlEPfSqpCt6CcTTAnNKddwKPLGtFIP0PR9HpCSjOsZS9v3k8qoJi3TwraaE9O+IiACItCMBLgZY/kCg2HPXv8LQwje22IrCDApiqH5SoRtrYcQ8YBtttlmfng1v01wXhBfnD/5Jj9fmt9MGjvhhBO8AEgSg8StIkYYMq+FceNGtLOcWL59+umnPqlQ/GV+/vAbVsSs8sdDDisWsG4tQ/ys4FBowk7YP+kTAYJ4CzHbTFKif8TbmclGCPH8fpdUXrE06s/qAfzRZxlOD/Xn+I2Mu2SSIPHTYYg/1Ds84ITfxFwTi1uu8RDCclz0qyTvd6Gh+lLHYTWD/HYI8bXh/4BSZfTr18/w/pdrtA9rMJcyVh6hHxE2kR8LTt9nAurcbRRznelQhFJgtV0EREAE2huBMHQdF6TE3DK5KMz0521OaW5w3KCY6V/uX6H4wmKswwzo8JmflzVjR4wY4ddRjW8j7pE1bJmJXY7x5jH+4jbffPP5ZZCY8Z6/zBbrkjKjnHjQuLiiDFjHYyfjZRb7jojDM4mHMgxLh/zMrGfCUrnCNuzP56qrrmru1bx+GS5CFSiPN3uFWenxvIW+0x69e/fOTSR68803/YNEmDTGfvC/9957/cNHoXIqScfzT/0HubdQwYhlwcq10J/CZzn7hyWr8vsCgmzmmWf250158f7A5Cz+8i30tfh1udRSS/k4ZSbR5b8IhPZCoBYars8vP/6bdXTjopi+yfJjXJcrrbRSPGvB74RHlHvdk5+RFfp1KcMzTygO6z3HjVEZHrx5mGkzc0/LmTW3Tl7k3O51q5/rJP4d1O4/ibodQwWLQEcloOurspZ3N9DIeX8iF7cYOSEWOY9Q5F436387D1Hk4u8i52GqrPAa7+VuYJGbbR85b2zk4v78/6duSaXIrSoQuSWVWh3NrcUaOTEQuYlwfpubrR85z1Tkhkxb5S2U4IbpI+fdjdyNO3I34MjFc/o6xPM7YRu5tV8jt5RV5IRzdPLJJ0duBYDIebBz2ZzI8vV0N3NfbyfCol133TVyns1cnjRfnOiI9tlnn8h5sCLnCYz4zfm4cIfIDe2nKSJ1no8//jhyM90j5wmLXKxo5MIdSu7rBFLk1qqN+vfvH7kHIt+P3PqqEe3kxGbkRJ5Pcw8dJctqVAa3ioFvU+ehjrp27erbx4XhRC7UIXLe18iJyFRVcYI9ogwnwCK3tFnkXsrhryfO2QnFyInb6IADDvBcnHc5cmItchPH/PHceraRW5s2+vXXX32/cJ5+n+4eLiI30S8KuoH2dmvKRm5Cl+fJNUvbuBUufB+gj7qHm8g9OKSqM5kow4VG+H5En3VLqkXuQSSij2bJXGhEBBd4Ys57G7nJepGbVNim1ezE0dtMVZc4MEMwxCnxWQ8jAJqnMJ5+K/FQ1KNOKlME2gsBXV+VtyQeGoY38X4QyxZeRctwJB4jPGFZMLxo/B+Kdyh4vbilUEfSnShpVU2W48LLw7JJeJQJQSgnvhEPGGXTvzgmrPA45q+lyv/rgSHhAnjX4p4otlMW5TC8T705H7x8hV4k0epkYgnEP+KdxNvnhKc/r/hQfyxr1V8Z/uWFAHjuWfu4lMGLGG14sUIAn3iYCRVgBQDeZBbar1RZjdhOfWnT0K9oN9qHtqbd6Dfl1BdegRMeT7ySGC9QoCy81xyP9g/9iuNgrG3L62Enm2wy3y/wpJKP/hbvT2gVQj7YzgQvVuBglIBzIC/rJIe33vmCS/xDCAXXO32T9XeJrz/ppJNysdcldm/YZjzVXM+EUKGjCKHp2bNnw46fdCAJW3cB0YElbJO6h9JEoHICEraVs9OeIiACHZMAsb7Dhw/3r+gNBHgT2bHHHmuffPJJq3jWkEeffxPQ5LG/WeibCIiACIiACIhACQIsR8UqA+UM+OJ55DWwIU68xCE65GYmtbG2MC9lOOOMMzwD4oN5fTHiNn+SVoeElOKkJWxTQFIWERABERABERCB/yfACgBMcixX2NZqmbX22g6ERTBh8MYbb/SnGFayYIWDer1FrD2ylLBtj62qcxIBERABERCBOhEgdtpNzqtT6R23WLzarOhx+eWXewjEaw9yK0rEX6vbcemkP3MJ2/SslFMEREAEREAEREAE6kaAJd0I2ZBVTkDr2FbOTnuKgAiIgAiIgAiIgAhkiECmhS1LaZSzpEeGuKoqIiACIiACIiACIiACDSaQaWEb1q1rMBMdTgREQAREQAREQAREoAkJZFrYNiFPVVkEREAEREAEREAERKCNCEjYthF4HVYEREAEREAEREAERKC2BCRsa8tTpYmACIiACIiACIiACLQRAQnbNgKvw4qACIiACIiACIiACNSWgIRtbXmqNBEQAREQAREQAREQgTYiIGHbRuB1WBEQAREQAREQAREQgdoSkLCtLU+VJgIiIAIiUCWBH374wd544w0bM2ZMlSVpdxEQgY5GQMK2o7W4zlcEREAEakzg119/tcGDB9t9991nI0aMqLj0cePG2e67724HHnigvfzyy7bAAgvYBx98UHF51e44fPhwu//++/25cY6y2hB48cUXa1NQg0pZb731jFfdzjjjjHbPPfc06Khtd5gJEybYc889Z3fffXebXn+VEpCwrZSc9hMBERABEbALL7zQ+vbta5NMMol169bNjjnmGC9Mx48fXzadI444woYMGWI33HCDsf8333xjjz32WNnlVLsDAnu33Xaz0047zWaddVbjRt+nTx+75pprqi264P4c88orr7Trr7++YJ6sbHjyySetX79+ZVWH9nz++edtww03tF122aWsfds688MPP+z79Y8//mh//fVXW1enrsd//PHHbc0117Tvv//e5pprLrv11lt9m40cObKux61l4Z1rWVity+KVuvzJREAEREAEskfglltusTPOOMN7daacckpfwZVWWsnwcB111FF21llnpa40ggFhd8IJJ/j/9/HczjnnnLbOOuukLqNWGf/1r3/ZqFGjfH1CmSuuuKIttNBCXrxvsMEGIbnqT8ItLr/8cjv//PNttdVWs+OPP77qMutRAG8Cvffee23AgAHWuXPnsup5wAEH2BdffGH0jXfffdcmm2yyelSxrmUuueSSdS0/C4UPHTrUP8C98sor3kNNnXr06GH9+/f36c8880xTaLJMe2y5kPiTiYAIiIAIZIsA/zcjXrfffnsLojbUcO+99/ZCrZywhP/+97/GcP/MM8/si5l88sltk002MT4bacOGDbOBAwca5xC36aabznumjzzyyHhyxd/xgCEYEMuffPKJPf3003bttdfafPPNV3GZ9dgRT+t1111nSyyxhF122WX+QYZh6rXXXjv14S644AI/hE9/mWKKKVLvl6WMHcHJRn9cdtllc6I28OdaoM15sGkGy7SwbQaAqqMIiIAIdEQCDCt//vnnttRSS7U6fUQQggiPbloLQ7xtLSBuuukmP9xc6Lzee+89e+utt9KeVqt8X3/9tR1yyCGeG+EHTJIjnINh3yzZ77//7uuF8H7ggQd8iMSDDz7ovcpZqqfqUhsCPFQSU7v00ku3KnCWWWbx8cWECDWDSdg2QyupjiIgAh2GAAKPOFNi3LJsL7zwgq8eE2rybaaZZvJJIU/+9kp/f/nll3bbbbf5P77nG2L6u+++88PdX331ld/MBLDXX389dWwkdUZcEy+cb+FcKzmvjz76yMftrrzyyt4r/f7779upp55qgVX+sdL8RnxybrWc2IbnnHohaN9++2175JFH7Oabb04UPGnqWI88eLvvuOMOH4sNxyTjoYERA87h22+/9VkI+4AX4RDhQSppX9J+++03e+211/z+pfIWKiOeTh1e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SRX9/u6772znnXdu9bfbbrvZuHHjKiozaSfOa9FFF03a1G7SirVzmpOUsE1DSXlEQAREoIkJrLrqqrbUUks18RmYzTDDDLbFFltY586dG3Ief/75Z4vjNPr4LQ5e5Ed+PYtkLbrpyiuvtAEDBhhe2yzaH3/8Yaeccoq98sorraqHuF9uueXsgQcesOWXX94mn3xy23fffW2XXXZplTeeMH78eN+f2L9ae/PNN72YXnjhhS3+t8ACC1RbdIv9qXN7tmLtnPa8G/M/RNraKJ8IiIAIdHACw4YNs//85z82atQo23DDDW3LLbdsReTRRx/1XiC2p7GTTz45TbZM51lyySXttttua7M6tvXx633in3/+uS2++OL1PkzZ5d933312xx132OOPP25ff/21LbHEEq3KwEP7j3/8w+6//37v1SfD1ltvbWuvvbb17dvX1l133Vb71Drh/fff957Uo446qtZFd4jy0rRzWhDy2KYlpXwiIAIiUGcCw4cPN0QoQ6o77LCDbbPNNvbxxx+3OCrDmojdM888s0V6sR/cbK+++upclmuuucY22mgjm3baaW3llVe24447zgvpXIa8L0ceeaSdeOKJeanmhcYqq6xi7733nt82dOhQ23zzzW3mmWe2ySabzBZccEE7++yzW+zHUPLdd99t//rXvwxvFl62f//733b00Ue3yMePL7/80ij/gw8+MIaa8TwH23bbbe3ee+/15cw777w2/fTT2zrrrNOK15gxY+yAAw6wxRZbzHvyEKjXXXedXXDBBYnnFMrP/8w//mOPPWbbbbedMWy6xhpr2NRTT+09daeffnqLXX/77Tc76KCD/LappprKexRvuummFnn4ce655/o6TjHFFN47zUMLxwxG7Oumm25qzz77rK255prWq1evsCn3mYZjLvP/vrzzzjueMSEeBx98sPXu3dtvSWonNuDRpW/CnP5Dm8SH/XmxEm1G6AZ9YcYZZ7TpppvO9t57b8O7fNpppxltMOmkk9oKK6xgHL+YzTXXXL6vEirB9ZBvH374oe9/9FFCVYLRJpRf6GGI4xKigxEuQH8KNmjQIC+Up5lmGpt//vl9eMH3338fNid+0kd79uyZuK1Q4pAhQzzvuNed48Avv94HHnigXXTRRbmiSvU7Mj7xxBO+r8AfjrTbDz/8kCsjbR/O7fC/L7Qt7c45x422XX/99Y1rrlwr1c5lleeCkDNrp556auT+Q65b/bp06cJrzaKxY8fW7RgqWAQ6KgFdX+W3vLvBRiNGjPA7upur///JeTJaFOSEjU93N/IW6cV+OI9VdMIJJ/gszzzzTNSpU6fo/PPPj956663Iiayoe/fukRMhBYsYOHBg5G7ykbthtchz0kknRS4uM3JxipHzMEezzjpr5GI0Ize0G7mh2Yj/wznW7bffntvPedyieeaZJ1p66aWjSy+9NPr5558jJ7QjJ4T991xG96V///4+rxNL0YsvvujLCts5LmU7ARa9/fbbkRPLkRN8Ubdu3XL1ZL8VV1wxmm222SInviJ3I45uueUW/9uFFkROmIbiWn3mHy//d2ifOeecM3IeRc+S83XCNHIPJr48N2wcLbvsspHzhEYPPfRQ5Lx6njt5Lr/88twx3UOK53v99ddHn3zySXTXXXdFK620kt8vZOIY7Me5HHroodHTTz/tN8XrlYZjKC98wv+pp56K3PB9dNZZZ0X0DyypnZwoimaZZZbIiZpo8ODBkROH0TnnnBM5kZo7Z/oC91X6y7HHHuu5XHzxxdGUU04ZOUHr/5z3NXryyScj+uUiiywSqlLy0z00+HrFM9K3Jplkksg98MWT/fcjjjjCc2y1wSVw3pwDdb3sssuil19+2WejT/N/l3sg8+fnxF+02mqree4//fRTUlE+zXmMoz333DNyDweRewCJnJCPbr755oL52eAeJjx36hHMPXT5Ormwm5AUjR492jOGW5p+x4533nmnP49+/fr564P+wvXhHkgiN9zvy05bVq4i//vCdbXBBhtELrwpV5YbRYrcg0XkBHl+9rJ/J7VzOYXwytrMmov3iY455pi61U833rqhVcEi4P9T1YNj+o7w448/RjvuuGNuB24cbvJS9M033+TS+IJAhStCKa3Fhe1+++0XuRjAFrsi+pxnquBD/i+//BI5j2TkvL65/bi5IVCdh9mnIcacRzJ3owsZEQXO2xR+emEyxxxz+Jt6SHRezch5lSLnkQpJEeUjXhEaWFzA8Ztt//znP/maMwQubBAjmPPoeobOM5bLwxcEGTfhWgjbIIjCARD2zuPmf15xxRVR165dI+eFC5v9J0IPgeo8df43AiFwDBmdt82fCwIMQ9hybs7THLL4zziXNBxb7Bz7QdvFBRbCNr+dDjnkkMh51lq1Me1G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ere3/lUPju2Nkc6nfRPIdCgCAfUMvTEpoR6modJ6UFWZIvD/BHR9qSeIgAiIgAg0mkCmV0VguI1hOJkIiIAIiIAIiIAIiIAIlCKQaWFbqvLaLgIiIAIiIAIiIAIiIAKBgIRtIKFPERABERABERABERCBpiYgYdvUzafKi4AIiIAIiIAIiIAIBAIStoGEPkVABERABERABERABJqagIRtUzefKi8CIiACIiACIiACIhAISNgGEvoUAREQAREQAREQARFoagIStk3dfKq8CIiACIiACIiACIhAICBhG0joUwREQAREQAREQAREoKkJSNg2dfOp8iIgAiIgAiIgAiIgAoFApoUt7/mu1TvDwwnrUwREQAREQAREQAREoH0SyLSw5XW6vFZXJgIiIAIiIAIiIAIiIAKlCGRa2JaqvLaLgAiIgAiIgAiIgAiIQCAgYRtI6FMEREAEREAEREAERKCpCUjYNnXzqfIiIAIiIAIiIAIiIAKBQKaFLRPHmEAmEwEREAEREAEREAEREIFSBDItbJk4xgQymQiIgAiIgAiIgAiIgAiUIpBpYVuq8touAiIgAiIgAiIgAiIgAoGAhG0goU8REAEREAEREAEREIGmJiBh29TNp8qLgAiIgAiIgAiIgAgEApkWtpo8FppJnyIgAiIgAiIgAiIgAqUIZFrYavJYqebTdhEQAREQAREQAREQgUAg08I2VFKfIiACIiACIiACIiACIlCKgIRtKULaLgIiIAIiIAIiIAIi0BQEJGyboplUSREQAREQAREQAREQgVIEMi1sNXmsVPNpuwiIgAiIgAiIgAiIQCCQaWGryWOhmfQpAiIgAiIgAiIgAiJQikCmhW2pymu7CIiACIiACIiACIiACAQCEraBhD5FQAREQAREQAREQASamoCEbVM3nyovAiIgAiIgAiIgAiIQCGRa2Hbq1MmYQCYTAREQAREQAREQAREQgVIEMq0aoygyJpDJREAEREAEREAEREAERKAUgUwL21KV13YREAEREAEREAEREAERCAQkbAMJfYqACIiACIiACIiACDQ1AQnbpm4+VV4EREAEREAEREAERCAQyLSw1ZvHQjPpUwREQAREQAREQAREoBSBTAtbvXmsVPNpuwiIgAiIgAiIgAiIQCCQaWEbKqlPERABERABERABERABEShFQMK2FCFtFwEREAEREAEREAERaAoCErZN0UyqpAiIgAiIgAiIgAiIQCkCmRa2evNYqebTdhEQAREQAREQAREQgUAg08JWbx4LzaRPERABERABERABERCBUgQyLWxLVV7bRUAEREAEREAEREAERCAQkLANJPQpAiIgAiIgAiIgAiLQ1AQyLWwVY9vUfUuVFwEREAEREAEREIGGEsi0sFWMbUP7gg4mAiIgAiIgAiIgAk1NINPCtqnJqvIiIAIiIAIiIAIiIAINJSBh21DcOpgIiIAIiIAIiIAIiEC9CEjY1ousyhUBERABERABERABEWgogUwLW00ea2hf0MFEQAREQAREQAREoKkJZFrYavJYU/ctVV4EREAEREAEREAEGkog08K2oSR0MBEQAREQAREQAREQgaYmIGHb1M2nyouACIiACIiACIiACAQCmRa2E000kRFnKxMBERABERABERABERCBUgQyLWz/+usvI85WJgIiIAIiIAIiIAIiIAKlCGRa2JaqvLaLgAiIgAiIgAiIgAiIQCAgYRtI6FMEREAEREAEREAERKCpCWRa2God26buW6q8CIiACIiACIiACDSUQKaFrdaxbWhf0MFEQAREQAREQAREoKkJZFrYNjVZVV4EREAEREAEREAERKChBDrX+mjffvutDRkyxGaddVZbZJFFbNJJJ631IVSeCIiACIiACIiACIiACLQiUDOP7XPPPeeFLIJ2/fXXtx49elj37t3ttttua3XQtAlaxzYtKeUTAREQAREQAREQARGoibD94IMPbOONN7Zx48Z5IYvX9v7777d55pnH+vbta4jeSkzr2FZCTfuIgAiIgAiIgAiIQMckUJNQhFNOOcXGjBljjz32mPXs2dOT3GCDDbzXFs/t0Ucfbc8++2zHJKyzFgEREAEREAEREAERaAiBqj22EyZMsIceesjWWWednKgNNZ9tttls++23t+eff96+++67kKxPERABERABERABERABEag5gaqF7dChQ+2nn36y3r17J1ZuzTXX9K/FfffddxO3F0tUjG0xOtomAiIgAiIgAiIgAiIQJ1C1sB05cqQvb6GFFoqXm/tOnC325Zdf5tLSflGMbVpSyicCIiACIiACIiACIlB1jC3eWqxr166JNKeaaiqf/ttvvyVuz0LiSSedZBNPPHEWqqI6iEC7IUCYkkwEREAEREAEGkmgamEbBCFhA0nGa3GxsJ11bVk9Ia0deeSRabNWnO/kk0+ueF/tKAIiIAIiIAIiIAIikA0CVQvb6aef3p9J8Nzmn9bo0aN90gwzzOA/x44dm5+l4O8BAwZY2L9gpio2HHvssTZ+/PgqStCuIiACpQiEh99S+bRdBERABERABKolULWwDYJ1+PDhiXX58MMPfXrIl5ipjRL79evXRkfWYUVABERABERABERABGpNIDl+oIyjLLjggjbTTDPZI488krjXM888Y126dLFll102cXuxRMIYQghDsXzaJgIiIAIiIAIiIAIiIAJVC1uEJ28dYy3bYcOGtSD6+eef26BBg/xSYNNOO22LbWl+RFFkrIwgEwEREAEREAEREAEREIFSBKoWthzgiCOOsCmmmMLWW289u/322+2TTz6xG2+80fr06eNjWPv371+qHtouAiIgAiIgAiIgAiIgAlURqDrGlqMvsMAC9vDDD9tuu+1mW2+9dc7Luuiii9rdd99tyy+/fFWV1M4iIAIiIAIiIAIiIAIiUIpATYQtB+nRo4e98cYbNmrUKHvrrbdskUUWsRlnnLHU8YtuV4xtUTzaKAIiIAIiIAIiIAIiECNQM2EbyiSWdrXVVgs/q/pUjG1V+LSzCIiACIiACIiACHQoAjWJsa0XMXls60VW5YqACIiACIiACIhA+yOQaWErj23763A6IxEQAREQAREQARGoF4FMC9t6nbTKFQEREAEREAEREAERaH8EMi1sWSOXcASZCIiACIiACIiACIiACJQikGlhy8sZCEeQiYAIiIAIiIAIiIAIiEApApkWtpo8Vqr5tF0EREAEREAEREAERCAQqPlyX6HgWnxq8lgtKKoMERCBtARYh/vll1/22Xv27GndunVrseuIESNsyJAh1rVrV//imc6dM/1faIu664cIiIAIdAQCmfbYdoQG0DmKgAi0PYEJEybYsccea+uuu6499dRTdu+999p8883n00I4VL9+/Wy77bazV1991b8yfLHFFrMHHnig7SuvGoiACIiACOQIZNrdoFCEXDvpiwiIQJ0IIGo333xzW3HFFe3FF1/MTVhdaqmlbM899/RvUMSTO2bMGHvyySd9Lfbbbz/7+OOPbY899jC8uDIREAEREIFsEMi0sFUoQjY6iWohAu2ZwHHHHWdLLrmkHXXUUS1Os3fv3v53//79bZZZZrG3337b/37ttdfs4osv9t9/++23FvvohwiIgAiIQNsSyLSwlce2bTuHji4C7Z0AXte7777b3nzzzVanOm7cOJ/2888/G+I3xNMicomxxYN7zjnntNpPCSIgAiIgAm1HINPCFiwhvq3tEOnIIiAC7ZXARRddZIQVTDLJJK1O8f3338+lbbTRRrnv3bt39+EH48ePt6mmmiqXri8iIAIiIAJtTyDTk8cQtRK2bd9JVAMRaAYCTOY65ZRT7Ouvv05dXVY+2H777RPzh9UR5phjDj+RLJ5psskmk6iNA9F3ERABEcgIgUwLW715LCO9RNUQgSYgcM0119jw4cN9vOzaa69tN9xwg/3+++9Fa77DDjvYNNNMk5jnueee8+mrr7564nYlioAIiIAIZI9ApoWtPLbZ6zCqkQhklcCyyy7rJ3V98803frUChO1ss83mvz///PNljf4QP8uyXpiEbVZbXPUSAREQgdYEOjnxmNl31jKpY9NNNzU8t8F4zS6/i32SN+Qp9p3JafHTj++Tv18tfieVkZSWX4+kPIXSCqUnlUneJMtCXupVr3rUs+xy6lxOPQqVm5Rey7Q0ZeXnyf9dznWWv2/8d9L3eBpxsn/++SdYE+2XX35JHT7wyCOP2HrrrefLGTZsmM0///yJZSpRBERABEQgWwQyPXmsT58+LYRnrdENGDDAuNmdeuqptS5a5YlAhyfQVtfX2LFj/UoHgwYNspdeesm23HJL23nnnW3KKadM3SZPPPGEzzv77LNL1KampowiIAIi0PYEMi1s2x6PaiACItAsBFhf9sorr7RbbrnFCEtAzN555502+eSTl30Kjz32mN+nUBgCL2zYbLPN7PHHHy+7bO0gAiIgAiJQPwIStvVjq5JFQAQaSGCnnXbyr7zlRQosyVXKCGe68cYbbeTIkbbPPvtYly5d/C7fffddbl3blVdeObEY9ltiiSUStylRBERABESg7QhI2LYdex1ZBESghgTee++9sko79thjc2FI0047rffwUsBNN93kY/j5Pt988/HRwnjb2H/+8x8bPHhwi3T9EAEREAERaHsCf8/Kavu6qAYiIAIi0DACDz74YO5YCy64oP9OzP0ll1xixPdj33//vf8M/+Dl3W233eywww4z4m9lIiACIiAC2SIgYZut9lBtREAEGkRglVVW8eEHV199tRFyMGLECL8KS79+/eyKK66wBRZYwL8yl1AF7IMPPrANN9zQevToYbvuumuDaqnDiIAIiIAIlENAoQjl0FJeERCBdkPgnHPOsbnnntsGDhxol112mU099dR2zDHH2JprrunP8cUXX/RvMltjjTVs0kknNd5ARvjCSiut1G4Y6EREQAREoL0RkLBtby2q8xEBEUhFgHVvDz30UP+XtMMMM8zgPbZJ25QmAiIgAiKQTQIKRchmu6hWIiACIiACIiACIiACZRKQsC0TmLKLgAiIgAiIgAiIgAhkk4CEbTbbRbUSAREQAREQAREQAREok0CHjrFdddVVjddvykRABGpPQNdX7ZmqRBEQAREQgeIEOkXOimfRVhEQAREQAREQAREQARHIPgGFImS/jVRDERABERABERABERCBFAQkbFNAUhYREAEREAEREAEREIHsE+iQwnb8+PH28ssv2+OPP+7fNpT9ZlINRaD5CPDK2mHDhjVfxVVjERABERCBpiXQoYTthAkT/Hveu3btaiuuuKKttdZa/n3vm2++uf34449N24iquAhkjcDw4cP962cRtzIREAEREAERaBSBDiVs999/f7vqqqu8uH3nnXds6NCh/pWZd911l22//faNYq7jiEC7JvDHH3/Yvvvua5qX2q6bWScnAiIgApkk0GGW+/r444/t0ksvtS222MLOO++8XGPwbvjff//dTj75ZB+a0Lt379w2fREBEUhP4MILL7TBgwfb008/baNGjUq/o3KKgAiIgAiIQI0IdBiP7X333eeRHXXUUa3Q8b74iSaayO68885W25QgAiKQjkC3bt1s8cUXt/32288OPPDAdDsplwiIgAiIgAjUkECH8di+8MILNv3001uPHj1a4ZtuuumsZ8+e9vbbb7fapgQREIF0BPr27Wv8YSNHjrTzzz8/3Y7KJQIiIAIiIAI1ItBhPLbcaOeff37vmU1iN88889iXX36ZtElpIiACIiACIiACIiACTUCgwwjbn376yVgNoZBNOeWU9ttvvxXarHQREAEREAEREAEREIGME+gwwnbiiScu6K2ljYix5U8mAiIgAiIgAiIgAiLQnAQ6jJIjvhavbSEbPXq0zTDDDIU2K10EREAEREAEREAERCDjBDqMsEW0smh8Ifvwww8lbAvBUboIiIAIiIAIiIAINAGBDiNsV1llFfv666/t/fffb9UsP//8s7377ru28sort9qmBBEQAREQAREQAREQgeYg0GGEbZ8+faxTp06JSxCdcMIJ/i1JvFpXJgIiIAIiIAIiIAIi0JwEOsw6tt27d7eDDjrIzj33XJtiiilsu+228y122223ebG71VZb2XLLLdecrahai4AIiIAIiIAIiIAIWIcRtrT12Wef7T2z1113Xe61utNMM43tuOOONnDgQO/RVZ8QARGonkBYYYTVSGQiIAIiIAIi0CgCnSJnjTpYVo7DKRNrO3bsWFtqqaVMN9+stIzqIQIiIAIiIAIiIAKVE+iQwrZyXNpTBERABERABERABEQgqwQ6zOSxrDaA6iUCIiACIiACIiACIlAbAhK2teGoUkRABERABERABERABNqYgIRtGzeADi8CIiACIiACIiACIlAbAhK2teGoUkRABERABERABERABNqYwP8BZ6V+DGjKtuYAAAAASUVORK5CYII=" } }, "cell_type": "markdown", "metadata": {}, "source": [ "![image.png](attachment:image.png)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The plate is of size 1 in x and 1 in y. Dirichlet boundary conditions are applied to each edge of the plate. The distribution of our dependent variable $u$ in the plate is governed by the following PDE which reads:\n", "\n", "$$ \\frac{\\partial^2 u}{\\partial x^2} +\\frac{\\partial^2 u}{\\partial y^2} + u^2 = -1$$\n", "\n", "We want to solve this problem using a centered finite difference for both partial derivatives and the Successive Over Relaxation method." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "In this exercise, you need to :\n", "\n", "On paper:\n", "1. Discretize the PDE using the chosen finite differences\n", "2. Formulate the iterative scheme using the Successive Over Relaxation method\n", "\n", "Within the python notebook:\n", "\n", "3. Discretize the independent variables $x$ and $y$ using a `numpy meshgrid`, both $x$ and $y$ should be discretized using 100 points (i.e `linspace(0.0,1.0,100)`)\n", "4. Write a function which takes in the value of the SOR parameter ($\\omega$) as well as the desired tolerance for the iterative method and return the dependent variable $u$ as well as the number of iterations needed to reach the given tolerance. The boundary conditions will be enforced within the function. The error commited by the iterative scheme should be computed using a normalized max norm of the increment $\\delta U$\n", "5. Plot the resulting dependent variable $u$ using a filled contour plot when using a tolerance of 0.01 and $\\omega = 1.5$.\n", "6. Repeat the computation for a SOR parameter $\\omega = 1.0$ and plot the difference between the new prediction and the one from point 5.\n", "7. Repeat the computation for a tolerance of 0.001 and plot the difference between the new prediction and the one from point 5.\n", "8. What can you say about the number of iterations required in points 5, 6 and 7?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.9.10" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "072f120aa02d08ea61d001fa93115a43c81ff98089754e42d3890c56566da5f7" } } }, "nbformat": 4, "nbformat_minor": 2 }