{ "cells": [ { "cell_type": "markdown", "id": "9cd952e4", "metadata": {}, "source": [ "# Curvilinear grid generation with defined extension\n", "\n", "This is a brief introduction to the process of generating curvilinear grid with a defined extension." ] }, { "cell_type": "markdown", "id": "bb910e9f", "metadata": {}, "source": [ "At the very beginning, the necessary libraries have to be imported." ] }, { "cell_type": "code", "execution_count": 1, "id": "69288369", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from meshkernel import (\n", " GeometryList,\n", " GriddedSamples,\n", " MakeGridParameters,\n", " MeshKernel,\n", " MeshRefinementParameters,\n", " ProjectionType,\n", " RefinementType,\n", ")" ] }, { "cell_type": "markdown", "id": "04691c04", "metadata": {}, "source": [ "## Create a curvilinear grid in a spherical system" ] }, { "cell_type": "markdown", "id": "aa11e457", "metadata": {}, "source": [ "The grid will extend from the origin to the upper right corner, automatically computing the number of rows and columns while adjusting the latitude to preserve an aspect ratio close to one in real-world distances." ] }, { "cell_type": "code", "execution_count": 2, "id": "27f2ab52", "metadata": {}, "outputs": [], "source": [ "lon_min, lon_max = -1, -0.2\n", "lat_min, lat_max = 49.1, 49.6\n", "lon_res, lat_res = 0.1, 0.1\n", "\n", "make_grid_parameters = MakeGridParameters()\n", "make_grid_parameters.origin_x = lon_min\n", "make_grid_parameters.origin_y = lat_min\n", "make_grid_parameters.upper_right_x = lon_max\n", "make_grid_parameters.upper_right_y = lat_max\n", "make_grid_parameters.block_size_x = lon_res\n", "make_grid_parameters.block_size_y = lat_res\n", "\n", "mk = MeshKernel(projection=ProjectionType.SPHERICAL)\n", "mk.curvilinear_compute_rectangular_grid_on_extension(make_grid_parameters)" ] }, { "cell_type": "markdown", "id": "986582fa", "metadata": {}, "source": [ "Convert the curvilinear mesh to an unstructured mesh" ] }, { "cell_type": "code", "execution_count": 3, "id": "8a033d6d", "metadata": {}, "outputs": [], "source": [ "mk.curvilinear_convert_to_mesh2d()" ] }, { "cell_type": "markdown", "id": "cce139e9", "metadata": {}, "source": [ "Plot the mesh" ] }, { "cell_type": "code", "execution_count": 4, "id": "72cc3387", "metadata": {}, "outputs": [ { "data": { "image/png": "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WIsWLdKVV16p3NzcEd3GGKPvfOc7uuqqqzRhwgSVlZXp6NGjYztonHp7e1VVVSWfz6fc3Fx99atfVTgcHvY2HR0dqqysVF5ennw+n5YvX65gMDhOE8cunownTpzQF7/4RRUUFMjr9aqkpES//vWvx2ni2MSar7OzUx6P50PXjh07xnHykYnn8ZOklpYW3XHHHfJ6vfL5fLrtttv07rvvjsPEsYsn4+23337J43fvvfeO08SxifcxlN7/7+mSJUvk8Xj09NNPj+2gcYon39e+9jV94hOf0IQJE5SXl6c777xTb7zxxjhNHLtYM/b29uob3/iGZs+erQkTJujqq6/WN7/5TYVCocQMZHCJ73znO+ZHP/qRWbdunfH7/SO6TUNDg/H7/ebpp582hw8fNsuWLTMzZ84077777tgOG4fPfvaz5vrrrzevvPKKefnll80111xjVqxYMeT1w+GwKSoqMpWVlebVV181r776qrnzzjvNTTfdZPr7+8dx8pGLNaMxxnz60582N910k9m3b5/p6Ogw3/ve90xaWpo5ePDgOE09crHmO3/+vOnu7h60HnzwQZOdnW1Onz49jpOPTDyP3//8z/8Yn89n6uvrzWuvvWbeeOMN86tf/cqcPXt2nKaOTTwZFy9ebO65555Bj2MoFBqniWMTT74LfvSjH5klS5YYSaapqWlsB41TPPk2bdpkXnrpJXPs2DFz4MABU1FRYQoLC8358+fHaerYxJqxra3NfO5znzPPPvusaW9vN7/5zW/MrFmzzOc///mEzENhGUZjY+OICsvAwIApKCgw//iP/xjdO3XqlMnMzDS//OUvx3DC2L3++utGktm/f390b+fOncbj8Zi33nrrQ2+za9cuk5aWNug/jKdOnTIej8e88MILYz5zrOLJaIwxXq/X/PznPx+0N2nSJLN58+YxmzUe8eb7oBtuuMH87d/+7ViMOCrx5luwYIH51re+NR4jjlq8GRcvXmyqq6vHYcLRGc1z9NChQ+Yv/uIvTHd3t7WFJVH/Bg8fPmwkmfb29rEYc1QSlfGpp54yH/vYx8x777036pk4JZQAx44d04kTJ1RWVhbd8/v9WrBggVpaWpI42aVaWlqUm5urT33qU9G9srIypaWlad++fR96m0gkIo/HM+gXBmVlZSktLU179+4d85ljFU9GSVq0aJF+9atfqbe3VwMD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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh2d = mk.mesh2d_get()\n", "fig, ax = plt.subplots()\n", "mesh2d.plot_edges(ax, color=\"black\")" ] }, { "cell_type": "markdown", "id": "e0e4db1d", "metadata": {}, "source": [ "## Create a curvilinear grid in a cartesian system" ] }, { "cell_type": "markdown", "id": "5876a99c", "metadata": {}, "source": [ "In the cartesian case no adjustment of the y coordinate is required" ] }, { "cell_type": "code", "execution_count": 5, "id": "bbd43208", "metadata": {}, "outputs": [], "source": [ "min_x, min_y = 0, 0\n", "max_x, max_y = 10.0, 10.0\n", "block_size_x, block_size_y = 1, 2\n", "\n", "make_grid_parameters = MakeGridParameters()\n", "make_grid_parameters.origin_x = min_x\n", "make_grid_parameters.origin_y = min_y\n", "make_grid_parameters.upper_right_x = max_x\n", "make_grid_parameters.upper_right_y = max_y\n", "make_grid_parameters.block_size_x = block_size_x\n", "make_grid_parameters.block_size_y = block_size_y\n", "\n", "mk = MeshKernel(projection=ProjectionType.CARTESIAN)\n", "mk.curvilinear_compute_rectangular_grid_on_extension(make_grid_parameters)" ] }, { "cell_type": "markdown", "id": "b536181a", "metadata": {}, "source": [ "Convert the curvilinear mesh to an unstructured mesh" ] }, { "cell_type": "code", "execution_count": 6, "id": "ae8640a1", "metadata": {}, "outputs": [], "source": [ "mk.curvilinear_convert_to_mesh2d()" ] }, { "cell_type": "markdown", "id": "047abe1d", "metadata": {}, "source": [ "Plot the mesh" ] }, { "cell_type": "code", "execution_count": 7, "id": "02def304", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh2d = mk.mesh2d_get()\n", "fig, ax = plt.subplots()\n", "mesh2d.plot_edges(ax, color=\"black\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.11" } }, "nbformat": 4, "nbformat_minor": 5 }