Skip to content

Commit a90df34

Browse files
authored
Fix imports in hypre_ams.py (#4440)
* move `assemble` import inside function
1 parent 8ac1f24 commit a90df34

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

firedrake/preconditioners/hypre_ams.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import firedrake as fd
21
from firedrake.preconditioners.base import PCBase
32
from firedrake.petsc import PETSc
43
from firedrake.functionspace import FunctionSpace, VectorFunctionSpace
54
from firedrake.ufl_expr import TestFunction
65
from firedrake.dmhooks import get_function_space
76
from firedrake.utils import complex_mode
7+
from firedrake.interpolation import interpolate
8+
from firedrake import grad, SpatialCoordinate
89
from firedrake_citations import Citations
910
from pyop2.utils import as_tuple
1011

@@ -28,6 +29,8 @@ def chop(A, tol=1E-10):
2829

2930
class HypreAMS(PCBase):
3031
def initialize(self, obj):
32+
from firedrake.assemble import assemble
33+
3134
if complex_mode:
3235
raise NotImplementedError("HypreAMS preconditioner not yet implemented in complex mode")
3336

@@ -47,7 +50,7 @@ def initialize(self, obj):
4750
P1 = FunctionSpace(mesh, "Lagrange", 1)
4851
G_callback = appctx.get("get_gradient", None)
4952
if G_callback is None:
50-
G = chop(fd.assemble(fd.interpolate(fd.grad(TestFunction(P1)), V)).petscmat)
53+
G = chop(assemble(interpolate(grad(TestFunction(P1)), V)).petscmat)
5154
else:
5255
G = G_callback(P1, V)
5356

@@ -65,8 +68,8 @@ def initialize(self, obj):
6568
pc.setHYPRESetBetaPoissonMatrix(None)
6669

6770
VectorP1 = VectorFunctionSpace(mesh, "Lagrange", 1)
68-
interp = fd.interpolate(fd.SpatialCoordinate(mesh), VectorP1)
69-
pc.setCoordinates(fd.assemble(interp).dat.data_ro.copy())
71+
interp = interpolate(SpatialCoordinate(mesh), VectorP1)
72+
pc.setCoordinates(assemble(interp).dat.data_ro.copy())
7073
pc.setFromOptions()
7174
self.pc = pc
7275

0 commit comments

Comments
 (0)