Skip to content

Commit d29f210

Browse files
committed
cleanup
1 parent 4457985 commit d29f210

File tree

2 files changed

+6
-10
lines changed

2 files changed

+6
-10
lines changed

firedrake/functionspaceimpl.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -388,8 +388,7 @@ def reconstruct(self, mesh=None, element=None, name=None, **kwargs):
388388
Any extra kwargs are used to reconstruct the finite element.
389389
For details see :meth:`finat.ufl.finiteelement.FiniteElement.reconstruct`.
390390
"""
391-
from firedrake.functionspace import RestrictedFunctionSpace as restrict
392-
from firedrake.functionspace import MixedFunctionSpace as product
391+
from firedrake.bcs import restricted_function_space
393392
V_parent = self
394393

395394
# Deal with ProxyFunctionSpace
@@ -413,19 +412,13 @@ def reconstruct(self, mesh=None, element=None, name=None, **kwargs):
413412
if len(kwargs) > 0 or element.cell != cell:
414413
element = element.reconstruct(cell=cell, **kwargs)
415414

416-
# Reconstruct V_parent
415+
# Reconstruct the parent space
417416
V = type(self).make_function_space(mesh, element, name=name)
418417

419418
# Deal with RestrictedFunctionSpace
420419
boundary_sets = [V_.boundary_set for V_ in V_parent]
421420
if any(boundary_sets):
422-
subspaces = [restrict(V_, boundary_set=boundary_set, name=V_.name)
423-
if boundary_set else V_
424-
for V_, boundary_set in zip(V, boundary_sets)]
425-
if len(subspaces) == 1:
426-
V, = subspaces
427-
else:
428-
V = product(subspaces, name=V.name)
421+
V = restricted_function_space(V, boundary_sets)
429422

430423
for i in reversed(indices):
431424
V = V.sub(i)

tests/firedrake/regression/test_restricted_function_space.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,10 +381,13 @@ def test_reconstruct_mixed_restricted():
381381
for i in range(len(Z)):
382382
# Test reconstruct for unrestricted component spaces
383383
Zsub = Z.sub(i)
384+
384385
W = Zsub.reconstruct(mesh=new_mesh)
385386
assert W.mesh() is new_mesh
386387
assert W.parent is not None
387388
assert W.index == Zsub.index
389+
assert not W.boundary_set
390+
assert not W.collapse().boundary_set
388391

389392
Zsub = Zres.sub(i)
390393
boundary_set = Zsub.boundary_set

0 commit comments

Comments
 (0)