diff --git a/src/bvpy/domains/abstract.py b/src/bvpy/domains/abstract.py index 2aa00aca77bc40f636248e39be97f2640e9218c0..023ee5b39d944a759ff8e40d5aea8b8a3b6a088f 100644 --- a/src/bvpy/domains/abstract.py +++ b/src/bvpy/domains/abstract.py @@ -21,6 +21,7 @@ # ----------------------------------------------------------------------- import sys +import logging import tempfile from abc import ABC, abstractmethod @@ -392,7 +393,12 @@ class AbstractDomain(ABC): self.model.mesh.clear() if not self.volumes: - self.model.addPhysicalGroup(dim, [self.surfaces[0]]) + try: + self.model.addPhysicalGroup(dim, [self.surfaces[0]]) + except KeyError: + logging.warning("Adding physical group of Hemisphere...") + for _ , val in self.surfaces.items(): + self.model.addPhysicalGroup(2, [val], val+1000) else: self.model.addPhysicalGroup(dim, [self.volumes[0]]) diff --git a/src/bvpy/domains/primitives.py b/src/bvpy/domains/primitives.py index b8c73901870f24aa1d0beb202b4b6a2c9e393e64..f90309667b67891c7b244e536b113adf57275be8 100644 --- a/src/bvpy/domains/primitives.py +++ b/src/bvpy/domains/primitives.py @@ -395,7 +395,6 @@ class HemiSphere(AbstractDomain, BuiltInModel): center = np.array(center) points = dict() - surfaces = dict() lines = dict() points['center'] = self.factory.addPoint(*center) @@ -450,30 +449,25 @@ class HemiSphere(AbstractDomain, BuiltInModel): lineloops = self.factory.addCurveLoop([lines['circle_1'], lines['circle_7'], lines['circle_5']]) - surfaces['quarter_1'] = self.factory.addSurfaceFilling([lineloops]) + self.surfaces['quarter_1'] = self.factory.addSurfaceFilling([lineloops]) lineloops = self.factory.addCurveLoop([lines['circle_7'], lines['circle_6'], lines['circle_2']]) - surfaces['quarter_2'] = self.factory.addSurfaceFilling([lineloops]) + self.surfaces['quarter_2'] = self.factory.addSurfaceFilling([lineloops]) lineloops = self.factory.addCurveLoop([lines['circle_6'], lines['circle_3'], lines['circle_8']]) - surfaces['quarter_3'] = self.factory.addSurfaceFilling([lineloops]) + self.surfaces['quarter_3'] = self.factory.addSurfaceFilling([lineloops]) lineloops = self.factory.addCurveLoop([lines['circle_8'], lines['circle_5'], lines['circle_4']]) - surfaces['quarter_4'] = self.factory.addSurfaceFilling([lineloops]) + self.surfaces['quarter_4'] = self.factory.addSurfaceFilling([lineloops]) - self.synchronize() - - for key, val in surfaces.items(): - self.model.addPhysicalGroup(2, [val], val+1000) - self.model.setPhysicalName(2, val+1000, key) + self.factory.synchronize() - self.synchronize() class Cube(AbstractDomain, OccModel): diff --git a/tutorials/bvpy_tutorial_2_domains.ipynb b/tutorials/bvpy_tutorial_2_domains.ipynb index 21223f26862f5f82ca3222de60c257dade1f0782..86f493b0940b1ed29d2b1b716be3f24acda5800e 100644 --- a/tutorials/bvpy_tutorial_2_domains.ipynb +++ b/tutorials/bvpy_tutorial_2_domains.ipynb @@ -44,7 +44,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -62,17 +62,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of triangles within the domain AFTER discretization: 4\n" - ] - } - ], + "outputs": [], "source": [ "try:\n", " # domain.mesh.num_cells()\n", @@ -97,33 +89,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Domain\n", - "\n", - "------\n", - " * Shape: Rectangle\n", - " * Dimension: 3\n", - " * Length: 1.00e+00\n", - " * Width: 1.00e+00\n", - "\n", - "Meshing\n", - "-------\n", - " * Algorithm: Delaunay\n", - " * Cell type: triangle\n", - " * Number: 3\n", - " * Resolution (i.e. prescribed element size): 1.00e+00\n", - " * Actual size (min, max): (1.00e+00, 1.00e+00)\n", - " * Cells quality: 4.50e+00 +/- 2.87e+00 \n", - "\n" - ] - } - ], + "outputs": [], "source": [ "domain.info()" ] @@ -138,24 +106,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "962f1bb475cb45eca0a1228b7b6c41ae", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.utils.visu import plot, set_renderer\n", "set_renderer('notebook')\n", @@ -182,24 +135,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "e561ccff5399482eb3d4928de75f32ee", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.utils.visu import plot, set_renderer\n", "from bvpy.domains import Rectangle\n", @@ -231,24 +169,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "b5db0aa22c1945e0b82b57bafae8c249", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rec = Rectangle(length=2, width=3, cell_size=0.1, clear=True)\n", "plot(rec)" @@ -263,24 +186,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "3d3f14eed8fa4bf4b371dd7395cd9005", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.domains import Disk\n", "dsk = Disk(cell_size=0.1, clear=True)\n", @@ -300,20 +208,33 @@ "metadata": {}, "outputs": [ { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mCanceled future for execute_request message before replies were done" + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:root:Adding physical group of Hemisphere...\n" ] }, { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mLe Kernel s’est bloqué lors de l’exécution du code dans la cellule active ou une cellule précédente. Veuillez vérifier le code dans la ou les cellules pour identifier une cause possible de l’échec. Cliquez <a href='https://aka.ms/vscodeJupyterKernelCrash'>ici</a> pour plus d’informations. Pour plus d’informations, consultez Jupyter <a href='command:jupyter.viewOutput'>log</a>." + "name": "stdout", + "output_type": "stream", + "text": [ + "Info : Clearing all models and views...\n", + "Info : Done clearing all models and views\n" ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "182274771cf6437a972b15e14101d466", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -333,13 +254,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "f4c9b9021ef04184b2a14e75c4f45d32", + "model_id": "a48bb4936ab043d08915c43f1a661985", "version_major": 2, "version_minor": 0 }, @@ -367,24 +288,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "f282dc8ea0864d71b137db207b31f06f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.domains import Ellipsoid\n", "elp = Ellipsoid(cell_size=0.1, clear=True)\n", @@ -400,24 +306,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "47d8a09373f244449677019fb66eafd7", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.domains import Torus\n", "tor = Torus(cell_size=0.2, clear=True)\n", @@ -447,24 +338,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "890f8e1bdad14aae8149deda32465d1d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.utils.visu import plot, set_renderer\n", "from bvpy.domains import Rectangle\n", @@ -499,24 +375,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "9acdb0a75a5441a79109755fdb731a71", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "from bvpy.domains import Sphere\n", "from bvpy.utils.visu import plot, set_renderer\n", @@ -539,24 +400,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "132ea445eae74e7f836119b4b35da5b6", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "ViewInteractiveWidget(height=768, layout=Layout(height='auto', width='100%'), width=1024)" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "big = Sphere(radius=10, cell_type='tetra', clear=True)\n", "sml = Sphere(radius=9, cell_type='tetra')\n",