From 0cc7e30e8a04e8b625671e2b3704ce9a4158b3c7 Mon Sep 17 00:00:00 2001 From: Stefano Fochesatto Date: Sun, 2 Feb 2025 16:12:40 -0900 Subject: [PATCH] Honor partition params + pyproject.toml update (#72) Fix mesh distribution for a Netgen mesh --- ngsPETSc/utils/firedrake/meshes.py | 5 ++- pyproject.toml | 60 ++++++++++++++++-------------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/ngsPETSc/utils/firedrake/meshes.py b/ngsPETSc/utils/firedrake/meshes.py index 79fdb11..ff759e4 100644 --- a/ngsPETSc/utils/firedrake/meshes.py +++ b/ngsPETSc/utils/firedrake/meshes.py @@ -44,6 +44,7 @@ def refineMarkedElements(self, mark): :arg mark: the marking function which is a Firedrake DG0 function. ''' + DistParams = self._distribution_parameters els = {2: self.netgen_mesh.Elements2D, 3: self.netgen_mesh.Elements3D} dim = self.geometric_dimension() if dim in [2,3]: @@ -66,8 +67,8 @@ def refineMarkedElements(self, mark): el.refine = False self.netgen_mesh.Refine(adaptive=True) mark = mark-np.ones(mark.shape) - return fd.Mesh(self.netgen_mesh) - return fd.Mesh(netgen.libngpy._meshing.Mesh(dim)) + return fd.Mesh(self.netgen_mesh, distribution_parameters=DistParams) + return fd.Mesh(netgen.libngpy._meshing.Mesh(dim), distribution_parameters=DistParams) else: raise NotImplementedError("No implementation for dimension other than 2 and 3.") diff --git a/pyproject.toml b/pyproject.toml index 11f0f55..a12ded8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,37 +1,50 @@ -[tool.poetry] +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[project] name = "ngsPETSc" version = "0.0.8" description = "NGSolve/Netgen interface to PETSc" authors = [ - "Umberto Zerbinati ", - "Patrick E. Farrell ", - "Stefano Zampini ", - "Jack Betteridge ", + { name = "Umberto Zerbinati", email = "umberto.zerbinati@maths.ox.ac.uk" }, + { name = "Patrick E. Farrell", email = "patrick.farrell@maths.ox.ac.uk" }, + { name = "Stefano Zampini", email = "stefano.zampini@kaust.edu.sa" }, + { name = "Jack Betteridge", email = "J.Betteridge@imperial.ac.uk" } ] maintainers = [ - "Umberto Zerbinati ", + { name = "Umberto Zerbinati", email = "umberto.zerbinati@maths.ox.ac.uk" } ] readme = "README.md" license = "MIT" -packages = [ - {include = "ngsPETSc"} -] -documentation = "https://ngspetsc.readthedocs.io/en/latest/" -repository = "https://github.com/NGSolve/ngsPETSc" +requires-python = ">=3.9,<4.0" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", - "Development Status :: 3 - Alpha", + "Development Status :: 3 - Alpha" +] +dependencies = [ + "netgen-mesher >= 6.2,<7.0", + "netgen-occt >=7.8,<8.0", + "petsc4py >=3.22.1,<4.0", + "numpy >=2,<3", + "scipy >=1,<2", +] + +[project.urls] +Documentation = "https://ngspetsc.readthedocs.io/en/latest/" +Repository = "https://github.com/NGSolve/ngsPETSc" + +[project.optional-dependencies] +firedrake = [ + "firedrake" ] -[tool.poetry.dependencies] -python = "^3.9" -netgen-mesher = "^6.2" -netgen-occt = "^7.8" -petsc4py = "^3.22.1" -numpy = "^2" -scipy = "^1" +[tool.poetry] +packages = [ + { include = "ngsPETSc" } +] [tool.poetry.group.dev.dependencies] pytest = "^8.3" @@ -40,12 +53,3 @@ pylint = "^3.3" [tool.poetry.group.ngsolve.dependencies] ngsolve = "^6.2" mpi4py = "^4" - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" - -[project.optional-dependencies] -firedrake = [ - "firedrake", -]