From c8953008f6279e1a7200167dcbf26817d8287eba Mon Sep 17 00:00:00 2001 From: Umberto Zerbinati Date: Mon, 16 Oct 2023 23:03:46 +0100 Subject: [PATCH 1/2] Fixed circular import --- firedrake/mesh.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/firedrake/mesh.py b/firedrake/mesh.py index 1bbbf32d91..94b425b683 100644 --- a/firedrake/mesh.py +++ b/firedrake/mesh.py @@ -33,10 +33,8 @@ try: import netgen - from ngsPETSc import FiredrakeMesh except ImportError: netgen = None - ngsPETSc = None __all__ = [ @@ -2530,6 +2528,10 @@ def Mesh(meshfile, **kwargs): if MPI.Comm.Compare(user_comm, plex.comm.tompi4py()) not in {MPI.CONGRUENT, MPI.IDENT}: raise ValueError("Communicator used to create `plex` must be at least congruent to the communicator used to create the mesh") elif netgen and isinstance(meshfile, netgen.libngpy._meshing.Mesh): + try: + from ngsPETSc import FiredrakeMesh + except ImportError as e: + raise ImportError("Unable to import ngsPETSc. Please ensure that ngsolve is installed and available to Firedrake.") netgen_flags = kwargs.get("netgen_flags", {"quad": False, "transform": None, "purify_to_tets": False}) netgen_firedrake_mesh = FiredrakeMesh(meshfile, netgen_flags, user_comm) plex = netgen_firedrake_mesh.meshMap.petscPlex From f8913dec40dca966a25a33b7de5c1618a02d8e6e Mon Sep 17 00:00:00 2001 From: Umberto Zerbinati Date: Wed, 18 Oct 2023 15:32:40 +0100 Subject: [PATCH 2/2] Fix Linting Signed-off-by: Umberto Zerbinati --- firedrake/mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firedrake/mesh.py b/firedrake/mesh.py index 94b425b683..cb7a202f16 100644 --- a/firedrake/mesh.py +++ b/firedrake/mesh.py @@ -2530,7 +2530,7 @@ def Mesh(meshfile, **kwargs): elif netgen and isinstance(meshfile, netgen.libngpy._meshing.Mesh): try: from ngsPETSc import FiredrakeMesh - except ImportError as e: + except ImportError: raise ImportError("Unable to import ngsPETSc. Please ensure that ngsolve is installed and available to Firedrake.") netgen_flags = kwargs.get("netgen_flags", {"quad": False, "transform": None, "purify_to_tets": False}) netgen_firedrake_mesh = FiredrakeMesh(meshfile, netgen_flags, user_comm)