{ "cells": [ { "cell_type": "markdown", "id": "d435d88e", "metadata": {}, "source": [ "# Mesh2d refinement based on gridded samples\n", "\n", "This is a brief introduction to the process of mesh refinement using gridded samples. When refining the mesh using gridded samples, bilinear interpolation is used to calculate the depth values at the mesh nodes." ] }, { "cell_type": "markdown", "id": "776b9930", "metadata": {}, "source": [ "At the very beginning, the necessary libraries have to be imported." ] }, { "cell_type": "code", "execution_count": 1, "id": "86a58adb", "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", " RefinementType,\n", ")" ] }, { "cell_type": "markdown", "id": "e5479ea0", "metadata": {}, "source": [ "`meshkernel` provides a set of convenience methods for creating common meshes.\n", "\n", "We use the `curvilinear_compute_rectangular_grid` method to create a simple curvilinear grid.\n", "You can look at the documentation in order to find all its parameters." ] }, { "cell_type": "code", "execution_count": 2, "id": "5c635b85", "metadata": {}, "outputs": [], "source": [ "mk = MeshKernel()\n", "\n", "make_grid_parameters = MakeGridParameters()\n", "make_grid_parameters.num_columns = 4\n", "make_grid_parameters.num_rows = 5\n", "make_grid_parameters.angle = 0.0\n", "make_grid_parameters.origin_x = 0.0\n", "make_grid_parameters.origin_y = 0.0\n", "make_grid_parameters.block_size_x = 100.0\n", "make_grid_parameters.block_size_y = 100.0\n", "\n", "mk.curvilinear_compute_rectangular_grid(make_grid_parameters)" ] }, { "cell_type": "markdown", "id": "edd89d62", "metadata": {}, "source": [ "We convert the curvilinear grid to an unstructured mesh and get the resulting mesh2d" ] }, { "cell_type": "code", "execution_count": 3, "id": "cfd5a047", "metadata": {}, "outputs": [], "source": [ "mk.curvilinear_convert_to_mesh2d()\n", "mesh2d_input = mk.mesh2d_get()" ] }, { "cell_type": "markdown", "id": "3d8bde67", "metadata": {}, "source": [ "The generated mesh can be visualized as follow" ] }, { "cell_type": "code", "execution_count": 4, "id": "58f064da", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "mesh2d_input.plot_edges(ax, color=\"black\")" ] }, { "cell_type": "markdown", "id": "644eb6c1", "metadata": {}, "source": [ "Now we define the gridded samples with uniform spacing" ] }, { "cell_type": "code", "execution_count": 5, "id": "d92f8158", "metadata": {}, "outputs": [], "source": [ "gridded_samples = GriddedSamples(\n", " num_x=5,\n", " num_y=6,\n", " x_origin=-50.0,\n", " y_origin=-50.0,\n", " cell_size=100.0,\n", " values=np.array([-0.05] * 42, dtype=np.float32),\n", ")" ] }, { "cell_type": "markdown", "id": "0bcb1737", "metadata": {}, "source": [ "And the parameters for the mesh refinement algorithm" ] }, { "cell_type": "code", "execution_count": 6, "id": "b9f5fa6d", "metadata": {}, "outputs": [], "source": [ "refinement_params = MeshRefinementParameters(\n", " refine_intersected=False,\n", " use_mass_center_when_refining=False,\n", " min_edge_size=2.0,\n", " refinement_type=RefinementType.WAVE_COURANT,\n", " connect_hanging_nodes=True,\n", " account_for_samples_outside_face=False,\n", " max_refinement_iterations=5,\n", ")" ] }, { "cell_type": "markdown", "id": "9c8eafdd", "metadata": {}, "source": [ "Refinement can now be performed" ] }, { "cell_type": "code", "execution_count": 7, "id": "edce64d3", "metadata": {}, "outputs": [], "source": [ "mk.mesh2d_refine_based_on_gridded_samples(gridded_samples, refinement_params, True)" ] }, { "cell_type": "markdown", "id": "985acca4", "metadata": {}, "source": [ "We can now visualize the refined grid" ] }, { "cell_type": "code", "execution_count": 8, "id": "73d99227", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh2d_output = mk.mesh2d_get()\n", "fig, ax = plt.subplots()\n", "mesh2d_output.plot_edges(ax, color=\"black\")" ] }, { "cell_type": "markdown", "id": "37cf7dcf", "metadata": {}, "source": [ "If gridding is not uniform, we can create the gridded samples differently, bmitting some of the GriddedSamples parameters.\n", "First regenerate the starting mesh" ] }, { "cell_type": "code", "execution_count": 9, "id": "b25f2751", "metadata": {}, "outputs": [], "source": [ "mk.curvilinear_compute_rectangular_grid(make_grid_parameters)\n", "mk.curvilinear_convert_to_mesh2d()" ] }, { "cell_type": "code", "execution_count": 10, "id": "25a2cfd1", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "mesh2d_input.plot_edges(ax, color=\"black\")" ] }, { "cell_type": "markdown", "id": "4eecdcff", "metadata": {}, "source": [ "When refining the mesh with gridded samples that have non-uniform x or y spacing, the non-uniform spacing can be specified by using the x_coordinates and y_coordinates parameters." ] }, { "cell_type": "code", "execution_count": 11, "id": "19a059c9", "metadata": {}, "outputs": [], "source": [ "gridded_samples = GriddedSamples(\n", " x_coordinates=np.array([-50.0, 50.0, 150.0, 250.0, 350.0, 450.0], dtype=np.double),\n", " y_coordinates=np.array(\n", " [-50.0, 50.0, 150.0, 250.0, 350.0, 450.0, 550.0], dtype=np.double\n", " ),\n", " values=np.array([-0.05] * 42, dtype=np.float32),\n", ")" ] }, { "cell_type": "code", "execution_count": 12, "id": "353f5bc4", "metadata": {}, "outputs": [], "source": [ "mk.mesh2d_refine_based_on_gridded_samples(gridded_samples, refinement_params, True)" ] }, { "cell_type": "code", "execution_count": 13, "id": "97da8480", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mesh2d_output = mk.mesh2d_get()\n", "fig, ax = plt.subplots()\n", "mesh2d_output.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 }