Skip to content

Commit 4a1d57d

Browse files
committed
Fix cache key
1 parent d29f210 commit 4a1d57d

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

firedrake/mg/utils.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def coarse_cell_to_fine_node_map(Vc, Vf):
9595
if levelc + increment != levelf:
9696
raise ValueError("Can't map between level %s and level %s" % (levelc, levelf))
9797

98-
key = _cache_key(Vc, Vf)
98+
key = _cache_key(Vc, Vf, needs_fine_entity_dofs=False)
9999
cache = mesh._shared_data_cache["hierarchy_coarse_cell_to_fine_node_map"]
100100
try:
101101
return cache[key]
@@ -168,10 +168,14 @@ def has_level(obj):
168168
return hasattr(obj.topological, "__level_info__")
169169

170170

171-
def _cache_key(Vc, Vf):
171+
def _cache_key(Vc, Vf, needs_fine_entity_dofs=True):
172+
"""Construct a cache key for node maps"""
172173
_, levelf = get_level(Vf.mesh())
173174
_, levelc = get_level(Vc.mesh())
174-
return (entity_dofs_key(Vc.finat_element.entity_dofs())
175-
+ entity_dofs_key(Vf.finat_element.entity_dofs())
176-
+ (levelc, levelf)
177-
+ (Vc.boundary_set, Vf.boundary_set))
175+
176+
key = entity_dofs_key(Vc.finat_element.entity_dofs())
177+
if needs_fine_entity_dofs:
178+
key += entity_dofs_key(Vf.finat_element.entity_dofs())
179+
key += (levelc, levelf)
180+
key += (Vc.boundary_set, Vf.boundary_set)
181+
return key

0 commit comments

Comments
 (0)