{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Mesh composition" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Here we show the basics of mesh composition using `PolyMesh`. To see the details of the commands and their parameters, see the API Reference." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## A minimal example" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "At the minimum, you need points and topology to describe a mesh." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "coords = np.array([\n", " [0, 0, 0],\n", " [1, 0, 0],\n", " [1, 1, 0],\n", " [0, 1, 0],\n", "], dtype=float)\n", "\n", "topology = np.array([\n", " [0, 1, 2],\n", " [0, 2, 3],\n", "], dtype=int)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Then you define a data object for the points" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "from polymesh import PointData\n", "\n", "pd = PointData(coords=coords)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "and one for the cells. For now we go with 3-noded triangles:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "from polymesh.cells import T3 as CellData\n", "\n", "cd = CellData(topo=topology)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "If you have data objects for both points and cells, you can define a mesh." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "from polymesh import PolyData\n", "\n", "mesh = PolyData(pd, cd)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Make a plot to see what we got (more about plotting in a subsequent chapter)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaAABI50lEQVR4nO3dZ3ic5YHvfz2mY3rvGBvcey8jMDamS4AmpMi7m97Gm91sdvfsOXsm/7NnM8mmbHo8ISEEQtDQMgIkML1qbNxxxd24Yhsbd+NC+79QruxJFoOLpHtmns/nXQiRfteVeJ77K+4nit5///0KAAAgHtqFHgAAALQdAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAII6iKIqiKPQKAAKI3n///dAbAGg7xx17dG1V4p1336uoqDjyiHa5xsLuPftCjwKg7QgAgLg47eQTaqsTtVWVJ7Y/9j/vaKyoqPinz1ft2LUn19iUayhs3rYz9EAA2oIAACh/5599Wm1VorY6ceQRRzT/lT8FQPO/fOfd93INTbnGwtoNm4OtBKBNCACActbponPGViduvW7YX/z1vwiAP3nw8ZfrGgvLVq5vo30AtDkBAFCeena+aGx14sYrB3zgv7u/AGj26PMz6hoK8xavasV9AAQiAADKShRFA3t1GluVGD2814f8bR8eAM2enTS3rrEwfe4yTwqAcnJk6AEAtIwoiioHdvvlv39xRP8uLfIFRw/vNXp4r4kzF10+qHvT9AUyAKA8CACAkhdF0dWJPnd9b1z/Hpe0+Bcf0b/LiP5dZs5/7ZrKvk8VZssAgFInAABKWBRFN40eeP9P/6Fbp/Nb9Rv173FJ/x6XLFg26uarBj3y7HQZAFC6vAMAUJKiKPrkDcNrqys7nH/mIfzHD+QdgP1ZsXZjrqHpvscmeYIAlCIBAFBijjn6qNrqxNiqyrPPOPmQv8jhBECzDZu21TU25RoKe/e9fchfBIC2JwAASsYpJ7WvrUqMrU6cdMLxh/mlDj8Amm3f+VZdQyHXWNi6fddhfikA2oYAACgB5555am11YmxV4qijWubdrZYKgGZvv/1OXWMh11BYt3FLi3xBAFqPAAAoah0vPLu2KvGJG4a37Jdt2QD4k/sfm5RrLCxfvaFlvywALUgAABSpHpddWFuVqB49sDW+eCsFQLOGZ6fnGgvzl6xujS8OwGESAADFJYqi/j06jq1OjBnRu/W+S6sGQLOnJ86payjMnL/cgwagqPg9AADFIoqiEQO6ZP/tC4mBXUNvaQFjRvQeM6J3YfrCxMCuE2cskgEARUIAAIQXRdFVw3vd+d3UgJ4dQ29pYYmBXRMDu86Yt3zMiN7PTJorAwCCEwAAIUVRVDVqwL0//nqPyy4IvaUVDejZcUDPjvOXrKkePbDxuRkyACAg7wAAhBFF0cevH1Zbleh44dlt/93b4B2A/Vm+ekOusfDAhJc9gACCEAAAbe2oo44cW5WorU6ce+apoTYEDIBm6zZuyTUU6hoLb7/9TqgNAPEkAADazkknHD+2OlFblTjlpPZhlwQPgGZbt+/KNRbqGgrbd74VdglAfAgAgLZw9hmn1FYlxlYnjjn6qNBbKiqKJgCa7d33dl1DIddY2LBpa+gtAOVPAAC0rg4XnFVblfjUjSNCD/kzRRUAf3LvoxNzjYUVa94IPQSgnAkAgNbSrdMFtdWJm68aFHrIByjOAGj28DPTcg2FBcvWhB4CUJ4EAEDL69/jktqqymsq+4Qesl/FHADNnmyanWtsmjn/tdBDAMqNAABoMVEUDe/Xuba68vJB3UJv+QjFHwDNXpq2INfQNOmVxZ5WAC3FLwIDaAFRFI0a1vOO73xlUO9LQ28pK5cP6nb5oG7T5iwdPbzXcy/PkwEAh08AAByWKIpuGNk/96O/69n5otBbytag3pcO6n3pvMWrbrxywGMvzJQBAIfDFSCAQxRF0ceuHVpbnbj0onNCbzlopXIF6L9bump9rqHwhycme34BHBoBAHDQjjziiNrqRG1V4vyzTwu95RCVbgA0W7thc66xkGsovPPuu6G3AJQYAQBwEE5of9zYqkRtdeK0k08IveWwlHoANNu8bWeuoVDXWNi5a3foLQAlQwAAHJAzTzt5bHWitipx3LFHh97SAsojAJrt3rMv11ioayhs3Lwt9BaAEiAAAD7CReedMbaqsrY6EXpISyqnAPiTXEOhrrFp1eubQg8BKGoCAGC/unQ8r7aqsubqwaGHtLyyDIBm9U9NzTU2LVr+eughAEVKAAB8gL7dOtRWV153ed/QQ1pLGQdAs8dfmpVraJq1YEXoIQBFRwAA/Jcoiob2vay2KjFySI/QW1pX2QdAsxemzM81FibPWuJhB/AnfhEYQEVFRUUURVcO6XH7t788pM9lobfQYkYO6TFySI8ps5eMGtrz+SnzZQBAhQAAiKLo+iv63fOfX+vd9eLQW2gVQ/pcNqTPZXMWrrxhZP8JL74iA4CYEwBAfEVRVHPNkPwv/vGyDueG3kKr69314t5dL/78raOS1w6tf3KKDABiyzsAQBy1a9eutioxtjpxwTmnh94SRkzeAdifNevfrGso5BoL7733XugtAG1NAADx0v64Y2qrK2urEmecemLoLSHFPACabdqyI9dYyDU07dq9N/QWgLYjAIC4OOPUE2urKmurE+2POyb0lvAEwJ/s2r0311DINTZt2rIj9BaAtiAAgPJ3wbmnj62qrK1KtGsXhd5SLATAX3jvvfdzjYW6xqY1694MvQWgdQkAoJxd1uHcsdWJ5DVDQw8pOgJgf/JPTq5rKCxZsS70EIDWIgCA8tS768VjqxLXj+wfekiREgAfbsILM+saC3MWrgw9BKDlCQCgrERRNLj3pbXViVFDe4beUtQEwIF4bvK8XENh6pylnpVAOfF7AIAyEUXRFYO7/+pbXxrWr3PoLZSJUUN7jhra8+VXFo8c0uPFqa/KAKA8CACg5EVRdO3lfe/+wd/27dYh9BbK0LB+nYf16zxrwYrrruj3xEuzZABQ6gQAUMKiKLplzOAHf/6NLpecF3oLZa5vtw59u3X4/K2jaq4e8tDTU2UAULq8AwCUpCiKPlWVGFuVuOi8M0JvKUneATgcq17fVNdYuLex4BkKlCIBAJSY4449uraqcmx14szTTgq9pYQJgMO3cfP2uoZCrrFp9559obcAHAQBAJSM004+obY6Mbaq8oT2x4beUvIEQEvZuWtPXWNTrqGwedvO0FsADogAAErA+WefVluVqK2uPPKIdqG3lAkB0LLeefe9XENTrrGwdsPm0FsAPoIAAIrapRefU1uVuPW6YaGHlBsB0EoefPzlXGNh6cr1oYcA7JcAAIpUz84Xja1O3HjlgNBDypMAaFWPPj+jrqEwb/Gq0EMAPoAAAIpLFEUDe3UaW5UYPbxX6C3lTAC0gWcnza1rLEyfu8yjFigqfg8AUCyiKKoc2O22f//i8P5dQm+BFjB6eK/Rw3tNmrno8kHdm6YvkAFAkRAAQHhRFF2d6HPX98b173FJ6C3Qwob37zK8f5eZ81+7prLvU4XZMgAITgAAIUVRdNNVg+7/6T9063R+6C3Qivr3uKR/j0sWLBt185jBjzwzTQYAAXkHAAgjiqJP3jC8trqyw/lnht4SR94BCGjF2o25hqb7HpvkEQwEIQCAtnbM0UeNrU7UVlWefcbJobfElwAIbsOmbbnGprqGwt59b4feAsSLAADaziknta+tSoytrjzphONCb4k7AVAktu/cXdfQlGssbN2+K/QWIC4EANAWzj3r1NqqxNiqxFFHefWoKAiAovL22+/UNRZyjYV1b2wJvQUofwIAaF0dLzy7tjrxieuHhx7CnxEAxen+CZNyDYXlqzeEHgKUMwEAtJYel11YW5WoHj0w9BA+gAAoZg3PTs81FuYvWR16CFCeBADQwqIoGtCjY211YsyI3qG3sF8CoPg9PXFOrqEwY/5yT2qgZbmMC7SYKIpGDOia/bcvJAZ2Db0FSt6YEb3HjOhdmL4wMbDbxBkLZQDQUgQA0AKiKLpqRO87v5sa0LNj6C1QVhIDuyYGdp0xb/mYRJ9nJs6RAcDhEwDAYYmiqGrUgHt/8vUel14QeguUrQE9Ow7o2fHVpWuqRw9sfG6GDAAOh3cAgEMURdHHrx9WW1XZ8cKzQm/hoHkHoHQtX/1GrrHpgQkve4IDh0YAAAftqKOOHFuVqK1OnHvmqaG3cIgEQKlbt3FLrqGQayzse/ud0FuAEiMAgINw0gnHj61O1FYlTjmpfegtHBYBUB62bt+VayzUNRS273wr9BagZAgA4ICcfcYpzT/1P+boo0JvoQUIgHKyd9/buYZCXWNhw6atobcAJUAAAB+hwwVn1VYlPnXjiNBDaEkCoCzd++jEXGNhxZo3Qg8BipoAAParW6cLaqsTN181KPQQWp4AKGMPPzMt11BYsGxN6CFAkRIAwAfo36NjbVXimso+oYfQWgRA2XuyaXausTBz/vLQQ4CiIwCA/xJF0fB+nWurKy8f1C30FlqXAIiJl6YtyDU0TXplscc98Cd+ERhQUVFREUXR6GE97/jOVwf17hR6C9BiLh/U7fJB3abNWXbV8F7PvjxPBgAVAgCIouiGK/vnfvT3PTtfGHoL0CoG9e40qHeneYtX3zhqwGPPz5QBEHOuAEF8RVH0sWuHjq1OdLronNBbaGuuAMXWslXr6xoKf3hisgMAxJYAgDg68ogjaqsTtVWJ888+LfQWwhAAMbd2w+ZcYyHXUHjn3XdDbwHamgCAeDmx/XG1VYna6sRpJ58QegshCQAqKio2b9uZayjkGgs7du0OvQVoOwIA4uLM008eW5WorUocd+zRobcQngDgT3bv2ZdrLNQ1Fja+uS30FqAtCAAofxedd+bY6kRtVSL0EIqIAOC/yzUW6hoKq17fGHoI0LoEAJSzLh3PG1tVecvVg0MPoegIAPbnoaem1jU2LVr+eughQGsRAFCe+nbrUFtded3lfUMPoUgJAD7c4y/NyjU0zVqwIvQQoOUJACgrURQN7XtZbVVi5JAeobdQ1AQAB+KFKa/mGpsmz1ritADlxC8CgzIRRdGVQ3vc/u0vD+lzWegtQJkYOaT7yCHdp8xeMmpYz+cnz5cBUB4EAJS8KIquv6LfPT/8Wu8uF4feApShIX0uG9LnsjmLVt4wsv+EF1+RAVDqBACUsCiKktcMyf/iHy/rcG7oLUCZ693l4t7/fPHnbx31sWuH5p+cIgOgdHkHAEpSu3btaqsSY6sTF5xzeugtlCTvAHA41qx/s66hkGssvPfee6G3AAdNAECJaX/csbXVibFVidNPPTH0FkqYAODwvbllR11jIddQ2LV7T+gtwEEQAFAyzjj1pNrqRG1Vov1xx4TeQskTALSUXbv35hoLuYbCpi3bQ28BDogAgBJw4bmn11ZV1lYn2kVR6C2UCQFAy3rv/fdzDYVcY9PqdW+G3gJ8BAEARe2yDueOra5MXjMk9BDKjQCgleSfnFLX0LRkxbrQQ4D9EgBQpHp3vXhsVeL6kf1DD6E8CQBa1YQXZtY1FuYsXBl6CPABBAAUlyiKBve+dGx14sqhPUNvoZwJANrA85Pn1TUUps5Z6rABRcXvAYBiEUXRFYO7/+pbXxrWr3PoLQAt4MqhPa8c2vPlVxaPHNLjxamvygAoEgIAwoui6NrL+979g7/t261D6C0ALWxYv87D+nWetWDFdVf0e+KlWTIAghMAEFIURbeMGfzgz7/R5ZLzQm8BaEV9u3Xo263D528dVXP1kIeenioDICDvAEAYURTVViVqqxIXnXdG6C3EkXcACGjV65tyjYVcY8EhBIIQANDWjjv26NqqyrHViTNPOyn0FuJLABDcxs3b6xoKucam3Xv2hd4C8SIAoO2cdsoJtVWVY6sSJ7Q/NvQW4k4AUCR27tpT11jINTZt3roz9BaICwEAbeH8s0+rra4cW5U44oh2obdARYUAoMi8++57dY2FXEPT2g2bQ2+B8icAoHVdevE5tVWJW68bFnoI/BkBQHF68PGXc42FpSvXhx4C5UwAQGvp1fmi2urEjVcOCD0EPoAAoJg9+vyMXENh7uJVoYdAeRIA0MKiKBrYq9PYqsTo4b1Cb4H9EgAUv2cnza1rLEyfu8xZBVqW3wMALSaKospB3W779y8O798l9BaAkjd6eK/Rw3tNmrno8sHdm6YtkAHQUgQAtIAoiq5O9Pnd98f1635J6C0AZWV4/y7D+3d55dXXrqns+1RhtgyAwycA4LBEUXTTVYPu/+k/dOt0fugtAGWrX/dL+nW/ZMGyUTePGfzIM9NkABwO7wDAIYqi6JM3jKitTnQ4/8zQW+CgeQeA0rVi7cZcQ+G+xyY6w8ChEQBw0I45+qix1Ynaqsqzzzg59BY4RAKAUrdh07ZcY1NdQ2HvvrdDb4ESIwDgIJxyUvvmo/9JJxwXegscFgFAedi+c3dzBmzdviv0FigZAgAOyLlnnVpblRhbXXnUkUeE3gItQABQTt5+5926hqZcY2HdG1tCb4ESIADgI3S88Oza6sQnrh8eegi0JAFAWbp/wqRcQ2H56g2hh0BREwCwXz0uu7C2KlE9emDoIdDyBABlrOHZ6bnGwvwlq0MPgSIlAOAvRVE0oEfH2urEmBG9Q2+B1iIAKHtPT5yTayjMmL/cUQf+gt8DAP8liqLEgK7Zf/tCYmDX0FsAOCxjRvQeM6J3YfrCyoHdCjMWygD4EwEAFRUVFVEUXTWi953fTQ3o2TH0FgBaTGJg18TArjPmLR+T6PPMxDkyACoEAERRVDVq4H0/+Xr3Sy8IvQWAVjGgZ8cBPTu+unRN9ehBjc9NlwHEnHcAiK8oij5+/bDaqsqOF54Vegu0Ne8AEFuvrX6jrrHpgQkvOwIRWwKAODr6qCNrqxK11ZXnnnlK6C0QhgAg5tZt3JpraMo1Fva9/U7oLdDWBADxcvKJx9dWJWqrEqec1D70FghJAEBFRcXW7btyjYVcY2HbjrdCb4G2IwCIi7PPOGVsdaK2KnHM0UeF3gLhCQD4k7373s41FuoaChs2bQ29BdqCAKD8dbjgrLFViU/eOCL0ECgiAgD+u/senVjXWFix5o3QQ6B1CQDKWbdOF9RWJ26+alDoIVB0BADsz8PPTMs1FBYsWxN6CLQWAUB56t+jY21V4prKPqGHQJESAPDhnmyanWsszJy/PPQQaHkCgLISRdHw/l1qqxKXD+oWegsUNQEAB+KlaQtyjYVJMxc5L1FO/CIwykQURaOH9bzjP746qFen0FsAKBOXD+p2+aBu0+Yuu2p4r2dfnicDKA8CgJIXRdGNV/bP/ejve3a+MPQWAMrQoF6dBvXqNG/x6qpRAx59fqYMoNS5AkQJi6LoY9cOHVud6HTROaG3QIlxBQgOzbJVG+oamv7wxGQnKEqXAKAkHXnEEbXVibFVifPOPi30FihJAgAOx+sbNtc1FnINhXfefTf0FjhoAoASc2L742qrE7VVidNOPiH0FihhAgAO3+ZtO3ONhVxDYceu3aG3wEEQAJSMs04/ubYqUVudOO6Yo0NvgZInAKCl7N67L9dQyDUW3nhzW+gtcEAEACXg4vPObP6pf+ghUD4EALS45n8asPL1jaGHwEcQABS1Lh3PH1uVuOXqwaGHQLkRANBKHnpqal1jYdHytaGHwH4JAIpU3+6XjK1KXHt539BDoDwJAGhVT7w0q66hMGvBa6GHwAcQABSXKIqG9r2strpy5ODuobdAORMA0AZemPpqrqFp8qwljlsUFb8IjGIRRdGVQ3vc/u2vDOlzaegtANACRg7uPnJw9ymzl44a1vP5yfNlAEVCABBeFEXXX9Hvnh9+rXeXi0NvAYAWNqTPpUP6XDpn0cobRvaf8OIrMoDgBAAhRVGUvGZI/hf/eFmHc0NvAYBW1LvLxb3/+eLP3zrqY9cOzT85RQYQkHcACKNdu3ZjqxO1VYkLzjk99BaII+8AQEBr1r+ZayzUNRTee++90FuIIwFAW2t//LG1VYmxVYnTTz0x9BaILwEAwb25ZUddYyHXWNj11p7QW4gXAUDbOePUk2qrE2OrEscfd0zoLRB3AgCKxFu799Y1FnINhU1btofeQlwIANrCheeeXltVWVudaBdFobcAFRUCAIrMe++/n2so5BqbVq97M/QWyp8AoHV17nBubXVl8pohoYcAf0YAQHHKPzkl19C0eMW60EMoZwKA1tKn68W1VZXXj+wXegjwAQQAFLMJL7ySa2yavXBl6CGUJwFAC4uiaHCfS8dWJa4c2jP0FmC/BAAUv+cnz6trLEydvdRpjZbl9wDQYqIoumJw919nvjS0b+fQWwCg5F05tOeVQ3tOnrV45JAeL059VQbQUgQALSCKomsv73v3D/62b7cOobcAQFkZ2rfz0L6dZy1Ycd0V/Z54aZYM4PAJAA5LFEW3jBn84M+/0eWS80JvAYCy1bdbh77dOnz+1lE1Vw956OmpMoDD4R0ADlEURbVVidqqxEXnnRF6C3DQvAMApWvV65tyjYVcY8EpjkMjADhoxx17zNjqRG1V4szTTgq9BThEAgBK3cbN23ONhbqGwu49e0NvocQIAA7CaaecMLaqsrY6ccLxx4beAhwWAQDlYedbe3INhbrGps1bd4beQskQAByQ888+rba6cmxV4ogj2oXeArQAAQDl5N1336trLOQamtZu2Bx6CyVAAPARLr34nNqqxK3XDQs9BGhJAgDK0oOPv5xrLCxduT70EIqaAGC/enW5qLYqceOVA0IPAVqeAIAy9ujzM3INhbmLV4UeQpESAPylKIoG9epUW50YPaxX6C1AaxEAUPaefXlurqEwbe4yhz3+gt8DwH+JoujyQd1u+/cvDu/fJfQWAOCwjB7Wa/SwXpNmLrpicPeXpi2QAfyJAKCioqIiiqKrE31+9/1x/bpfEnoLANBihvfvMrx/l1defe2ayr5PFWbLACoEAFEU3XTVoAd++g9dO50fegsA0Cr6db+kX/dLFi4bdfOYwY88M00GxJx3AOIriqJP3jiitirR4fwzQ28B2pp3ACC2VqzdmGss3PfoRIfA2BIAcXTsMUfVVlXWVifOPv3k0FuAMAQAxNyGN7flGgq5xqY9e98OvYW2JgDi5ZST2o+trqytSpx0wnGhtwAhCQCgoqJi+87ducZCXUPT1u27Qm+h7QiAuDj3rFPHViVqqyuPOvKI0FuA8AQA8Cdvv/NurqGprrGw7o0tobfQFgRA+et44dljqxMfv3546CFAEREAwH/3wIRJdQ2F5as3hB5C6xIA5azHZRfWViWqRw8MPQQoOgIA2J+GZ6fnGgvzl6wOPYTWIgDKUBRFA3p2rK1KjBnRO/QWoEgJAODDPT1xTq6xMGPecmfF8uP3AJSVKIoSA7pm/+8XEgO6ht4CAJSwMSN6jxnRuzBjYeXAboUZC2VAOREAZSKKojEjet/53dSAnh1DbwEAykRiQNfEgK4z5i2/OtHn6YlzZEB5EAAlL4qi6lED7/vJ17tfekHoLQBAGRrQs+OAnh1fXbrmptGDGp6bLgNKnXcASlgURR+/fvjYqsQlF54VegtQYrwDABya11a/UddYeGDCJGfI0iUAStLRRx1ZW50YW1V5zpmnhN4ClCQBAByO9Ru31jU25RoK+95+J/QWDpoAKDEnn3h8bVWitrrylBOPD70FKGECADh8W3e8lWtoyjUWtu14K/QWDoIAKBnnnHFKbXWitqrymKO9uQEcLgEAtJS9+97ONRZyDYX1m7aG3sIBcZQsGcP6dxlbXXn0Uf4rAwCKyDFHHzW2uvK1NRtDD+FAOU2WjIeemnLpxeekU0n/R58AQPGYMW95JptfunJ96CEcKAFQSpauXB9F0Tc+e+NnkiNDbwEAqLgr/8KP7nzUlfLSIgBKTPMfsDEjeqfHJU87+YTQcwCAmNq8bWdmfP7piXN++NvQUzhIAqAkPT1xzjlnnJIel7xicPfQWwCA2Hlx6quZ8Xlv/ZYoAVCq1m/aGkXRFz9x1df++trQWwCAGPn575+4/f5nXPspXQKghDX/wRvWr3M6lbzovDNCzwEAytyq1zdlsvmXX1n86/tCT+EwCICS9/Iri084/th0KnnDlf1DbwEAytZjz8/MZPM739oTegiHSwCUg51v7YmiaM7ilf/ry7eE3gIAlKH/+NXD9zYWXPspDwKgTDT/gezV5aJ0Ktn90gtCzwEAysSrS9dksvm5i1blQi+hpQiAsjJ30aooiv71qzWfvGF46C0AQMm777FJ3/llvR/8lxkBUG6a/4hWjx6YTiWPO/bo0HMAgJK0e8++TDbf8Oz0b2dDT6GlCYDy1PDs9EsuOCudSg7uc2noLQBAiZk6e2kmm39tzRuhh9AqBEDZem3NG1EU/d2nr//CraNCbwEASsZvHnzuZ7+b4NpPGRMA5az5j+6oYT3TqeSZp50Ueg4AUNQ2bt6eyeafe3neT+8KPYXWJADK33MvzzvjtJO+mUqOGtYz9BYAoEg99/K8b2XzmzZvDz2EVicAYmHT5u1RFH3uY1d+/TM3hN4CABSdn9z12G//8LxrPzEhAOKi+Y/04N6XpsclL7ngrNBzAICi8NqaNzLj81PnLL0j9BLajACIl6lzlh57zNHpccmbRg8MvQUACOyRZ6dnxuf37N0XeghtSgDEzp69+6IomrtoZTqVDL0FAAgmk80/MOFl135iSADEUfMf9e6XXpBOJXt1uSj0HACgTc1dtCqTzb+6dM39oZcQhACIr1eXromi6F++dNPY6srQWwCANlLXUPjerx/2g/84EwCx1vyH/4aR/dPjkiccf2zoOQBAK9r51p7M+PxjL8z87q9CTyEoAUDFYy/MvPDcM9LjksP7dQ69BQBoFZNeWZwZn1+9blPoIYQnAKioqKhYvW5TFEXj/uqaL39yTOgtAEAL+9V9T4+/50nXfmgmAPij5g+FKwZ3T6eS55x5Sug5AEALWL9xayabf3Hqq7/4fegpFA0BwJ95ceqrp558QjqVvDrRO/QWAOCwPFWYk8nmt2zbGXoIxUUA8Je2bNsZRdGnb7niHz9fFXoLAHCIfnhH4+8eetG1H/47AcAHaP6w6N+j4zfHJS+9+JzQcwCAg7B05fpvjc/PnL/8rtBLKE4CgP2aOX/5UUcemR5XU3P1kNBbAIADUv/UlMz4+rffeSf0EIqXAODDNH98fOzaoelU8ogj2oWeAwDs17vvvpfJ5v/wxOT/89PQUyhuAoCP9ocnJne+5Lx0Ktmve4fQWwCAD/DKqysy2fzi114PPYQSIAA4IItfez2Kon/6fNXf3HJF6C0AwJ+5+6EX//OORu/7coAEAAeq+WPl2sq+6XHJk088PvQcAKBi2463MuPzTzTN+sFvQk+hdAgADs4TTbPOO/u0dKqmcmC30FsAINaapi/IZOtf37A59BBKjADgoL2+YXMURV/51JjU2GtCbwGAmMrWPXnbvU+79sMhEAAciuaPmxEDuqZTyQvOOS30HACIkTXrN2ey+YkzFv4yF3oKpUkAcOgmzlh40gnHp1M1113RL/QWAIiFx198JZOt377zrdBDKGECgMOyfedbURTNXbzqf3zxptBbAKDMff/2R+55pMm1Hw6TAOBwNX8M9enWIZ2q6drx/NBzAKAMLVy+NpOtn71gxe9DL6EMCABaxuwFK9q1a5dO1dx63bDQWwCgrDz4+MuZbP17770XeghlQgDQYpo/mG4eM/ibqeTRR/ufFgAcrn373vlWNv/w01P//Rehp1BGnNJoYQ8/PbXTReekx9UM7Nkp9BYAKGHT5y3LjK9ftmp96CGUGwFAy1u2an0URf/w2Rs+m7wy9BYAKEl35p//8Z2Ped+X1iAAaBXNH1hXjeidTiVPP+WE0HMAoGS8uXVnJpt/ZuKcH/029BTKlACgFT0zcc7ZZ5ySTtWMHNIj9BYAKAEvTJmfydZv2LQ19BDKmQCgdW3YtDWKoi9+fPTX/ua60FsAoKj9/O7Hb3/gWdd+aG0CgFbX/EE2tG/n9Liai887M/QcACg6K1/fmBlfP3nW4l/fH3oKMSAAaCOTZy1uf9wx6XHJG68cEHoLABSRR5+fkRmf37V7b+ghxIUAoO3s2r03iqI5i1b961duCb0FAIrCd2576L5HJ7r2Q1sSALSp5g+4np0vSqdqelx2Yeg5ABDM/CWrM9n6eYtX3Rt6CXEjAAhg3uJVURT961du+eSNI0JvAYAA7nt04ndue8gP/glCABBG80de1aiB6XE1xx97TOg5ANBG3tqzNzO+vvG56d/+ZegpxJUAIKTG56Z3OP+s9LiaIX0uC70FAFrdlNlLMuPrV6x9I/QQYk0AENiKtW9EUfS1v7nuix8fHXoLALSi2x949ud3P+7aD8EJAMJr/ii8cmjPdKrmrNNPDj0HAFrYG29uy2Trn58872e/Cz0FBADF4/nJ88449cR0Kjl6eK/QWwCgxTw7aW4mm9+0ZUfoIfBHAoAismnLjiiKPpu88h8+e0PoLQDQAn5852N35p937YeiIgAoLs0fkYN6XZoeV9PxwrNDzwGAQ7R89YbM+Pppc5f+NvQS+AsCgGI0be7SY445Kp1K3nzVoNBbAOCgPfzMtEw2v3fv26GHwAcQABSp5g/Nj18/PJ2qiaIo9BwAOCDvv/9+Jlv/wIRJ3/xx6CmwHwKAovbAhEndOp2fTiV7d7049BYA+AhzFq7MZPMLlq0NPQQ+jACg2C1YtjaKov/xxZv+6qbK0FsAYL/ueaTp+7c/4n1fip8AoAQ0f5heP7J/OlVzYvvjQs8BgD+zY9fuTLZ+wgszv/fr0FPgAAgASsaEF2ZeeO7p6VRyeP8uobcAwB9Nmrkok82vXvdm6CFwoAQApWT1ujejKEqNveYrnxoTegsAVNx279PZuidd+6G0CABKTPOH7OWDuqdTNeeedWroOQDE1Lo3tmSy9S9Ne3X8PaGnwEESAJSkl6a9espJ7dOp5DWVfUJvASB2nmyancnmt27fFXoIHAoBQKnaun1XFEVzF6/6p89Xhd4CQIz85x2Ndz/0oms/lC4BQAlr/vDt3+OSdCp5WYdzQ88BoMwtWbEuk83PnP/a70IvgcMhACh5M+e/duSRR6RTyeQ1Q0JvAaBs5Z+cksnm33nn3dBD4HAJAMpB88dx8pqh6VTNkUceEXoOAGXlnXfezWTr809O/refhZ4CLUEAUD7yT06+rMO56XHJ/t0vCb0FgDIx89XXMuPzS1asCz0EWowAoKwsWbEuiqJ//HzVp2+5IvQWAEre7x568Yd3NHrflzIjACg3zR/T11T2SaeSp5zUPvQcAErS1u27Mtn8k02z//M3oadASxMAlKcnm2afe9ap6VTy8kHdQm8BoMS8NG1BJptf98aW0EOgVQgAyta6N7ZEUfTlT44Z91fXhN4CQMkYf8+Tv7rvadd+KGMCgHLW/PE9on+X9LjkBeecHnoOAEVtzfo3M+PzE2cuuu3e0FOgNQkAyt/EmYtObH9celzy+iv6hd4CQJGa8OIrmfH5Hbt2hx4CrU4AEAs7du2OomjuolX/8qWbQm8BoOh879eP1DU0ufZDTAgA4qL5Y71314vTqWS3TueHngNAUViwbG0mm5+zcOU9oZdAmxEAxMuchSujKEqnkh+/fljoLQAE9sCElzPZvB/8EzcCgNhp/qC/+apB6XHJY44+KvQcAALYu+/tzPj8w89M+9b40FOgzQkAYurhZ6Z1vPDs9LjkoF6dQm8BoE1Nm7ssMz6/fPWG0EMgDAFAfC1fvSGKoq9/5obPfezK0FsAaCO//cPzP7nrMdd+iDMBQKw1PwBGD++VTiXPOPXE0HMAaEWbtuzIZPPPTpr74ztDT4GgBABUPDtp7lmnn5xOJa8c2iP0FgBaxfOT52ey+Tfe3BZ6CIQnAKCioqLijTe3RVH0hVtH/d2nrw+9BYAW9rPfTfjNg8+59gPNBAD8UfODYUjfy9KpZIfzzww9B4AWsGLtxkw2P2XWkttDL4HiIQDgz0yZteT4445Jp5JVowaE3gLAYWl8bkYmm39r997QQ6C4CAD4S2/t3htF0dxFK//1qzWhtwBwiL79y/r7H5vk2g/8dwIAPkDzA6PHZRemU8menS8MPQeAgzBv8epMNj9/yer7Qi+B4iQAYL/mL1kdRdH/+vLNn6pKhN4CwAG5t7HwH7962A/+4UMIAPgwzY+QG0cNSKeS7Y87JvQcAPZr1+69mWz+0edmfOe20FOguAkA+GiPPjfj4vPPTKeSQ/teFnoLAB9g8qwlmWx+5dqNoYdACRAAcEBWrt0YRdHX/vraL37iqtBbAPgzt9//zM9//4RrP3CABAAcqOZHy8ghPdKp5NlnnBx6DgAVGzZty2TzL0yZ/7O7Q0+B0iEA4OC8MGX+6aecmB6XvGp4r9BbAGLtmUlzM+Pzb27dEXoIlBgBAAftza07oij6THLkNz57Y+gtADH1ozsfvSv/gms/cAgEAByK5kfOwF6d0qlkp4vODj0HIEaWrdqQyeanz112Z+glUKIEABy66XOXHXP0UelUzc1jBofeAhALDz89NZOt37vv7dBDoIQJADgszQ+hW68blh6XbBdFoecAlK333ns/k80/+PjL3/xJ6ClQ4gQAtIAHH3+5a8fz0+OSfbpeHHoLQBmavXBlZnx+4fK1oYdAORAA0DIWLl8bRdE/f7H6r2+6PPQWgLLy+0de+sHtDd73hZYiAKDFND+crruiXzqVPOmE40LPASh523fuzmTzj7/4yvd/HXoKlBEBAC3s8RdfueCc09OpmhEDuobeAlDCJs5YmMnWr1n/ZughUG4EALS8NevfjKLoq7VXf7X26tBbAErSL3NP/TL3lGs/0BoEALSK5odW5cBu6XHJ8846NfQcgJLx+htbMuPzTdMXZOtCT4EyJQCgFTVNX3DKie3T42quqewbegtACXiyaVZmfP3WHbtCD4FyJgCgdW3dsSuKojmLVv3zF6pDbwEoaj/4TcPvH37JtR9obQIAWl3zw6xf90vSqZrOl5wXeg5A0Vn82uuZbP0rr752d+glEAcCANrIK6++dsQRR6RTNR+7dmjoLQBF5A9PTM5k6999993QQyAuBAC0nebHW83VQ9LjkkcdeUToOQCBvf3Ou5nx+fqnpvzfn4eeAnEiAKCt1T815bIO56ZTNf17dAy9BSCYmfOXZ7L1S1asCz0EYkcAQABLVqyLougbn7vxMzUjQ28BCOCu+hd+9NtHve8LQQgACKP5sXd1ok86lTz15Pah5wC0kS3bdmWy+acKs394R+gpEFcCAEJ6qjD7nDNPTadqrhjcPfQWgFb34tRXM9n69Ru3hB4CsSYAILD1G7dEUfSlT1z1t399begtAK3oF79/4tf3P+PaDwQnACC85sfh8P5d0qmaC889I/QcgBa2et2mTLZ+0sxFv7ov9BRAAEDxmDRz0Qntj02nkjeM7B96C0CLeeyFmZlsfueuPaGHAH8kAKCI7Ny1J4qiuYtW/c8v3xx6C0AL+O6vHs41Flz7gaIiAKC4ND8me3W5+Jupmm6XXhB6DsAhWrB0zbey9XMXrawLvQT4CwIAitHcRSujKPrfqZpPXD889BaAg3b/hEnfztb7wT8UJwEARar5wXnTVYPSqZpjjzk69ByAA7Jn775Mtv6RZ6ZlxoeeAuyHAICi9sgz0y658Ox0qmZw70tDbwH4CFPnLM1k619bvSH0EODDCAAodq+t3hBF0d9/+vrP3zoq9BaA/brjwed++rsJrv1A8RMAUAKaH6ijh/VKp2rOOO2k0HMA/symzdsz2fpnX577k7tCTwEOgACAkvHsy3PPPO2k9LjkqKE9Q28B+KPnJs/LjM9v3Lw99BDgQAkAKCUbN2+Poujzt476+09fH3oLQMVPfzfhjgefc+0HSosAgBLT/KAd3OeydKrmkgvOCj0HiKnX1ryRydZPnb3kN6GXAAdLAEBJmjp7yXHHHp1OJatHDwy9BYidhmenZ7L53Xv2hR4CHAoBAKVq9559URTNXbTqf6dqQm8BYuTb2fr7J0xy7QdKlwCAEtb8AO5+6QXpcclenS8KPQcoc3MXr8qMz7+6dM19oZcAh0MAQMl7demaKIr+55dvrq1KhN4ClK1cY+G7v3rYD/6hDAgAKAfNj+QbrhyQTtWccPyxoecAZWXnW3sy2frHnp/xH7eFngK0BAEA5eOx52dcdN4Z6VRyWL/OobcAZeLlVxZnsvlVr28KPQRoMQIAysqq1zdFUfS3f3Xtlz55VegtQMn79X3P/OKeJ1z7gTIjAKDcND+qrxjcIz2u5pwzTgk9ByhJ6zdtzYyvf3Hq/J//PvQUoKUJAChPL06df9rJJ6THJceM6B16C1Binp44JzM+v3nbztBDgFYhAKBsbd62M4qiz9SM/Mbnbgy9BSgZP/rto3fVv+DaD5QxAQDlrPkRPqBnx3QqeenF54SeAxS1pSvXZ7L5GfOW3xl6CdCqBACUvxnzlh991JHpVPKWqweH3gIUqYeemprJ5ve9/U7oIUCrEwAQC80P9Y9dOyw9ruaIdu1CzwGKyLvvvZcZX/+HJ17+/34aegrQJgQAxMgfnni5S8fz0qlk324dQm8BisKsBSsy2fyi5a+HHgK0HQEA8bJo+etRFP3zF6r/+ubLQ28BAvv9wy/94DcN3veFuBEAEDvND/trL++bTiVPPvH40HOAALbteCuTzT/x0qzv3x56CtDmBADE1BMvzTr/7NPSqWRiYNfQW4A2VZi+MJPNr92wOfQQIAwBAPG1dsPmKIq+Unt1qvbq0FuANpLNPXVb7inXfiDOBADEWvMhIDGwazqVPP/s00LPAVrR2g2bM9l8YfrCX9aFngIEJQCAisL0hSefeHw6lbz28r6htwCt4omXZmWy+W073go9BAhPAAAVFRUV23a8FUXRnEWr/scXq0NvAVrY929vuOeRl1z7AZoJAOCPmg8Hfbt1SKeSXTqeF3oO0AIWLX89k83PWrDi96GXAMVDAAB/ZtaCFe3atfvmuOTHrh0aegtwWP7wxORvjc+/9957oYcAxUUAAH+p+bhwy9WD06nk0Uf5lIDSs+/tdzLZ/ENPTf2/Pw89BSg+Hu3AB3voqamXXnxOOpUc0LNj6C3AQZgxb3kmm1+6cn3oIUCREgDAfi1duT6Kon/47I2fTY4MvQU4IHfmX/jxnY963xf4EAIA+DDNx4gxI3qnxyVPO/mE0HOA/dq8bWdmfP7piXN+9NvQU4DiJgCAj/b0xDnnnHFKelzyisHdQ28BPsCLU1/NjM+v37Q19BCgBAgA4ICs37Q1iqIvfmL01/76utBbgD/z898/fvv9z7r2AxwgAQAcqObjxbB+ndOp5EXnnRF6DlCx6vVNmWz+5VcW//q+0FOA0iEAgIPz8iuL2x9/bDqVvPHK/qG3QKw9+vzMTDa/6609oYcAJUYAAAdt11t7oiiau2jl//rKLaG3QEz9x20P3fvoRNd+gEMgAIBD0Xzs6NX5ovS4ZPdLLwg9B2Lk1aVrMuPzcxevyoVeApQoAQAcurmLV0VR9K9fveWTN4wIvQVi4b7HJn7nlw/5wT9wOAQAcFiaDyLVowemU8njjj069BwoW7v37Mtk8w3PTv92NvQUoMQJAKAFNDw7vcMFZ30zlRzc59LQW6AMTZm9NJPNr1jzRughQDkQAEDLWLHmjSiK/u5vrvvCx0eH3gJl5TcPPPuzux937QdoKQIAaDHNB5RRQ3umxyXPPO2k0HOg5G3cvD0zPv/c5Hk//V3oKUAZEQBAC3tu8rwzTj0pPS45eljP0FughD378rzM+PymLdtDDwHKjQAAWt6mLdujKPrcx678+mduCL0FStJP7nrst3943rUfoDUIAKBVNB9cBvW+9Jup5CUXnhV6DpSM11a/8a1sftqcpXeEXgKUKwEAtKJpc5Yee8zR6VTNTVcNCr0FSsAjz0zLZOv37N0XeghQztqFHgCUuT1796V/fF9mfD70ECh2mWw+/eP7nP6B1uafAABt4f4Jk7pdekE6lezd5aLQW6DozFm0KpPNL1i6JvQQIBYEANBGFixdE0XRv3zpprHVlaG3QBGpa2j63q8f8b4v0GYEANB2mo84N4zsn04lT2h/bOg5ENjOXXsy2fxjL8z87q9CTwHiRAAAbe2xF2ZeeO4Z6VTN8P5dQm+BYCbNXJTJ1q9etyn0ECB2BAAQwOp1m6IoGvdX13z5k2NCb4EAfnXf0+PvedK1HyAIAQCE0Xz0uXxw93Qqee6Zp4SeA21k3catmWz+pamv/uL3oacAcSUAgJBemvrqqSefkE7VXJ3oE3oLtLqnCrMz2fot23aGHgLEmgAAAtuybWcURZ++ZdU/fr4q9BZoRT+8o/F3D73o2g8QnAAAwms+EvXv0TE9LnnZxeeEngMtbMnK9Znx+Znzl98VeglAhQAAisfM+cuPOvLI9LiamquHhN4CLab+qSmZ8fVvv/NO6CEAfyQAgCLSfEhKXjv0m6nkEUe0Cz0HDsu77773rWw+/8Tk//PT0FMA/h8CACg6+Scmd77kvHSqpl/3S0JvgUP0yquvZbL1i197PfQQgL8kAIBitPi116Mo+qfPV/3NLVeE3gIH7e6HXvzPOxq97wsUJwEAFKnmw9M1lX3T45KnnHh86DlwQLbueCszPv9k06wf/Cb0FID9EABAUXuyadZ5Z52WHldTObBb6C3wEZqmL8iMr3/9jc2hhwB8GAEAFLvX39gcRdFXPjUmNfaa0Ftgv7J1T95279Ou/QDFTwAAJaD5UDViQNd0quaCc04PPQf+zJr1b2ay9RNnLPxlLvQUgAMgAICSMXHGwpNOOC6dSl53Rb/QW+CPHn/xlUw2v33n7tBDAA6UAABKyfadu6MomrNo1b986abQW6Die79+pK6hybUfoLQIAKDENB+2+nTtkB5X07Xj+aHnEFMLl6/NjK+fvXDFPaGXABwsAQCUpNkLV7SLovS45K3XDQu9hdh58PGXM+Pz7/nBP1CaBABQqpqPXzePGZxOJY852qcZbWHvvncy2fzDT0/991+EngJwqDwygdL28NNTO110TjpVM7BXp9BbKHPT5y7LZOuXrVofegjAYREAQMlbtmp9FEVf/8wNn/vYlaG3ULZ++4fnf3LXY973BcqAAADKQfOx7KrhvdPjak4/5cTQcygrb27dkRlf/8ykOT++M/QUgJYgAIDy8cykOWefcXI6lRw5pEfoLZSJF6bMz2TzGzZtCz0EoMUIAKCsbNi0LYqiL3x89N/9zXWht1Dyfnb347954FnXfoAyIwCActN8XBvat3M6VXPx+WeGnkNJWrl2YyZbP3nW4tvvDz0FoKUJAKA8TZ61+PjjjvlmKnnjqAGht1BiHn1uxrey+bd27w09BKBVCACgbL21e28URXMWr/rXr9wSegsl4zu3PXTfoxNd+wHKmAAAylnzMa5n5wvTqWSPyy4MPYeiNn/J6kw2P2/x6ntDLwFoVQIAKH/zFq+Oouh/feWWT904IvQWitS9j078j9se8oN/IA4EABALzQe7qlED06ma4487JvQcishbu/dmsvWNz03/zi9DTwFoEwIAiJHG56Z3OP/MdCo5pO9lobdQFKbMXpIZn1+xdmPoIQBtRwAA8bJi7cYoir72N9d98eOjQ28hsNsfePbndz/u2g8QNwIAiJ3mA9+VQ3umUzVnnX5y6DkE8Mab2zLZ+ucnz/vZ70JPAWhzAgCIqecnzzv91BPTqeRVw3uF3kKbembS3Ew2/+aWHaGHAIQhAID4enPLjiiKPpu88h8+e0PoLbSRH9/52J355137AeJMAACx1nwQHNSrU3pcsuOFZ4eeQytavnpDZnx+2txlvw29BCAsAQBQMW3usmOOPio9LnnzVYNCb6FVPPzMtMz4/N59b4ceAhCeAACoqKioaD4afvz64elUTRRFoefQYt5///1Mtv6BCZO++ePQUwCKgwAA+C8PTJjUtdP530wle3e9OPQWWsCchSu/lc0vXLY29BCAIiIAAP7MwmVroyj6H1+86a9uqgy9hcNyzyNN37/9Ee/7AvwFAQDwl5qPjNdf0S89Lnli++NCz+Gg7di1OzM+P+HFV77369BTAIqPAAD4YBNefOWCc05Pj0uO6N8l9BYOwsSZizLj82vWvxl6CECREgAA+7Vm/ZtRFKXGXvOVT40JvYUDctu9T2frnnTtB+BDCACAD9N8lLx8ULd0KnnuWaeGnsN+rXtjSyabf2nagvH3hJ4CUNwEAMBHe2naglNOap9OJa+p7BN6Cx/gyabZmWx+6/ZdoYcAlAABAHBAtm7fFUXR3EWr/ukLVaG38Gf+8zeNdz/8oms/AAdIAAAcqOYjZr/ul6THJTt3ODf0HCoWr1iXGZ9/5dXXfhd6CUAJEQAAB+eVV1878sgj0qlk8pohobfEWv7JKZls/p133g09BKDECACAg9Z86ExeMySdSh555BGh58TOO++8m8nm809O+befhZ4CUIIEAMAhyj855bIO56ZTyf49Lgm9JUZmzn8tk80vWbEu9BCAUiUAAA7dkhXroij6x89VfbrmitBbYuF39S/+8LeN3vcFOBwCAOCwNB9Gr67sk04lTz2pfeg5ZWvL9l2ZbP6pptn/eUfoKQAlTgAAtICnmmafe9ap6VTy8kHdQm8pQy9NW5DJ5te9sSX0EIByIAAAWsa6N7ZEUfTlT1417q+uDb2lrIy/54lf3feMaz8ALUUAALSY5kPq8P5d0qnkheeeHnpOyVu97s1MNj9p5qLb7g09BaCMCACAFjZp5qIT2x+XTiWvH9kv9JYSNuGFVzLZ/I5du0MPASg3AgCg5e3YtTuKormLV/7Ll24OvaUkfe/XD9c1FFz7AWgNAgCgVTQfXnt3vTidSnbrdH7oOSVjwbK1mWx+zsKV94ReAlCuBABAK5qzcGUURelUzcevHx56Swl4YMKkTLbeD/4BWpUAAGhdzcfZm64alB6XPPboo0LPKVJ79r6dyeYfeWbat8aHngJQ7gQAQFt45JlpHS88Oz0uOahXp9Bbis60ucsy4/PLV28IPQQgFgQAQBtZvnpDFEVf/8z1n/vYqNBbishv//DcT+6a4NoPQJsRAABtp/mYO3p4r3QqecapJ4aeE9imLTsy2fyzk+b++M7QUwDiRAAAtLVnJ8096/ST06nklUN7hN4SzPOT52ey+Tfe3BZ6CEDsCACAAN54c1sURZ+/ddTff/r60FsC+OnvJtzx4HOu/QAEIQAAwmg+/g7pc1l6XLLD+WeGntNGVqzdmBmfnzJ7yW9CLwGILQEAENKU2UuOP/aY9LiaqlEDQ29pdY3PTc+Mr39rz97QQwBirV3oAQBx99aevf/6w3u//cv60ENa17d/Wf+vP7zX6R8gOP8EAKAo3PfoxB6XXZhOJXt2vjD0lhY2b/HqTDY/f8nq0EMAqKgQAADFY/6S1VEU/c8v31xblQi9pcXkGgvf/dXD3vcFKB4CAKCINB+Ub7xyQHpcsv1xx4Sec1h27d6bGZ9/9PkZ/3Fb6CkA/D8EAEDRefT5GRefd2Z6XM3Qvp1DbzlEk2ctzoyvX/n6xtBDAPhLAgCgGK18fWMURX/719d+6RNXhd5y0H59/zO/+P0Trv0AFCcBAFCkmg/QI4f0SKeSZ59xcug5B2TDpm2ZbP6FKfN/fnfoKQDshwAAKGovTJl/2iknfjNVc9WI3qG3fIRnJs75VrZ+89YdoYcA8GEEAECx27x1RxRFn6kZ+Y3P3Rh6y3796LeP3lX/gms/AMVPAACUgOaD9cBendKpZKeLzg49588sW7Uhk81Pn7vsztBLADgQAgCgZEyfu+zoo49Kp2puGTM49JY/eujpqZls/b59b4ceAsCBEgAApaT5qH3rdcPSqWS7dlHAJe+9934mm3/w8Zf/v58EXAHAQRMAAKXnwcdf7trx/HSqpk+3DkEGzF6wIpOtX7h8bZDvDsDhEAAAJWnh8rVRFP3zF6r/+ubL2/hb//7hl37wmwbv+wKUKAEAUKqaj+DXXdEvnUqedMJxbfAdt+/cncnmH3/xle/f3gbfDYBWIQAAStvjL75y/jmnp1M1iQFdW/UbFWYszGTr165/s1W/CwCtTQAAlLy169+MouirtVd/tfbqVvoWv8w99cvcU679AJQBAQBQDpqP5pUDu6VTNeedfVoLfuXXN2zOZOubpi/I1rXgVwUgGAEAUD6api84+cT26XE111b2bZEv+ETTrMz4+m07drXIVwOgGAgAgLKybceuKIrmLlr1z1+oPswv9YPfNPz+4Zdc+wEoMwIAoNw0H9n7db8knarpfMl5h/AVFr/2eiZb/8qrr93d0tsACE4AAJSnV1597Ygj2qVTyY9dO/Sg/oN/eGJyJpt/9933WmkYAGEJAICy1XyIr7l6SDqVPOqoIz7y73/77Xcz2Xz9U1P+789bfxwAgQgAgDJX/9SUSy8+Nz2uZkCPjh/yt82Yvzwzvn7pynVtNgyAIAQAQPlbunJdFEXf+NyNn6kZ+YF/w131L/zot4963xcgDgQAQCw0H+6vTvRJp2pOPfmEP/31Ldt2ZrL1TxVm//COcOMAaEORn/cAxMo5Z56STiWnzV1WUVExqFenTDa/fuPW0KMAaDsCACB2oij6m1uuqKiouPuhFz0FAOJGAAAAQIy0Cz0AAABoOwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGPn/AVjmro0eNhKfAAAAAElFTkSuQmCC", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh.plot(notebook=True, jupyter_backend=\"static\", theme=\"document\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Joining and splitting meshes" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "One of the strong sides of the library is the composition of complex meshes. The following block shows how to define a mesh consisting of different types of cells, all referencing the same point data:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABAAAAAMACAIAAAA12IJaAABIHUlEQVR4nO3deXzU9aHv//mC7PsaRIIQAZGA7ARZJBOXuq+jptZ6dHq6H9um59z2nNZzbu8xZ2/P0PV0dVJrq8bdZoKguEsQF1ARNwRkEUERUQQFxd8f6c/eelFZknxm5vt8/uUDkpn3Pw7zmk+++Ubvv/9+AgAAiId2oQcAAABtRwAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAACAGBEAAAAQIwIAAABiRAAAAECMCAAAAIgRAQAAADEiAAAAIEYEAAAAxIgAAIC8E0VR925d+vbuEXoIUIQEAADkkSiKPn36rAV1l5eVDrz8K+dc/pVzRw07NPQooKhE77//fugNAEAiiqIzjpuSTiXLSksSicQ/zr1uyKC+X6w+IZFI3LnoyfrGRYuXPe9fbeDgHRJ6AADEXRRFx88Y94f//vrYUaUf/GFZ6cBnVr3U/N/Hzxh3/IxxS1esPi05OXfPYzIAOBhOAAAgmCiKZkwclU5VTRs/4kN/de+SFT/53e3X//ibH/rztRtfrW9sqm9ctPPtXW01EygqAgAAwpgwZng6lUxWlO/1b9dt3HLq5//tiYbv7/Vvd+x857rGpvrGRetf3tKaG4EiJAAAoK2NGj44nUqeWjnp479s2rn/UP+jbw47bMDHfM0f73qkvrFp2dNrWnIfUNQEAAC0nSGD+qVTyfNOPmZfvrj6G3O/UH181fSxn/iVix57tr6x6a7Fy/2zDnwiFwEDQFvo26t7OpWc95vv7Pu3lJUOXL1uc2L6J3/ljElHzph05LOrXzr/lBnXz2uSAcDHcAIAAK2rU6cO6VRVOpXs3LHDfn3jr+sXrl6/+V+++en9+q5Xt75Z37iofl7Tlq1v7tc3AjEhAACgtURRdPHZc9KpZN9e3Q/g2xc2Lf91/cJrMl8/sGe/rnFRfWPTc6tfOrBvB4qVAACAlhdFUeqk6elUcsigfgf8IKvXbz7zS//5Ub8IaB8tXPRkfWNT07Ln/IsPNHMNAAC0pCiKTpkz8YYff3PU8MEH+VDDhww8pH379S9vOZiKOG7GuONmjFv29JrTqyY33O0mYoATAABoIVEUVU4bk05VTRgzrKUeM3XZD7528SnHTj2qRR5t3cYtzZcH7Nj5Tos8IFCIBAAAtIBp40emU8mZk45s2Yf91n9ePWbEkEvOqWzBx9zx9q76xkX1jU3rNr7agg8LFAoBAAAHZeyooelU8oSZR7fGg//8mjte2rz1n79+fms8+B/verS+sWnZ06tb48GBvCUAAOAAlZWWpFPJM4+f2npPseCBx6+65b6rv39Z6z1F09LnrmtcdFeTm4hBXLgIGAD226D+vdOp5K0//1ZrP1FZackTz7zYqk9xzMRRx0wc9dzqjRecMqPeTcQgBpwAAMB+6Nm9SzpVdWkq2S6K2uDp9uzZM+GMby3IXj5oQO82eLotr79Z39hU39j06tY32uDpgCAEAADsk/bt26dTyXQq2b1r57Z83rO+/F/f+vwZM1r68uKPV9/YVD9v0bOr3EQMipAAAIBPEEXRhafPSqeSA/v1avtn/+a//nZSedlFZ85u+6de2LS8vnFR01I3EYOi4hoAAPhIURSddfzU237+7WFDBoTaUDa0ZNW6TUGe+rhjxh53zNjHn15zetWUhrsflQFQHJwAAMBeRFF04qyj06mqMSOGhF3SeO/S+sZFdf/x1bAz1r+8pb6xqb5x0VtuIgYFTgAAwF+Iomjm5NHpVHLquCNCb0kkEolnVm04/2uZJxq+H3pIIpFI7Hx7V/PlAWtfchMxKFQCAAD+bFJ5WTqVnDNtTOghf7Zr97tTzv77u676p/59e4be8mcNdz9a39i0dIWbiEHhEQAAkEgkEqPLDkunkifPmRh6yF6c/oV//8evpqaNHxF6yIc1LX2ufl7TwkVPejsBBcRFwADE3dDB/dOp5PU//mboIR9peGnJqnWb8jAAmm8i9vyajRecOrO+cZEMgILgBACA+Orfp0c6VfXZs44NPeQTzK1r3LHzne98+ezQQz7Oa69vr5+36LrGpldfcxMxyGsCAIA46tK5U/NdvTp2KIDD8NsWPnLbwkd+/a9fCj1kn1w/r6m+semZVRtCDwH2TgAAEC9RFF1yTmU6lezds1voLftq+fPrLqz5YZ78IqB9dFfT8vp5TYsee9Y7Dcg3BfCxBwC0iCiKzj/lmNuv/O7ggX1Cb9k/ZaUDE4nE1jfe6lM40VJ1zNiqY8Y+/syLZxw35Y93uYkY5BEnAAAUvyiKTktOSqeqRhw+KPSWA3Ty5/619pvVk8vLQg85EBtefu26eYvqG5ve2vF26C2AAACgqEVRlJw+Np1Kjh99eOgtB+Wr3/tNZUX5eSdPDz3kwL39zq76xqbrGpvWvvRK6C0QawIAgKI1fcKodCp5zMRRoYe0gB/85o/vvrfn2184M/SQFpC757H6xkVLV6zxJgSCEAAAFKGjRx+eTiWPO2Zc6CEt5uYFS+bfv+znV3wh9JAWs3jZ8/WNi+50EzFocy4CBqCojDh8UDpV9fsffC30kBZWVjpw1brNoVe0pOkTRk6fMPL5NRurT5tZ39i0Z8+e0IsgLpwAAFAkBg/sk05VXXDqjNBDWsUb23fOqv7HB6+7oke3LqG3tLzXtm2vb2yqb1z0ipuIQesTAAAUvF49ujXf1Sv0kNZ1wiVXfP/vLy70q5k/3g23L76ucdEzL7iJGLQiAQBAAevQ4ZDmt/5dO3cKvaXVffEff3nSsRPOPmFa6CGt7u7Fy+sbmx50EzFoHa4BAKAgRVF00ZmzF2Qv79+nR+gtbaSstGTVuk2hV7SF5PSxyeljn3j2xTOPn3rbwkdkALQsJwAAFJgois45cVo6VTV0cP/QW9rU9fOa7nloxU+/97nQQ9rUhk2vNV8esN1NxKCFCAAACkYURSfNnnBpKnnUEYeF3hLAo8tXXZ65dt5vvhN6SABv79rdnAEvbnATMThYAgCAAhBF0eypR6VTycnlZaG3BLN12/Y5n/neQzf8a5fOHUNvCSZ3z2P1jU1LV6z2BgYOmGsAAMh3U8Yd8dPvfW72lKNCDwmsT6/u/fr0WLVuU/nI0tBbgjm1ctKplZMeevz5E2eNv+PBJ2QAHAABAED+GjNiSDpVlf33r4Qeki/KSktWrdsc5wBoVjF+ZMX4kStffPnTp82qb1z0npuIwf7wI0AA5KNhhw1Ip6rOPrH4f+XlfvmX/7mpe9fOX/+rU0IPySNb33irvnFRfWPT5i3bQm+BwiAAAMgvA/r2SqeSF505O/SQfHRNw4OLlz33w8svDT0kH91w++L6xqanX1gfegjkOwEAQL7o1rVz8129DmnfPvSWPPXQ48/X/uymP/7i26GH5K+7H3qqvrHpwUef8Q4HPoprAAAIL4qidCq5IHt5z+5dQm/Ja2WlJS9ueGXX7nc7dvAv+N4lK8qTFeVPPrv2rOOn3uomYrA3TgAACCmKoupTZ6ZTyUEDeofeUhiOvfB//7L2i6PLBoceUgBe2ry1+fKAN9/aGXoL5BEBAEAYURSdUTXl0lTyiKElobcUkku+/dPzT5lxypyJoYcUjHf+dBOxpjUbNofeAnlBAADQ1qIoOm7GuHQqOW7U0NBbCs8//+SGfr27f/Wik0IPKTyN9y6tb1z02FNuIkbc+QlCANrUjElH/upfvlgxfmToIYWqrHTg0hVrQq8oSKfMmXjKnIkPPb7STcSIOQEAQBuZcNSwdKrqF1d8IfSQwja8tOTG+Q+FXlHAKsaPqBg/4oW1L3/69Fn1jU3vvfde6EXQ1vwIEACtbtSwQ9OpqlOTk0IPKQYbX3n9U5fWLrvtv9q1i0JvKXivv/FWfWNTfeOiTW4iRpwIAABa0WGD+qVTyfNPPib0kKIy4/zLr/qvvxlx+KDQQ4rHjfMfqm9ctGKlm4gRCwIAgFbRp1f3dCp5yTmVoYcUoYv+9scXn33sibPGhx5SbO556Kn6xqYH3ESMYucaAABaWKeOHZrv6tW5U4fQW4pTWenAVev8RsuWV1lRXllR/uRza886Ydqtdz4sAyhWTgAAaDFRFF181px0Ktm3d/fQW4pZ3U33rFi5/j+/dVHoIcVs4+at1zU21c9b9OZ2NxGj2AgAAFpAFEWpk6anU8khg/qF3lL87nt4xY+uuv2GH38z9JDit2v3u833El693pELxUMAAHBQoig6ec7EdCp55PDBobfExfqXt5zy1//2RMP3Qw+JkXn3Lq2f1/To8lXeOFEEBAAAByiKojnTxqRTyYljhofeEjvTzv1O/Q9rhg0ZEHpIvCx5YmV9Y9OCBx739omC5iJgAA7EtKNH/M//+fzMyUeGHhJTZaUDV63bJADa2LSjR0w7esQLa0+88PRZ9fOa3n3XTcQoSE4AANg/Y0eVplNVJ8w8OvSQWPvOD64pKx341+cfF3pIfG17c8d1jYvqG5s2vfp66C2wfwQAAPtqeGlJOpU86/ipoYeQ+HX9wlXrNv/r33469BASN81/6Lp5TSueXxd6COwrAQDAJyvp3zudSl54+qzQQ/iTu5qW//K6O6+d+43QQ/iTe5esqG9cdP8jbiJGAXANAAAfp0e3Ls139WrXLgq9hT8rG1qyYuX60Cv4sznTxsyZNmb5c+vOPmHaLW4iRn5zAgDA3rVv3y6dqkqnkt27dg69hb2YfNa3b/35t9x4IQ9tfOX15rsHvLF9R+gtsBcCAIAPi6LowtNnpVPJgf16hd7CRzrvsv++7OKTjp06JvQQ9m737neb7yW8ep2biJFfBAAAfxZF0ZnHT02nksOHDAy9hU/w7f+8+qgjhlxybmXoIXyC2+9bdl3jIjcRI3+4BgCARCKRiKLohJlHX5P5evnI0tBb2CfDS0tWrdsUegWf7KRjJ5x07ISHn3jhpGMnzL/fTcQIzwkAAIlZU0anU1VTxx0Regj7YcEDT1x1871X/+Cy0EPYD6vWbapvbKpvXLTbTcQIRwAAxNqk8uHpVNWcaX6OvPCsfPHlc776/Scavh96CPtt25s76uc11TcuevmV10NvIY4EAEAcPZn7Qeqy/06nkqfMmRh6Cwdoz573J575rduv/M6hA/qE3sIBumnBkvrGRU+5iRhtyzUAADH17KoNCScAhaxdu6isdOCqdZsFQIH6xbV3/PTq+T6Kpe0JAIBYe+yp1YlEYtbk0elU1dSjXQNQYMpKS1at2zRz0pGhh7B/ljyxMpPNLX9u7U9+F3oKsSQAAEg88Ogzzb8FKJ1K+i1ABaT5BCD0CvbD7t3vZupyV996vw/+CUgAAJBIJBLNb0fcB6CwlJWWLHnihdAr2FcLHngiU9ewfuMWn/sTlgAA4M8+yIBPnz4rnUqWuBNwfisrLVm6YnXoFXyyV157I5PNNdz9qA/+yQcCAIAPa36P0r5du3QqmU5Vde/WOfQi9q6sdGAikXjltTcG9O0Zegsf6fp5TZls7s23doYeAn8iAADYu/f27EkkEj26dWnOgHbtotCL+LAOHQ45/LABq9ZtEgD5aeWLL2eyDfc9/PQ//yT0FPi/CAAAPk7zx5Yl/XunU8kLT58Veg4f1nwdcMX4kaGH8GG/rl/4o6vm+Zkf8pAAAOCTbXr19UQiMby0JJ1KnnX81NBz+LPm3wQaegV/4ZHlL2SyuSeeefGHvw09BfZGAACwr1av25RIJMaOLE2nqk6YdXToOSQSiURZacktdy4JvYI/ee+9PZm63FU33+uDf/KZAABg/yx/fl0ikZh29Ih0Kjlz8ujQc+LOrQDyx8JFT2bqci9ueMXn/uQ5AQDAgVjyxMooiuZMG5NOJSeOGR56TnyVlZZs2frm1m3b+/TqHnpLfG15ffvcbMOtCx/xwT8FQQAAcIA+uGnAyXMmplPJI4cPDr0ojrp07jhkUN9V6zZPFgCB3Dj/oUw2t+3Nt0IPgX0lAAA4KB9kwLmfmp5OJUsP7Rd6UewMLy1ZtW7T5LFloYfEzqp1mzLZ3D0PPfW9H4WeAvtDAADQAj7IgIvPOjadqurb26fRbaestMRlAG3vyhvunluX8zM/FCIBAECLaX4z1Kljh+Z7h3Xu1CH0olgoKx14+33LQq+IkaUrVmeyuaUrVmeyoafAAREAALSwd3btTiQSfXp1T6eSl5xTGXpO8XMrgDbz/vuJTF1D3Y33+OCfgiYAAGgVW7dtTyQShw3qm05VnX/yMaHnFLOy0oGbXt32xvadPbt3Cb2lmN29+KlMXW71uk0+96fQCQAAWtGGl19LJBIjhx2aTlWdlpwUek5x6tGty6D+vVet2zThqGGhtxSn1994K5PN3XzHEh/8UxwEAACt7vk1GxOJxISjhqVTyeT0saHnFKHm24EJgNZwyx0PZ7INr23bHnoItBgBAEAbWfb0mkQiMWPSkelUsmL8yNBzikrZ0JLVLgNoaS9ueCWTzS1sevIf54aeAi1KAADQphY99mwURcfNGJdOJceNGhp6TpEoKy25e/Hy0CuKSt1N92SyuT179oQeAi1PAADQ1j64acDpVVPSqeQRQ0tCLyp4w0sH/uZ6twJoGY8/82Im2/Do8lU/+E3oKdA6BAAAYXyQAdWnzkinqgYN6B16UQErKy3ZsOm1HTvf6dqlU+gthe2Hv238zfV3udiX4iYAAAjpgwxIp5LpVLJn966hFxWkPj279e/TY9W6zWNHlYbeUqjue3hFJptb+eLLvw69BFqbAAAgvOYM6Na1c3MGHNK+fehFhaf5dmAC4AC8sX1npi534+2LffBPTAgAAPLFWzveTiQSA/r2TKeqLjpzdug5Bcb9gA/MbQsfydTlXn3tjdBDoO0IAADyyyuvvZFIJA4/bEA6VXXOidNCzykYZaUDFy19LvSKQrJu45ZMtuGOB5/47n+HngJtSwAAkI9e3PBKIpEYM2JIOpX81OwJoecUgLKhJVffdn/oFQXjd7fcl8nmdr/7bughEIAAACB/rVi5PpFITBl3RDqVnD3lqNBz8lpZacnal17dtfvdjh384/5xnnxu7dxsbskTK//zV6GnQCBeIwDId488+UIURbOnHJVOJSePLQs9J0/179Ojd89uq9ZuGn3EYaG35K8f/+72X113p4t9iTkBAEAB+OC3hX5q9oR0KnmU97h7U1ZasmrdZgGwVw88+kwmm3tu9Uu/vDb0FAhNAABQMD7IgLNPnJZOVR0+uH/oRfmlrHSgXwT0/3prxzuZuob6xiYf/EMzAQBAgfkgAy46c3Y6lezfp2foRfmirLTksadWhV6RX3J3P5apy2169fXrQi+B/CEAAChIzRnQ4ZBDmu8d1rVLp9CLwisrHXjD7YtDr8gXGza9lsnm5t+/7O+/H3oK5BkBAEABa/41jr16dE2nqtKpZOg5gTXfC+y9PXvat2sXektgv7/t/kw2986u3aGHQD4SAAAUvG1v7kgkEocO7JNOVVWfOiP0nGAGDejdo1vnVes2jzx8UOgtwaxYuT6TzS1e9ty//yL0FMhXAgCAIrFx89ZEIjHi8EHpVPL0qimh54RRVlqyet2m2AbAz34//+fX3OFiX/h4AgCAorLyxZcTicTRRx6eTiWPmzEu9Jy21vxTQKFXBLBo6XNzsw1Pv7Dhf/4QegrkPQEAQBF64tkXE4nE9Amj0qnkMRNHhZ7TdoaXDlzx/PrQK9rUzrd3Zepy1zY86IN/2EcCAICitXjZc1EUJaePTaeS40cfHnpOWygrLWm469HQK9rOvHuXZupyGzdvvSb0EiggAgCAYvbBTQNOS066NFVV9D8cX1Za8tyajaFXtIWXX3k9U5ebd+9SH/zD/hIAABS/DzLg/JOPSaeSg0v6hl7UWoYM6tulc8fV6zcPHzIw9JZWdG3Dg5lsbsfb74QeAgVJAAAQFx9kwCXnVKZTyd49u4Ve1CrKSktWrSvaAHhm1UuZbMOix579l/8JPQUKlgAAIF6aM6BL547N9w7r2KHY/iksKx24at2m444ZG3pIy/v5NXf87Pfz/cwPHKRie9UDgH2x8+1diUSiX58e6VTVxWcdG3pOSyorLVm59uXQK1rYQ48/n8nmnnp+3U+vDj0FCp8AACC+tmx9M5FIDD20fzqVPPek6aHntIyy0oELHnwi9IoWs2v3u5ls7ve33e+Df2gpAgCAuFu78dVEIjG67LB0KnnynImh5xysstKSp1cWya0A5j/w+Nxsbv3LW3zuDy1IAABAIpFIPLNqQyKRmFRelk4l50wbE3rOgTv8sAEdOhyybuOW0kP7hd5y4DZv2Zapy+XufswH/9DiBAAA/NljT61KJBKzpoxOp6qmjjsi9JwD1HwdcOEGQH1jU6auYftbb4ceAsVJAADAhz3wyDNRFJ0w6+j0uVXlI4eEnrPfykpLVq3bVIjnGM+v2ZjJ5u5/5Okrfhp6ChQvAQAAe/HBTQPOOn5qOpUcVlC/Vr+sdOCqdZtDr9hvv7ruzh//7nY/8wOtTQAAwEf6IAMuPH1WOpUc2K9X6EX7pKy05L6Hnw69Yj88/OQLmWzuyWdf/NFVoadADAgAAPgEzRnQvn275nuHde/aOfSiT1BWWvLks2tDr9gn7773Xiab+90t9/ngH9qMAACAffLee3sSiUSP7l3Sqar0ucl27aLQiz5SWenAdlG0cfPWQwf2Cb3l49y56MlMtmHtS6/63B/akgAAgP3w5vadiURiUP/e6VTy06fPCj1n76Ioar4OOG8DYMvWNzN1udsWPuKDf2h7AgAA9tvLr76eSCTKSkvSqeSZx08NPWcvhg8duGrd5pmTR4ceshc33r44U5fb9uaO0EMgpgQAABygVes2JRKJsaOGplPJE2YeHXrOX2g+AQi94sNeWLspk83du+Sp7/049BSIMQEAAAdl+XNrE4nEtPEj0qmqmZOODD3nT8pKS5Y8vjL0ir/wm+vv+uFvG/3MDwQnAACgBSx5fGUURXOmjUmnqiaOGRZ6TqKsdODSFatDr/iTx55anck2LHt6zdy60FMAAQAALeWDmwacMmdiOpUcNXxwwDFlpSWJRGLzljcG9usZcMae99+fm83V3XSPD/4hfwgAAGhJH2RA6qTp6VRyyKB+QWZ0OKT9sMMGrFq3KWAA3LV4eSabW7N+czbUAmBvBAAAtLwPMuDis+ekU8m+vbq3/Ybm64CnTxjZ9k+9ddtbmbqGW+542Af/kIcEAAC0lua3v506dkinkulUVedOHdry2ctKB65at7ktn7HZzXcsyWRzW7dtb/unBvaFAACA1vXOrt2JRKJPr+7pVPKScyrb7HnLSktuvmNJmz1dIpFYs35zJpu7a/Hyf5rblk8L7B8BAABtofkT8SGD+qVTyfNOPqYNnrFsaJveCiB74z1zsw17/MwP5D0BAABtZ/3LWxKJxKjhg9Op5KmVk1r1uYaXDtzy+vbXtm1v7SsQlj29JpPNPfbUqv++slWfB2gZAgAA2tpzq19KJBITjhqWTlUlp5e30rN06dRxyKB+q9Zu6juuFQNgbl3uyhvudrEvFBABAABhLHt6TSKRmDHpyHSqqmL8iNZ4iubrgKeMO6I1HvzeJSsy2dwLa1/+TWs8OtBqBAAAhLTosWejKDp+xrh0Kjl21NCWffDm3wTaso+ZSCS2bd8xN5u7cf5DPviHQiQAACCwD24acMZxU9KpZPNNfFtEWWlJ472PtdSjNbt14SOZbMOWrW+27MMCbUYAAEBe+CADqk+dmU4lBw3offCP2bK3Alj70quZutydDz5x+X+31EMCAQgAAMgjH2RA873DenbvcjCPVlZasnnLtje27+jZvetBDrvq5nszdbl3333vIB8HCE4AAEDeac6Abl07N2fAIe3bHdjjdO/WedCA3qvWbZ5w1LADHvPks2sz2YaHn3zhv359wI8B5BEBAAB56q0dbycSiYH9eqVTyc+cMfvAHqT5OuADDoAfXTXv1/ULXewLxUQAAEBe27xlWyKRGHbYwHQqefaJ0/b328tKS1atPZDLAO5/5OlMNvf8mo2/uu4AvhvIXwIAAArAmg2bE4nEmBFD0qmqT80ev+/fWFY68K6m5fv1XNt3vJ3J5q6f1+SDfyhKAgAACsaKlesTicSUcUekU8nZU47al28pKy35df3CfX+KhrsfzWRzzccOQFESAABQYB558oVEIjFn2phLU8nJ5WUf/8VlpQNf2rz1rZ3vdOvS6eO/cv3Lr82ta5h//+P/8P0WmwrkIQEAAAXp3iUroig66dgJ6XOTo4847KO+rHfPbgP69ly1btO4j73N8NW33p+py+3atbsVlgL5RQAAQKH64KYB55xYkU4lhw7uv9cvKysduHrd5o8KgKeeX5fJ5h56/Pn/+GUrTgXyhwAAgML2QQZcdObsdKqqf58eH/qC5t8Eutfv/enV839x7R0u9oVYEQAAUAya38R36HBI873Dunbu+MFfDS8tWfTYMx/6+kWPPZvJ5p5ZteHn17TpTiA4AQAAxWP37ncTiUTvnt3S5yYvTSWb/7CsdODVt973wdfseHtXJttwXW6RD/4hngQAABSb1994K5FIDB7YN51KXnDqjLLSkrUvvfrOrt2dOnZovHdpJpt7+ZWt14YeCYQiAACgOL20+bVEIjHi8EHpVFWfXt1WrducvfHu2+9b5oN/iDkBAADFbOWLLycSiWtzh//Vt36y8+1doecA4UU+BgASicTAfr16du9688/+LvQQoLWMO/VvQ08A8oIAgLjr3q1zOlWVTiXbt2v3w982/ub6u7wsxMGTuR94OwgQT34ECOKrXbt26VRyQfbyHt26NP/J1//qlGRF+ZSxRzyy/IWw2wCAVuIEAOIoiqJPnzYznaoq6d9rr1/w25vuzdQ1vPfenjYeRptxAgAQW04AIF6iKDrzuCm3/s+3hpcO/Jgv+6tz5lRWjDluxriFi55ss20AQBtwAgBxEUXR8TOPTqeSY0eW7vt33XLnw5ls7rXX32y9YQThBAAgtpwAQCzMnDz61//6pWlHj9jfbzzr+KmVFeXnfqripgVLfF4AAEVAAECRmzhmeDqV/Pk/f/6AH6F3j67f+9r5lRXlZaUlq9ZtasFtAEDbEwBQtI4cPjidSl71X3/TIo9WWVFeWVGeTlVlb7zbUQAAFC4BAEWo9NB+l6aqbvjJvv6E93vv7Wnfvt2+fGXNpadWVoyZOGb40hWrD2IgABCMi4ChqPTt3SOdSv7V2XNa+4muvOHuuXU5LyCFy0XAALHlBACKROdOHdOp5ILsdzt17NAGT5dOJZMV5cnp5XcvfqoNng4AaClOAKDgRVH0V2fPSaeq+vTq1vbPftOChzLZ3OtvvNX2T83BcAIAEFtOAKCARVF03snT5/3mO4eV9A214ZwTKyorys86Ydqtdz7sAwUAyH8CAApSFEWnVE664Sd/O2rYoaG3JPr26n7FNy6orCg//LABL254JfQcAODjCAAoMFEUVVaUX/VffzPhqGEt8oDv7NrdIpcNHHfM2MqKMZecU/nbm+91FAAAeUsAQCGpGD/y5//8+RmTjmzBx2zBi4bbt2v3t587vbKifPzoYY8/s6alHhYAaEEuAobCMG7U0HSq6viZ40IP2Ve/rl/4o6vmeYXJWy4CBogtJwCQ744YWnJpquoPma+HHrJ//vr84yoryo+dNua+JStCbwEA/swJAOSvQQP6pFPJT582M/SQg3L97YvnZhve2L4z9BD+ghMAgNhyAgD5qGf3rs139YqiKPSWg3XeSdOTFWPOOG7KH+961CcOABCcAID8ckj79ulUckH28m5dO7XB0721851uXVr9ifr36fkv3/x0ZUV56aH91218tbWfDgD4GAIA8kUURZ85Y9aCussH9O3ZZk/aBu/+P3DCzKMrK8o/e9axV996v6MAAAhFAEB4URSddcK0237x7WGHDQi9pXV1OKT9tz5/ZmVF+dhRQ5c/tzb0HACIIxcBQ0hRFJ04a3w6lRwzYkjoLW3tl9fe+ZOrb/cSFIqLgAFiywkABDN7ylFX/tuXp4w7IvSQML5QfXxlxZhZk0c/8OgzobcAQIw4AYAAJo8tS6eSx04dE3pIXrgutyhTl3trx9uhh8SLEwCA2HICAG3qqCMOS6eq6v7jq6GHJBKJxBvbd/Ts3jX0isQFp86orCg/NTm58Z7HfCQBAK1NAEAbGTp4QDqVrP/RN0MP+bN8ePffrKR/r3//uwsrK8YcVtJ3w6bXQs8BgGImAKDV9e/TM51K5n7196GH5LuTZk9IVpR/5ozZf/jjA44CAKCVCABoRV27dEqnkgvqLu9wSPvQWwpDp44d/v6LZ1VWlI8ZMWTFyvWh5wBAEWoXegAUpyiKmm/o+8XqE7z731/TJ4y87oc1X/nMp6IoCr0FAIqNEwBoYVEUnX/KjNuv/O7ggX1CbylsX77wxMqK8mMmHtm09NnQWwCgePg1oNBioig6LTk5nUqOOHxQ6C2f7LXXt/ft3T30in1yzR8fyNTldr69K/SQouLXgALElhMAaAFRFFUdM/bqH1x29JGHh96yrwrl3X8ikfj06bMqK8pPnjPx9vuW+cwCAA6SAICDdczEUb+s/eL0CSNDDylmhw7s85/fuqiyonzQgN4vv/J66DkAUMAEABy48aMPT6eqfln7xdBD4uKUORMrK8ZUnzbzutwiRwEAcGAEAByIEYcfmk4lr/7B10IPiZ2unTt998vnVFaUjy477JlVG0LPAYDCIwBg/wwu6ZtOJW/+2d+FHhJrMycdOXPSkV/69Am/uPZORwEAsF8EAOyr3j27pVPJ+Vd+N/QQ/uSrF51UWVFeMX7kQ48/H3oLABQMvwYUPlnHDoekU8l0qqpL546ht7AXV996f6auYdeud0MPKSR+DShAbDkBgI8TRdFnzzx2Qfbyfn16hN7CR7rozNmVFeUnzh6/4P7HQ28BgHznBAD2Loqicz5VkU4lhx7aP/QW9lXD3Y9msrnNW7aFHlIAnAAAxJYTAPiwKIpOOnZC/Y9qRpcdFnoL++e05OTKivLzT5lx/bwmn24AwF4JAPizKIqOnXpU3X98dVL58NBbOEDdu3b+x6+eW1kxZuSwQ59fszH0HADIOwIA/mTquCN+9r2/njVldOghtIDZU46aPeWoz19w/K/rFzoKAID/mwCAxJiRpelU8sp//0roIbSwr118cmVF+dRxRzz85AuhtwBAvnARMLE2bMjAdCp59gnTQg+hdV11872ZbO7d994LPSSPuAgYILacABBTA/v1SqeSf/zFt0MPoS1cfPacyory42ccfeeiJ0JvAYDAnAAQO927dk6nqtKpZPv27UJvoa3deufDmbrclq1vhh4SnhMAgNhyAkCMtIuidKpqQfbyHt27hN5CGGceP7Wyovzck6bfNP8hH38AEE8CgFiIoqj6tJnz6y4f1L936C0E1qtH1+9ddl6yovyIoSUvrN0Ueg4AtDUBQJGLouiM46bc8j//q6y0JPQW8sicaWPmTBvzufOqrrzhbkcBAMSKAKBoRVF0/Ixxf/jvr48dVRp6C3nqG5ecWllRPqm87LGnVoXeAgBtxEXAFKeZk45Mp6qmjR8RegiFIXvjPZlsQ6xeD10EDBBbTgAoNhPHDL80lfz5FV8IPYRCcum5lZUVY6qmj71r8fLQWwCgdTkBoHiMGj44nUqeWjkp9BAK2M0LlmTqclu3bQ89pNU5AQCILScAFIMhg/qlU8kbf+LdDAfr7BOnVVaUn33itFvueNjnIwAUJQFAYevbq3s6VTXvN98JPYTi0adXt3/++gWVFeXDhgxcs35z6DkA0MIEAIWqc6cO6VTVgrrLO3XsEHoLRahq+tjKivJLz03W3XSPowAAiokAoPBEUXTx2XPmZy/v26t76C0Us3ZR9M30aZUVYyYcNWzZ02tCzwGAluEiYApJFEWpk6anU8khg/qF3kK8/Ob6u37428ZiesF0ETBAbDkBoDBEUXTKnIk3/PhvRw0/NPQW4uhz51VVVpTPmTbm3iUrQm8BgIPiBIB8F0VRZcWYdKpqwlHDQm+BxA23L87U5d54c0foIQfLCQBAbDkBIK9VjB/583/+/IxJR4YeUgze27Onfbt2oVcUvNRJ05MV5WceP/W2hY/4AAWAQiQAyFNjRw1Np5K//tcvhR5SPLz7byn9+vSoramurCgfOrj/2pdeDT0HAPaPACDvlJWWpFPJazJfDz0EPs7xM8ZVVoy5+Ow5v7vlPkcBABQQAUAeGTSgdzpVdevPvxV6COyTQ9q3/19/fUZlRfm4Iw9/8tkXQ88BgH3iImDyQs/uXdKpqnQqGUVR6C1wIH513Z0//t3tBfSK6iJggNhyAkBg7du3T6eS87OXd+/aOfQWOHCfv+D4yory2VOOuv+Rp0NvAYCP4wSAYKIouvD0WelUcmC/XqG3FL9du9/t2EHwt4X6xqZMtmH7jrdDD/kETgAAYssbAgKIouisE6be9otvDztsQOgtceHdf5s5/5RjKivGnJacnLvnMZ+wAJCHvCegTUVRdOKs8dfO/caYEUNCb4HWMrBfr3/7uwsrK8oPG9Rvw8tbQs8BgL8gAGgjURTNmjz6yn/78pRxR4TeAm3hU7PHJyvKLzpz9u9ve8BRAAD5QwDQFiaVl/34n9Jzpo0JPQTaVMeOh3z7C2dVVpSXjyx96vl1oecAQCLhImBa2+gjDkunkicfOzH0EAjs59fc8bPfz8+fl1wXAQPElhMAWsvQwf3Tqarrf/TN0ENI7Nj5TtcunUKviLsvffqEyooxMyYdueixZ0NvASDWnADQ8vr36ZFOVX32rGNDD4F8dG3Dg5lsbsfb74Sd4QQAILacANCSunbudGkqOT97uV86CR+l+rSZlRXlp8yZOO++ZT6CAaDteZdGy4ii6JJzKudnv9u7Z7fQWyDfDRrQ+z++dVFlRfmhA/ts3Lw19BwA4kUAcLCiKDr/lGNuv/K7gwf2Cb0FCsnJcyZWVpR/+vRZ1zY86CgAgDYjADhwURSdlpx800//bsThg0JvgYLUpXPH73zp7MqK8tFHHPbMCxtCzwEgFgQAByKKoqrpY6/+/mVHjz489BY+wRvbd/bs3iX0Cj7OjImjZkz85pcvPPHn19zhKACA1iYA2G/TJ476xRVfOGbiqNBD2Cfe/ReKr3zmU5UV5dMnjFq87LnQWwAoZn4NKPvh6NGHp1PJ444ZF3oIFLPf33Z/Jpt7Z9fuVn0WvwYUILacALBPRhw+KJ2q+v0PvhZ6CBS/z5wxu7Ki/FOzJ8y/f1noLQAUIScAfILBA/ukU1UXnDoj9BCIndzdj2XqGja9uq01HtwJAEBsOQHgI/Xu0a35rl6hh0BMnZqcVFkx5oJTZ9Q3NvmwBoCWIgDYiw4dDkmnkvPrLu/auWPoLRyU17Zt79ure+gVHLhuXTtf/pVzK6eVjxo++LnVL4WeA0AxEAD8hSiKLjpz9oLs5f379Ai9hRbg3X9xmDVl9Kwpo79QffyvrlvoKACAgyQA+JMois45saLhl38/dHD/0FuAvbjssydXVpRPPXrEw0+sDL0FgALmImASURSdNHtCOpUcfcRhobcAn+x3t9yXyTbsfve9g3kQFwEDxJYTgFiLomj21KOy//GVyeVlobcA++qzZx1bWVF+wsyj73jwidBbACg8TgDia8q4I9Kp5OwpR4UeAhyg2xY+ksnmXt36xgF8rxMAgNhyAhBHY0YMSaeqsv/+ldBDgINyxnFTKivKUycdc+P8xT7NAWAfCYB4GXbYwHQqed0Pa0IPAVpGz+5d/vdlqcqKMSMOH7TyxZdDzwGgAAiAuBjYr1c6lfzjL78degjQ8uZMGzNn2pi/Pv+431x/l6MAAD6eACh+3bp2TqeS87OXH9K+XegtQCv6+l+dUllRPnls2aPLV4XeAkD+chFwMYuiKJ1KplNVPbt3Cb0FaDt1N92Tyeb27NnzMV/jImCA2HICUJyiKKo+deaC7OWDBvQOvQVoa5ecU1lZUV51zLi7mp4MvQWAvOMEoNhEUXTGcVPSqWRZaUnoLUBgt9yxJJPNvbZt+//7V04AAGLLCUDxiKLouBnjfv/fXxs3amjoLUBeOOuEaZUV5eecWHHzHUt83ANAMwFQDKIoOmbiqF/9yxcrxo8MvQXIL717dvs/Xz+/sqJ8eOnA1es2h54DQHgCoOBNOGrYDy+/NDm9PPQQIH8lp5dXVpRfmkrW3XiPowCAmBMABWzU8MHpVPJ3378s9BCgAERR4puXnpasKJ84ZvjSFatDzwEgGBcBF6Qhg/qlU8nzTj4m9BCgIF15w93pVNJFwADx5M5QBWnDptfe3rU79AqgIN354BM3zl/s3T9AbDkBKGAXnDLj8q+eG3oFUDBe3frm3Gzutrse8coPEGcCoLBVjB9ZW1Ptbl/AJ7rh9sWZbO6N7TtCDwEgMAFQ8Er6966tqZ4+wS8ABfbuhbWbMtmGe5esCD0EgLwgAIpBFEXf+fLZ1afODD0EyDu/uf6uH/620Us9AB8QAEUiiqILz5j19184K/QQIF889tSqTDa37Ok1oYcAkF8EQFGZNXl0bU11vz49Qg8BQtrz/vuZbO63N7nnFwB7IQCKzZBB/WprqiePLQs9BAjjrsXLM9ncmvWbQw8BIE8JgCIURdH/vuy8cz9VEXoI0Ka2bnsrU9dwyx0Pe2EH4GMcEnoALe/999+PomjNhs1/mz499Bagjdy8YEmmLrd12/bQQwDId04AilmyovyKmupePbqGHgK0otXrN2eyubsXLw89BIDCIACK3PAhA6+oqR4/+vDQQ4BWkb3x7kw255UcgH0nAIpfFEW1NdVnHDcl9BCgJS17ek0mm3vsqVWhhwBQYFwDUPz+/0sCXvnaxSeH3kKr27Pn/XbtotAraHVz63JX3nC3T3AAOABOAGLkhJlH19ZUd+3SKfQQ4MDdu2RFJtvwwtpNoYcAUKgEQLyMHHZobU31mBFDQg8B9tu2N3dk6nI3zX/I6zYAB0MAxE7HDodcUVN9ypyJoYcA++HWOx/O1OW2bH0z9BAACp4AiKMoir584YlfvvDE0EOAT7b2pVcz2dydi54IPQSAIiEA4uuUykm137igQwcXgkP+uurmezPZ3LvvvRd6CADFQwDE2pgRQ2prqkcOOzT0EFrGrt3vdlR0xeKJZ9dmsg2PPPlC6CEAFBsBEHddu3Sqrak+YebRoYcAf/ajq+b9un6h12cAWoMAIBFF0dcuPvmvzz8u9BAgcf8jT2eyuefXbAw9BICiJQD4kzOPn3pFTbU7SEEo2996O1OXu35ek5dlAFqVAODPxo8eVltzwbAhA0MPgdhpuOvRTF1u85ZtoYcAUPwEAH+hV4+utTXVlRXloYdAXKx/+bVMtmHBA4+HHgJAXAgAPiyKom+mT7vknMrQQ9g/O9/e1aVzx9Ar2D9X33p/Jtuwa/e7oYcAECMCgL0796Tp37vsvNAroGg99fy6TDb30OPPhx4CQOwIAD7SlHFH1H6j+rBBfUMPgWLz06tv/8W1d3r5BSAIAcDH6d+nZ23NBTMnjw49BIrEg489m8nmnl21IfQQAOJLAPAJoij69hfO/MwZs0MPgcK24+13MtncdblFXnUBCEsAsE+qT5v53S+fE3oFFKrGe5dmsg0vv/J66CEAIADYZ9Mnjqr9RnVJ/16hh7AXb761s0e3LqFXsBcbN2/N1OXm3bs09BAA+BMBwH44dECf2prqaeNHhB4CheGaPz6QqcvtfHtX6CEA8GcCgP0TRdHlXznn/FNmhB4Cee3pFzZksrmmpc+GHgIAH3ZI6AEUmPfffz+KojUbXvnW588MvQXy1P/8YcH//GGBj1cAyE9OADhAs6ceVVtT3bdX99BDII8sXvZ8JtuwYuX60EMA4CMJAA7c0EP7X1FTPal8eOghEN47u3Znsrk//PEBL6oA5DkBwEGJouh7Xzv/nBOnhR4CId1+/7JMNvfSptdCDwGAT+YaAA5K8yUBL27YXHPpaaG3QACbXt2WqWtovGepD1MAKBROAGgZVceMra2p9qvoiZXrcosydbm3drwdeggA7AcBQIspG1pS+43qcUcODT0EWt1zq1/KZHMPPPpM6CEAsN8EAC2pXbt2tTXVp1dNDj0EWtEvr73zJ1ff7sUTgAIlAGhhURR94YLj/+azJ4UeAi1vyRMrM9nc8ufWhh4CAAdOANAqPjV7Qm3NBZ07dQw9BFrG7nffy2Qbrr71fq+ZABQ6AUBrObJscO03qkcfcVjoIXCw7njwiUw2t27jq6GHAEALEAC0ok4dO9TWVJ907ITQQ+AAvfraG5m63B/vetRLJQBFw30AaEXv7NodRdGaDa986dMnhN4C++36eYszdQ1vbt8ZeggAtCQnALSF05KTr6ipPqR9u9BDYJ+sfPHlTDZ338MrQg8BgJYnAGgjY0cNra254Iihg0IPgU/w6/qFP7pqntdGAIqVAKDtdO/aubam+rgZ40IPgb17dPmqTDb3+DNrQg8BgFYkAGhTURR9/a9O+dx5VaGHwF94b8+eudncb2++10siAEVPABDAWSdMu+IbF4ReAX+ysGl5Jtvw4oZXQg8BgLYgAAhj4pjhV9RUHz64f+ghxNpr27Znsrlb73zYKyEA8SEACKZPr+6137jg2GljQg8hpm5a8FAmm3v9jbdCDwGANiUACCmKor/73OkXnz0n9BDiZdW6zXPrGu5e/FToIQAQgAAgvPNOPuaf/iYVegVxceUNd8+ty3npAyC2BAB5YerRI2prqgcP7BN6CMVs6YrVmWxu6YrVoYcAQEgCgHwxsF+vK2qqZ0wcFXoIxSmTzWVvvNsrHgAIAPJIFEX/8MWzPn36rNBDKCr3PPRUJptbtW5T6CEAkBcEAHnnwtNn/cOXzg69gmLw+ps7MtmGmxcs8UIHAB8QAOSjGZOOrK2pHtC3Z+ghFLBb7nw4k8299vqboYcAQH4RAOSpwSV9a2uqp447IvQQCs+LG17J1OUWLnoy9BAAyEcCgPwVRdE/fjV13snTQw+hkPz2pnszdQ3vvbcn9BAAyFMCgLwWRdHFZx37d399RughFIDHn3lxbjb3yPIXQg8BgLwmACgAc6aNqa2p7t2zW+gh5K8f/rbxN9ff5QUNAD6RAKAwHH7YgNqa6glHDQs9hLxz38NPZ7INK198OfQQACgMAoCCEUXRP3/jgrOOnxp6CPnizbd2ZrK5G25f7HUMAPbdIaEHwL56//33oyhas37zNy45NfQWwvvjXY9ksrlXXnsj9BAAKDBOACg8x88Yd0VNdfeunUMPCaa5hUKvCGbdxi2ZutwdDzweeggAFCQBQEEacfig2prq8pGloYfQ1n53y32Zutzu3e+GHgIAhUoAUKgOOaR9bU31qZWTQg+hjSx/bl0m27DkiZWhhwBAYXMNAIXq3Xffi6JozfpXvnrRp0JvodX95He3//K6O31gAQAHzwkABe+kYyfW1lzQqWOH0ENoFQ88+szcbO7Z1S+FHgIARUIAUAyOOuKwK2qqjxw+OPQQWtJbO9/JZHP1jYu8TAFACxIAFIkunTvW1lSfOGt86CGtbve773U4pH3oFa0ud89jmWxu06uvhx4CAMVGAFA8oij6m4tO+kL18aGHcFBe2rw1k224/b5loYcAQHESABSb06um1NZUt2sX31+TX9D+8McHMtmGt9/ZHXoIABQtAUARGnfk4bU1F5SVloQewn5YsXJ9pi63eOlzoYcAQJETABSnnt27XFFTXTV9bOgh7JOf/X7+z6+5w8sRALQBAUDRiqKo5pJTL00lQw/h4zQtfS6TzT39wvrQQwAgLgQARe6cEyv+z9fPD72ixex8e1eXzh1Dr2gZb7+zK5PNXdPwoFchAGhLAoDiN6m8rLamuvTQfqGH8Gfz7ls2N9vw0uatoYcAQOwIAGKhb+8etTUXzJ5yVOghJF5+9fVMNtd4z2OhhwBATAkA4iKKov/1+TM+e+axoYfE2rW5BzPZ3I6d74QeAgDxJQCIlwtOmXH5V88NvSKOnl31UqYu9+Cjz4QeAgBxJwCInYrxI2trqgcN6B16SIz84po7fvr7+V5tACAfCADiqKR/79qa6ukTRoYesn/efOvtHt06h16xfx56fGUm2/DU8+tCDwEA/kQAEFNRFH3ny2dXnzoz9JCitWv3u5ls7ve33e9FBgDyigAg1j5zxuy//+JZoVcUoQUPPJ7J5ta/vCX0EADgwwQAcTdr8ugraqr79+kRekiReOW1NzLZhj/e9WjoIQDA3gkASAwZ1K+2pnry2LLQQwpe/bymudncm2/tDD0EAPhIAgASiUQiiqL/fdl5536qIvSQQvX8mo2Zutz9Dz8deggA8AkOCT0A8sL7778fRdGa9Zv/9nOnh95SeH513cIf/26eTxMAoCA4AYC/UFlRXltT3atH19BDCsMjT76QyeaeePbF0EMAgH0lAODDhg8ZeEVN9fjRh4cektfee29PJttw1S33eQ0BgMIiAGAvoiiqrak+47gpoYfkqTsXPZnJ5ta+9EroIQDAfnMNAOzFny4J2PDK1y4+OfSW/LLl9Tcz2dxtCx/x2QEAFCgnAPBxTph5dG1NddcunUIPyQs3zn8ok23Y9uaO0EMAgAMnAOATjBx2aG1N9ZgRQ0IPCWnVuk2ZbO6eh54KPQQAOFgCAD5Zxw6HXFFTfcqciaGHhHHlDXfNrWv0WgEAxUEAwD6JoujLF5745QtPDD2kTT321OpMXW7ZitWhhwAALUYAwH44Zc6k2poLOnQo/qvn33///Uw2V3fTPV4iAKDICADYP2NGDKmtqR457NDQQ1rR3YuXZ7K51es3hx4CALQ8AQD7rWuXTrU11SfMPDr0kJa39Y235mZzN9+xxCsDABQrAQAHIoqiyy4++fPnHxd6SEu6+Y4lmWxu67btoYcAAK1IAMCBO/O4qVfUVEdR6B0Hbc2GVzLZhrualoceAgC0OgEAB2X86GG1NRcMGzIw9JADV3fTPZlsbs+ePaGHAABtQQDAwerVo2ttTXVlRXnoIfvt8afXZOpyjy5fFXoIANB2BAC0gCiKvpk+7ZJzKkMP2Q9z6xqvvOEurwAAEDcCAFrMuSdN/95l54Ve8cnuXbIik829sPbl0EMAgAAEALSkKWOPuKKmesigvqGH7N0b23dmsg03zn/I//gAEFsCAFpY/z49a2sumDl5dOghH3bbwkcy2dyrW98IPQQACEkAQMuLoujbXzjzM2fMDj3kT9ZufHVuNnfHg0+EHgIAhCcAoLVUnzbzu18+J/SKxFW33JfJNrz77nuhhwAAeUEAQCuaPmFUbU11Sf9eQZ79yWfXZupyDz+xMsizAwD5SQBA6zp0QJ8raqorxo9o4+f98VXzflW/0P/gAMCHCABodVEUXf6Vc84/ZUbbPN0DjzyTyTY8t2Zj2zwdAFBYBAC0kc+edey3Pn9mqz7F9h1vZ7K56+c1+f8aAPgoAgDazuypR9V+o7pv7+6t8eANdz+ayeY2b9nWGg8OABQNAQBtqvTQ/rU11ZPKh7fgY27Y9Fomm5t//7IWfEwAoFgJAGhrURR972vnn3PitBZ5tN/fdn8mm3tn1+4WeTQAoOgJAAggiqJLz62sufS0g3mQp1aun5ttWLzs+ZZaBQDEgQCAYKqOGVtbU92jW5cD+N6f/n7+L665w/+/AMD+EgAQUllpSW1N9bgjh/6/f/X+++9HUfT//vmix57N1OWeeWFD668DAIqQAIDA2rVrV1tTfXrV5E/8yp1v78pkc9fmHvS/LQBwwA4JPQDibs+ePVEUrdnwymWfPeljvmzevUsz2dzGV7Ze02bLAIBi5AQA8sWnZo+/oqa6S6eOH/rzja+8nsk2zLt3aZBVAECREQCQR44cPri2pnr0EYd98CfXNDyYyTbsfHtXwFUAQDERAJBfOnXsUFtTfdKxE55ZtSGTzS167NnQiwCAouIaAMgv7+zaHUXRmg2bf/b7BfocAGhxTgAAACBG2oUeAAAAtB0BAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRv4/xaSrDPbrHDsAAAAASUVORK5CYII=", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from polymesh import PointData, PolyData\n", "from polymesh.cells import T3, Q4, L2\n", "import numpy as np\n", "\n", "coords = np.array([\n", " [0, 0, 0],\n", " [1, 0, 0],\n", " [1, 1, 0],\n", " [0, 1, 0],\n", " [2, 0, 0],\n", " [3, 0, 0],\n", " [3, 1, 0],\n", " [2, 1, 0],\n", "], dtype=float)\n", "\n", "topology_T3 = np.array([\n", " [0, 1, 2],\n", " [0, 2, 3],\n", "], dtype=int)\n", "\n", "topology_Q4 = np.array([\n", " [4, 5, 6, 7],\n", "], dtype=int)\n", "\n", "topology_L2 = np.array([\n", " [1, 7],\n", " [2, 4]\n", "], dtype=int)\n", "\n", "pd = PointData(coords=coords)\n", "cd_T3 = T3(topo=topology_T3)\n", "cd_Q4 = Q4(topo=topology_Q4)\n", "cd_L2 = L2(topo=topology_L2)\n", "\n", "mesh = PolyData(pd)\n", "mesh[\"triangles\"] = PolyData(cd_T3)\n", "mesh[\"quads\"] = PolyData(cd_Q4)\n", "mesh[\"lines\"] = PolyData(cd_L2)\n", "\n", "mesh.plot(notebook=True, jupyter_backend=\"static\", theme=\"document\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "A `PolyMesh` object can consist of block each having their own point data:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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RgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRv4/xaSrDPbrHDsAAAAASUVORK5CYII=", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from polymesh import PointData, PolyData\n", "from polymesh.cells import T3, Q4, L2\n", "import numpy as np\n", "\n", "coords_T3 = np.array([\n", " [0, 0, 0],\n", " [1, 0, 0],\n", " [1, 1, 0],\n", " [0, 1, 0],\n", "], dtype=float)\n", "\n", "topology_T3 = np.array([\n", " [0, 1, 2],\n", " [0, 2, 3],\n", "], dtype=int)\n", "\n", "coords_Q4 = np.array([\n", " [2, 0, 0],\n", " [3, 0, 0],\n", " [3, 1, 0],\n", " [2, 1, 0],\n", "], dtype=float)\n", "\n", "topology_Q4 = np.array([\n", " [0, 1, 2, 3],\n", "], dtype=int)\n", "\n", "coords_L2 = np.array([\n", " [1, 0, 0],\n", " [2, 1, 0],\n", " [1, 1, 0],\n", " [2, 0, 0],\n", "], dtype=float)\n", "\n", "topology_L2 = np.array([\n", " [0, 1],\n", " [2, 3]\n", "], dtype=int)\n", "\n", "pd_T3 = PointData(coords=coords_T3)\n", "cd_T3 = T3(topo=topology_T3)\n", "\n", "pd_Q4 = PointData(coords=coords_Q4)\n", "cd_Q4 = Q4(topo=topology_Q4)\n", "\n", "pd_L2 = PointData(coords=coords_L2)\n", "cd_L2 = L2(topo=topology_L2)\n", "\n", "mesh = PolyData()\n", "mesh[\"triangles\"] = PolyData(pd_T3, cd_T3)\n", "mesh[\"quads\"] = PolyData(pd_Q4, cd_Q4)\n", "mesh[\"lines\"] = PolyData(pd_L2, cd_L2)\n", "\n", "mesh.plot(notebook=True, jupyter_backend=\"static\", theme=\"document\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "If you want to merge all the different point clouds into one, you can use the ``to_standard_form`` function of the root object. To see the effect, lets print out the topology of the mesh prior and after the operation:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
[[0, 1, 2],\n",
       " [0, 2, 3],\n",
       " [0, 1, 2, 3],\n",
       " [0, 1],\n",
       " [2, 3]]\n",
       "---------------------\n",
       "type: 5 * var * int32
" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.topology()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PolyData({'triangles': PolyData({}), 'quads': PolyData({}), 'lines': PolyData({})})" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.to_standard_form()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
[[0, 1, 2],\n",
       " [0, 2, 3],\n",
       " [4, 5, 6, 7],\n",
       " [8, 9],\n",
       " [10, 11]]\n",
       "---------------------\n",
       "type: 5 * var * int32
" ], "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh.topology()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
[{_nodes: [0, 1, 2], _id: 0},\n",
       " {_nodes: [0, 2, 3], _id: 1}]\n",
       "-----------------------------\n",
       "type: 2 * {\n",
       "    _nodes: 3 * int32,\n",
       "    _id: int32\n",
       "}
" ], "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh[\"triangles\"].cd" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "A mesh can also be splitted using the `detach` method of a block. The option `nummrg=True` causes a zero based continuous node numbering of the detached mesh." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "PolyData({})" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mesh[\"quads\"].detach(nummrg=True)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Nested layouts" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "A mesh can have an arbitrary number of nested levels. In the next block the same mesh is defined twice. The two definitions differ in their layout, but are the same in terms of points, topology and related data." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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RgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRgQAAADEiAAAAIAYEQAAABAjAgAAAGJEAAAAQIwIAAAAiBEBAAAAMSIAAAAgRv4/xaSrDPbrHDsAAAAASUVORK5CYII=", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh = PolyData()\n", "mesh[\"triangles\"] = PolyData(pd_T3, cd_T3)\n", "mesh[\"quads\"] = PolyData(pd_Q4, cd_Q4)\n", "mesh[\"lines\"] = PolyData(pd_L2, cd_L2)\n", "\n", "mesh = PolyData()\n", "mesh[\"2d\", \"triangles\"] = PolyData(pd_T3, cd_T3)\n", "mesh[\"2d\", \"quads\"] = PolyData(pd_Q4, cd_Q4)\n", "mesh[\"lines\"] = PolyData(pd_L2, cd_L2)\n", "\n", "mesh.plot(notebook=True, jupyter_backend=\"static\", theme=\"document\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Everything below a certain level behaves like a `PolyData` instance:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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jAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjAgAAACIEQEAAAAxIgAAACBGBAAAAMSIAAAAgBgRAAAAECMCAAAAYkQAAABAjPx/wgeWKMtCpAgAAAAASUVORK5CYII=", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh[\"2d\"].plot(notebook=True, jupyter_backend=\"static\", theme=\"document\")" ] } ], "metadata": { "kernelspec": { "display_name": ".polymesh", "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.8.10" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }