From ff949389c64108e35ed93c5f08d02e767914dd16 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 17 Nov 2025 17:04:00 +0000 Subject: [PATCH 01/37] Adaptive Multigrid --- firedrake/__init__.py | 2 + firedrake/mg/__init__.py | 10 +- firedrake/mg/adaptive_hierarchy.py | 360 ++++++++++++++++++ firedrake/mg/adaptive_transfer_manager.py | 147 +++++++ .../multigrid/test_adaptive_multigrid.py | 360 ++++++++++++++++++ 5 files changed, 875 insertions(+), 4 deletions(-) create mode 100644 firedrake/mg/adaptive_hierarchy.py create mode 100644 firedrake/mg/adaptive_transfer_manager.py create mode 100644 tests/firedrake/multigrid/test_adaptive_multigrid.py diff --git a/firedrake/__init__.py b/firedrake/__init__.py index 70dec1d6ca..fdc9e9e38c 100644 --- a/firedrake/__init__.py +++ b/firedrake/__init__.py @@ -73,6 +73,8 @@ def init_petsc(): from firedrake.mg.interface import * from firedrake.mg.embedded import * from firedrake.mg.opencascade_mh import * +from firedrake.mg.adaptive_hierarchy import * +from firedrake.mg.adaptive_transfer_manager import * from firedrake.norms import * from firedrake.nullspace import * from firedrake.parameters import * diff --git a/firedrake/mg/__init__.py b/firedrake/mg/__init__.py index f5e043c3d1..6be5fcb7eb 100644 --- a/firedrake/mg/__init__.py +++ b/firedrake/mg/__init__.py @@ -1,4 +1,6 @@ -from .mesh import * # noqa: F401 -from .interface import * # noqa: F401 -from .embedded import * # noqa: F401 -from .opencascade_mh import * # noqa: F401 +from .mesh import * # noqa: F401 +from .interface import * # noqa: F401 +from .embedded import * # noqa: F401 +from .opencascade_mh import * # noqa: F401 +from .adaptive_hierarchy import * # noqa: F401 +from .adaptive_transfer_manager import * # noqa: F401 diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py new file mode 100644 index 0000000000..0749d42b5f --- /dev/null +++ b/firedrake/mg/adaptive_hierarchy.py @@ -0,0 +1,360 @@ +""" +This module contains the class for the AdaptiveMeshHierarchy and +related helper functions +""" + +from fractions import Fraction +from collections import defaultdict +import numpy as np + +from firedrake.cofunction import Cofunction +from firedrake.function import Function +from firedrake.functionspace import FunctionSpace +from firedrake.mesh import Mesh, Submesh, RelabeledMesh +from firedrake.mg import HierarchyBase +from firedrake.mg.utils import set_level, get_level +from ufl import conditional, gt + +__all__ = ["AdaptiveMeshHierarchy"] + + +class AdaptiveMeshHierarchy(HierarchyBase): + """ + HierarchyBase for hierarchies of adaptively refined meshes + """ + + def __init__(self, mesh, refinements_per_level=1, nested=True): + self.meshes = tuple(mesh) + self._meshes = tuple(mesh) + self.submesh_hierarchies = [] + self.coarse_to_fine_cells = {} + self.fine_to_coarse_cells = {} + self.fine_to_coarse_cells[Fraction(0, 1)] = None + self.refinements_per_level = refinements_per_level + self.nested = nested + set_level(mesh[0], self, 0) + self.split_cache = {} + + def add_mesh(self, mesh): + """ + Adds newly refined mesh into hierarchy. + Then computes the coarse_to_fine and fine_to_coarse mappings. + Constructs intermediate submesh hierarchies with this. + """ + if mesh.topological_dimension <= 2: + max_children = 4 + else: + max_children = 16 + self._meshes += tuple(mesh) + self.meshes += tuple(mesh) + coarse_mesh = self.meshes[-2] + level = len(self.meshes) + set_level(self.meshes[-1], self, level - 1) + self._shared_data_cache = defaultdict(dict) + + # extract parent child relationships from netgen meshes + (c2f, f2c) = get_c2f_f2c_fd(mesh, coarse_mesh) + c2f_global_key = Fraction(len(self.meshes) - 2, 1) + f2c_global_key = Fraction(len(self.meshes) - 1, 1) + self.coarse_to_fine_cells[c2f_global_key] = c2f + self.fine_to_coarse_cells[f2c_global_key] = np.array(f2c) + + # split both the fine and coarse meshes into the submeshes + (coarse_splits, fine_splits, num_children) = split_to_submesh( + mesh, coarse_mesh, c2f, f2c + ) + for i in range(1, max_children + 1): + coarse_mesh.mark_entities(coarse_splits[i], i) + mesh.mark_entities(fine_splits[i], int(f"10{i}")) + + coarse_indicators = [ + coarse_splits[i] + for i in range(1, max_children + 1) + ] + coarse_labels = list(range(1, max_children + 1)) + coarse_mesh = RelabeledMesh( + coarse_mesh, + coarse_indicators, + coarse_labels, + name="Relabeled_coarse", + ) + c_subm = { + j: Submesh(coarse_mesh, coarse_mesh.topology_dm.getDimension(), j) + for j in range(1, max_children + 1) + if any(num_children == j) + } + set_level(coarse_mesh, self, level - 2) + + fine_indicators = [ + fine_splits[i] + for i in range(1, max_children + 1) + ] + fine_labels = list(range(1, max_children + 1)) + mesh = RelabeledMesh( + mesh, + fine_indicators, + fine_labels, + ) + f_subm = { + int(str(j)[-2:]): Submesh(mesh, mesh.topology_dm.getDimension(), j) + for j in [int("10" + str(i)) for i in range(1, max_children + 1)] + if any(num_children == int(str(j)[-2:])) + } + set_level(mesh, self, level - 1) + + # update c2f and f2c for submeshes by mapping numberings + # on full mesh to numberings on coarse mesh + parents_per_child_count = [ + len([el for el in c2f if len(el) == j]) + for j in range(1, max_children + 1) + ] # stores number of parents for each amount of children + c2f_adjusted = { + j: np.zeros((num_parents, j)) + for j, num_parents in enumerate(parents_per_child_count, 1) + if num_parents != 0 + } + f2c_adjusted = { + j: np.zeros((num_parents * j, 1)) + for j, num_parents in enumerate(parents_per_child_count, 1) + if num_parents != 0 + } + + coarse_full_to_sub_map = { + i: full_to_sub(coarse_mesh, c_subm[i]) + for i in c_subm + } + fine_full_to_sub_map = { + j: full_to_sub(mesh, f_subm[j]) + for j in f_subm + } + + for i, children in enumerate(c2f): + n = len(children) + if 1 <= n <= max_children: + coarse_id_sub = coarse_full_to_sub_map[n][i] + fine_id_sub = fine_full_to_sub_map[n][np.array(children)] + c2f_adjusted[n][coarse_id_sub] = fine_id_sub + + for j, parent in enumerate(f2c): + n = num_children[parent].item() + if 1 <= n <= max_children: + fine_id_sub = fine_full_to_sub_map[n][j] + coarse_id_sub = coarse_full_to_sub_map[n][parent.item()] + f2c_adjusted[n][fine_id_sub, 0] = coarse_id_sub + + c2f_subm = { + i: {Fraction(0, 1): c2f_adjusted[i].astype(int)} + for i in c2f_adjusted + } + f2c_subm = {i: {Fraction(1, 1): f2c_adjusted[i]} for i in f2c_adjusted} + + hierarchy_dict = { + i: HierarchyBase( + [c_subm[i], f_subm[i]], c2f_subm[i], f2c_subm[i], nested=True + ) + for i in c_subm + } + self.submesh_hierarchies.append(hierarchy_dict) + + def refine(self, refinements): + """ + Refines and adds mesh if input a boolean vector corresponding to cells + """ + ngmesh = self.meshes[-1].netgen_mesh + for i, el in enumerate(ngmesh.Elements2D()): + el.refine = refinements[i] + + ngmesh.Refine(adaptive=True) + mesh = Mesh(ngmesh) + self.add_mesh(mesh) + + def adapt(self, eta, theta): + """ + Implement Dorfler marking, refines mesh from error estimator + """ + mesh = self.meshes[-1] + W = FunctionSpace(mesh, "DG", 0) + markers = Function(W) + + with eta.dat.vec_ro as eta_: + eta_max = eta_.max()[1] + + should_refine = conditional(gt(eta, theta * eta_max), 1, 0) + markers.interpolate(should_refine) + + refined_mesh = mesh.refine_marked_elements(markers) + self.add_mesh(refined_mesh) + return refined_mesh + + def split_function(self, u, child=True): + """ + Split input function across submeshes + """ + V = u.function_space() + full_mesh = V.mesh() + _, level = get_level(full_mesh) + + ind = 1 if child else 0 + hierarchy_dict = self.submesh_hierarchies[int(level) - ind] + parent_mesh = hierarchy_dict[[*hierarchy_dict][0]].meshes[ind].submesh_parent + parent_space = V.reconstruct(parent_mesh) + u_corr_space = Function(parent_space, val=u.dat) + key = (u, child) + try: + split_functions = self.split_cache[key] + except KeyError: + split_functions = self.split_cache.setdefault(key, {}) + + for i in hierarchy_dict: + try: + f = split_functions[i].zero() + except KeyError: + V_split = V.reconstruct(mesh=hierarchy_dict[i].meshes[ind]) + assert ( + V_split.mesh().submesh_parent + == u_corr_space.function_space().mesh() + ) + f = split_functions.setdefault( + i, + Function(V_split, name=str(i)) + ) + + f.assign(u_corr_space) + return split_functions + + def use_weight(self, V, child): + """ + Counts DoFs across submeshes, computes partition of unity + """ + w = Function(V).assign(1) + splits = self.split_function(w, child) + + self.recombine(splits, w, child) + with w.dat.vec as wvec: + wvec.reciprocal() + return w + + def recombine(self, split_funcs, f, child=True): + """ + Recombines functions on submeshes back full mesh + """ + V = f.function_space() + f.zero() + parent_mesh = ( + split_funcs[[*split_funcs][0]].function_space().mesh().submesh_parent + ) + V_label = V.reconstruct(mesh=parent_mesh) + if isinstance(f, Function): + f_label = Function(V_label, val=f.dat) + elif isinstance(f, Cofunction): + f_label = Cofunction(V_label, val=f.dat) + + for split_label, val in split_funcs.items(): + assert val.function_space().mesh().submesh_parent == parent_mesh + if child: + split_label = int("10" + str(split_label)) + if isinstance(f_label, Function): + f_label.assign(val, allow_missing_dofs=True) + else: + curr = Function(f_label.function_space()).assign( + val, allow_missing_dofs=True + ) + f_label.assign(f_label + curr) # partition of unity for restriction + return f + + +def get_c2f_f2c_fd(mesh, coarse_mesh): + """ + Construct coarse->fine and fine->coarse relations by mapping netgen elements to firedrake ones + """ + ngmesh = mesh.netgen_mesh + num_parents = coarse_mesh.num_cells() + + if mesh.topology_dm.getDimension() == 2: + parents = ngmesh.parentsurfaceelements.NumPy() + elements = ngmesh.Elements2D() + elif mesh.topology_dm.getDimension() == 3: + parents = ngmesh.parentelements.NumPy() + elements = ngmesh.Elements3D() + else: + raise RuntimeError("Adaptivity not implemented in dimension of mesh") + + c2f = [[] for _ in range(num_parents)] + f2c = [[] for _ in range(mesh.num_cells())] + + if parents.shape[0] == 0: + raise RuntimeError("Added mesh has not refined any cells from previous mesh") + for l, _ in enumerate(elements): + if parents[l][0] == -1 or l < num_parents: + f2c[mesh._cell_numbering.getOffset(l)].append( + coarse_mesh._cell_numbering.getOffset(l) + ) + c2f[coarse_mesh._cell_numbering.getOffset(l)].append( + mesh._cell_numbering.getOffset(l) + ) + + elif parents[l][0] < num_parents: + fine_ind = mesh._cell_numbering.getOffset(l) + coarse_ind = coarse_mesh._cell_numbering.getOffset(parents[l][0]) + f2c[fine_ind].append(coarse_ind) + c2f[coarse_ind].append(fine_ind) + + else: + a = parents[parents[l][0]][0] + while a >= num_parents: + a = parents[a][0] + + f2c[mesh._cell_numbering.getOffset(l)].append( + coarse_mesh._cell_numbering.getOffset(a) + ) + c2f[coarse_mesh._cell_numbering.getOffset(a)].append( + mesh._cell_numbering.getOffset(l) + ) + + return c2f, np.array(f2c).astype(int) + + +def split_to_submesh(mesh, coarse_mesh, c2f, f2c): + """ + Computes submesh split from full mesh. + Returns splits which are Functions denoting whether elements + belong to the corresponing submesh (bool) + """ + if mesh.topological_dimension <= 2: + max_children = 4 + else: + max_children = 16 + V = FunctionSpace(mesh, "DG", 0) + V2 = FunctionSpace(coarse_mesh, "DG", 0) + coarse_splits = { + i: Function(V2, name=f"{i}_elements") for i in range(1, max_children + 1) + } + fine_splits = { + i: Function(V, name=f"{i}_elements") for i in range(1, max_children + 1) + } + num_children = np.zeros((len(c2f))) + + for i, children in enumerate(c2f): + n = len(children) + if 1 <= n <= max_children: + coarse_splits[n].dat.data[i] = 1 + num_children[i] = n + + for i in range(1, max_children + 1): + fine_splits[i].dat.data[num_children[f2c.squeeze()] == i] = 1 + + return coarse_splits, fine_splits, num_children + + +def full_to_sub(mesh, submesh): + """ + Returns the submesh element id associated with the full mesh element id + """ + V1 = FunctionSpace(mesh, "DG", 0) + V2 = FunctionSpace(submesh, "DG", 0) + u1 = Function(V1) + u2 = Function(V2) + u2.dat.data[:] = np.arange(len(u2.dat.data)) + u1.assign(u2, allow_missing_dofs=True) + + return u1.dat.data.astype(int) diff --git a/firedrake/mg/adaptive_transfer_manager.py b/firedrake/mg/adaptive_transfer_manager.py new file mode 100644 index 0000000000..895794711a --- /dev/null +++ b/firedrake/mg/adaptive_transfer_manager.py @@ -0,0 +1,147 @@ +""" +This module contains the AdaptiveTransferManager used to perform +transfer operations on AdaptiveMeshHierarchies +""" +import numpy as np +from firedrake.function import Function +from firedrake.mg.embedded import TransferManager +from firedrake.mg.utils import get_level + + +__all__ = ("AdaptiveTransferManager",) + + +class AdaptiveTransferManager(TransferManager): + """ + TransferManager for adaptively refined mesh hierarchies + """ + def __init__(self, *, native_transfers=None, use_averaging=True): + super().__init__(native_transfers=native_transfers, use_averaging=use_averaging) + self.tm = TransferManager() + self.weight_cache = {} + self.work_function_cache = {} + self.perm_cache = {} + + def generic_transfer(self, source, target, transfer_op): + """ + Generalized implementation of transfer operations by wrapping + transfer operations from TransferManager() + """ + amh, source_level = get_level(source.function_space().mesh()) + _, target_level = get_level(target.function_space().mesh()) + + # decide order of iteration depending on coarse -> fine or fine -> coarse + order = 1 + if target_level < source_level: + order = -1 + + curr_source = source + if source_level == target_level: + target.assign(source) + return + + for level in range(source_level, target_level, order): + if level + order == target_level: + curr_target = target + else: + target_mesh = amh.meshes[level + order] + curr_space = curr_source.function_space() + target_space = curr_space.reconstruct(mesh=target_mesh) + curr_target = self.get_work_function(target_space) + + if transfer_op == self.tm.restrict: + w = self.get_weight(curr_source.function_space()) + wsource = self.get_work_function(curr_source.function_space()) + with ( + curr_source.dat.vec as svec, + w.dat.vec as wvec, + wsource.dat.vec as wsvec, + ): + wsvec.pointwiseMult(svec, wvec) + curr_source = wsource + + if order == 1: + source_function_splits = amh.split_function(curr_source, child=False) + target_function_splits = amh.split_function(curr_target, child=True) + else: + source_function_splits = amh.split_function(curr_source, child=True) + target_function_splits = amh.split_function(curr_target, child=False) + + for split_label, _ in source_function_splits.items(): + if split_label == 1: + # we don't want to transfer across unsplit parts, + # instead we copy dofs + us_func = source_function_splits[1] + ut_func = target_function_splits[1] + permutations = self.get_perm( + us_func, + ut_func, + transfer_op + ) + ut_func.dat.data_wo[permutations] = us_func.dat.data_ro + else: + transfer_op( + source_function_splits[split_label], + target_function_splits[split_label], + ) + + amh.recombine(target_function_splits, curr_target, child=order + 1) + curr_source = curr_target + + def get_work_function(self, func_space): + """ + Cache for function on function space + """ + try: + return self.work_function_cache[func_space] + except KeyError: + return self.work_function_cache.setdefault(func_space, Function(func_space)) + + def get_weight(self, V_source): + """ + Cache for weights from partition of unity used during restriction + """ + try: + return self.weight_cache[V_source] + except KeyError: + amh, _ = get_level(V_source.mesh()) + return self.weight_cache.setdefault( + V_source, amh.use_weight(V_source, child=True) + ) + + def get_perm(self, unsplit_source, unsplit_target, transfer_op): + """ + Cache permutations of DoFs from unsplit source + to unsplit target. This is used to skip transfer + across unsplit mesh hierarchies + """ + key = (unsplit_source.function_space(), + unsplit_target.function_space()) + try: + return self.perm_cache[key] + except KeyError: + source_nodes = Function(key[0]) + permutation = Function(key[1]) + source_nodes.dat.data[:] = np.arange(len(source_nodes.dat.data)) + transfer_op(source_nodes, permutation) + return self.perm_cache.setdefault( + key, np.rint(permutation.dat.data_ro).astype(int) + ) + + def prolong(self, uc, uf): + """ + Prolongation of AdaptiveMeshHierarchy + """ + self.generic_transfer(uc, uf, transfer_op=self.tm.prolong) + + def inject(self, uf, uc): + """ + Injection of AdaptiveMeshHierarchy + """ + self.generic_transfer(uf, uc, transfer_op=self.tm.inject) + + def restrict(self, source, target): + """ + Restriction of AdaptiveMeshHierarchy + """ + self.generic_transfer(source, target, transfer_op=self.tm.restrict) diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py new file mode 100644 index 0000000000..45e846b2c3 --- /dev/null +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -0,0 +1,360 @@ +""" +Tests for AdaptiveMeshHierarchy +and AdaptiveTransferManager +""" + +import random +import pytest +import numpy as np +from firedrake import * + + +@pytest.fixture(params=[2, 3]) +def amh(request): + """ + Generate AdaptiveMeshHierarchies + """ + from netgen.occ import WorkPlane, OCCGeometry, Box, Pnt + dim = request.param + random.seed(1234) + if dim == 2: + wp = WorkPlane() + wp.Rectangle(2, 2) + face = wp.Face() + geo = OCCGeometry(face, dim=2) + maxh = 0.5 + else: + cube = Box(Pnt(0, 0, 0), Pnt(2, 2, 2)) + geo = OCCGeometry(cube, dim=3) + maxh = 0.5 + + ngmesh = geo.GenerateMesh(maxh=maxh) + base = Mesh(ngmesh) + amh_test = AdaptiveMeshHierarchy(base) + + if dim == 2: + els = ngmesh.Elements2D() + else: + els = ngmesh.Elements3D() + + for _ in range(2): + for _, el in enumerate(els): + el.refine = 0 + if random.random() < 0.5: + el.refine = 1 + ngmesh.Refine(adaptive=True) + mesh = Mesh(ngmesh) + amh_test.add_mesh(mesh) + return amh_test + + +@pytest.fixture +def mh_res(): + """ + Generate MeshHierarchy for reference + """ + from netgen.occ import WorkPlane, OCCGeometry + wp = WorkPlane() + wp.Rectangle(2, 2) + face = wp.Face() + geo = OCCGeometry(face, dim=2) + maxh = 0.5 + ngmesh = geo.GenerateMesh(maxh=maxh) + base = Mesh(ngmesh) + mesh2 = Mesh(ngmesh) + amh_unif = AdaptiveMeshHierarchy([base]) + for _ in range(2): + refs = np.ones(len(ngmesh.Elements2D())) + amh_unif.refine(refs) + mh = MeshHierarchy(mesh2, 2) + + return amh_unif, mh + + +@pytest.fixture +def atm(): + """atm used in tests""" + return AdaptiveTransferManager() + + +@pytest.fixture +def tm(): + """tm used for restrict consistency""" + return TransferManager() + + +@pytest.mark.skipnetgen +@pytest.mark.parametrize("operator", ["prolong", "inject"]) +def test_DG0(amh, atm, operator): # pylint: disable=W0621 + """ + Prolongation & Injection test for DG0 + """ + V_coarse = FunctionSpace(amh[0], "DG", 0) + V_fine = FunctionSpace(amh[-1], "DG", 0) + u_coarse = Function(V_coarse) + u_fine = Function(V_fine) + xc, *_ = SpatialCoordinate(V_coarse.mesh()) + stepc = conditional(ge(xc, 0), 1, 0) + xf, *_ = SpatialCoordinate(V_fine.mesh()) + stepf = conditional(ge(xf, 0), 1, 0) + + if operator == "prolong": + u_coarse.interpolate(stepc) + assert errornorm(stepc, u_coarse) <= 1e-12 + + atm.prolong(u_coarse, u_fine) + assert errornorm(stepf, u_fine) <= 1e-12 + if operator == "inject": + u_fine.interpolate(stepf) + assert errornorm(stepf, u_fine) <= 1e-12 + + atm.inject(u_fine, u_coarse) + assert errornorm(stepc, u_coarse) <= 1e-12 + + +@pytest.mark.skipnetgen +@pytest.mark.parametrize("operator", ["prolong", "inject"]) +def test_CG1(amh, atm, operator): # pylint: disable=W0621 + """ + Prolongation & Injection test for CG1 + """ + V_coarse = FunctionSpace(amh[0], "CG", 1) + V_fine = FunctionSpace(amh[-1], "CG", 1) + u_coarse = Function(V_coarse) + u_fine = Function(V_fine) + xc, *_ = SpatialCoordinate(V_coarse.mesh()) + xf, *_ = SpatialCoordinate(V_fine.mesh()) + + if operator == "prolong": + u_coarse.interpolate(xc) + assert errornorm(xc, u_coarse) <= 1e-12 + + atm.prolong(u_coarse, u_fine) + assert errornorm(xf, u_fine) <= 1e-12 + if operator == "inject": + u_fine.interpolate(xf) + assert errornorm(xf, u_fine) <= 1e-12 + + atm.inject(u_fine, u_coarse) + assert errornorm(xc, u_coarse) <= 1e-12 + + +@pytest.mark.skipnetgen +def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 + """ + Test restriction consistency of amh with uniform refinement vs mh + """ + amh_unif = mh_res[0] + mh = mh_res[1] + + V_coarse = FunctionSpace(amh_unif[0], "DG", 0) + V_fine = FunctionSpace(amh_unif[-1], "DG", 0) + u_coarse = Function(V_coarse) + u_fine = Function(V_fine) + xc, _ = SpatialCoordinate(V_coarse.mesh()) + + u_coarse.interpolate(xc) + atm.prolong(u_coarse, u_fine) + + rf = assemble(TestFunction(V_fine) * dx) + rc = Cofunction(V_coarse.dual()) + atm.restrict(rf, rc) + + # compare with mesh_hierarchy + xcoarse, _ = SpatialCoordinate(mh[0]) + Vcoarse = FunctionSpace(mh[0], "DG", 0) + Vfine = FunctionSpace(mh[-1], "DG", 0) + + mhuc = Function(Vcoarse) + mhuc.interpolate(xcoarse) + mhuf = Function(Vfine) + tm.prolong(mhuc, mhuf) + + mhrf = assemble(TestFunction(Vfine) * dx) + mhrc = Cofunction(Vcoarse.dual()) + + tm.restrict(mhrf, mhrc) + + assert ( + (assemble(action(mhrc, mhuc)) - assemble(action(mhrf, mhuf))) + / assemble(action(mhrf, mhuf)) + ) <= 1e-12 + assert ( + (assemble(action(rc, u_coarse)) - assemble(action(mhrc, mhuc))) + / assemble(action(mhrc, mhuc)) + ) <= 1e-12 + + +@pytest.mark.skipnetgen +def test_restrict_CG1(amh, atm): # pylint: disable=W0621 + """ + Test restriction with CG1 + """ + V_coarse = FunctionSpace(amh[0], "CG", 1) + V_fine = FunctionSpace(amh[-1], "CG", 1) + u_coarse = Function(V_coarse) + u_fine = Function(V_fine) + xc, *_ = SpatialCoordinate(V_coarse.mesh()) + + u_coarse.interpolate(xc) + atm.prolong(u_coarse, u_fine) + + rf = assemble(TestFunction(V_fine) * dx) + rc = Cofunction(V_coarse.dual()) + atm.restrict(rf, rc) + + assert np.allclose( + assemble(action(rc, u_coarse)), + assemble(action(rf, u_fine)), + rtol=1e-12 + ) + + +@pytest.mark.skipnetgen +def test_restrict_DG0(amh, atm): # pylint: disable=W0621 + """ + Test restriction with DG0 + """ + V_coarse = FunctionSpace(amh[0], "DG", 0) + V_fine = FunctionSpace(amh[-1], "DG", 0) + u_coarse = Function(V_coarse) + u_fine = Function(V_fine) + xc, *_ = SpatialCoordinate(V_coarse.mesh()) + + u_coarse.interpolate(xc) + atm.prolong(u_coarse, u_fine) + + rf = assemble(TestFunction(V_fine) * dx) + rc = Cofunction(V_coarse.dual()) + atm.restrict(rf, rc) + + assert np.allclose( + assemble(action(rc, u_coarse)), + assemble(action(rf, u_fine)), + rtol=1e-12 + ) + + +@pytest.mark.skipnetgen +def test_mg_jacobi(amh, atm): # pylint: disable=W0621 + """ + Test multigrid with jacobi smoothers + """ + V_J = FunctionSpace(amh[-1], "CG", 1) + x = SpatialCoordinate(amh[-1]) + u_ex = Function(V_J, name="u_fine_real").interpolate( + sin(2 * pi * x[0]) * sin(2 * pi * x[1]) + ) + u = Function(V_J) + v = TestFunction(V_J) + bc = DirichletBC(V_J, u_ex, "on_boundary") + F = inner(grad(u - u_ex), grad(v)) * dx + + params = { + "snes_type": "ksponly", + "ksp_max_it": 20, + "ksp_type": "cg", + "ksp_norm_type": "unpreconditioned", + "ksp_rtol": 1e-8, + "ksp_atol": 1e-8, + "pc_type": "mg", + "mg_levels_pc_type": "jacobi", + "mg_levels_ksp_type": "chebyshev", + "mg_levels_ksp_max_it": 2, + "mg_coarse_ksp_type": "preonly", + "mg_coarse_pc_type": "lu", + "mg_coarse_pc_factor_mat_solver_type": "mumps", + } + + problem = NonlinearVariationalProblem(F, u, bc) + solver = NonlinearVariationalSolver(problem, solver_parameters=params) + solver.set_transfer_manager(atm) + solver.solve() + assert errornorm(u_ex, u) <= 1e-8 + + +@pytest.mark.skipnetgen +@pytest.mark.parametrize("params", ["jacobi", "asm", "patch"]) +def test_mg_patch(amh, atm, params): # pylint: disable=W0621 + """ + Test multigrid with patch relaxation + """ + if params == "jacobi": + solver_params = { + "mat_type": "matfree", + "ksp_type": "cg", + "pc_type": "mg", + "mg_levels": { + "ksp_type": "chebyshev", + "ksp_max_it": 1, + "pc_type": "jacobi", + }, + "mg_coarse": { + "ksp_type": "preonly", + "pc_type": "python", + "pc_python_type": "firedrake.AssembledPC", + "assembled": {"ksp_type": "preonly", "pc_type": "lu"}, + }, + } + elif params == "patch": + solver_params = { + "mat_type": "matfree", + "ksp_type": "cg", + "pc_type": "mg", + "mg_levels": { + "ksp_type": "chebyshev", + "ksp_max_it": 1, + "pc_type": "python", + "pc_python_type": "firedrake.PatchPC", + "patch": { + "pc_patch": { + "construct_type": "star", + "construct_dim": 0, + "sub_mat_type": "seqdense", + "dense_inverse": True, + "save_operators": True, + "precompute_element_tensors": True, + }, + "sub_ksp_type": "preonly", + "sub_pc_type": "lu", + }, + }, + "mg_coarse": { + "ksp_type": "preonly", + "pc_type": "python", + "pc_python_type": "firedrake.AssembledPC", + "assembled": {"ksp_type": "preonly", "pc_type": "lu"}, + }, + } + else: + solver_params = { + "mat_type": "aij", + "ksp_type": "cg", + "pc_type": "mg", + "mg_levels": { + "ksp_type": "chebyshev", + "ksp_max_it": 1, + "pc_type": "python", + "pc_python_type": "firedrake.ASMStarPC", + "pc_star_backend": "tinyasm", + }, + "mg_coarse": {"ksp_type": "preonly", "pc_type": "lu"}, + } + + V_J = FunctionSpace(amh[-1], "CG", 1) + x = SpatialCoordinate(amh[-1]) + u_ex = Function(V_J, name="u_fine_real").interpolate( + sin(2 * pi * x[0]) * sin(2 * pi * x[1]) + ) + u = Function(V_J) + v = TestFunction(V_J) + bc = DirichletBC(V_J, u_ex, "on_boundary") + F = inner(grad(u - u_ex), grad(v)) * dx + + problem = NonlinearVariationalProblem(F, u, bc) + solver = NonlinearVariationalSolver(problem, + solver_parameters=solver_params) + solver.set_transfer_manager(atm) + + solver.solve() + assert errornorm(u_ex, u) <= 1e-8 From cf0b36e9567b1f46732dad27e23cd06a6a5c5888 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 1 Dec 2025 11:41:47 +0000 Subject: [PATCH 02/37] Fix complex tests --- .../multigrid/test_adaptive_multigrid.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index 45e846b2c3..678a3c0efd 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -7,6 +7,7 @@ import pytest import numpy as np from firedrake import * +from firedrake.utils import complex_mode @pytest.fixture(params=[2, 3]) @@ -107,8 +108,12 @@ def test_DG0(amh, atm, operator): # pylint: disable=W0621 if operator == "inject": u_fine.interpolate(stepf) assert errornorm(stepf, u_fine) <= 1e-12 - - atm.inject(u_fine, u_coarse) + if complex_mode: + with pytest.raises(NotImplementedError): + atm.inject(u_fine, u_coarse) + return + else: + atm.inject(u_fine, u_coarse) assert errornorm(stepc, u_coarse) <= 1e-12 @@ -156,7 +161,7 @@ def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 u_coarse.interpolate(xc) atm.prolong(u_coarse, u_fine) - rf = assemble(TestFunction(V_fine) * dx) + rf = assemble(conj(TestFunction(V_fine)) * dx) rc = Cofunction(V_coarse.dual()) atm.restrict(rf, rc) @@ -170,7 +175,7 @@ def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 mhuf = Function(Vfine) tm.prolong(mhuc, mhuf) - mhrf = assemble(TestFunction(Vfine) * dx) + mhrf = assemble(conj(TestFunction(Vfine)) * dx) mhrc = Cofunction(Vcoarse.dual()) tm.restrict(mhrf, mhrc) @@ -199,7 +204,7 @@ def test_restrict_CG1(amh, atm): # pylint: disable=W0621 u_coarse.interpolate(xc) atm.prolong(u_coarse, u_fine) - rf = assemble(TestFunction(V_fine) * dx) + rf = assemble(conj(TestFunction(V_fine)) * dx) rc = Cofunction(V_coarse.dual()) atm.restrict(rf, rc) @@ -224,7 +229,7 @@ def test_restrict_DG0(amh, atm): # pylint: disable=W0621 u_coarse.interpolate(xc) atm.prolong(u_coarse, u_fine) - rf = assemble(TestFunction(V_fine) * dx) + rf = assemble(conj(TestFunction(V_fine)) * dx) rc = Cofunction(V_coarse.dual()) atm.restrict(rf, rc) From 8312598eac50268f9c58b16ab6752cbf55a6ff0f Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 1 Dec 2025 14:02:45 +0000 Subject: [PATCH 03/37] complex --- tests/firedrake/multigrid/test_adaptive_multigrid.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index 678a3c0efd..cc9d7fee32 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -180,11 +180,11 @@ def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 tm.restrict(mhrf, mhrc) - assert ( + assert abs( (assemble(action(mhrc, mhuc)) - assemble(action(mhrf, mhuf))) / assemble(action(mhrf, mhuf)) ) <= 1e-12 - assert ( + assert abs( (assemble(action(rc, u_coarse)) - assemble(action(mhrc, mhuc))) / assemble(action(mhrc, mhuc)) ) <= 1e-12 From 6b69bf9af527a87bcc7893139d3ce8acfa87cfd5 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 19 Jan 2026 11:03:12 +0000 Subject: [PATCH 04/37] Apply suggestions from code review --- firedrake/mg/adaptive_hierarchy.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index 0749d42b5f..3913544c8a 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -170,12 +170,29 @@ def refine(self, refinements): def adapt(self, eta, theta): """ - Implement Dorfler marking, refines mesh from error estimator + Add the next refinement level to the MeshHierarchy by local refinement + with a simplified variant of Dorfler marking. + + Parameters + ---------- + eta : Function + A DG0 `Function` with the local error estimator. + theta : float + The threshold for marking as a fraction of the maximum error. + + Note + ---- + Dorfler marking involves sorting all of the elements by decreasing + error estimator and taking the minimal set that exceeds some fixed + fraction of the total error. What this code implements is the simpler + variant that doesn't have a proof of convergence (as far as I know) + but works as well in practice. """ mesh = self.meshes[-1] W = FunctionSpace(mesh, "DG", 0) markers = Function(W) + # Take the maximum over all processes with eta.dat.vec_ro as eta_: eta_max = eta_.max()[1] @@ -236,7 +253,7 @@ def use_weight(self, V, child): def recombine(self, split_funcs, f, child=True): """ - Recombines functions on submeshes back full mesh + Recombines functions on submeshes back to the parent mesh """ V = f.function_space() f.zero() From 18de9b87b8eb2512ecd0aa871fc37a74a11a48a6 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 19 Jan 2026 18:24:56 +0000 Subject: [PATCH 05/37] WIP --- firedrake/mg/adaptive_hierarchy.py | 181 +++++++++--------- firedrake/mg/adaptive_transfer_manager.py | 8 +- .../multigrid/test_adaptive_multigrid.py | 35 ++-- 3 files changed, 111 insertions(+), 113 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index 3913544c8a..29b0b33dad 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -13,7 +13,7 @@ from firedrake.mesh import Mesh, Submesh, RelabeledMesh from firedrake.mg import HierarchyBase from firedrake.mg.utils import set_level, get_level -from ufl import conditional, gt +from firedrake.petsc import PETSc __all__ = ["AdaptiveMeshHierarchy"] @@ -22,17 +22,16 @@ class AdaptiveMeshHierarchy(HierarchyBase): """ HierarchyBase for hierarchies of adaptively refined meshes """ - - def __init__(self, mesh, refinements_per_level=1, nested=True): - self.meshes = tuple(mesh) - self._meshes = tuple(mesh) + def __init__(self, base_mesh, refinements_per_level=1, nested=True): + self.meshes = (base_mesh,) + self._meshes = (base_mesh,) self.submesh_hierarchies = [] self.coarse_to_fine_cells = {} self.fine_to_coarse_cells = {} self.fine_to_coarse_cells[Fraction(0, 1)] = None self.refinements_per_level = refinements_per_level self.nested = nested - set_level(mesh[0], self, 0) + set_level(base_mesh, self, 0) self.split_cache = {} def add_mesh(self, mesh): @@ -41,13 +40,10 @@ def add_mesh(self, mesh): Then computes the coarse_to_fine and fine_to_coarse mappings. Constructs intermediate submesh hierarchies with this. """ - if mesh.topological_dimension <= 2: - max_children = 4 - else: - max_children = 16 - self._meshes += tuple(mesh) - self.meshes += tuple(mesh) - coarse_mesh = self.meshes[-2] + max_children = 2 ** mesh.topological_dimension + coarse_mesh = self.meshes[-1] + self._meshes += (mesh,) + self.meshes += (mesh,) level = len(self.meshes) set_level(self.meshes[-1], self, level - 1) self._shared_data_cache = defaultdict(dict) @@ -67,11 +63,14 @@ def add_mesh(self, mesh): coarse_mesh.mark_entities(coarse_splits[i], i) mesh.mark_entities(fine_splits[i], int(f"10{i}")) - coarse_indicators = [ - coarse_splits[i] - for i in range(1, max_children + 1) - ] coarse_labels = list(range(1, max_children + 1)) + coarse_indicators = [coarse_splits[i] for i in coarse_labels] + + has_children = {} + for label in coarse_labels: + with coarse_splits[label].dat.vec as v: + has_children[label] = v.norm() > 1E-12 + coarse_mesh = RelabeledMesh( coarse_mesh, coarse_indicators, @@ -79,35 +78,35 @@ def add_mesh(self, mesh): name="Relabeled_coarse", ) c_subm = { - j: Submesh(coarse_mesh, coarse_mesh.topology_dm.getDimension(), j) + j: Submesh(coarse_mesh, coarse_mesh.topological_dimension, j) for j in range(1, max_children + 1) - if any(num_children == j) + if has_children[j] } set_level(coarse_mesh, self, level - 2) - fine_indicators = [ - fine_splits[i] - for i in range(1, max_children + 1) - ] fine_labels = list(range(1, max_children + 1)) + fine_indicators = [fine_splits[i] for i in fine_labels] mesh = RelabeledMesh( mesh, fine_indicators, fine_labels, + name="Relabeled_fine", ) f_subm = { - int(str(j)[-2:]): Submesh(mesh, mesh.topology_dm.getDimension(), j) + int(str(j)[-2:]): Submesh(mesh, mesh.topological_dimension, j) for j in [int("10" + str(i)) for i in range(1, max_children + 1)] - if any(num_children == int(str(j)[-2:])) + if has_children[int(str(j)[-2:])] } set_level(mesh, self, level - 1) - # update c2f and f2c for submeshes by mapping numberings - # on full mesh to numberings on coarse mesh + # stores number of parents for each amount of children parents_per_child_count = [ len([el for el in c2f if len(el) == j]) for j in range(1, max_children + 1) - ] # stores number of parents for each amount of children + ] + + # update c2f and f2c for submeshes by mapping numberings + # on full mesh to numberings on coarse mesh c2f_adjusted = { j: np.zeros((num_parents, j)) for j, num_parents in enumerate(parents_per_child_count, 1) @@ -120,30 +119,30 @@ def add_mesh(self, mesh): } coarse_full_to_sub_map = { - i: full_to_sub(coarse_mesh, c_subm[i]) + i: get_full_to_sub_numbering(coarse_mesh, c_subm[i]) for i in c_subm } fine_full_to_sub_map = { - j: full_to_sub(mesh, f_subm[j]) + j: get_full_to_sub_numbering(mesh, f_subm[j]) for j in f_subm } for i, children in enumerate(c2f): n = len(children) - if 1 <= n <= max_children: + if n in coarse_full_to_sub_map: coarse_id_sub = coarse_full_to_sub_map[n][i] fine_id_sub = fine_full_to_sub_map[n][np.array(children)] c2f_adjusted[n][coarse_id_sub] = fine_id_sub for j, parent in enumerate(f2c): n = num_children[parent].item() - if 1 <= n <= max_children: - fine_id_sub = fine_full_to_sub_map[n][j] + if n in coarse_full_to_sub_map: coarse_id_sub = coarse_full_to_sub_map[n][parent.item()] + fine_id_sub = fine_full_to_sub_map[n][j] f2c_adjusted[n][fine_id_sub, 0] = coarse_id_sub c2f_subm = { - i: {Fraction(0, 1): c2f_adjusted[i].astype(int)} + i: {Fraction(0, 1): c2f_adjusted[i].astype(PETSc.IntType)} for i in c2f_adjusted } f2c_subm = {i: {Fraction(1, 1): f2c_adjusted[i]} for i in f2c_adjusted} @@ -168,16 +167,16 @@ def refine(self, refinements): mesh = Mesh(ngmesh) self.add_mesh(mesh) - def adapt(self, eta, theta): + def adapt(self, eta: Function | Cofunction, theta: float): """ - Add the next refinement level to the MeshHierarchy by local refinement + Add a refinement level to the hierarchy by local refinement with a simplified variant of Dorfler marking. Parameters ---------- - eta : Function - A DG0 `Function` with the local error estimator. - theta : float + eta + A DG0 :class:`~firedrake.function.Function` with the local error estimator. + theta The threshold for marking as a fraction of the maximum error. Note @@ -185,19 +184,28 @@ def adapt(self, eta, theta): Dorfler marking involves sorting all of the elements by decreasing error estimator and taking the minimal set that exceeds some fixed fraction of the total error. What this code implements is the simpler - variant that doesn't have a proof of convergence (as far as I know) + variant that doesn't have a proof of convergence (as far as I know) but works as well in practice. + """ + if not isinstance(eta, (Function, Cofunction)): + raise TypeError(f"eta must be a Function or Cofunction, not a {type(eta).__name__}") + M = eta.function_space() + if M.finat_element.space_dimension() != 1: + raise ValueError("eta must be a Function or Cofunction in DG0") mesh = self.meshes[-1] - W = FunctionSpace(mesh, "DG", 0) - markers = Function(W) + if M.mesh() is not mesh: + raise ValueError("eta must be defined on the finest mesh of the hierarchy") # Take the maximum over all processes with eta.dat.vec_ro as eta_: eta_max = eta_.max()[1] - should_refine = conditional(gt(eta, theta * eta_max), 1, 0) - markers.interpolate(should_refine) + threshold = theta * eta_max + should_refine = eta.dat.data_ro > threshold + + markers = Function(M) + markers.dat.data_wo[should_refine] = 1 refined_mesh = mesh.refine_marked_elements(markers) self.add_mesh(refined_mesh) @@ -213,7 +221,7 @@ def split_function(self, u, child=True): ind = 1 if child else 0 hierarchy_dict = self.submesh_hierarchies[int(level) - ind] - parent_mesh = hierarchy_dict[[*hierarchy_dict][0]].meshes[ind].submesh_parent + parent_mesh = tuple(hierarchy_dict.values())[0].meshes[ind].submesh_parent parent_space = V.reconstruct(parent_mesh) u_corr_space = Function(parent_space, val=u.dat) key = (u, child) @@ -261,10 +269,7 @@ def recombine(self, split_funcs, f, child=True): split_funcs[[*split_funcs][0]].function_space().mesh().submesh_parent ) V_label = V.reconstruct(mesh=parent_mesh) - if isinstance(f, Function): - f_label = Function(V_label, val=f.dat) - elif isinstance(f, Cofunction): - f_label = Cofunction(V_label, val=f.dat) + f_label = Function(V_label, val=f.dat) for split_label, val in split_funcs.items(): assert val.function_space().mesh().submesh_parent == parent_mesh @@ -280,55 +285,45 @@ def recombine(self, split_funcs, f, child=True): return f -def get_c2f_f2c_fd(mesh, coarse_mesh): +def get_c2f_f2c_fd(fine_mesh, coarse_mesh): """ Construct coarse->fine and fine->coarse relations by mapping netgen elements to firedrake ones """ - ngmesh = mesh.netgen_mesh - num_parents = coarse_mesh.num_cells() - - if mesh.topology_dm.getDimension() == 2: + fine_dm = fine_mesh.topology_dm + tdim = fine_dm.getDimension() + ngmesh = fine_mesh.netgen_mesh + if tdim == 2: parents = ngmesh.parentsurfaceelements.NumPy() - elements = ngmesh.Elements2D() - elif mesh.topology_dm.getDimension() == 3: + elif tdim == 3: parents = ngmesh.parentelements.NumPy() - elements = ngmesh.Elements3D() else: raise RuntimeError("Adaptivity not implemented in dimension of mesh") - c2f = [[] for _ in range(num_parents)] - f2c = [[] for _ in range(mesh.num_cells())] + fstart, fend = fine_mesh.topology_dm.getDepthStratum(tdim) + cstart, cend = coarse_mesh.topology_dm.getDepthStratum(tdim) + total_coarse_cells = FunctionSpace(coarse_mesh, "DG", 0).dim() + + c2f = [[] for _ in range(cstart, cend)] + f2c = [[] for _ in range(fstart, fend)] if parents.shape[0] == 0: raise RuntimeError("Added mesh has not refined any cells from previous mesh") - for l, _ in enumerate(elements): - if parents[l][0] == -1 or l < num_parents: - f2c[mesh._cell_numbering.getOffset(l)].append( - coarse_mesh._cell_numbering.getOffset(l) - ) - c2f[coarse_mesh._cell_numbering.getOffset(l)].append( - mesh._cell_numbering.getOffset(l) - ) - elif parents[l][0] < num_parents: - fine_ind = mesh._cell_numbering.getOffset(l) - coarse_ind = coarse_mesh._cell_numbering.getOffset(parents[l][0]) - f2c[fine_ind].append(coarse_ind) - c2f[coarse_ind].append(fine_ind) + for l in range(fstart, fend): + a = l + while a >= total_coarse_cells: + a = parents[a][0] - else: - a = parents[parents[l][0]][0] - while a >= num_parents: - a = parents[a][0] + fine_ind = fine_mesh._cell_numbering.getOffset(l) + coarse_ind = coarse_mesh._cell_numbering.getOffset(a) - f2c[mesh._cell_numbering.getOffset(l)].append( - coarse_mesh._cell_numbering.getOffset(a) - ) - c2f[coarse_mesh._cell_numbering.getOffset(a)].append( - mesh._cell_numbering.getOffset(l) - ) + fine_ind -= fstart + coarse_ind -= cstart - return c2f, np.array(f2c).astype(int) + f2c[fine_ind].append(coarse_ind) + c2f[coarse_ind].append(fine_ind) + + return c2f, np.array(f2c, dtype=PETSc.IntType) def split_to_submesh(mesh, coarse_mesh, c2f, f2c): @@ -337,10 +332,7 @@ def split_to_submesh(mesh, coarse_mesh, c2f, f2c): Returns splits which are Functions denoting whether elements belong to the corresponing submesh (bool) """ - if mesh.topological_dimension <= 2: - max_children = 4 - else: - max_children = 16 + max_children = 2 ** mesh.topological_dimension V = FunctionSpace(mesh, "DG", 0) V2 = FunctionSpace(coarse_mesh, "DG", 0) coarse_splits = { @@ -349,29 +341,28 @@ def split_to_submesh(mesh, coarse_mesh, c2f, f2c): fine_splits = { i: Function(V, name=f"{i}_elements") for i in range(1, max_children + 1) } - num_children = np.zeros((len(c2f))) - + num_children = np.zeros((len(c2f),)) for i, children in enumerate(c2f): n = len(children) if 1 <= n <= max_children: - coarse_splits[n].dat.data[i] = 1 num_children[i] = n for i in range(1, max_children + 1): - fine_splits[i].dat.data[num_children[f2c.squeeze()] == i] = 1 + coarse_splits[i].dat.data_wo_with_halos[num_children == i] = 1 + fine_splits[i].dat.data_wo_with_halos[num_children[f2c.squeeze()] == i] = 1 return coarse_splits, fine_splits, num_children -def full_to_sub(mesh, submesh): +def get_full_to_sub_numbering(mesh, submesh): """ - Returns the submesh element id associated with the full mesh element id + Returns the submesh cell id associated with the full mesh cell id """ V1 = FunctionSpace(mesh, "DG", 0) V2 = FunctionSpace(submesh, "DG", 0) u1 = Function(V1) u2 = Function(V2) - u2.dat.data[:] = np.arange(len(u2.dat.data)) + u2.dat.data_wo[:] = np.arange(submesh.cell_set.size) u1.assign(u2, allow_missing_dofs=True) - return u1.dat.data.astype(int) + return u1.dat.data_ro_with_halos.astype(PETSc.IntType) diff --git a/firedrake/mg/adaptive_transfer_manager.py b/firedrake/mg/adaptive_transfer_manager.py index 895794711a..5fa0e92f01 100644 --- a/firedrake/mg/adaptive_transfer_manager.py +++ b/firedrake/mg/adaptive_transfer_manager.py @@ -6,6 +6,7 @@ from firedrake.function import Function from firedrake.mg.embedded import TransferManager from firedrake.mg.utils import get_level +from firedrake.petsc import PETSc __all__ = ("AdaptiveTransferManager",) @@ -67,7 +68,7 @@ def generic_transfer(self, source, target, transfer_op): source_function_splits = amh.split_function(curr_source, child=True) target_function_splits = amh.split_function(curr_target, child=False) - for split_label, _ in source_function_splits.items(): + for split_label in source_function_splits: if split_label == 1: # we don't want to transfer across unsplit parts, # instead we copy dofs @@ -122,10 +123,11 @@ def get_perm(self, unsplit_source, unsplit_target, transfer_op): except KeyError: source_nodes = Function(key[0]) permutation = Function(key[1]) - source_nodes.dat.data[:] = np.arange(len(source_nodes.dat.data)) + source_nodes.dat.data_wo[:] = np.arange(len(source_nodes.dat.data_ro)) transfer_op(source_nodes, permutation) + return self.perm_cache.setdefault( - key, np.rint(permutation.dat.data_ro).astype(int) + key, np.rint(permutation.dat.data_ro).astype(PETSc.IntType) ) def prolong(self, uc, uf): diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index cc9d7fee32..b2d88c1216 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -3,7 +3,6 @@ and AdaptiveTransferManager """ -import random import pytest import numpy as np from firedrake import * @@ -17,34 +16,38 @@ def amh(request): """ from netgen.occ import WorkPlane, OCCGeometry, Box, Pnt dim = request.param - random.seed(1234) if dim == 2: wp = WorkPlane() - wp.Rectangle(2, 2) + wp.Rectangle(1, 1) face = wp.Face() geo = OCCGeometry(face, dim=2) maxh = 0.5 else: - cube = Box(Pnt(0, 0, 0), Pnt(2, 2, 2)) + cube = Box(Pnt(0, 0, 0), Pnt(1, 1, 1)) geo = OCCGeometry(cube, dim=3) maxh = 0.5 ngmesh = geo.GenerateMesh(maxh=maxh) - base = Mesh(ngmesh) + base = Mesh(ngmesh, distribution_parameters={"overlap_type": (DistributedMeshOverlapType.VERTEX, 2)}) amh_test = AdaptiveMeshHierarchy(base) - if dim == 2: - els = ngmesh.Elements2D() - else: - els = ngmesh.Elements3D() + rg = RandomGenerator(PCG64(seed=0)) + for l in range(2): + mesh = amh_test[-1] + DG = FunctionSpace(mesh, "DG", 0) + should_refine = rg.uniform(DG, 0, 1).dat.global_data + + ngmesh = mesh.netgen_mesh + if dim == 2: + els = ngmesh.Elements2D() + else: + els = ngmesh.Elements3D() + for i, el in enumerate(els): + el.refine = 1 if should_refine[i] < 0.5 else 0 - for _ in range(2): - for _, el in enumerate(els): - el.refine = 0 - if random.random() < 0.5: - el.refine = 1 ngmesh.Refine(adaptive=True) mesh = Mesh(ngmesh) + amh_test.add_mesh(mesh) return amh_test @@ -63,7 +66,7 @@ def mh_res(): ngmesh = geo.GenerateMesh(maxh=maxh) base = Mesh(ngmesh) mesh2 = Mesh(ngmesh) - amh_unif = AdaptiveMeshHierarchy([base]) + amh_unif = AdaptiveMeshHierarchy(base) for _ in range(2): refs = np.ones(len(ngmesh.Elements2D())) amh_unif.refine(refs) @@ -84,6 +87,7 @@ def tm(): return TransferManager() +@pytest.mark.parallel([1]) @pytest.mark.skipnetgen @pytest.mark.parametrize("operator", ["prolong", "inject"]) def test_DG0(amh, atm, operator): # pylint: disable=W0621 @@ -117,6 +121,7 @@ def test_DG0(amh, atm, operator): # pylint: disable=W0621 assert errornorm(stepc, u_coarse) <= 1e-12 +@pytest.mark.parallel([1]) @pytest.mark.skipnetgen @pytest.mark.parametrize("operator", ["prolong", "inject"]) def test_CG1(amh, atm, operator): # pylint: disable=W0621 From 5c23e5ebf2ec13c6f1ddd75a8051a92c3acae575 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 19 Jan 2026 19:16:33 +0000 Subject: [PATCH 06/37] Remove Submesh --- firedrake/mg/adaptive_hierarchy.py | 272 +----------------- firedrake/mg/adaptive_transfer_manager.py | 205 +++++-------- .../multigrid/test_adaptive_multigrid.py | 15 +- 3 files changed, 87 insertions(+), 405 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index 29b0b33dad..4fc7bee3e2 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -5,15 +5,12 @@ from fractions import Fraction from collections import defaultdict -import numpy as np from firedrake.cofunction import Cofunction from firedrake.function import Function -from firedrake.functionspace import FunctionSpace -from firedrake.mesh import Mesh, Submesh, RelabeledMesh +from firedrake.mesh import Mesh from firedrake.mg import HierarchyBase -from firedrake.mg.utils import set_level, get_level -from firedrake.petsc import PETSc +from firedrake.mg.utils import set_level __all__ = ["AdaptiveMeshHierarchy"] @@ -40,121 +37,12 @@ def add_mesh(self, mesh): Then computes the coarse_to_fine and fine_to_coarse mappings. Constructs intermediate submesh hierarchies with this. """ - max_children = 2 ** mesh.topological_dimension - coarse_mesh = self.meshes[-1] self._meshes += (mesh,) self.meshes += (mesh,) level = len(self.meshes) set_level(self.meshes[-1], self, level - 1) self._shared_data_cache = defaultdict(dict) - # extract parent child relationships from netgen meshes - (c2f, f2c) = get_c2f_f2c_fd(mesh, coarse_mesh) - c2f_global_key = Fraction(len(self.meshes) - 2, 1) - f2c_global_key = Fraction(len(self.meshes) - 1, 1) - self.coarse_to_fine_cells[c2f_global_key] = c2f - self.fine_to_coarse_cells[f2c_global_key] = np.array(f2c) - - # split both the fine and coarse meshes into the submeshes - (coarse_splits, fine_splits, num_children) = split_to_submesh( - mesh, coarse_mesh, c2f, f2c - ) - for i in range(1, max_children + 1): - coarse_mesh.mark_entities(coarse_splits[i], i) - mesh.mark_entities(fine_splits[i], int(f"10{i}")) - - coarse_labels = list(range(1, max_children + 1)) - coarse_indicators = [coarse_splits[i] for i in coarse_labels] - - has_children = {} - for label in coarse_labels: - with coarse_splits[label].dat.vec as v: - has_children[label] = v.norm() > 1E-12 - - coarse_mesh = RelabeledMesh( - coarse_mesh, - coarse_indicators, - coarse_labels, - name="Relabeled_coarse", - ) - c_subm = { - j: Submesh(coarse_mesh, coarse_mesh.topological_dimension, j) - for j in range(1, max_children + 1) - if has_children[j] - } - set_level(coarse_mesh, self, level - 2) - - fine_labels = list(range(1, max_children + 1)) - fine_indicators = [fine_splits[i] for i in fine_labels] - mesh = RelabeledMesh( - mesh, - fine_indicators, - fine_labels, - name="Relabeled_fine", - ) - f_subm = { - int(str(j)[-2:]): Submesh(mesh, mesh.topological_dimension, j) - for j in [int("10" + str(i)) for i in range(1, max_children + 1)] - if has_children[int(str(j)[-2:])] - } - set_level(mesh, self, level - 1) - - # stores number of parents for each amount of children - parents_per_child_count = [ - len([el for el in c2f if len(el) == j]) - for j in range(1, max_children + 1) - ] - - # update c2f and f2c for submeshes by mapping numberings - # on full mesh to numberings on coarse mesh - c2f_adjusted = { - j: np.zeros((num_parents, j)) - for j, num_parents in enumerate(parents_per_child_count, 1) - if num_parents != 0 - } - f2c_adjusted = { - j: np.zeros((num_parents * j, 1)) - for j, num_parents in enumerate(parents_per_child_count, 1) - if num_parents != 0 - } - - coarse_full_to_sub_map = { - i: get_full_to_sub_numbering(coarse_mesh, c_subm[i]) - for i in c_subm - } - fine_full_to_sub_map = { - j: get_full_to_sub_numbering(mesh, f_subm[j]) - for j in f_subm - } - - for i, children in enumerate(c2f): - n = len(children) - if n in coarse_full_to_sub_map: - coarse_id_sub = coarse_full_to_sub_map[n][i] - fine_id_sub = fine_full_to_sub_map[n][np.array(children)] - c2f_adjusted[n][coarse_id_sub] = fine_id_sub - - for j, parent in enumerate(f2c): - n = num_children[parent].item() - if n in coarse_full_to_sub_map: - coarse_id_sub = coarse_full_to_sub_map[n][parent.item()] - fine_id_sub = fine_full_to_sub_map[n][j] - f2c_adjusted[n][fine_id_sub, 0] = coarse_id_sub - - c2f_subm = { - i: {Fraction(0, 1): c2f_adjusted[i].astype(PETSc.IntType)} - for i in c2f_adjusted - } - f2c_subm = {i: {Fraction(1, 1): f2c_adjusted[i]} for i in f2c_adjusted} - - hierarchy_dict = { - i: HierarchyBase( - [c_subm[i], f_subm[i]], c2f_subm[i], f2c_subm[i], nested=True - ) - for i in c_subm - } - self.submesh_hierarchies.append(hierarchy_dict) - def refine(self, refinements): """ Refines and adds mesh if input a boolean vector corresponding to cells @@ -210,159 +98,3 @@ def adapt(self, eta: Function | Cofunction, theta: float): refined_mesh = mesh.refine_marked_elements(markers) self.add_mesh(refined_mesh) return refined_mesh - - def split_function(self, u, child=True): - """ - Split input function across submeshes - """ - V = u.function_space() - full_mesh = V.mesh() - _, level = get_level(full_mesh) - - ind = 1 if child else 0 - hierarchy_dict = self.submesh_hierarchies[int(level) - ind] - parent_mesh = tuple(hierarchy_dict.values())[0].meshes[ind].submesh_parent - parent_space = V.reconstruct(parent_mesh) - u_corr_space = Function(parent_space, val=u.dat) - key = (u, child) - try: - split_functions = self.split_cache[key] - except KeyError: - split_functions = self.split_cache.setdefault(key, {}) - - for i in hierarchy_dict: - try: - f = split_functions[i].zero() - except KeyError: - V_split = V.reconstruct(mesh=hierarchy_dict[i].meshes[ind]) - assert ( - V_split.mesh().submesh_parent - == u_corr_space.function_space().mesh() - ) - f = split_functions.setdefault( - i, - Function(V_split, name=str(i)) - ) - - f.assign(u_corr_space) - return split_functions - - def use_weight(self, V, child): - """ - Counts DoFs across submeshes, computes partition of unity - """ - w = Function(V).assign(1) - splits = self.split_function(w, child) - - self.recombine(splits, w, child) - with w.dat.vec as wvec: - wvec.reciprocal() - return w - - def recombine(self, split_funcs, f, child=True): - """ - Recombines functions on submeshes back to the parent mesh - """ - V = f.function_space() - f.zero() - parent_mesh = ( - split_funcs[[*split_funcs][0]].function_space().mesh().submesh_parent - ) - V_label = V.reconstruct(mesh=parent_mesh) - f_label = Function(V_label, val=f.dat) - - for split_label, val in split_funcs.items(): - assert val.function_space().mesh().submesh_parent == parent_mesh - if child: - split_label = int("10" + str(split_label)) - if isinstance(f_label, Function): - f_label.assign(val, allow_missing_dofs=True) - else: - curr = Function(f_label.function_space()).assign( - val, allow_missing_dofs=True - ) - f_label.assign(f_label + curr) # partition of unity for restriction - return f - - -def get_c2f_f2c_fd(fine_mesh, coarse_mesh): - """ - Construct coarse->fine and fine->coarse relations by mapping netgen elements to firedrake ones - """ - fine_dm = fine_mesh.topology_dm - tdim = fine_dm.getDimension() - ngmesh = fine_mesh.netgen_mesh - if tdim == 2: - parents = ngmesh.parentsurfaceelements.NumPy() - elif tdim == 3: - parents = ngmesh.parentelements.NumPy() - else: - raise RuntimeError("Adaptivity not implemented in dimension of mesh") - - fstart, fend = fine_mesh.topology_dm.getDepthStratum(tdim) - cstart, cend = coarse_mesh.topology_dm.getDepthStratum(tdim) - total_coarse_cells = FunctionSpace(coarse_mesh, "DG", 0).dim() - - c2f = [[] for _ in range(cstart, cend)] - f2c = [[] for _ in range(fstart, fend)] - - if parents.shape[0] == 0: - raise RuntimeError("Added mesh has not refined any cells from previous mesh") - - for l in range(fstart, fend): - a = l - while a >= total_coarse_cells: - a = parents[a][0] - - fine_ind = fine_mesh._cell_numbering.getOffset(l) - coarse_ind = coarse_mesh._cell_numbering.getOffset(a) - - fine_ind -= fstart - coarse_ind -= cstart - - f2c[fine_ind].append(coarse_ind) - c2f[coarse_ind].append(fine_ind) - - return c2f, np.array(f2c, dtype=PETSc.IntType) - - -def split_to_submesh(mesh, coarse_mesh, c2f, f2c): - """ - Computes submesh split from full mesh. - Returns splits which are Functions denoting whether elements - belong to the corresponing submesh (bool) - """ - max_children = 2 ** mesh.topological_dimension - V = FunctionSpace(mesh, "DG", 0) - V2 = FunctionSpace(coarse_mesh, "DG", 0) - coarse_splits = { - i: Function(V2, name=f"{i}_elements") for i in range(1, max_children + 1) - } - fine_splits = { - i: Function(V, name=f"{i}_elements") for i in range(1, max_children + 1) - } - num_children = np.zeros((len(c2f),)) - for i, children in enumerate(c2f): - n = len(children) - if 1 <= n <= max_children: - num_children[i] = n - - for i in range(1, max_children + 1): - coarse_splits[i].dat.data_wo_with_halos[num_children == i] = 1 - fine_splits[i].dat.data_wo_with_halos[num_children[f2c.squeeze()] == i] = 1 - - return coarse_splits, fine_splits, num_children - - -def get_full_to_sub_numbering(mesh, submesh): - """ - Returns the submesh cell id associated with the full mesh cell id - """ - V1 = FunctionSpace(mesh, "DG", 0) - V2 = FunctionSpace(submesh, "DG", 0) - u1 = Function(V1) - u2 = Function(V2) - u2.dat.data_wo[:] = np.arange(submesh.cell_set.size) - u1.assign(u2, allow_missing_dofs=True) - - return u1.dat.data_ro_with_halos.astype(PETSc.IntType) diff --git a/firedrake/mg/adaptive_transfer_manager.py b/firedrake/mg/adaptive_transfer_manager.py index 5fa0e92f01..d6ce290f5a 100644 --- a/firedrake/mg/adaptive_transfer_manager.py +++ b/firedrake/mg/adaptive_transfer_manager.py @@ -2,11 +2,15 @@ This module contains the AdaptiveTransferManager used to perform transfer operations on AdaptiveMeshHierarchies """ -import numpy as np -from firedrake.function import Function from firedrake.mg.embedded import TransferManager -from firedrake.mg.utils import get_level -from firedrake.petsc import PETSc +from firedrake.ufl_expr import action, TrialFunction +from firedrake.functionspace import FunctionSpace, TensorFunctionSpace +from firedrake.interpolation import interpolate +from firedrake.preconditioners.bddc import is_lagrange +from finat.quadrature import QuadratureRule +from functools import partial + +import numpy __all__ = ("AdaptiveTransferManager",) @@ -18,132 +22,73 @@ class AdaptiveTransferManager(TransferManager): """ def __init__(self, *, native_transfers=None, use_averaging=True): super().__init__(native_transfers=native_transfers, use_averaging=use_averaging) - self.tm = TransferManager() - self.weight_cache = {} - self.work_function_cache = {} - self.perm_cache = {} - - def generic_transfer(self, source, target, transfer_op): - """ - Generalized implementation of transfer operations by wrapping - transfer operations from TransferManager() - """ - amh, source_level = get_level(source.function_space().mesh()) - _, target_level = get_level(target.function_space().mesh()) - - # decide order of iteration depending on coarse -> fine or fine -> coarse - order = 1 - if target_level < source_level: - order = -1 - - curr_source = source - if source_level == target_level: - target.assign(source) - return - - for level in range(source_level, target_level, order): - if level + order == target_level: - curr_target = target - else: - target_mesh = amh.meshes[level + order] - curr_space = curr_source.function_space() - target_space = curr_space.reconstruct(mesh=target_mesh) - curr_target = self.get_work_function(target_space) - - if transfer_op == self.tm.restrict: - w = self.get_weight(curr_source.function_space()) - wsource = self.get_work_function(curr_source.function_space()) - with ( - curr_source.dat.vec as svec, - w.dat.vec as wvec, - wsource.dat.vec as wsvec, - ): - wsvec.pointwiseMult(svec, wvec) - curr_source = wsource - - if order == 1: - source_function_splits = amh.split_function(curr_source, child=False) - target_function_splits = amh.split_function(curr_target, child=True) - else: - source_function_splits = amh.split_function(curr_source, child=True) - target_function_splits = amh.split_function(curr_target, child=False) - - for split_label in source_function_splits: - if split_label == 1: - # we don't want to transfer across unsplit parts, - # instead we copy dofs - us_func = source_function_splits[1] - ut_func = target_function_splits[1] - permutations = self.get_perm( - us_func, - ut_func, - transfer_op - ) - ut_func.dat.data_wo[permutations] = us_func.dat.data_ro - else: - transfer_op( - source_function_splits[split_label], - target_function_splits[split_label], - ) - - amh.recombine(target_function_splits, curr_target, child=order + 1) - curr_source = curr_target - - def get_work_function(self, func_space): - """ - Cache for function on function space - """ - try: - return self.work_function_cache[func_space] - except KeyError: - return self.work_function_cache.setdefault(func_space, Function(func_space)) + self.cache = {} - def get_weight(self, V_source): - """ - Cache for weights from partition of unity used during restriction - """ - try: - return self.weight_cache[V_source] - except KeyError: - amh, _ = get_level(V_source.mesh()) - return self.weight_cache.setdefault( - V_source, amh.use_weight(V_source, child=True) - ) - - def get_perm(self, unsplit_source, unsplit_target, transfer_op): - """ - Cache permutations of DoFs from unsplit source - to unsplit target. This is used to skip transfer - across unsplit mesh hierarchies - """ - key = (unsplit_source.function_space(), - unsplit_target.function_space()) + def get_operators(self, Vc, Vf): + key = (Vc, Vf) try: - return self.perm_cache[key] + return self.cache[key] except KeyError: - source_nodes = Function(key[0]) - permutation = Function(key[1]) - source_nodes.dat.data_wo[:] = np.arange(len(source_nodes.dat.data_ro)) - transfer_op(source_nodes, permutation) - - return self.perm_cache.setdefault( - key, np.rint(permutation.dat.data_ro).astype(PETSc.IntType) - ) - - def prolong(self, uc, uf): - """ - Prolongation of AdaptiveMeshHierarchy - """ - self.generic_transfer(uc, uf, transfer_op=self.tm.prolong) - - def inject(self, uf, uc): - """ - Injection of AdaptiveMeshHierarchy - """ - self.generic_transfer(uf, uc, transfer_op=self.tm.inject) - - def restrict(self, source, target): - """ - Restriction of AdaptiveMeshHierarchy - """ - self.generic_transfer(source, target, transfer_op=self.tm.restrict) + ops = get_mg_interpolator(Vc, Vf) + return self.cache.setdefault(key, ops) + + def forward(self, uc, uf): + from firedrake.assemble import assemble + Vc = uc.function_space() + Vf = uf.function_space() + ops = self.get_operators(Vc, Vf) + + expr = uc + for op in ops: + expr = action(op, expr) + return assemble(expr, tensor=uf) + + def adjoint(self, uf, uc): + from firedrake.assemble import assemble + Vc = uc.function_space().dual() + Vf = uf.function_space().dual() + ops = self.get_operators(Vc, Vf) + + expr = uf + for op in reversed(ops): + expr = action(expr, op) + return assemble(expr, tensor=uc) + + def prolong(self, uf, uc): + return self.forward(uf, uc) + + def inject(self, uc, uf): + return self.forward(uc, uf) + + def restrict(self, uc, uf): + return self.adjoint(uc, uf) + + +def make_quadrature_space(V): + fe = V.finat_element + _, ps = fe.dual_basis + wts = numpy.full(len(ps.points), numpy.nan) + scheme = QuadratureRule(ps, wts, ref_el=fe.cell) + if V.value_shape == (): + make_space = FunctionSpace + else: + make_space = partial(TensorFunctionSpace, shape=V.value_shape) + return make_space(V.mesh(), "Quadrature", degree=fe.degree, quad_scheme=scheme) + + +def get_mg_interpolator(V1, V2): + from firedrake.assemble import assemble + if is_lagrange(V2.finat_element): + spaces = (V1, V2) + else: + Q2 = make_quadrature_space(V2) + spaces = (V1, Q2, V2) + + ops = [] + for i in range(len(spaces)-1): + Vsrc = spaces[i] + Vdest = spaces[i+1] + Iexpr = interpolate(TrialFunction(Vsrc), Vdest) + op = assemble(Iexpr, mat_type="aij") + ops.append(op) + return ops diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index b2d88c1216..1eb966e555 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -27,8 +27,9 @@ def amh(request): geo = OCCGeometry(cube, dim=3) maxh = 0.5 + dparams = {"overlap_type": (DistributedMeshOverlapType.VERTEX, 1)} ngmesh = geo.GenerateMesh(maxh=maxh) - base = Mesh(ngmesh, distribution_parameters={"overlap_type": (DistributedMeshOverlapType.VERTEX, 2)}) + base = Mesh(ngmesh, distribution_parameters=dparams) amh_test = AdaptiveMeshHierarchy(base) rg = RandomGenerator(PCG64(seed=0)) @@ -46,8 +47,7 @@ def amh(request): el.refine = 1 if should_refine[i] < 0.5 else 0 ngmesh.Refine(adaptive=True) - mesh = Mesh(ngmesh) - + mesh = Mesh(ngmesh, distribution_parameters=dparams) amh_test.add_mesh(mesh) return amh_test @@ -87,7 +87,7 @@ def tm(): return TransferManager() -@pytest.mark.parallel([1]) +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen @pytest.mark.parametrize("operator", ["prolong", "inject"]) def test_DG0(amh, atm, operator): # pylint: disable=W0621 @@ -121,7 +121,7 @@ def test_DG0(amh, atm, operator): # pylint: disable=W0621 assert errornorm(stepc, u_coarse) <= 1e-12 -@pytest.mark.parallel([1]) +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen @pytest.mark.parametrize("operator", ["prolong", "inject"]) def test_CG1(amh, atm, operator): # pylint: disable=W0621 @@ -149,6 +149,7 @@ def test_CG1(amh, atm, operator): # pylint: disable=W0621 assert errornorm(xc, u_coarse) <= 1e-12 +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 """ @@ -195,6 +196,7 @@ def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 ) <= 1e-12 +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen def test_restrict_CG1(amh, atm): # pylint: disable=W0621 """ @@ -220,6 +222,7 @@ def test_restrict_CG1(amh, atm): # pylint: disable=W0621 ) +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen def test_restrict_DG0(amh, atm): # pylint: disable=W0621 """ @@ -245,6 +248,7 @@ def test_restrict_DG0(amh, atm): # pylint: disable=W0621 ) +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen def test_mg_jacobi(amh, atm): # pylint: disable=W0621 """ @@ -283,6 +287,7 @@ def test_mg_jacobi(amh, atm): # pylint: disable=W0621 assert errornorm(u_ex, u) <= 1e-8 +@pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen @pytest.mark.parametrize("params", ["jacobi", "asm", "patch"]) def test_mg_patch(amh, atm, params): # pylint: disable=W0621 From 433a4b0935d7d93140ce3370c948847c8ceb9f68 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 19 Jan 2026 22:58:12 +0000 Subject: [PATCH 07/37] Fix tests --- tests/firedrake/multigrid/test_adaptive_multigrid.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index 1eb966e555..4e3c151f4f 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -6,7 +6,6 @@ import pytest import numpy as np from firedrake import * -from firedrake.utils import complex_mode @pytest.fixture(params=[2, 3]) @@ -112,12 +111,8 @@ def test_DG0(amh, atm, operator): # pylint: disable=W0621 if operator == "inject": u_fine.interpolate(stepf) assert errornorm(stepf, u_fine) <= 1e-12 - if complex_mode: - with pytest.raises(NotImplementedError): - atm.inject(u_fine, u_coarse) - return - else: - atm.inject(u_fine, u_coarse) + + atm.inject(u_fine, u_coarse) assert errornorm(stepc, u_coarse) <= 1e-12 From 706e303d05eb6febd89090f52c41f0c8bb6d7c26 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Tue, 20 Jan 2026 15:18:59 +0000 Subject: [PATCH 08/37] Apply suggestions from code review --- firedrake/mg/adaptive_hierarchy.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index 4fc7bee3e2..0489291a2b 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -34,8 +34,6 @@ def __init__(self, base_mesh, refinements_per_level=1, nested=True): def add_mesh(self, mesh): """ Adds newly refined mesh into hierarchy. - Then computes the coarse_to_fine and fine_to_coarse mappings. - Constructs intermediate submesh hierarchies with this. """ self._meshes += (mesh,) self.meshes += (mesh,) @@ -43,18 +41,6 @@ def add_mesh(self, mesh): set_level(self.meshes[-1], self, level - 1) self._shared_data_cache = defaultdict(dict) - def refine(self, refinements): - """ - Refines and adds mesh if input a boolean vector corresponding to cells - """ - ngmesh = self.meshes[-1].netgen_mesh - for i, el in enumerate(ngmesh.Elements2D()): - el.refine = refinements[i] - - ngmesh.Refine(adaptive=True) - mesh = Mesh(ngmesh) - self.add_mesh(mesh) - def adapt(self, eta: Function | Cofunction, theta: float): """ Add a refinement level to the hierarchy by local refinement From 8dd0e66c6c9390e0c86975c6a7f188dc555520cc Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Tue, 20 Jan 2026 16:48:52 +0000 Subject: [PATCH 09/37] fixup --- firedrake/mg/adaptive_hierarchy.py | 1 - .../multigrid/test_adaptive_multigrid.py | 31 +++++++++++-------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index 0489291a2b..d1dcceefe1 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -8,7 +8,6 @@ from firedrake.cofunction import Cofunction from firedrake.function import Function -from firedrake.mesh import Mesh from firedrake.mg import HierarchyBase from firedrake.mg.utils import set_level diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index 4e3c151f4f..de9197f974 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -26,8 +26,9 @@ def amh(request): geo = OCCGeometry(cube, dim=3) maxh = 0.5 - dparams = {"overlap_type": (DistributedMeshOverlapType.VERTEX, 1)} ngmesh = geo.GenerateMesh(maxh=maxh) + + dparams = {"overlap_type": (DistributedMeshOverlapType.VERTEX, 1)} base = Mesh(ngmesh, distribution_parameters=dparams) amh_test = AdaptiveMeshHierarchy(base) @@ -52,7 +53,7 @@ def amh(request): @pytest.fixture -def mh_res(): +def mh_uniform(): """ Generate MeshHierarchy for reference """ @@ -63,15 +64,20 @@ def mh_res(): geo = OCCGeometry(face, dim=2) maxh = 0.5 ngmesh = geo.GenerateMesh(maxh=maxh) - base = Mesh(ngmesh) - mesh2 = Mesh(ngmesh) - amh_unif = AdaptiveMeshHierarchy(base) - for _ in range(2): - refs = np.ones(len(ngmesh.Elements2D())) - amh_unif.refine(refs) - mh = MeshHierarchy(mesh2, 2) - return amh_unif, mh + dparams = {"overlap_type": (DistributedMeshOverlapType.VERTEX, 1)} + base1 = Mesh(ngmesh, distribution_parameters=dparams) + mh = MeshHierarchy(base1, 2) + + base2 = Mesh(ngmesh, distribution_parameters=dparams) + amh = AdaptiveMeshHierarchy(base2) + for _ in range(2): + mesh = amh[-1] + ngmesh = mesh.netgen_mesh + ngmesh.Refine() + mesh = Mesh(ngmesh, distribution_parameters=dparams) + amh.add_mesh(mesh) + return amh, mh @pytest.fixture @@ -146,12 +152,11 @@ def test_CG1(amh, atm, operator): # pylint: disable=W0621 @pytest.mark.parallel([1, 2]) @pytest.mark.skipnetgen -def test_restrict_consistency(mh_res, atm, tm): # pylint: disable=W0621 +def test_restrict_consistency(mh_uniform, atm, tm): # pylint: disable=W0621 """ Test restriction consistency of amh with uniform refinement vs mh """ - amh_unif = mh_res[0] - mh = mh_res[1] + amh_unif, mh = mh_uniform V_coarse = FunctionSpace(amh_unif[0], "DG", 0) V_fine = FunctionSpace(amh_unif[-1], "DG", 0) From c40a36b313ce7e5c9909bf7c1ae0859aa008e847 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 26 Jan 2026 09:55:11 +0000 Subject: [PATCH 10/37] Apply suggestions from code review --- firedrake/mg/adaptive_hierarchy.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index d1dcceefe1..e307d24ad9 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -3,7 +3,6 @@ related helper functions """ -from fractions import Fraction from collections import defaultdict from firedrake.cofunction import Cofunction @@ -19,23 +18,18 @@ class AdaptiveMeshHierarchy(HierarchyBase): HierarchyBase for hierarchies of adaptively refined meshes """ def __init__(self, base_mesh, refinements_per_level=1, nested=True): - self.meshes = (base_mesh,) - self._meshes = (base_mesh,) - self.submesh_hierarchies = [] - self.coarse_to_fine_cells = {} - self.fine_to_coarse_cells = {} - self.fine_to_coarse_cells[Fraction(0, 1)] = None + self.meshes = [] + self._meshes = [] self.refinements_per_level = refinements_per_level self.nested = nested - set_level(base_mesh, self, 0) - self.split_cache = {} + self.add_mesh(base_mesh) def add_mesh(self, mesh): """ Adds newly refined mesh into hierarchy. """ - self._meshes += (mesh,) - self.meshes += (mesh,) + self._meshes.append(mesh) + self.meshes.append(mesh) level = len(self.meshes) set_level(self.meshes[-1], self, level - 1) self._shared_data_cache = defaultdict(dict) From 76c2d59f005fb9960a49e86b0522ed292eb5d124 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Fri, 19 Dec 2025 16:35:20 +0000 Subject: [PATCH 11/37] enable tests --- .../regression/test_interpolate_cross_mesh.py | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 32179172f7..303e95182c 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -47,14 +47,7 @@ def make_high_order(m_low_order, degree): "unitsquare_vfs", "unitsquare_tfs", "unitsquare_N1curl_source", - pytest.param( - "unitsquare_SminusDiv_destination", - marks=pytest.mark.xfail( - # CalledProcessError is so the parallel tests correctly xfail - raises=(subprocess.CalledProcessError, NotImplementedError), - reason="Can only interpolate into spaces with point evaluation nodes", - ), - ), + "unitsquare_SminusDiv_destination", "unitsquare_Regge_source", # This test fails in complex mode pytest.param("spheresphere", marks=pytest.mark.skipcomplex), @@ -436,10 +429,9 @@ def test_interpolate_cross_mesh_not_point_eval(): atol = 1e-8 # default # This might not make much mathematical sense, but it should test if we get # the not implemented error for non-point evaluation nodes! - with pytest.raises(NotImplementedError): - interpolate_function( - m_src, m_dest, V_src, V_dest, dest_eval, expected, expr_src, expr_dest, atol - ) + interpolate_function( + m_src, m_dest, V_src, V_dest, dest_eval, expected, expr_src, expr_dest, atol + ) def interpolate_function( From 67a5a0cb44688bf63de6265605429f677413dd0b Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Sun, 21 Dec 2025 18:30:05 +0000 Subject: [PATCH 12/37] remove check --- firedrake/interpolation.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 3159e7221c..aa5043670c 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -424,17 +424,6 @@ def __init__(self, expr: Interpolate): else: self.access = op2.WRITE - # TODO check V.finat_element.is_lagrange() once https://github.com/firedrakeproject/fiat/pull/200 is released - target_element = self.target_space.ufl_element() - if not ((isinstance(target_element, MixedElement) - and all(sub.mapping() == "identity" for sub in target_element.sub_elements)) - or target_element.mapping() == "identity"): - # Identity mapping between reference cell and physical coordinates - # implies point evaluation nodes. - raise NotImplementedError( - "Can only cross-mesh interpolate into spaces with point evaluation nodes." - ) - if self.allow_missing_dofs: self.missing_points_behaviour = MissingPointsBehaviour.IGNORE else: From e637d6f28f5ffb3f0211c0ae602b7ec48ecb21a1 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Sun, 21 Dec 2025 19:27:35 +0000 Subject: [PATCH 13/37] add test --- .../test_cross_mesh_non_lagrange.py | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tests/firedrake/regression/test_cross_mesh_non_lagrange.py diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py new file mode 100644 index 0000000000..2540930274 --- /dev/null +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -0,0 +1,78 @@ +from firedrake import * +import pytest +import numpy as np +from finat.quadrature import QuadratureRule + +def make_quadrature_space(V): + """Builds a quadrature space on the target mesh. + + This space has point evaluation dofs at the quadrature PointSet + of the target space's element + + """ + fe = V.finat_element + _, ps = fe.dual_basis + wts = np.full(len(ps.points), np.nan) # These can be any number since we never integrate + scheme = QuadratureRule(ps, wts, ref_el=fe.cell) + element = FiniteElement("Quadrature", degree=fe.degree, quad_scheme=scheme) + return VectorFunctionSpace(V.mesh(), element) + + +@pytest.fixture +def mesh1(): + return UnitSquareMesh(5, 5) + +@pytest.fixture +def mesh2(): + return UnitSquareMesh(3, 3) + +@pytest.mark.parametrize("element,degree", [("RT", 1), ("RT", 2), ("RT", 3), + ("BDM", 1), ("BDM", 2), ("BDM", 3), + ("BDFM", 2)]) +def test_hdiv_cross_mesh_oneform(mesh1, mesh2, element, degree): + V_source = VectorFunctionSpace(mesh1, "CG", 2) + V_target = FunctionSpace(mesh2, element, degree) + + x, y = SpatialCoordinate(mesh1) + f_source = Function(V_source).interpolate(as_vector([x, y])) + + # Make intermediate Quadrature space on target mesh + Q_target = make_quadrature_space(V_target) + + # Interp V_source -> Q + I1 = interpolate(f_source, Q_target) + f_quadrature = assemble(I1) + + # Interp Q -> V_target + I2 = interpolate(f_quadrature, V_target) + f_target = assemble(I2) + + x1, y1 = SpatialCoordinate(mesh2) + f_direct = Function(V_target).interpolate(as_vector([x1, y1])) + + assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) + +@pytest.mark.parametrize("element,degree", [("N1curl", 1), ("N1curl", 2), ("N1curl", 3), + ("N2curl", 1), ("N2curl", 2), ("N2curl", 3),]) +def test_hcurl_cross_mesh_oneform(mesh1, mesh2, element, degree): + V_source = VectorFunctionSpace(mesh1, "CG", 2) + V_target = FunctionSpace(mesh2, element, degree) + + x, y = SpatialCoordinate(mesh1) + f_source = Function(V_source).interpolate(as_vector([x, y])) + + # Make intermediate Quadrature space on target mesh + Q_target = make_quadrature_space(V_target) + + # Interp V_source -> Q + I1 = interpolate(f_source, Q_target) + f_quadrature = assemble(I1) + + # Interp Q -> V_target + I2 = interpolate(f_quadrature, V_target) + f_target = assemble(I2) + + x1, y1 = SpatialCoordinate(mesh2) + f_direct = Function(V_target).interpolate(as_vector([x1, y1])) + + assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) From 4d23dc28c4f4aa06c35958bf8f96389d659811a8 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 22 Dec 2025 17:13:55 +0000 Subject: [PATCH 14/37] update test --- .../test_cross_mesh_non_lagrange.py | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 2540930274..6c88cf57f9 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -2,6 +2,18 @@ import pytest import numpy as np from finat.quadrature import QuadratureRule +from functools import partial + + +def fs_shape(V): + shape = V.ufl_function_space().value_shape + if len(shape) == 1: + fs_type = partial(VectorFunctionSpace, dim=shape[0]) + elif len(shape) == 2: + fs_type = partial(TensorFunctionSpace, shape=shape) + else: + raise ValueError("Invalid function space shape") + return fs_type def make_quadrature_space(V): """Builds a quadrature space on the target mesh. @@ -15,51 +27,40 @@ def make_quadrature_space(V): wts = np.full(len(ps.points), np.nan) # These can be any number since we never integrate scheme = QuadratureRule(ps, wts, ref_el=fe.cell) element = FiniteElement("Quadrature", degree=fe.degree, quad_scheme=scheme) - return VectorFunctionSpace(V.mesh(), element) - + return fs_shape(V)(V.mesh(), element) -@pytest.fixture -def mesh1(): - return UnitSquareMesh(5, 5) -@pytest.fixture -def mesh2(): - return UnitSquareMesh(3, 3) +@pytest.fixture(params=[("RT", 1), ("RT", 2), ("RT", 3), ("BDM", 1), ("BDM", 2), ("BDM", 3), + ("BDFM", 2), ("HHJ", 2),("N1curl", 1), ("N1curl", 2), ("N1curl", 3), + ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 1), ("GLS", 2), + ("GLS", 3), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], + ids=lambda x: f"{x[0]}_{x[1]}") +def V_target(request): + element, degree = request.param + mesh = UnitSquareMesh(3, 3) + return FunctionSpace(mesh, element, degree) -@pytest.mark.parametrize("element,degree", [("RT", 1), ("RT", 2), ("RT", 3), - ("BDM", 1), ("BDM", 2), ("BDM", 3), - ("BDFM", 2)]) -def test_hdiv_cross_mesh_oneform(mesh1, mesh2, element, degree): - V_source = VectorFunctionSpace(mesh1, "CG", 2) - V_target = FunctionSpace(mesh2, element, degree) +def test_cross_mesh_oneform(V_target): + mesh1 = UnitSquareMesh(5, 5) + mesh2 = V_target.mesh() x, y = SpatialCoordinate(mesh1) - f_source = Function(V_source).interpolate(as_vector([x, y])) - - # Make intermediate Quadrature space on target mesh - Q_target = make_quadrature_space(V_target) - - # Interp V_source -> Q - I1 = interpolate(f_source, Q_target) - f_quadrature = assemble(I1) - - # Interp Q -> V_target - I2 = interpolate(f_quadrature, V_target) - f_target = assemble(I2) - x1, y1 = SpatialCoordinate(mesh2) - f_direct = Function(V_target).interpolate(as_vector([x1, y1])) - - assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) - -@pytest.mark.parametrize("element,degree", [("N1curl", 1), ("N1curl", 2), ("N1curl", 3), - ("N2curl", 1), ("N2curl", 2), ("N2curl", 3),]) -def test_hcurl_cross_mesh_oneform(mesh1, mesh2, element, degree): - V_source = VectorFunctionSpace(mesh1, "CG", 2) - V_target = FunctionSpace(mesh2, element, degree) - x, y = SpatialCoordinate(mesh1) - f_source = Function(V_source).interpolate(as_vector([x, y])) + shape = V_target.ufl_function_space().value_shape + if len(shape) == 1: + fs_type = partial(VectorFunctionSpace, dim=shape[0]) + expr1 = as_vector([x, y]) + expr2 = as_vector([x1, y1]) + elif len(shape) == 2: + fs_type = partial(TensorFunctionSpace, shape=shape) + expr1 = as_tensor([[x, x*y], [x*y, y]]) + expr2 = as_tensor([[x1, x1*y1], [x1*y1, y1]]) + else: + raise ValueError("Unsupported target space shape") + + V_source = fs_type(mesh1, "CG", 2) + f_source = Function(V_source).interpolate(expr1) # Make intermediate Quadrature space on target mesh Q_target = make_quadrature_space(V_target) @@ -72,7 +73,6 @@ def test_hcurl_cross_mesh_oneform(mesh1, mesh2, element, degree): I2 = interpolate(f_quadrature, V_target) f_target = assemble(I2) - x1, y1 = SpatialCoordinate(mesh2) - f_direct = Function(V_target).interpolate(as_vector([x1, y1])) + f_direct = Function(V_target).interpolate(expr2) assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) From 5c84b1232ef4836ef24882702da339006b05a6e8 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 5 Jan 2026 17:56:10 +0000 Subject: [PATCH 15/37] update tests --- .../test_cross_mesh_non_lagrange.py | 48 ++++++++++++++++--- .../regression/test_interpolate_cross_mesh.py | 4 +- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 6c88cf57f9..65032bdddb 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -35,19 +35,21 @@ def make_quadrature_space(V): ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 1), ("GLS", 2), ("GLS", 3), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], ids=lambda x: f"{x[0]}_{x[1]}") -def V_target(request): +def V(request): element, degree = request.param mesh = UnitSquareMesh(3, 3) return FunctionSpace(mesh, element, degree) +# V_source -> Q -> V_target +# V_target^* -> Q^* -> V_source^* -def test_cross_mesh_oneform(V_target): +def test_cross_mesh_oneform(V): mesh1 = UnitSquareMesh(5, 5) - mesh2 = V_target.mesh() + mesh2 = V.mesh() x, y = SpatialCoordinate(mesh1) x1, y1 = SpatialCoordinate(mesh2) - shape = V_target.ufl_function_space().value_shape + shape = V.ufl_function_space().value_shape if len(shape) == 1: fs_type = partial(VectorFunctionSpace, dim=shape[0]) expr1 = as_vector([x, y]) @@ -63,16 +65,48 @@ def test_cross_mesh_oneform(V_target): f_source = Function(V_source).interpolate(expr1) # Make intermediate Quadrature space on target mesh - Q_target = make_quadrature_space(V_target) + Q_target = make_quadrature_space(V) # Interp V_source -> Q I1 = interpolate(f_source, Q_target) f_quadrature = assemble(I1) # Interp Q -> V_target - I2 = interpolate(f_quadrature, V_target) + I2 = interpolate(f_quadrature, V) f_target = assemble(I2) - f_direct = Function(V_target).interpolate(expr2) + f_direct = Function(V).interpolate(expr2) assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) + + +def test_cross_mesh_oneform_adjoint(V): + # Can already do Lagrange -> RT adjoint + # V^* -> Q^* -> V_target^* + mesh1 = UnitSquareMesh(7, 7) + x1 = SpatialCoordinate(mesh1) + V_target = fs_shape(V)(mesh1, "CG", 2) + + mesh2 = V.mesh() + x2 = SpatialCoordinate(mesh2) + + oneform_V = inner(x2, TestFunction(V)) * dx + + Q_target = make_quadrature_space(V) + + # Interp V^* -> Q^* + I1_adj = interpolate(TestFunction(Q_target), oneform_V) + cofunc_Q = assemble(I1_adj) + + # Interp Q^* -> V_target^* + I2_adj = interpolate(TestFunction(V_target), cofunc_Q) + cofunc_V = assemble(I2_adj) + + # cofunc_V = assemble(interpolate(TestFunction(V_target), oneform_target)) # V^* -> V_target^* + + cofunc_V_direct = assemble(inner(x1, TestFunction(V_target)) * dx) + + assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) + +if __name__ == "__main__": + pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[RT_1]"]) \ No newline at end of file diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 303e95182c..23dfb742b8 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -185,8 +185,8 @@ def parameters(request): expr_dest = 2 * SpatialCoordinate(m_dest) expected = 2 * coords V_src = VectorFunctionSpace(m_src, "CG", 2) - V_dest = FunctionSpace(m_dest, "SminusDiv", 2) # Not point evaluation nodes - V_dest_2 = FunctionSpace(m_dest, "SminusCurl", 2) # Not point evaluation nodes + V_dest = FunctionSpace(m_dest, "RT", 2) # Not point evaluation nodes + V_dest_2 = FunctionSpace(m_dest, "N1Curl", 2) # Not point evaluation nodes elif request.param == "unitsquare_Regge_source": m_src, m_dest, coords = unitsquaresetup() expr_src = outer(SpatialCoordinate(m_src), SpatialCoordinate(m_src)) From d8a1ac30f32e1131c6ed5941701d1e7c31809502 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 5 Jan 2026 17:56:28 +0000 Subject: [PATCH 16/37] WIP need to map replaced coefficient correctly --- tsfc/driver.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/tsfc/driver.py b/tsfc/driver.py index fb3abe9775..6cc8646178 100644 --- a/tsfc/driver.py +++ b/tsfc/driver.py @@ -247,17 +247,26 @@ def compile_expression_dual_evaluation(expression, to_element, ufl_element, *, if isinstance(to_element, (PhysicallyMappedElement, DirectlyDefinedElement)): raise NotImplementedError("Don't know how to interpolate onto zany spaces, sorry") + + if domain is None: + domain = extract_unique_domain(expression) + assert domain is not None orig_coefficients = extract_coefficients(expression) - if isinstance(expression, ufl.Interpolate): - v, operand = expression.argument_slots() - else: - operand = expression - v = ufl.FunctionSpace(extract_unique_domain(operand), ufl_element) + v, operand = expression.argument_slots() # Map into reference space operand = apply_mapping(operand, ufl_element, domain) + if ufl_element.mapping() != "identity": + # Need to map dual argument for adjoint interpolation + ref_element = finat.ufl.WithMapping(ufl_element, "identity") + V = ufl.FunctionSpace(domain, ref_element) + if isinstance(v, ufl.Coargument): + v = ufl.Coargument(V.dual(), v.number()) + else: + v = ufl.Cofunction(V.dual()) + # Apply UFL preprocessing operand = ufl_utils.preprocess_expression(operand, complex_mode=complex_mode) @@ -276,9 +285,6 @@ def compile_expression_dual_evaluation(expression, to_element, ufl_element, *, assert len(argument_multiindices) == len(arguments) # Replace coordinates (if any) unless otherwise specified by kwarg - if domain is None: - domain = extract_unique_domain(expression) - assert domain is not None builder._domain_integral_type_map = {domain: "cell"} builder._entity_ids = {domain: (0,)} From 8c255e240717adadd4706cce6b327093abbc1780 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 20 Jan 2026 10:10:50 +0000 Subject: [PATCH 17/37] fix test fixes --- .../test_cross_mesh_non_lagrange.py | 33 ++++++++++++------- tsfc/driver.py | 22 +++++-------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 65032bdddb..6651eada43 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -4,6 +4,8 @@ from finat.quadrature import QuadratureRule from functools import partial +from ufl.compound_expressions import deviatoric_expr_2x2 + def fs_shape(V): shape = V.ufl_function_space().value_shape @@ -30,14 +32,14 @@ def make_quadrature_space(V): return fs_shape(V)(V.mesh(), element) -@pytest.fixture(params=[("RT", 1), ("RT", 2), ("RT", 3), ("BDM", 1), ("BDM", 2), ("BDM", 3), - ("BDFM", 2), ("HHJ", 2),("N1curl", 1), ("N1curl", 2), ("N1curl", 3), - ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 1), ("GLS", 2), - ("GLS", 3), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], +@pytest.fixture(params=[("RT", 2), ("RT", 3), ("RT", 4), ("BDM", 1), ("BDM", 2), ("BDM", 3), + ("BDFM", 2), ("HHJ", 2),("N1curl", 2), ("N1curl", 3), ("N1curl", 4), + ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 2), ("GLS", 3), + ("GLS", 4), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], ids=lambda x: f"{x[0]}_{x[1]}") def V(request): element, degree = request.param - mesh = UnitSquareMesh(3, 3) + mesh = UnitSquareMesh(8, 8) return FunctionSpace(mesh, element, degree) # V_source -> Q -> V_target @@ -83,14 +85,24 @@ def test_cross_mesh_oneform(V): def test_cross_mesh_oneform_adjoint(V): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* - mesh1 = UnitSquareMesh(7, 7) + mesh1 = UnitSquareMesh(2, 2) x1 = SpatialCoordinate(mesh1) - V_target = fs_shape(V)(mesh1, "CG", 2) + V_target = fs_shape(V)(mesh1, "CG", 1) mesh2 = V.mesh() x2 = SpatialCoordinate(mesh2) - oneform_V = inner(x2, TestFunction(V)) * dx + if len(V.value_shape) > 1: + expr = outer(x2, x2) + target_expr = outer(x1, x1) + if V.ufl_element().mapping() == "covariant contravariant Piola": + expr = deviatoric_expr_2x2(expr) + target_expr = deviatoric_expr_2x2(target_expr) + else: + expr = x2 + target_expr = x1 + + oneform_V = inner(expr, TestFunction(V)) * dx Q_target = make_quadrature_space(V) @@ -104,9 +116,8 @@ def test_cross_mesh_oneform_adjoint(V): # cofunc_V = assemble(interpolate(TestFunction(V_target), oneform_target)) # V^* -> V_target^* - cofunc_V_direct = assemble(inner(x1, TestFunction(V_target)) * dx) - + cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[RT_1]"]) \ No newline at end of file + pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[GLS_3]"]) \ No newline at end of file diff --git a/tsfc/driver.py b/tsfc/driver.py index 6cc8646178..fb3abe9775 100644 --- a/tsfc/driver.py +++ b/tsfc/driver.py @@ -247,26 +247,17 @@ def compile_expression_dual_evaluation(expression, to_element, ufl_element, *, if isinstance(to_element, (PhysicallyMappedElement, DirectlyDefinedElement)): raise NotImplementedError("Don't know how to interpolate onto zany spaces, sorry") - - if domain is None: - domain = extract_unique_domain(expression) - assert domain is not None orig_coefficients = extract_coefficients(expression) - v, operand = expression.argument_slots() + if isinstance(expression, ufl.Interpolate): + v, operand = expression.argument_slots() + else: + operand = expression + v = ufl.FunctionSpace(extract_unique_domain(operand), ufl_element) # Map into reference space operand = apply_mapping(operand, ufl_element, domain) - if ufl_element.mapping() != "identity": - # Need to map dual argument for adjoint interpolation - ref_element = finat.ufl.WithMapping(ufl_element, "identity") - V = ufl.FunctionSpace(domain, ref_element) - if isinstance(v, ufl.Coargument): - v = ufl.Coargument(V.dual(), v.number()) - else: - v = ufl.Cofunction(V.dual()) - # Apply UFL preprocessing operand = ufl_utils.preprocess_expression(operand, complex_mode=complex_mode) @@ -285,6 +276,9 @@ def compile_expression_dual_evaluation(expression, to_element, ufl_element, *, assert len(argument_multiindices) == len(arguments) # Replace coordinates (if any) unless otherwise specified by kwarg + if domain is None: + domain = extract_unique_domain(expression) + assert domain is not None builder._domain_integral_type_map = {domain: "cell"} builder._entity_ids = {domain: (0,)} From 40c125265277b6319f21b01324a00dd5bd78a585 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Wed, 21 Jan 2026 18:29:57 +0000 Subject: [PATCH 18/37] WIP --- firedrake/interpolation.py | 124 +++++++++++++++--- .../test_cross_mesh_non_lagrange.py | 79 ++++++++++- .../regression/test_interpolate_cross_mesh.py | 4 + 3 files changed, 187 insertions(+), 20 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index aa5043670c..0fb7a15f24 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -22,7 +22,7 @@ from FIAT.reference_element import Point from finat.element_factory import create_element, as_fiat_cell -from finat.ufl import TensorElement, VectorElement, MixedElement +from finat.ufl import TensorElement, VectorElement, MixedElement, FiniteElement, FiniteElementBase from finat.fiat_elements import ScalarFiatElement from finat.quadrature import QuadratureRule from finat.quadrature_element import QuadratureElement @@ -36,7 +36,7 @@ from firedrake.utils import IntType, ScalarType, cached_property, known_pyop2_safe, tuplify from firedrake.tsfc_interface import extract_numbered_coefficients, _cachedir -from firedrake.ufl_expr import Argument, Coargument, action +from firedrake.ufl_expr import Argument, Coargument, TrialFunction, TestFunction, action from firedrake.mesh import MissingPointsBehaviour, VertexOnlyMeshTopology, MeshGeometry, MeshTopology, VertexOnlyMesh from firedrake.petsc import PETSc from firedrake.halo import _get_mtype @@ -432,7 +432,21 @@ def __init__(self, expr: Interpolate): if self.source_mesh.geometric_dimension != self.target_mesh.geometric_dimension: raise ValueError("Geometric dimensions of source and destination meshes must match.") - dest_element = self.target_space.ufl_element() + def _get_element(self, V: WithGeometry) -> FiniteElementBase: + """Return the element of the function space V. If V is tensor/vector valued, + return the base scalar element. + + Parameters + ---------- + V + A :class:`.WithGeometry` function space. + + Returns + ------- + FiniteElementBase + The base element of V. + """ + dest_element = V.ufl_element() if isinstance(dest_element, MixedElement): if isinstance(dest_element, VectorElement | TensorElement): # In this case all sub elements are equal @@ -442,16 +456,68 @@ def __init__(self, expr: Interpolate): "Can't yet cross-mesh interpolate onto function spaces made from VectorElements " "or TensorElements made from sub elements with value shape other than ()." ) - self.dest_element = base_element + return base_element else: raise NotImplementedError("Interpolation with MixedFunctionSpace requires MixedInterpolator.") else: # scalar fiat/finat element - self.dest_element = dest_element + return dest_element + + def _fs_type(self, V: WithGeometry) -> Callable[..., WithGeometry]: + """Returns a callable which returns a function space matching the type of V. + + Parameters + ---------- + V + A :class:`.WithGeometry` function space. + + Returns + ------- + Callable + A callable which returns a :class:`.WithGeometry` matching the type of V. + """ + # Get the correct type of function space + shape = V.ufl_function_space().value_shape + if len(shape) == 0: + return FunctionSpace + elif len(shape) == 1: + return partial(VectorFunctionSpace, dim=shape[0]) + else: + symmetry = V.ufl_element().symmetry() + return partial(TensorFunctionSpace, shape=shape, symmetry=symmetry) + + def _get_quadrature_space(self, V: WithGeometry) -> WithGeometry: + """Return a FunctionSpace whose element is a quadrature element with + points at the quadrature points of V's element. + + Used as an intermediate space for interpolating into a space which doesn't + have point evaluation dofs. + + Parameters + ---------- + V : WithGeometry + A :class:`.WithGeometry` function space to build the quadrature space for. + + Returns + ------- + WithGeometry + A :class:`.WithGeometry` function space with quadrature element. + """ + V_element = V.finat_element + _, points = V_element.dual_basis + weights = numpy.full(len(points.points), numpy.nan) # These can be any number since we never integrate + quad_scheme = QuadratureRule(points, weights, ref_el=V_element.cell) + element = FiniteElement("Quadrature", degree=V_element.degree, quad_scheme=quad_scheme) + return self._fs_type(V)(V.mesh(), element) + + def _get_symbolic_expressions(self, target_space: WithGeometry) -> tuple[Interpolate, Interpolate]: + """Return symbolic ``Interpolate`` expressions for point evaluation of the `target_space`s + dofs in the source mesh, and the corresponding input-ordering interpolation. - def _get_symbolic_expressions(self) -> tuple[Interpolate, Interpolate]: - """Return the symbolic ``Interpolate`` expressions for point evaluation and - re-ordering into the input-ordering VertexOnlyMesh. + Parameters + ---------- + target_space + The :class:`.WithGeometry` function space which we are interpolating into. Returns ------- @@ -462,13 +528,19 @@ def _get_symbolic_expressions(self) -> tuple[Interpolate, Interpolate]: Raises ------ DofNotDefinedError - If any DoFs in the target mesh cannot be defined in the source mesh. + If any of the target spaces dofs cannot be defined in the source mesh. + ValueError + If the target space does not have point-evaluation dofs. """ from firedrake.assemble import assemble + if target_space.ufl_element().mapping() != "identity": + raise ValueError(f"FunctionSpace {target_space} must have point-evaluation dofs.") + # Immerse coordinates of target space point evaluation dofs in src_mesh - target_space_vec = VectorFunctionSpace(self.target_mesh, self.dest_element) - f_dest_node_coords = assemble(interpolate(self.target_mesh.coordinates, target_space_vec)) - dest_node_coords = f_dest_node_coords.dat.data_ro.reshape(-1, self.target_mesh.geometric_dimension) + target_mesh = target_space.mesh().unique() + target_space_vec = VectorFunctionSpace(target_mesh, self._get_element(target_space)) + f_dest_node_coords = assemble(interpolate(target_mesh.coordinates, target_space_vec)) + dest_node_coords = f_dest_node_coords.dat.data_ro.reshape(-1, target_mesh.geometric_dimension) try: vom = VertexOnlyMesh( self.source_mesh, @@ -494,6 +566,7 @@ def _get_symbolic_expressions(self) -> tuple[Interpolate, Interpolate]: fs_type = partial(TensorFunctionSpace, shape=shape, symmetry=symmetry) # Get expression for point evaluation at the dest_node_coords + fs_type = self._fs_type(target_space) P0DG_vom = fs_type(vom, "DG", 0) point_eval = interpolate(self.operand, P0DG_vom) @@ -512,9 +585,16 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) # self.ufl_interpolate.function_space() is None in the 0-form case V_dest = self.ufl_interpolate.function_space() or self.target_space - f = tensor or Function(V_dest) - point_eval, point_eval_input_ordering = self._get_symbolic_expressions() + # Interpolate into intermediate quadrature space for non-identity mapped elements + if into_quadrature_space := V_dest.ufl_element().mapping() != "identity": + Q_dest = self._get_quadrature_space(V_dest) + else: + Q_dest = None + target_space = Q_dest or V_dest + f = tensor or Function(target_space) + + point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() if self.rank == 2: @@ -523,12 +603,22 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) # `self.point_eval_interpolate` and the permutation # given by `self.to_input_ordering_interpolate`. if self.ufl_interpolate.is_adjoint: - symbolic = action(point_eval, point_eval_input_ordering) + interp_expr = action(point_eval, point_eval_input_ordering) else: - symbolic = action(point_eval_input_ordering, point_eval) + interp_expr = action(point_eval_input_ordering, point_eval) def callable() -> PETSc.Mat: - return assemble(symbolic, mat_type=mat_type).petscmat + res = assemble(interp_expr, mat_type=mat_type).petscmat + if into_quadrature_space: + if self.ufl_interpolate.is_adjoint: + I = AssembledMatrix((Argument(Q_dest, 0), Argument(V_dest.dual(), 1)), None, res) + return assemble(action(interpolate(TestFunction(V_dest), Q_dest))).petscmat + else: + I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(V_dest, 1)), None, res) # V_dest x Q_dest^* -> R + return assemble(action(interpolate(TrialFunction(Q_dest), V_dest), I)).petscmat # Q_dest x V_dest^* -> R + else: + return res + elif self.ufl_interpolate.is_adjoint: assert self.rank == 1 # f_src is a cofunction on V_dest.dual diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 6651eada43..3d0e1b0e35 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -70,11 +70,11 @@ def test_cross_mesh_oneform(V): Q_target = make_quadrature_space(V) # Interp V_source -> Q - I1 = interpolate(f_source, Q_target) + I1 = interpolate(f_source, Q_target) # CrossMeshInterpolator f_quadrature = assemble(I1) # Interp Q -> V_target - I2 = interpolate(f_quadrature, V) + I2 = interpolate(f_quadrature, V) # SameMeshInterpolator f_target = assemble(I2) f_direct = Function(V).interpolate(expr2) @@ -82,6 +82,42 @@ def test_cross_mesh_oneform(V): assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) +def test_cross_mesh_twoform(V): + mesh1 = UnitSquareMesh(5, 5) + mesh2 = V.mesh() + x, y = SpatialCoordinate(mesh1) + x1, y1 = SpatialCoordinate(mesh2) + + shape = V.ufl_function_space().value_shape + if len(shape) == 1: + fs_type = partial(VectorFunctionSpace, dim=shape[0]) + expr1 = as_vector([x, y]) + expr2 = as_vector([x1, y1]) + elif len(shape) == 2: + fs_type = partial(TensorFunctionSpace, shape=shape) + expr1 = as_tensor([[x, x*y], [x*y, y]]) + expr2 = as_tensor([[x1, x1*y1], [x1*y1, y1]]) + else: + raise ValueError("Unsupported target space shape") + + V_source = fs_type(mesh1, "CG", 2) + Q_target = make_quadrature_space(V) + + I1 = interpolate(TrialFunction(V_source), Q_target) # V_source x Q_target^* -> R + I2 = interpolate(TrialFunction(Q_target), V) # Q_target x V^* -> R + + I = assemble(action(I2, I1)) # V_source x V^* -> R + + I_direct = assemble(interpolate(TrialFunction(V_source), V)) # V_source x V^* -> R + + f_source = Function(V_source).interpolate(expr1) + f_direct = Function(V).interpolate(expr2) + + f_interpolated = assemble(action(I_direct, f_source)) + assert np.allclose(f_interpolated.dat.data_ro, f_direct.dat.data_ro) + + + def test_cross_mesh_oneform_adjoint(V): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* @@ -119,5 +155,42 @@ def test_cross_mesh_oneform_adjoint(V): cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) + +def test_cross_mesh_twoform_adjoint(V): + # V^* -> Q^* -> V_target^* + mesh1 = UnitSquareMesh(2, 2) + x1 = SpatialCoordinate(mesh1) + V_target = fs_shape(V)(mesh1, "CG", 1) + mesh2 = V.mesh() + x2 = SpatialCoordinate(mesh2) + + if len(V.value_shape) > 1: + expr = outer(x2, x2) + target_expr = outer(x1, x1) + if V.ufl_element().mapping() == "covariant contravariant Piola": + expr = deviatoric_expr_2x2(expr) + target_expr = deviatoric_expr_2x2(target_expr) + else: + expr = x2 + target_expr = x1 + + oneform_V = inner(expr, TestFunction(V)) * dx + + Q = make_quadrature_space(V) + + I1 = interpolate(TestFunction(Q), V) # V^* x Q -> R + I2 = interpolate(TestFunction(V_target), Q) # Q^* x V_target -> R + I = assemble(action(I2, I1)) # V^* x V_target -> R + + # I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R + # assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) + + cofunc_V = assemble(action(I, oneform_V)) + cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) + + assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) + + + if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[GLS_3]"]) \ No newline at end of file + pytest.main([__file__ + "::test_cross_mesh_twoform[RT_2]"]) \ No newline at end of file diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 23dfb742b8..310cb1abf4 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -743,3 +743,7 @@ def test_interpolate_cross_mesh_interval(periodic): f_dest = Function(V_dest).interpolate(f_src) x_dest, = SpatialCoordinate(m_dest) assert abs(assemble((f_dest - (-(x_dest - .5) ** 2)) ** 2 * dx)) < 1.e-16 + + +if __name__ == "__main__": + pytest.main([__file__ + "::test_interpolate_matrix_cross_mesh_adjoint"]) \ No newline at end of file From b5ebf328feba89c8b8fc542bf1a7ad2787c6053d Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Wed, 21 Jan 2026 18:53:50 +0000 Subject: [PATCH 19/37] fix target_space --- firedrake/interpolation.py | 15 ++++++++------- .../regression/test_cross_mesh_non_lagrange.py | 6 +++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 0fb7a15f24..35221df397 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -585,14 +585,15 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) # self.ufl_interpolate.function_space() is None in the 0-form case V_dest = self.ufl_interpolate.function_space() or self.target_space + f = tensor or Function(V_dest) # Interpolate into intermediate quadrature space for non-identity mapped elements - if into_quadrature_space := V_dest.ufl_element().mapping() != "identity": + if into_quadrature_space := self.target_space.ufl_element().mapping() != "identity": Q_dest = self._get_quadrature_space(V_dest) else: Q_dest = None - target_space = Q_dest or V_dest - f = tensor or Function(target_space) + target_space = Q_dest or self.target_space + point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() @@ -611,11 +612,11 @@ def callable() -> PETSc.Mat: res = assemble(interp_expr, mat_type=mat_type).petscmat if into_quadrature_space: if self.ufl_interpolate.is_adjoint: - I = AssembledMatrix((Argument(Q_dest, 0), Argument(V_dest.dual(), 1)), None, res) - return assemble(action(interpolate(TestFunction(V_dest), Q_dest))).petscmat + I = AssembledMatrix((Argument(Q_dest, 0), Argument(target_space.dual(), 1)), None, res) + return assemble(action(interpolate(TestFunction(target_space), Q_dest), I)).petscmat else: - I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(V_dest, 1)), None, res) # V_dest x Q_dest^* -> R - return assemble(action(interpolate(TrialFunction(Q_dest), V_dest), I)).petscmat # Q_dest x V_dest^* -> R + I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(target_space, 1)), None, res) # target_space x Q_dest^* -> R + return assemble(action(interpolate(TrialFunction(Q_dest), target_space), I)).petscmat # Q_dest x target_space^* -> R else: return res diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 3d0e1b0e35..114470d83a 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -182,10 +182,10 @@ def test_cross_mesh_twoform_adjoint(V): I2 = interpolate(TestFunction(V_target), Q) # Q^* x V_target -> R I = assemble(action(I2, I1)) # V^* x V_target -> R - # I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R - # assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) + I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R + assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) - cofunc_V = assemble(action(I, oneform_V)) + cofunc_V = assemble(action(I_direct, oneform_V)) cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) From a2789dadd945ea6fd9e1fd88fb11845b13a1146d Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Wed, 21 Jan 2026 19:14:13 +0000 Subject: [PATCH 20/37] two-form assembly working --- firedrake/interpolation.py | 8 ++++---- .../firedrake/regression/test_cross_mesh_non_lagrange.py | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 35221df397..f7d02e7cb0 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -589,7 +589,7 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) # Interpolate into intermediate quadrature space for non-identity mapped elements if into_quadrature_space := self.target_space.ufl_element().mapping() != "identity": - Q_dest = self._get_quadrature_space(V_dest) + Q_dest = self._get_quadrature_space(self.target_space) else: Q_dest = None target_space = Q_dest or self.target_space @@ -613,10 +613,10 @@ def callable() -> PETSc.Mat: if into_quadrature_space: if self.ufl_interpolate.is_adjoint: I = AssembledMatrix((Argument(Q_dest, 0), Argument(target_space.dual(), 1)), None, res) - return assemble(action(interpolate(TestFunction(target_space), Q_dest), I)).petscmat + return assemble(action(I, interpolate(TestFunction(Q_dest), self.target_space))).petscmat else: - I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(target_space, 1)), None, res) # target_space x Q_dest^* -> R - return assemble(action(interpolate(TrialFunction(Q_dest), target_space), I)).petscmat # Q_dest x target_space^* -> R + I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(target_space, 1)), None, res) + return assemble(action(interpolate(TrialFunction(Q_dest), self.target_space), I)).petscmat else: return res diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 114470d83a..4e9cd6f122 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -181,6 +181,7 @@ def test_cross_mesh_twoform_adjoint(V): I1 = interpolate(TestFunction(Q), V) # V^* x Q -> R I2 = interpolate(TestFunction(V_target), Q) # Q^* x V_target -> R I = assemble(action(I2, I1)) # V^* x V_target -> R + assert I.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) @@ -193,4 +194,4 @@ def test_cross_mesh_twoform_adjoint(V): if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_twoform[RT_2]"]) \ No newline at end of file + pytest.main([__file__ + "::test_cross_mesh_twoform_adjoint[RT_2]"]) \ No newline at end of file From 986ce11a5a42e39c75f37d639415234d19450209 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 26 Jan 2026 14:15:51 +0000 Subject: [PATCH 21/37] Apply suggestions from code review --- .../multigrid/test_adaptive_multigrid.py | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/tests/firedrake/multigrid/test_adaptive_multigrid.py b/tests/firedrake/multigrid/test_adaptive_multigrid.py index de9197f974..1235c95bd5 100644 --- a/tests/firedrake/multigrid/test_adaptive_multigrid.py +++ b/tests/firedrake/multigrid/test_adaptive_multigrid.py @@ -254,14 +254,12 @@ def test_mg_jacobi(amh, atm): # pylint: disable=W0621 """ Test multigrid with jacobi smoothers """ - V_J = FunctionSpace(amh[-1], "CG", 1) + V = FunctionSpace(amh[-1], "CG", 1) x = SpatialCoordinate(amh[-1]) - u_ex = Function(V_J, name="u_fine_real").interpolate( - sin(2 * pi * x[0]) * sin(2 * pi * x[1]) - ) - u = Function(V_J) - v = TestFunction(V_J) - bc = DirichletBC(V_J, u_ex, "on_boundary") + u_ex = Function(V).interpolate(sin(2 * pi * x[0]) * sin(2 * pi * x[1])) + u = Function(V) + v = TestFunction(V) + bc = DirichletBC(V, u_ex, "on_boundary") F = inner(grad(u - u_ex), grad(v)) * dx params = { @@ -305,10 +303,9 @@ def test_mg_patch(amh, atm, params): # pylint: disable=W0621 "pc_type": "jacobi", }, "mg_coarse": { + "mat_type": "aij", "ksp_type": "preonly", - "pc_type": "python", - "pc_python_type": "firedrake.AssembledPC", - "assembled": {"ksp_type": "preonly", "pc_type": "lu"}, + "pc_type": "lu", }, } elif params == "patch": @@ -335,10 +332,9 @@ def test_mg_patch(amh, atm, params): # pylint: disable=W0621 }, }, "mg_coarse": { + "mat_type": "aij", "ksp_type": "preonly", - "pc_type": "python", - "pc_python_type": "firedrake.AssembledPC", - "assembled": {"ksp_type": "preonly", "pc_type": "lu"}, + "pc_type": "lu", }, } else: @@ -356,14 +352,12 @@ def test_mg_patch(amh, atm, params): # pylint: disable=W0621 "mg_coarse": {"ksp_type": "preonly", "pc_type": "lu"}, } - V_J = FunctionSpace(amh[-1], "CG", 1) + V = FunctionSpace(amh[-1], "CG", 1) x = SpatialCoordinate(amh[-1]) - u_ex = Function(V_J, name="u_fine_real").interpolate( - sin(2 * pi * x[0]) * sin(2 * pi * x[1]) - ) - u = Function(V_J) - v = TestFunction(V_J) - bc = DirichletBC(V_J, u_ex, "on_boundary") + u_ex = Function(V).interpolate(sin(2 * pi * x[0]) * sin(2 * pi * x[1])) + u = Function(V) + v = TestFunction(V) + bc = DirichletBC(V, u_ex, "on_boundary") F = inner(grad(u - u_ex), grad(v)) * dx problem = NonlinearVariationalProblem(F, u, bc) From e1dba6bf9e843542e20ecd510c505e9e0f8d7750 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Mon, 26 Jan 2026 14:44:18 +0000 Subject: [PATCH 22/37] docs --- firedrake/mg/adaptive_hierarchy.py | 44 +++++++++++++---------- firedrake/mg/adaptive_transfer_manager.py | 2 ++ 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/firedrake/mg/adaptive_hierarchy.py b/firedrake/mg/adaptive_hierarchy.py index e307d24ad9..fc6c2f728a 100644 --- a/firedrake/mg/adaptive_hierarchy.py +++ b/firedrake/mg/adaptive_hierarchy.py @@ -1,10 +1,4 @@ -""" -This module contains the class for the AdaptiveMeshHierarchy and -related helper functions -""" - -from collections import defaultdict - +from firedrake.mesh import MeshGeometry from firedrake.cofunction import Cofunction from firedrake.function import Function from firedrake.mg import HierarchyBase @@ -15,29 +9,41 @@ class AdaptiveMeshHierarchy(HierarchyBase): """ - HierarchyBase for hierarchies of adaptively refined meshes + HierarchyBase for hierarchies of adaptively refined meshes. + + Parameters + ---------- + base_mesh + The coarsest mesh in the hierarchy. + nested: bool + A flag to indicate whether the meshes are nested. + """ - def __init__(self, base_mesh, refinements_per_level=1, nested=True): + def __init__(self, base_mesh: MeshGeometry, nested: bool = True): self.meshes = [] self._meshes = [] - self.refinements_per_level = refinements_per_level self.nested = nested self.add_mesh(base_mesh) - def add_mesh(self, mesh): + def add_mesh(self, mesh: MeshGeometry): """ - Adds newly refined mesh into hierarchy. + Adds a mesh into the hierarchy. + + Parameters + ---------- + mesh + The mesh to be added to the finest level. """ + level = len(self.meshes) self._meshes.append(mesh) self.meshes.append(mesh) - level = len(self.meshes) - set_level(self.meshes[-1], self, level - 1) - self._shared_data_cache = defaultdict(dict) + set_level(mesh, self, level) def adapt(self, eta: Function | Cofunction, theta: float): """ - Add a refinement level to the hierarchy by local refinement - with a simplified variant of Dorfler marking. + Adds a new mesh to the hierarchy by locally refining the finest mesh + with a simplified variant of Dorfler marking. The finest mesh must + come from a netgen mesh. Parameters ---------- @@ -65,8 +71,8 @@ def adapt(self, eta: Function | Cofunction, theta: float): raise ValueError("eta must be defined on the finest mesh of the hierarchy") # Take the maximum over all processes - with eta.dat.vec_ro as eta_: - eta_max = eta_.max()[1] + with eta.dat.vec_ro as evec: + _, eta_max = evec.max() threshold = theta * eta_max should_refine = eta.dat.data_ro > threshold diff --git a/firedrake/mg/adaptive_transfer_manager.py b/firedrake/mg/adaptive_transfer_manager.py index d6ce290f5a..05b1feca4b 100644 --- a/firedrake/mg/adaptive_transfer_manager.py +++ b/firedrake/mg/adaptive_transfer_manager.py @@ -21,6 +21,8 @@ class AdaptiveTransferManager(TransferManager): TransferManager for adaptively refined mesh hierarchies """ def __init__(self, *, native_transfers=None, use_averaging=True): + if native_transfers is not None: + raise NotImplementedError("Custom transfers not implemented.") super().__init__(native_transfers=native_transfers, use_averaging=use_averaging) self.cache = {} From 10f8516fab868ec8acdf43868a49e42df2a5c55d Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 26 Jan 2026 16:02:09 +0000 Subject: [PATCH 23/37] forward and adjoint one-form --- firedrake/interpolation.py | 52 +++++++-------- .../test_cross_mesh_non_lagrange.py | 66 ++++++------------- .../regression/test_interpolate_cross_mesh.py | 12 ++-- 3 files changed, 51 insertions(+), 79 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index f7d02e7cb0..244876b8d4 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -22,7 +22,7 @@ from FIAT.reference_element import Point from finat.element_factory import create_element, as_fiat_cell -from finat.ufl import TensorElement, VectorElement, MixedElement, FiniteElement, FiniteElementBase +from finat.ufl import TensorElement, VectorElement, MixedElement, FiniteElementBase from finat.fiat_elements import ScalarFiatElement from finat.quadrature import QuadratureRule from finat.quadrature_element import QuadratureElement @@ -477,7 +477,7 @@ def _fs_type(self, V: WithGeometry) -> Callable[..., WithGeometry]: A callable which returns a :class:`.WithGeometry` matching the type of V. """ # Get the correct type of function space - shape = V.ufl_function_space().value_shape + shape = V.value_shape if len(shape) == 0: return FunctionSpace elif len(shape) == 1: @@ -487,7 +487,7 @@ def _fs_type(self, V: WithGeometry) -> Callable[..., WithGeometry]: return partial(TensorFunctionSpace, shape=shape, symmetry=symmetry) def _get_quadrature_space(self, V: WithGeometry) -> WithGeometry: - """Return a FunctionSpace whose element is a quadrature element with + """Return a FunctionSpace whose element is a quadrature element with points at the quadrature points of V's element. Used as an intermediate space for interpolating into a space which doesn't @@ -502,13 +502,12 @@ def _get_quadrature_space(self, V: WithGeometry) -> WithGeometry: ------- WithGeometry A :class:`.WithGeometry` function space with quadrature element. - """ + """ V_element = V.finat_element _, points = V_element.dual_basis weights = numpy.full(len(points.points), numpy.nan) # These can be any number since we never integrate quad_scheme = QuadratureRule(points, weights, ref_el=V_element.cell) - element = FiniteElement("Quadrature", degree=V_element.degree, quad_scheme=quad_scheme) - return self._fs_type(V)(V.mesh(), element) + return self._fs_type(V)(V.mesh(), "Quadrature", degree=V_element.degree, quad_scheme=quad_scheme) def _get_symbolic_expressions(self, target_space: WithGeometry) -> tuple[Interpolate, Interpolate]: """Return symbolic ``Interpolate`` expressions for point evaluation of the `target_space`s @@ -555,16 +554,6 @@ def _get_symbolic_expressions(self, target_space: WithGeometry) -> tuple[Interpo "This may be because the target mesh covers a larger domain than the " "source mesh. To disable this error, set allow_missing_dofs=True.") - # Get the correct type of function space - shape = self.target_space.ufl_function_space().value_shape - if len(shape) == 0: - fs_type = FunctionSpace - elif len(shape) == 1: - fs_type = partial(VectorFunctionSpace, dim=shape[0]) - else: - symmetry = self.target_space.ufl_element().symmetry() - fs_type = partial(TensorFunctionSpace, shape=shape, symmetry=symmetry) - # Get expression for point evaluation at the dest_node_coords fs_type = self._fs_type(target_space) P0DG_vom = fs_type(vom, "DG", 0) @@ -583,17 +572,15 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) raise NotImplementedError("bcs not implemented for cross-mesh interpolation.") mat_type = mat_type or "aij" - # self.ufl_interpolate.function_space() is None in the 0-form case - V_dest = self.ufl_interpolate.function_space() or self.target_space - f = tensor or Function(V_dest) - # Interpolate into intermediate quadrature space for non-identity mapped elements if into_quadrature_space := self.target_space.ufl_element().mapping() != "identity": Q_dest = self._get_quadrature_space(self.target_space) else: Q_dest = None target_space = Q_dest or self.target_space - + + # self.ufl_interpolate.function_space() is None in the 0-form case + f = tensor or Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() @@ -622,8 +609,12 @@ def callable() -> PETSc.Mat: elif self.ufl_interpolate.is_adjoint: assert self.rank == 1 - # f_src is a cofunction on V_dest.dual - cofunc = self.dual_arg + + if into_quadrature_space: + cofunc = assemble(interpolate(TestFunction(target_space), self.dual_arg)) + else: + cofunc = self.dual_arg + assert isinstance(cofunc, Cofunction) # Our first adjoint operation is to assign the dat values to a @@ -638,8 +629,9 @@ def callable() -> PETSc.Mat: # and all points from the input ordering VOM are in the original. def callable() -> Cofunction: f_src_at_src_node_coords = assemble(action(point_eval_input_ordering, f_input_ordering)) - assemble(action(point_eval, f_src_at_src_node_coords), tensor=f) - return f + f_target = Cofunction(point_eval.function_space()) if into_quadrature_space else f + assemble(action(point_eval, f_src_at_src_node_coords), tensor=f_target) + return f_target else: assert self.rank in {0, 1} # We create the input-ordering Function before interpolating so we can @@ -663,12 +655,18 @@ def callable() -> Function | Number: else: f.dat.data_wo[:] = f_point_eval_input_ordering.dat.data_ro[:] + if into_quadrature_space: + f_target = Function(self.target_space) + assemble(interpolate(f, self.target_space), tensor=f_target) + else: + f_target = f + if self.rank == 0: # We take the action of the dual_arg on the interpolated function assert isinstance(self.dual_arg, Cofunction) - return assemble(action(self.dual_arg, f)) + return assemble(action(self.dual_arg, f_target)) else: - return f + return f_target return callable @property diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 4e9cd6f122..837d3ce1eb 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -17,9 +17,10 @@ def fs_shape(V): raise ValueError("Invalid function space shape") return fs_type + def make_quadrature_space(V): """Builds a quadrature space on the target mesh. - + This space has point evaluation dofs at the quadrature PointSet of the target space's element @@ -33,17 +34,15 @@ def make_quadrature_space(V): @pytest.fixture(params=[("RT", 2), ("RT", 3), ("RT", 4), ("BDM", 1), ("BDM", 2), ("BDM", 3), - ("BDFM", 2), ("HHJ", 2),("N1curl", 2), ("N1curl", 3), ("N1curl", 4), + ("BDFM", 2), ("HHJ", 2), ("N1curl", 2), ("N1curl", 3), ("N1curl", 4), ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 2), ("GLS", 3), ("GLS", 4), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], - ids=lambda x: f"{x[0]}_{x[1]}") + ids=lambda x: f"{x[0]}_{x[1]}") def V(request): element, degree = request.param mesh = UnitSquareMesh(8, 8) return FunctionSpace(mesh, element, degree) -# V_source -> Q -> V_target -# V_target^* -> Q^* -> V_source^* def test_cross_mesh_oneform(V): mesh1 = UnitSquareMesh(5, 5) @@ -62,21 +61,11 @@ def test_cross_mesh_oneform(V): expr2 = as_tensor([[x1, x1*y1], [x1*y1, y1]]) else: raise ValueError("Unsupported target space shape") - + V_source = fs_type(mesh1, "CG", 2) f_source = Function(V_source).interpolate(expr1) - # Make intermediate Quadrature space on target mesh - Q_target = make_quadrature_space(V) - - # Interp V_source -> Q - I1 = interpolate(f_source, Q_target) # CrossMeshInterpolator - f_quadrature = assemble(I1) - - # Interp Q -> V_target - I2 = interpolate(f_quadrature, V) # SameMeshInterpolator - f_target = assemble(I2) - + f_target = assemble(interpolate(f_source, V)) f_direct = Function(V).interpolate(expr2) assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) @@ -99,25 +88,18 @@ def test_cross_mesh_twoform(V): expr2 = as_tensor([[x1, x1*y1], [x1*y1, y1]]) else: raise ValueError("Unsupported target space shape") - - V_source = fs_type(mesh1, "CG", 2) - Q_target = make_quadrature_space(V) - I1 = interpolate(TrialFunction(V_source), Q_target) # V_source x Q_target^* -> R - I2 = interpolate(TrialFunction(Q_target), V) # Q_target x V^* -> R - - I = assemble(action(I2, I1)) # V_source x V^* -> R + V_source = fs_type(mesh1, "CG", 2) - I_direct = assemble(interpolate(TrialFunction(V_source), V)) # V_source x V^* -> R + I = assemble(interpolate(TrialFunction(V_source), V)) # V_source x V^* -> R f_source = Function(V_source).interpolate(expr1) f_direct = Function(V).interpolate(expr2) - f_interpolated = assemble(action(I_direct, f_source)) + f_interpolated = assemble(action(I, f_source)) assert np.allclose(f_interpolated.dat.data_ro, f_direct.dat.data_ro) - def test_cross_mesh_oneform_adjoint(V): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* @@ -140,17 +122,17 @@ def test_cross_mesh_oneform_adjoint(V): oneform_V = inner(expr, TestFunction(V)) * dx - Q_target = make_quadrature_space(V) + # Q_target = make_quadrature_space(V) - # Interp V^* -> Q^* - I1_adj = interpolate(TestFunction(Q_target), oneform_V) - cofunc_Q = assemble(I1_adj) + # # Interp V^* -> Q^* + # I1_adj = interpolate(TestFunction(Q_target), oneform_V) # SameMesh + # cofunc_Q = assemble(I1_adj) - # Interp Q^* -> V_target^* - I2_adj = interpolate(TestFunction(V_target), cofunc_Q) - cofunc_V = assemble(I2_adj) + # # Interp Q^* -> V_target^* + # I2_adj = interpolate(TestFunction(V_target), cofunc_Q) # CrossMesh + # cofunc_V = assemble(I2_adj) - # cofunc_V = assemble(interpolate(TestFunction(V_target), oneform_target)) # V^* -> V_target^* + cofunc_V = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) @@ -176,22 +158,14 @@ def test_cross_mesh_twoform_adjoint(V): oneform_V = inner(expr, TestFunction(V)) * dx - Q = make_quadrature_space(V) - - I1 = interpolate(TestFunction(Q), V) # V^* x Q -> R - I2 = interpolate(TestFunction(V_target), Q) # Q^* x V_target -> R - I = assemble(action(I2, I1)) # V^* x V_target -> R + I = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R assert I.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) - I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R - assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) - - cofunc_V = assemble(action(I_direct, oneform_V)) + cofunc_V = assemble(action(I, oneform_V)) cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) - if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_twoform_adjoint[RT_2]"]) \ No newline at end of file + pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[RT_2]"]) diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 310cb1abf4..f02f3b7c1c 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -1,10 +1,10 @@ from firedrake import * from firedrake.petsc import DEFAULT_PARTITIONER from firedrake.ufl_expr import extract_unique_domain +from firedrake.mesh import plex_from_cell_list, Mesh import numpy as np import pytest from ufl import product -import subprocess def allgather(comm, coords): @@ -606,8 +606,8 @@ def test_line_integral(): # Create a 1D line mesh in 2D from (0, 0) to (1, 1) with 1 cell cells = np.asarray([[0, 1]]) vertex_coords = np.asarray([[0.0, 0.0], [1.0, 1.0]]) - plex = mesh.plex_from_cell_list(1, cells, vertex_coords, comm=m.comm) - line = mesh.Mesh(plex, dim=2) + plex = plex_from_cell_list(1, cells, vertex_coords, comm=m.comm) + line = Mesh(plex, dim=2) x, y = SpatialCoordinate(line) V_line = FunctionSpace(line, "CG", 2) f_line = Function(V_line).interpolate(x * y) @@ -616,8 +616,8 @@ def test_line_integral(): # Create a 1D line around the unit square (2D) with 4 cells cells = np.asarray([[0, 1], [1, 2], [2, 3], [3, 0]]) vertex_coords = np.asarray([[0.0, 0.0], [1.0, 0.0], [1.0, 1.0], [0.0, 1.0]]) - plex = mesh.plex_from_cell_list(1, cells, vertex_coords, comm=m.comm) - line_square = mesh.Mesh(plex, dim=2) + plex = plex_from_cell_list(1, cells, vertex_coords, comm=m.comm) + line_square = Mesh(plex, dim=2) x, y = SpatialCoordinate(line_square) V_line_square = FunctionSpace(line_square, "CG", 2) f_line_square = Function(V_line_square).interpolate(x * y) @@ -746,4 +746,4 @@ def test_interpolate_cross_mesh_interval(periodic): if __name__ == "__main__": - pytest.main([__file__ + "::test_interpolate_matrix_cross_mesh_adjoint"]) \ No newline at end of file + pytest.main([__file__ + "::test_interpolate_matrix_cross_mesh_adjoint"]) From fc17045041a425313eab470065ce4b4c64656361 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 26 Jan 2026 16:19:35 +0000 Subject: [PATCH 24/37] fixes --- firedrake/interpolation.py | 35 ++++++++++--------- .../test_cross_mesh_non_lagrange.py | 21 +++++------ 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 244876b8d4..8bef75f1d9 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -580,7 +580,7 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) target_space = Q_dest or self.target_space # self.ufl_interpolate.function_space() is None in the 0-form case - f = tensor or Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) + f = tensor or Function(self.ufl_interpolate.function_space() or self.target_space) point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() @@ -610,26 +610,27 @@ def callable() -> PETSc.Mat: elif self.ufl_interpolate.is_adjoint: assert self.rank == 1 - if into_quadrature_space: - cofunc = assemble(interpolate(TestFunction(target_space), self.dual_arg)) - else: - cofunc = self.dual_arg + def callable() -> Cofunction: + if into_quadrature_space: + cofunc = assemble(interpolate(TestFunction(target_space), self.dual_arg)) + f_target = Cofunction(point_eval.function_space()) + else: + cofunc = self.dual_arg + f_target = f - assert isinstance(cofunc, Cofunction) + assert isinstance(cofunc, Cofunction) - # Our first adjoint operation is to assign the dat values to a - # P0DG cofunction on our input ordering VOM. - f_input_ordering = Cofunction(P0DG_vom_input_ordering.dual()) - f_input_ordering.dat.data_wo[:] = cofunc.dat.data_ro[:] + # Our first adjoint operation is to assign the dat values to a + # P0DG cofunction on our input ordering VOM. + f_input_ordering = Cofunction(P0DG_vom_input_ordering.dual()) + f_input_ordering.dat.data_wo[:] = cofunc.dat.data_ro[:] - # The rest of the adjoint interpolation is the composition - # of the adjoint interpolators in the reverse direction. - # We don't worry about skipping over missing points here - # because we're going from the input ordering VOM to the original VOM - # and all points from the input ordering VOM are in the original. - def callable() -> Cofunction: + # The rest of the adjoint interpolation is the composition + # of the adjoint interpolators in the reverse direction. + # We don't worry about skipping over missing points here + # because we're going from the input ordering VOM to the original VOM + # and all points from the input ordering VOM are in the original. f_src_at_src_node_coords = assemble(action(point_eval_input_ordering, f_input_ordering)) - f_target = Cofunction(point_eval.function_space()) if into_quadrature_space else f assemble(action(point_eval, f_src_at_src_node_coords), tensor=f_target) return f_target else: diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 837d3ce1eb..d5155a7b40 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -122,20 +122,21 @@ def test_cross_mesh_oneform_adjoint(V): oneform_V = inner(expr, TestFunction(V)) * dx - # Q_target = make_quadrature_space(V) + Q_target = make_quadrature_space(V) - # # Interp V^* -> Q^* - # I1_adj = interpolate(TestFunction(Q_target), oneform_V) # SameMesh - # cofunc_Q = assemble(I1_adj) + # Interp V^* -> Q^* + I1_adj = interpolate(TestFunction(Q_target), oneform_V) # SameMesh + cofunc_Q = assemble(I1_adj) - # # Interp Q^* -> V_target^* - # I2_adj = interpolate(TestFunction(V_target), cofunc_Q) # CrossMesh - # cofunc_V = assemble(I2_adj) + # Interp Q^* -> V_target^* + I2_adj = interpolate(TestFunction(V_target), cofunc_Q) # CrossMesh + cofunc_Vtarget_manual = assemble(I2_adj) - cofunc_V = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* + cofunc_Vtarget = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* + assert np.allclose(cofunc_Vtarget_manual.dat.data_ro, cofunc_Vtarget.dat.data_ro) - cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) - assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) + cofunc_Vtarget_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) + assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) def test_cross_mesh_twoform_adjoint(V): From cb92d817dfcf10d2be70f704084275adb9c263ad Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Mon, 26 Jan 2026 23:07:28 +0000 Subject: [PATCH 25/37] working remove --- firedrake/interpolation.py | 8 +- .../test_cross_mesh_non_lagrange.py | 152 ++++++++---------- .../regression/test_interpolate_cross_mesh.py | 18 +-- 3 files changed, 78 insertions(+), 100 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 8bef75f1d9..72776fffb7 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -579,8 +579,12 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) Q_dest = None target_space = Q_dest or self.target_space - # self.ufl_interpolate.function_space() is None in the 0-form case - f = tensor or Function(self.ufl_interpolate.function_space() or self.target_space) + if into_quadrature_space and not self.ufl_interpolate.is_adjoint: + f = Function(target_space) + else: + # self.ufl_interpolate.function_space() is None in the 0-form case + f = Function(self.ufl_interpolate.function_space() or target_space) + # f = tensor or Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index d5155a7b40..4796cb2452 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -4,8 +4,6 @@ from finat.quadrature import QuadratureRule from functools import partial -from ufl.compound_expressions import deviatoric_expr_2x2 - def fs_shape(V): shape = V.ufl_function_space().value_shape @@ -44,34 +42,8 @@ def V(request): return FunctionSpace(mesh, element, degree) -def test_cross_mesh_oneform(V): - mesh1 = UnitSquareMesh(5, 5) - mesh2 = V.mesh() - x, y = SpatialCoordinate(mesh1) - x1, y1 = SpatialCoordinate(mesh2) - - shape = V.ufl_function_space().value_shape - if len(shape) == 1: - fs_type = partial(VectorFunctionSpace, dim=shape[0]) - expr1 = as_vector([x, y]) - expr2 = as_vector([x1, y1]) - elif len(shape) == 2: - fs_type = partial(TensorFunctionSpace, shape=shape) - expr1 = as_tensor([[x, x*y], [x*y, y]]) - expr2 = as_tensor([[x1, x1*y1], [x1*y1, y1]]) - else: - raise ValueError("Unsupported target space shape") - - V_source = fs_type(mesh1, "CG", 2) - f_source = Function(V_source).interpolate(expr1) - - f_target = assemble(interpolate(f_source, V)) - f_direct = Function(V).interpolate(expr2) - - assert np.allclose(f_target.dat.data_ro, f_direct.dat.data_ro) - - -def test_cross_mesh_twoform(V): +@pytest.mark.parametrize("rank", [1, 2]) +def test_cross_mesh(V, rank): mesh1 = UnitSquareMesh(5, 5) mesh2 = V.mesh() x, y = SpatialCoordinate(mesh1) @@ -90,17 +62,42 @@ def test_cross_mesh_twoform(V): raise ValueError("Unsupported target space shape") V_source = fs_type(mesh1, "CG", 2) - - I = assemble(interpolate(TrialFunction(V_source), V)) # V_source x V^* -> R - f_source = Function(V_source).interpolate(expr1) f_direct = Function(V).interpolate(expr2) - f_interpolated = assemble(action(I, f_source)) - assert np.allclose(f_interpolated.dat.data_ro, f_direct.dat.data_ro) - - -def test_cross_mesh_oneform_adjoint(V): + Q = make_quadrature_space(V) + + if rank == 2: + # Assemble the operator + I1 = interpolate(TrialFunction(V_source), Q) # V_source x Q_target^* -> R + I2 = interpolate(TrialFunction(Q), V) # Q_target x V^* -> R + I_manual = assemble(action(I2, I1)) # V_source x V^* -> R + assert I_manual.arguments() == (TestFunction(V.dual()), TrialFunction(V_source)) + # Direct assembly + I_direct = assemble(interpolate(TrialFunction(V_source), V)) # V_source + assert I_direct.arguments() == (TestFunction(V.dual()), TrialFunction(V_source)) + + f_interpolated_manual = assemble(action(I_manual, f_source)) + assert np.allclose(f_interpolated_manual.dat.data_ro, f_direct.dat.data_ro) + f_interpolated_direct = assemble(action(I_direct, f_source)) + assert np.allclose(f_interpolated_direct.dat.data_ro, f_direct.dat.data_ro) + elif rank == 1: + # Interp V_source -> Q + I1 = interpolate(f_source, Q) # SameMesh + f_quadrature = assemble(I1) + # Interp Q -> V + I2 = interpolate(f_quadrature, V) # CrossMesh + f_interpolated_manual = assemble(I2) + assert f_interpolated_manual.function_space() == V + assert np.allclose(f_interpolated_manual.dat.data_ro, f_direct.dat.data_ro) + + f_interpolated_direct = assemble(interpolate(f_source, V)) + assert f_interpolated_direct.function_space() == V + assert np.allclose(f_interpolated_direct.dat.data_ro, f_direct.dat.data_ro) + + +@pytest.mark.parametrize("rank", [1, 2]) +def test_cross_mesh_adjoint(V, rank): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* mesh1 = UnitSquareMesh(2, 2) @@ -114,59 +111,40 @@ def test_cross_mesh_oneform_adjoint(V): expr = outer(x2, x2) target_expr = outer(x1, x1) if V.ufl_element().mapping() == "covariant contravariant Piola": - expr = deviatoric_expr_2x2(expr) - target_expr = deviatoric_expr_2x2(target_expr) + expr = dev(expr) + target_expr = dev(target_expr) else: expr = x2 target_expr = x1 oneform_V = inner(expr, TestFunction(V)) * dx - - Q_target = make_quadrature_space(V) - - # Interp V^* -> Q^* - I1_adj = interpolate(TestFunction(Q_target), oneform_V) # SameMesh - cofunc_Q = assemble(I1_adj) - - # Interp Q^* -> V_target^* - I2_adj = interpolate(TestFunction(V_target), cofunc_Q) # CrossMesh - cofunc_Vtarget_manual = assemble(I2_adj) - - cofunc_Vtarget = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* - assert np.allclose(cofunc_Vtarget_manual.dat.data_ro, cofunc_Vtarget.dat.data_ro) - cofunc_Vtarget_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) - assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) - - -def test_cross_mesh_twoform_adjoint(V): - # V^* -> Q^* -> V_target^* - mesh1 = UnitSquareMesh(2, 2) - x1 = SpatialCoordinate(mesh1) - V_target = fs_shape(V)(mesh1, "CG", 1) - mesh2 = V.mesh() - x2 = SpatialCoordinate(mesh2) - - if len(V.value_shape) > 1: - expr = outer(x2, x2) - target_expr = outer(x1, x1) - if V.ufl_element().mapping() == "covariant contravariant Piola": - expr = deviatoric_expr_2x2(expr) - target_expr = deviatoric_expr_2x2(target_expr) - else: - expr = x2 - target_expr = x1 - - oneform_V = inner(expr, TestFunction(V)) * dx - - I = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R - assert I.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) - - cofunc_V = assemble(action(I, oneform_V)) - cofunc_V_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) - - assert np.allclose(cofunc_V.dat.data_ro, cofunc_V_direct.dat.data_ro) - -if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_oneform_adjoint[RT_2]"]) + Q = make_quadrature_space(V) + + if rank == 2: + # Assemble the operator + I1 = interpolate(TestFunction(Q), V) # V^* x Q -> R + I2 = interpolate(TestFunction(V_target), Q) # Q^* x V_target -> R + I_manual = assemble(action(I2, I1)) # V^* x V_target -> R + assert I_manual.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) + # Direct assembly + I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R + assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) + + cofunc_Vtarget_manual = assemble(action(I_manual, oneform_V)) + assert np.allclose(cofunc_Vtarget_manual.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) + cofunc_Vtarget = assemble(action(I_direct, oneform_V)) + assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) + elif rank == 1: + # Interp V^* -> Q^* + I1_adj = interpolate(TestFunction(Q), oneform_V) # SameMesh + cofunc_Q = assemble(I1_adj) + + # Interp Q^* -> V_target^* + I2_adj = interpolate(TestFunction(V_target), cofunc_Q) # CrossMesh + cofunc_Vtarget_manual = assemble(I2_adj) + assert np.allclose(cofunc_Vtarget_manual.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) + + cofunc_Vtarget = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* + assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index f02f3b7c1c..23fe046485 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -15,9 +15,9 @@ def allgather(comm, coords): return coords -def unitsquaresetup(): +def unitsquaresetup(dest_quad=True): m_src = UnitSquareMesh(2, 3) - m_dest = UnitSquareMesh(3, 5, quadrilateral=True) + m_dest = UnitSquareMesh(3, 5, quadrilateral=dest_quad) coords = np.array( [[0.56, 0.6], [0.1, 0.9], [0.9, 0.1], [0.9, 0.9], [0.726, 0.6584]] ) # fairly arbitrary @@ -38,7 +38,7 @@ def make_high_order(m_low_order, degree): @pytest.fixture( params=[ - "unitsquare", + "unitsquare_RT_N1curl_destination", "circlemanifold", "circlemanifold_to_high_order", "unitsquare_from_high_order", @@ -47,7 +47,7 @@ def make_high_order(m_low_order, degree): "unitsquare_vfs", "unitsquare_tfs", "unitsquare_N1curl_source", - "unitsquare_SminusDiv_destination", + "unitsquare_RT_N1curl_destination", "unitsquare_Regge_source", # This test fails in complex mode pytest.param("spheresphere", marks=pytest.mark.skipcomplex), @@ -179,14 +179,14 @@ def parameters(request): V_src = FunctionSpace(m_src, "N1curl", 2) # Not point evaluation nodes V_dest = VectorFunctionSpace(m_dest, "CG", 4) V_dest_2 = VectorFunctionSpace(m_dest, "DQ", 2) - elif request.param == "unitsquare_SminusDiv_destination": - m_src, m_dest, coords = unitsquaresetup() + elif request.param == "unitsquare_RT_N1curl_destination": + m_src, m_dest, coords = unitsquaresetup(dest_quad=False) expr_src = 2 * SpatialCoordinate(m_src) expr_dest = 2 * SpatialCoordinate(m_dest) expected = 2 * coords V_src = VectorFunctionSpace(m_src, "CG", 2) V_dest = FunctionSpace(m_dest, "RT", 2) # Not point evaluation nodes - V_dest_2 = FunctionSpace(m_dest, "N1Curl", 2) # Not point evaluation nodes + V_dest_2 = FunctionSpace(m_dest, "N1curl", 2) # Not point evaluation nodes elif request.param == "unitsquare_Regge_source": m_src, m_dest, coords = unitsquaresetup() expr_src = outer(SpatialCoordinate(m_src), SpatialCoordinate(m_src)) @@ -743,7 +743,3 @@ def test_interpolate_cross_mesh_interval(periodic): f_dest = Function(V_dest).interpolate(f_src) x_dest, = SpatialCoordinate(m_dest) assert abs(assemble((f_dest - (-(x_dest - .5) ** 2)) ** 2 * dx)) < 1.e-16 - - -if __name__ == "__main__": - pytest.main([__file__ + "::test_interpolate_matrix_cross_mesh_adjoint"]) From cf1d7475df2e27af6a3055fb5f9bc07c0d408a68 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 27 Jan 2026 13:01:49 +0000 Subject: [PATCH 26/37] add zero-form test --- .../regression/test_cross_mesh_non_lagrange.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 4796cb2452..85485fd3a0 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -96,7 +96,7 @@ def test_cross_mesh(V, rank): assert np.allclose(f_interpolated_direct.dat.data_ro, f_direct.dat.data_ro) -@pytest.mark.parametrize("rank", [1, 2]) +@pytest.mark.parametrize("rank", [0, 1, 2]) def test_cross_mesh_adjoint(V, rank): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* @@ -117,7 +117,7 @@ def test_cross_mesh_adjoint(V, rank): expr = x2 target_expr = x1 - oneform_V = inner(expr, TestFunction(V)) * dx + oneform_V = inner(expr, TestFunction(V)) * dx # V^* cofunc_Vtarget_direct = assemble(inner(target_expr, TestFunction(V_target)) * dx) Q = make_quadrature_space(V) @@ -148,3 +148,10 @@ def test_cross_mesh_adjoint(V, rank): cofunc_Vtarget = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) + elif rank == 0: + res = assemble(interpolate(target_expr, oneform_V)) + actual = assemble(inner(expr, expr) * dx) + assert np.isclose(res, actual) + +if __name__ == "__main__": + pytest.main([__file__ + "::test_cross_mesh_adjoint[RT_2-1]"]) From 170bcb4e6fed9b9433cd0285826b9816e335365d Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 27 Jan 2026 13:57:22 +0000 Subject: [PATCH 27/37] fix tests --- firedrake/assemble.py | 2 +- .../test_cross_mesh_non_lagrange.py | 30 +++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/firedrake/assemble.py b/firedrake/assemble.py index 95fa61418c..c0590bd9d3 100644 --- a/firedrake/assemble.py +++ b/firedrake/assemble.py @@ -873,7 +873,7 @@ def restructure_base_form(expr, visited=None): # If F: V3 x V2 -> R, then # Interpolate(TestFunction(V1), F) <=> Action(Interpolate(TestFunction(V1), TrialFunction(V2.dual())), F). # The result is a two-form V3 x V1 -> R. - if isinstance(expr, ufl.Interpolate) and isinstance(expr.argument_slots()[0], ufl.form.Form): + if isinstance(expr, ufl.Interpolate) and isinstance(expr.argument_slots()[0], ufl.form.Form) and len(expr.argument_slots()[0].arguments()) == 2: form, operand = expr.argument_slots() vstar = firedrake.Argument(form.arguments()[0].function_space().dual(), 1) expr = expr._ufl_expr_reconstruct_(operand, v=vstar) diff --git a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py index 85485fd3a0..5153e36dee 100644 --- a/tests/firedrake/regression/test_cross_mesh_non_lagrange.py +++ b/tests/firedrake/regression/test_cross_mesh_non_lagrange.py @@ -5,6 +5,13 @@ from functools import partial +def mat_equals(a, b) -> bool: + """Check that two Matrices are equal.""" + a = a.petscmat.copy() + a.axpy(-1.0, b.petscmat) + return a.norm(norm_type=PETSc.NormType.NORM_FROBENIUS) < 1e-14 + + def fs_shape(V): shape = V.ufl_function_space().value_shape if len(shape) == 1: @@ -31,9 +38,9 @@ def make_quadrature_space(V): return fs_shape(V)(V.mesh(), element) -@pytest.fixture(params=[("RT", 2), ("RT", 3), ("RT", 4), ("BDM", 1), ("BDM", 2), ("BDM", 3), - ("BDFM", 2), ("HHJ", 2), ("N1curl", 2), ("N1curl", 3), ("N1curl", 4), - ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 2), ("GLS", 3), +@pytest.fixture(params=[("RT", 1), ("RT", 2), ("RT", 3), ("RT", 4), ("BDM", 1), ("BDM", 2), ("BDM", 3), + ("BDFM", 2), ("HHJ", 2), ("N1curl", 1), ("N1curl", 2), ("N1curl", 3), ("N1curl", 4), + ("N2curl", 1), ("N2curl", 2), ("N2curl", 3), ("GLS", 1), ("GLS", 2), ("GLS", 3), ("GLS", 4), ("GLS2", 1), ("GLS2", 2), ("GLS2", 3)], ids=lambda x: f"{x[0]}_{x[1]}") def V(request): @@ -42,6 +49,7 @@ def V(request): return FunctionSpace(mesh, element, degree) +@pytest.mark.parallel([1, 3]) @pytest.mark.parametrize("rank", [1, 2]) def test_cross_mesh(V, rank): mesh1 = UnitSquareMesh(5, 5) @@ -76,6 +84,7 @@ def test_cross_mesh(V, rank): # Direct assembly I_direct = assemble(interpolate(TrialFunction(V_source), V)) # V_source assert I_direct.arguments() == (TestFunction(V.dual()), TrialFunction(V_source)) + assert mat_equals(I_manual, I_direct) f_interpolated_manual = assemble(action(I_manual, f_source)) assert np.allclose(f_interpolated_manual.dat.data_ro, f_direct.dat.data_ro) @@ -96,10 +105,19 @@ def test_cross_mesh(V, rank): assert np.allclose(f_interpolated_direct.dat.data_ro, f_direct.dat.data_ro) +@pytest.mark.parallel([1, 3]) @pytest.mark.parametrize("rank", [0, 1, 2]) def test_cross_mesh_adjoint(V, rank): # Can already do Lagrange -> RT adjoint # V^* -> Q^* -> V_target^* + name = V.ufl_element()._short_name + deg = V.ufl_element().degree() + if name in ["N1curl", "GLS", "RT"] and deg == 1: + if name == "RT" and rank == 0: + pass + else: + pytest.skip(f"Not exact for degree {deg} {name} elements") + mesh1 = UnitSquareMesh(2, 2) x1 = SpatialCoordinate(mesh1) V_target = fs_shape(V)(mesh1, "CG", 1) @@ -131,6 +149,7 @@ def test_cross_mesh_adjoint(V, rank): # Direct assembly I_direct = assemble(interpolate(TestFunction(V_target), V)) # V^* x V_target -> R assert I_direct.arguments() == (TestFunction(V_target), TrialFunction(V.dual())) + assert mat_equals(I_manual, I_direct) cofunc_Vtarget_manual = assemble(action(I_manual, oneform_V)) assert np.allclose(cofunc_Vtarget_manual.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) @@ -149,9 +168,8 @@ def test_cross_mesh_adjoint(V, rank): cofunc_Vtarget = assemble(interpolate(TestFunction(V_target), oneform_V)) # V^* -> V_target^* assert np.allclose(cofunc_Vtarget.dat.data_ro, cofunc_Vtarget_direct.dat.data_ro) elif rank == 0: + if name == "GLS2" and deg == 1: + pytest.skip(f"Not exact for degree {deg} {name} elements") res = assemble(interpolate(target_expr, oneform_V)) actual = assemble(inner(expr, expr) * dx) assert np.isclose(res, actual) - -if __name__ == "__main__": - pytest.main([__file__ + "::test_cross_mesh_adjoint[RT_2-1]"]) From 76a93238da25a3fb2152a4c412c87421ca9ed217 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 27 Jan 2026 13:57:26 +0000 Subject: [PATCH 28/37] docs --- docs/source/interpolation.rst | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/source/interpolation.rst b/docs/source/interpolation.rst index c0cffba159..ddc72d399a 100644 --- a/docs/source/interpolation.rst +++ b/docs/source/interpolation.rst @@ -267,8 +267,16 @@ function space has finite elements (as given in the list of * **Lagrange/CG** (also known as Continuous Galerkin or P elements), * **Q** (i.e. Lagrange/CG on lines, quadrilaterals and hexahedra), -* **Discontinuous Lagrange/DG** (also known as Discontinuous Galerkin or DP elements) and -* **DQ** (i.e. Discontinuous Lagrange/DG on lines, quadrilaterals and hexahedra). +* **Discontinuous Lagrange/DG** (also known as Discontinuous Galerkin or DP elements), +* **DQ** (i.e. Discontinuous Lagrange/DG on lines, quadrilaterals and hexahedra), +* **Raviart-Thomas/RT**, +* **Brezzi-Douglas-Marini/BDM**, +* **Brezzi-Douglas-Fortin-Marini/BDFM**, +* **Hellan-Herrmann-Johnson/HHJ**, +* **Nedelec 1st kind/N1curl**, +* **Nedelec 2nd kind/N2curl**, +* **Gopalakrishnan-Lederer-Schoberl 1st kind/GLS**, +* **Gopalakrishnan-Lederer-Schoberl 2nd kind/GLS2**. Vector, tensor, and mixed function spaces can also be interpolated into from other meshes as long as they are constructed from these spaces. From 5979f71b1b61db09123191e2c3db9c14667e43a0 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Tue, 27 Jan 2026 15:15:35 +0000 Subject: [PATCH 29/37] fixes --- firedrake/interpolation.py | 50 +++++++++---------- .../regression/test_interpolate_cross_mesh.py | 25 ---------- 2 files changed, 23 insertions(+), 52 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 72776fffb7..142cc987c2 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -532,7 +532,7 @@ def _get_symbolic_expressions(self, target_space: WithGeometry) -> tuple[Interpo If the target space does not have point-evaluation dofs. """ from firedrake.assemble import assemble - if target_space.ufl_element().mapping() != "identity": + if target_space.finat_element.mapping != "affine": raise ValueError(f"FunctionSpace {target_space} must have point-evaluation dofs.") # Immerse coordinates of target space point evaluation dofs in src_mesh @@ -573,18 +573,12 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) mat_type = mat_type or "aij" # Interpolate into intermediate quadrature space for non-identity mapped elements - if into_quadrature_space := self.target_space.ufl_element().mapping() != "identity": - Q_dest = self._get_quadrature_space(self.target_space) + if into_quadrature_space := self.target_space.finat_element.mapping != "affine": + target_space = self._get_quadrature_space(self.target_space) + f = Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) else: - Q_dest = None - target_space = Q_dest or self.target_space - - if into_quadrature_space and not self.ufl_interpolate.is_adjoint: - f = Function(target_space) - else: - # self.ufl_interpolate.function_space() is None in the 0-form case - f = Function(self.ufl_interpolate.function_space() or target_space) - # f = tensor or Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) + target_space = self.target_space + f = tensor or Function(self.ufl_interpolate.function_space() or target_space) point_eval, point_eval_input_ordering = self._get_symbolic_expressions(target_space) P0DG_vom_input_ordering = point_eval_input_ordering.argument_slots()[0].function_space().dual() @@ -602,12 +596,13 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) def callable() -> PETSc.Mat: res = assemble(interp_expr, mat_type=mat_type).petscmat if into_quadrature_space: + source_space = self.ufl_interpolate.function_space() if self.ufl_interpolate.is_adjoint: - I = AssembledMatrix((Argument(Q_dest, 0), Argument(target_space.dual(), 1)), None, res) - return assemble(action(I, interpolate(TestFunction(Q_dest), self.target_space))).petscmat + I = AssembledMatrix((Argument(source_space, 0), Argument(target_space.dual(), 1)), None, res) + return assemble(action(I, interpolate(TestFunction(target_space), self.target_space))).petscmat else: - I = AssembledMatrix((Argument(Q_dest.dual(), 0), Argument(target_space, 1)), None, res) - return assemble(action(interpolate(TrialFunction(Q_dest), self.target_space), I)).petscmat + I = AssembledMatrix((Argument(target_space.dual(), 0), Argument(source_space, 1)), None, res) + return assemble(action(interpolate(TrialFunction(target_space), self.target_space), I)).petscmat else: return res @@ -639,19 +634,20 @@ def callable() -> Cofunction: return f_target else: assert self.rank in {0, 1} - # We create the input-ordering Function before interpolating so we can - # set default missing values if required. - f_point_eval_input_ordering = Function(P0DG_vom_input_ordering) - if self.default_missing_val is not None: - f_point_eval_input_ordering.assign(self.default_missing_val) - elif self.allow_missing_dofs: - # If we allow missing points there may be points in the target - # mesh that are not in the source mesh. If we don't specify a - # default missing value we set these to NaN so we can identify - # them later. - f_point_eval_input_ordering.dat.data_wo[:] = numpy.nan def callable() -> Function | Number: + # We create the input-ordering Function before interpolating so we can + # set default missing values if required. + f_point_eval_input_ordering = Function(P0DG_vom_input_ordering) + if self.default_missing_val is not None: + f_point_eval_input_ordering.assign(self.default_missing_val) + elif self.allow_missing_dofs: + # If we allow missing points there may be points in the target + # mesh that are not in the source mesh. If we don't specify a + # default missing value we set these to NaN so we can identify + # them later. + f_point_eval_input_ordering.dat.data_wo[:] = numpy.nan + assemble(action(point_eval_input_ordering, point_eval), tensor=f_point_eval_input_ordering) # We assign these values to the output function if self.allow_missing_dofs and self.default_missing_val is None: diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 23fe046485..4c1d53df29 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -409,31 +409,6 @@ def test_interpolate_unitsquare_tfs_shape(shape, symmetry): assemble(interpolate(f_src, V_dest)) -def test_interpolate_cross_mesh_not_point_eval(): - m_src = UnitSquareMesh(2, 3) - m_dest = UnitSquareMesh(3, 5, quadrilateral=True) - coords = np.array( - [[0.56, 0.6], [0.1, 0.9], [0.9, 0.1], [0.9, 0.9], [0.726, 0.6584]] - ) # fairly arbitrary - # add the coordinates of the mesh vertices to test boundaries - vertices_src = allgather(m_src.comm, m_src.coordinates.dat.data_ro) - coords = np.concatenate((coords, vertices_src)) - vertices_dest = allgather(m_dest.comm, m_dest.coordinates.dat.data_ro) - coords = np.concatenate((coords, vertices_dest)) - dest_eval = PointEvaluator(m_dest, coords) - expr_src = 2 * SpatialCoordinate(m_src) - expr_dest = 2 * SpatialCoordinate(m_dest) - expected = 2 * coords - V_src = FunctionSpace(m_src, "RT", 2) - V_dest = FunctionSpace(m_dest, "RTCE", 2) - atol = 1e-8 # default - # This might not make much mathematical sense, but it should test if we get - # the not implemented error for non-point evaluation nodes! - interpolate_function( - m_src, m_dest, V_src, V_dest, dest_eval, expected, expr_src, expr_dest, atol - ) - - def interpolate_function( m_src, m_dest, V_src, V_dest, dest_eval, expected, expr_src, expr_dest, atol ): From 1625b3b469ab90c64f8383c1b096b757b8172842 Mon Sep 17 00:00:00 2001 From: AnuragRao1 <102687968+AnuragRao1@users.noreply.github.com> Date: Tue, 27 Jan 2026 16:17:59 +0000 Subject: [PATCH 30/37] Added demo for performing adaptive multigrid (#4535) * added demo for adaptive multigrid --- .../adaptive_convergence.png | Bin 0 -> 34117 bytes .../adaptive_multigrid.py.rst | 216 ++++++++++++++++++ demos/adaptive_multigrid/eta_l15.png | Bin 0 -> 338521 bytes demos/adaptive_multigrid/eta_l3.png | Bin 0 -> 47146 bytes demos/adaptive_multigrid/eta_l6.png | Bin 0 -> 86368 bytes demos/adaptive_multigrid/initial_mesh.png | Bin 0 -> 44940 bytes demos/adaptive_multigrid/solution_l1.png | Bin 0 -> 32367 bytes demos/adaptive_multigrid/solution_l15.png | Bin 0 -> 155993 bytes demos/adaptive_multigrid/solution_l4.png | Bin 0 -> 104185 bytes demos/demo_references.bib | 11 + docs/source/advanced_tut.rst | 1 + tests/firedrake/demos/test_demos_run.py | 1 + 12 files changed, 229 insertions(+) create mode 100644 demos/adaptive_multigrid/adaptive_convergence.png create mode 100644 demos/adaptive_multigrid/adaptive_multigrid.py.rst create mode 100644 demos/adaptive_multigrid/eta_l15.png create mode 100644 demos/adaptive_multigrid/eta_l3.png create mode 100644 demos/adaptive_multigrid/eta_l6.png create mode 100644 demos/adaptive_multigrid/initial_mesh.png create mode 100644 demos/adaptive_multigrid/solution_l1.png create mode 100644 demos/adaptive_multigrid/solution_l15.png create mode 100644 demos/adaptive_multigrid/solution_l4.png diff --git a/demos/adaptive_multigrid/adaptive_convergence.png b/demos/adaptive_multigrid/adaptive_convergence.png new file mode 100644 index 0000000000000000000000000000000000000000..0091fe0a26376c70bb09924b728de14f0f68c384 GIT binary patch literal 34117 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

FI5hIwG~ju+Z3lhJI9J2mreZ`^Xi50 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 literal 0 HcmV?d00001 diff --git a/demos/adaptive_multigrid/adaptive_multigrid.py.rst b/demos/adaptive_multigrid/adaptive_multigrid.py.rst new file mode 100644 index 0000000000..43bb2e0a9a --- /dev/null +++ b/demos/adaptive_multigrid/adaptive_multigrid.py.rst @@ -0,0 +1,216 @@ +Adaptive Multigrid Methods using AdaptiveMeshHierarchy +====================================================== + + +Contributed by Anurag Rao + +The purpose of this demo is to show how to use Firedrake's multigrid solver on a hierarchy of adaptively refined Netgen meshes. +We will first have a look at how to use the :class:`.AdaptiveMeshHierarchy` to construct the mesh hierarchy with Netgen meshes, then we will consider a solution to the Poisson problem on an L-shaped domain. +Finally, we will show how to use the :class:`.AdaptiveMeshHierarchy` and :class:`.AdaptiveTransferManager` to construct a scalable solver. The :class:`.AdaptiveMeshHierarchy` contains information of the mesh hierarchy and the parent child relations between the meshes. +The :class:`.AdaptiveTransferManager` deals with the transfer operator logic across any given levels in the hierarchy. +We begin by importing the necessary libraries :: + + from firedrake import * + from netgen.occ import * + import numpy + +Constructing the Mesh Hierarchy +------------------------------- +We first must construct the domain over which we will solve the problem. For a more comprehensive demo on how to use Open Cascade Technology (OCC) and Constructive Solid Geometry (CSG), +see `Netgen integration in Firedrake `_. +We begin with the L-shaped domain, which we build as the union of two rectangles: :: + + rect1 = WorkPlane(Axes((0,0,0), n=Z, h=X)).Rectangle(1,2).Face() + rect2 = WorkPlane(Axes((0,1,0), n=Z, h=X)).Rectangle(2,1).Face() + L = rect1 + rect2 + + geo = OCCGeometry(L, dim=2) + ngmsh = geo.GenerateMesh(maxh=0.5) + mesh = Mesh(ngmsh) + +It is important to convert the initial Netgen mesh into a Firedrake mesh before constructing the :class:`.AdaptiveMeshHierarchy`. To call the constructor to the hierarchy, we must pass the initial mesh. Our initial mesh looks like this: + +.. figure:: initial_mesh.png + :align: center + :alt: Initial mesh. + +We will also initialize the :class:`.AdaptiveTransferManager` here: :: + + amh = AdaptiveMeshHierarchy(mesh) + atm = AdaptiveTransferManager() + +Poisson Problem +--------------- +Now we can define a simple Poisson problem + +.. math:: + + - \nabla^2 u = f \text{ in } \Omega, \quad u = 0 \text{ on } \partial \Omega + +Our approach strongly follows the similar problem in this `lecture course `_. We define the function ``solve_poisson``. The first lines correspond to finding a solution in the CG1 space. The variational problem is formulated with F, where f is the constant function equal to 1. Since we want Dirichlet boundary conditions, we construct the :class:`.DirichletBC` object and apply it to the entire boundary: :: + + def solve_poisson(mesh, params): + V = FunctionSpace(mesh, "CG", 1) + uh = Function(V, name="solution") + v = TestFunction(V) + bc = DirichletBC(V, 0, "on_boundary") + f = Constant(1) + F = inner(grad(uh), grad(v))*dx - inner(f, v)*dx + + problem = NonlinearVariationalProblem(F, uh, bc) + solver = NonlinearVariationalSolver(problem, solver_parameters=params) + solver.set_transfer_manager(atm) + solver.solve() + return uh + +Note the code after the construction of the :class:`.NonlinearVariationalProblem`. To use the :class:`.AdaptiveMeshHierarchy` with the existing Firedrake solver, we have to set the :class:`.AdaptiveTransferManager` as the transfer manager of the multigrid solver. +Since we are using linear CG elements, we will employ Jacobi as the multigrid relaxation, which we define with :: + + solver_params = { + "mat_type": "matfree", + "ksp_type": "cg", + "pc_type": "mg", + "mg_levels": { + "ksp_type": "chebyshev", + "ksp_max_it": 1, + "pc_type": "jacobi", + }, + "mg_coarse": { + "mat_type": "aij", + "pc_type": "lu", + }, + } + +Alternatively for high-order CG elements, it is recommended to use patch relaxation +to achieve degree-independent multigrid convergence. +For more information +see :doc:`Using patch relaxation for multigrid `. +The initial solution is shown below. + +.. figure:: solution_l1.png + :align: center + :alt: Initial Solution from multigrid with initial mesh. + + +Adaptive Mesh Refinement +------------------------ +In this section we will discuss how to adaptively refine select elements and add the newly refined mesh into the :class:`.AdaptiveMeshHierarchy`. +For this problem, we will be using the Babuška-Rheinbolt a-posteriori estimate for an element: + +.. math:: + \eta_K^2 = h_K^2 \int_K \| f + \nabla^2 u_h \|^2 \mathrm{d}x + \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \mathrm{d}s, + +where :math:`K` is the element, :math:`h_K` is the diameter of the element, :math:`n` is the normal, and :math:`⟦ \cdot ⟧` is the jump operator. The a-posteriori estimator is computed using the solution at the current level :math:`h`. Integrating over the domain and using the fact that the components of the estimator are piecewise constant on each cell, we can transform the above estimator into the variational problem + +.. math:: + \int_\Omega \eta_K^2 w \mathrm{d}x = \int_\Omega \sum_K h_K^2 \int_K (f + \text{div} (\text{grad} u_h) )^2 \mathrm{d}x w \mathrm{d}x + \int_\Omega \sum_K \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \mathrm{d}s w \mathrm{d}x + +Our approach will be to compute the estimator over all elements and selectively choose to refine only those that contribute most to the error. To compute the error estimator, we use the function below to solve the variational formulation of the error estimator. Since our estimator is a constant per element, we use a DG0 function space. :: + + def estimate_error(mesh, uh): + W = FunctionSpace(mesh, "DG", 0) + eta_sq = Function(W) + w = TestFunction(W) + f = Constant(1) + + # symbols for mesh quantities + h = CellDiameter(mesh) + n = FacetNormal(mesh) + v = CellVolume(mesh) + + # compute cellwise error estimator + G = (inner(eta_sq / v, w)*dx + - inner(h**2 * (f + div(grad(uh)))**2, w) * dx + - inner(h('+')/2 * jump(grad(uh), n)**2, w('+')) * dS + - inner(h('-')/2 * jump(grad(uh), n)**2, w('-')) * dS + ) + + sp = {"mat_type": "matfree", "ksp_type": "richardson", "pc_type": "jacobi"} + solve(G == 0, eta_sq, solver_parameters=sp) + eta = Function(W).interpolate(sqrt(eta_sq)) # compute eta from eta^2 + + with eta.dat.vec_ro as eta_: # compute estimate for error in energy norm + error_est = eta_.norm() + return eta, error_est + +The next step is to choose which elements to refine. For this we use Dörfler marking :cite:`Dorfler1996`: + +.. math:: + \eta_K \geq \theta \text{max}_L \eta_L + +The logic is to select an element :math:`K` to refine if the estimator is greater than some factor :math:`\theta` of the maximum error estimate of the mesh, where :math:`\theta` ranges from 0 to 1. In our code we choose :math:`\theta=0.5`. +With these helper functions complete, we can solve the system iteratively. In the max_iterations is the number of total levels we want to perform multigrid on. We will solve for 15 levels. At every level :math:`l`, we first compute the solution using multigrid with patch relaxation up till level :math:`l`. We then use the current approximation of the solution to estimate the error across the mesh. Finally, we refine the mesh and repeat. :: + + theta = 0.5 + max_iterations = 15 + est_errors = [] + dofs = [] + for i in range(max_iterations): + print(f"level {i}") + + mesh = amh[-1] + uh = solve_poisson(mesh, solver_params) + VTKFile(f"output/adaptive_loop_{i}.pvd").write(uh) + + (eta, error_est) = estimate_error(mesh, uh) + VTKFile(f"output/eta_{i}.pvd").write(eta) + + est_errors.append(error_est) + dofs.append(uh.function_space().dim()) + + print(f" ||u - u_h|| <= C * {error_est}") + if len(dofs) > 1: + rate = -numpy.diff(numpy.log(est_errors)) / numpy.diff(numpy.log(dofs)) + print(f" rate = {rate[-1]}") + + if i != max_iterations - 1: + amh.adapt(eta, theta) + + from matplotlib import pyplot as plt + + opt_errors = est_errors[0] * (numpy.array(dofs)/dofs[0]) ** -0.5 + plt.loglog(dofs, est_errors, '-o', markersize = 3, label="Estimated error") + plt.loglog(dofs, opt_errors, '--', markersize = 3, label="Optimal convergence") + plt.ylabel("Error estimate of the energy norm") + plt.xlabel("Number of degrees of freedom") + plt.legend() + plt.savefig("output/adaptive_convergence.png") + + +To perform Dörfler marking, refine the current mesh, and add the mesh to the :class:`.AdaptiveMeshHierarchy`, we use the ``amh.adapt(eta, theta)`` method. In this method the input is the recently computed error estimator ``eta`` and the Dörfler marking parameter ``theta``. The method always performs this on the current fine mesh in the hierarchy. There is another method for adding a mesh to the hierarchy: ``amh.add_mesh(mesh)``. In this method, refinement on the mesh is performed externally by some custom procedure and the resulting mesh directly gets added to the hierarchy. +The meshes now refine according to the error estimator. The error estimators at levels 3,5, and 15 are shown below. Zooming into the vertex of the L-shape at level 15 shows the error indicator remains strongest there. Further refinements will focus on that area. + ++-------------------------------+-------------------------------+-------------------------------+ +| .. figure:: eta_l3.png | .. figure:: eta_l6.png | .. figure:: eta_l15.png | +| :align: center | :align: center | :align: center | +| :height: 250px | :height: 250px | :height: 250px | +| :alt: Eta at level 3 | :alt: Eta at level 6 | :alt: Eta at level 15 | +| | | | +| *Level 3* | *Level 6* | *Level 15* | ++-------------------------------+-------------------------------+-------------------------------+ + +The solutions at level 4 and 15 are shown below. + ++------------------------------------+------------------------------------+ +| .. figure:: solution_l4.png | .. figure:: solution_l15.png | +| :align: center | :align: center | +| :height: 300px | :height: 300px | +| :alt: Solution, level 4 | :alt: Solution, level 15 | +| | | +| *MG solution at level 4* | *MG solution at level 15* | ++------------------------------------+------------------------------------+ + + +The convergence follows the expected optimal behavior: + +.. figure:: adaptive_convergence.png + :align: center + :alt: Convergence of the error estimator. + + +A runnable python version of this demo can be found :demo:`here`. + +.. rubric:: References + +.. bibliography:: demo_references.bib + :filter: docname in docnames diff --git a/demos/adaptive_multigrid/eta_l15.png b/demos/adaptive_multigrid/eta_l15.png new file mode 100644 index 0000000000000000000000000000000000000000..05efad50c317c5f000b21c6e41f11121009c188a GIT binary patch literal 338521 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

GRe<5 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�dk=R6-1}l58Ud04YHlGLh`jwr( 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%0Dill9Ax_=C3iKUi}5s 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 Awg3PC literal 0 HcmV?d00001 diff --git a/demos/adaptive_multigrid/eta_l6.png b/demos/adaptive_multigrid/eta_l6.png new file mode 100644 index 0000000000000000000000000000000000000000..f71d2c57883d22a56e1a2f98ef681802c4266ede GIT binary patch literal 86368 zcmZTw2|Scv+qRQ+kfiLQ$dbr1#@Hsxp0%t+nvtCuM)qtYTP0*?$eN{+W$Y#}j8)Ckl#duTU>FuF-g%?`Uz7AKlHh@T$7? zO~dNf{jS^Pq67Sew6{ADcCE)Lt6ZC(F050Uo+DLMvl<%qJ{76iI8k|P zyScOz92C^Fw-b8dF8s%9iZ`yQ@F!x)^M79mt7&N~j{UV!n4QHjH5U#-Ao)zeM5PQU)_6zBw66rm09vLg+s_PvaHK@%mL@Ie1~ z)?lDX+%+_hIRW+d+Ly@ZSHzhwFn;x^di0RN%OP2z^dgtq$#H}F^-3yEv8++1YRP%% z7%i@sy4-^q(-B&xSm<+1%+D*Gdmmp6)lur(UGkTiOR5aJwAZ*Nf-lRWC}(T^xp1|L z>EUN$jY%d@)fP_o?>;dwppXEL87L^DohfL5BT8Vu1nd+P)UTr`=z+f+zz)l$`k%8@ zeYw>Cd#rtSp@yl}-MheFQ%7$nCwCu&2a@943<`MEkh9r+S{~j`f(p_% zq;CjA83hFeA>NOlfK6c9|9v}9QWZuZk)B`~89zTiX+Jq>4{x}Ptg^DQ%#E8eH*ZP- zS4jEzyCWZ=rQCf){`HXmc@E6U$I;u_6Y1>XE_n9bM-Cn+q^hv+*^B=7-@oj1LOcK8 zo7{c=`?G)#lsP*iBP)GF=6|0J+zL7S6>RK`c5;0Hb9Mu&2Y3hcmeNhgKiB`iGynI- zf4lSk|J|v0^Txm5`EO_b^G=>N6Mf8YG?C;$6Kh|JlS|65J`tD67$ z6{u$@BShwZ+YHK>+}~?SL7`4@7p7r`ru^IVAkpz|3K2d&zG(fIy&k5m?LL?`_&|BW zwu#Luf6-n2i#mekMk{3bHkp?!_?&+m+sS@~k{Ur#^3FmlJ$vbPe_FEngL*UVRqMaa zgsj-VHsqXOg#0I$Wzoe)bbUW7Y(F`6vM$aghKzn5BM+aFTe2{(b!qY8&%)@ zEo0&T+@{&XsQUQZBnb#F!6e{#D zy2Z}-z}@nopnJ?=gI{V*_0;ILU;g!H6BaupU#sW*SxZ8&q6rSS1Ja#pkJ@6$+M@u- z`KwLk_1zn2;SNWkjwEO3C4;YbhVDTNIz7osJPF^X%`isV9x^lZbc;`z_%moAa z8w8)dourl4$$t0YTKYd%qeD2IL~axDl_xL=q+TBWRI}3H0GIil``S;g1GIcfCH__M z=FFYAx!F0ScXns3}9aE(VA=WJDA>9?!p!`~7GP7QW~L5|m}*9Z?K6`D^_gU5408YZB{+B4Ve z4TJneN|{hG^a)`h{Mue{;~q@kz3JlP@aYGs40ZExoc@mB-nS%Mp=NgM)EbS3e4E_6 ztPFf?*L=pG-aS2v+8JYHOKQ^Z)!5yQJdm{)g_XgzX?%3;Y2%B1_dWH$Y<^Ud-(`5% z*W)SA%{Ajr63`nb4aH9(rw5Y)vDa6EyqZqU#?>Y>;*DBI@~*L$4;IXF3azq@IfU3> zp!$_umSJ9b-7*rr?FoALXmoywsrLDy-Bj|Fv8bS=XxC}%B-_-BNkX2W%;cqDVKJHG zT@#yw>MfCt_V$|n+N&WFCk|Vuh)H^$*!Z=U%=od(yx%?ciIqJgF+U>lHB+V9Xag$b z=^_3rX~=C+N2x9nr?;-}4EGTh!kzehkvELHUp4s7@*QaNu=@96mbS+B_EzuQyQXIA zW54gU1zpZJU>>T+hAIr_5Xqhkpg(N886m1qv!s(nslwRT$ps?w%HUV$&%e}P|LamZ zmSVE=Kp3-oHx#}^%}?H65Fo$BcwASz7;PUYCKk<+`Rd9I`7DNPe_;%(L2V^(q%W7E z#KR2Vs~9_NVe~?bAo$9TVquf7AD&T2yO&H+7^MG_tiMRQAN)n9aIZE*?bma--$4k0 zO!iqkIylu_-q6xW6zjjbB5>{*Z_amnD#JfHouH|!ojMNN@eyzy&VrO92Ldv^ZHwFV z-AB>mrC^j1`4(+g;n6|BhKi3CJ4`W)0v~AeoK(m;%`?jZqkm`ko2Vq+vW1L9u;L#Vwf~i;Bf!^xs9o$zm5}vRH?OdXgvW7G z6RKvCe9+o0P8#y@rzF@3&MPH73c+_{d1*RFN{#V+Wzo{7pWcN&o1g95ws>x2Lxa7c zAWCbkm{y*}wzm3iatrGT^Ps?ML6)Je^))!BX?2HHmSN4oi z5~w_!m?prYS&)DMg>i?To~)Gyn$@Myc7bj!!DnS5C$xC;n3}MU zE4+JLOLBu*-*Gxe(5ICK7?ebb4tjY!N2|`6-bc?kDo8;*NflE(=3}l z8cieH93bbr2R=s$j?&;UMw}qGf9zGSK9@ZcE(0r~AYFlkoqN*=dw7n0{aI=e6J35% zr;%F8Oj=+O(-E?Zh5$xqk3Oh=&4RU^=2?9lK?0+rm<-gb4TC!N-zZWN6wpyJ&7da5 zkf8UTk%+jWo@K%GcDbF@VYz2T9fR=V-tOff;9AL>rF}N24o^0=3n7!eg_>h#aHR-H zKBJp?mMj!6r-kH$v?phRR;ciDYBx2{O7sGlY;<5kdviKBtyTOTWxHC2eM%%1?Xy31 zbYOZ&f082=0$ijCd`OAg*!q^KH)b~s?j848<;i@xVx>6fbAEiMpVMW?Rm(g+Gx!f4e^xFlz!;09rBAU-%q=g8#(Cz0 zJdQt0@WpffVi?~@c-?DiY|ym-f)3qTX@8oTaE=0(6nb^quS<_6g&k<>nzo`(Tdb$( z`suVl`7oIydZ2mJM!RhrDyKbAidRZAjvOlKy|}QE=O1HrlWSB573KJy zv#d`Hcp#Hf$bQ%MgzK{mT1%rX$X1i z%$6qVNM;EB=nlnMNnlA3{EdS(74NWby2%k{9v8~3uG2E@GC&+(*Eb4XU64MC;pw?7 zTX!XcD*mJmltq<21EYa;evz{QoU9uEswj$NEMO~WRU1b=`-)>CS@G+%V4P2d@=kd} z-nZ6A*Pn8ueRsNkS7@WO)yl|m+Uye5&Rul+rmIx=HVI_h(vPh7yzyhN+Ha#OY@74Q z=g$#7tTX#L2!d$=8!@4z`{*dPdLeL^%&2D#(2w;nfPsGUeiybkN2vM?TICL&9&$`G z;!(b6{YD|MD5U)r1;&sT?t-P&V$@ca}Ms;c=N&5B)B8|0#vDU>#GvuGB?e7?<>qX*Cg^rtMSMM{Z0aDIb}x>qFDu zI0~R^MhM^9c(6XLa=e?NBoNRq?qKp>b*ck>%rOoJ0Su0x@t&k39J3r&3L?h>aH=Q- z_GCMx>cgXxJvG%9`e@&`pq&vO?78gZ3@jo`sSIh7^QcuT()V80BZc8_;rBm28ZBg- z4IpN_lbt8v*KcDgl(mls)sB2}V4tQ`Ub<;TN#Ca)^kv*UQjYTXM33C{-Cp z*p|_(7{tUK`%50OTzHWR4_1*zX=B_0ugs;z`n1d0+|a0A)cj($B-c?i&W$x~mkT6l z$RB51JC#5*zdY2GFTp>(sexQ_;+3zs7nyQOjZ(aQ@3_!WW`~DPQldI>iP@**Y^)Sd zb!{E4Z`6+51?sleB1pR(*GPBvg7HrpNX~W0Ry!4;euf8H4B~5up!U_X6RxUYM_kAq zSy9Wmh3;T_Oo`2ifGg#NkqW1Iq~8i&BEBMq!hi2ZBDTwV+*G_s)pd8eR}t@W z|2FYDEWb(5&QB=sX**DD!1%|_g&jlz16ULbH)f~=Pco`!Bq*OpT!I&B(wFu=76Hq0 zfnlhQ{gMG<*Nny{6YWg?ElV>JXpm>OX#hS3MqDg7V#Z#DUrtg4JS|dd`zA2((T9@? zfjXkVIu5J1+W|xK&@HOiz0CNmbLFwG6PKR1l}d&rip{4@*AH{{M8RA1?JpT zR;Q3xVu8aNJ`F9+CjoyB?2l9kNuUqaSA@vziYE@v?ftDZghD2ePbog|7Y#vXG9=aV zXE!h!(1~E0LmDmlei`zzWlzUh8-jvv4z$!PPxFX?U^$uk9$Lkd`l9vZqv^xqh9`7V zQ%V`vO8SZpqyG>utCd&8=AJr@a)k~#S=2Z7Uz^{ykmau}Jb0Yme|mC1rOYO~q52kB zO-4(HIOjL};PO|C)Fj4ZndXDF+b(~+mUXi7Fu09j`&b#fzy}c0)P=0}#YPqH6F%`u zV?)IptEGf<9N6foV42CLV;SKmJX6Vn&(hZ8c>dnO*j<3MM>AsQi3eSuxnV94j`CMW zyk*`G_Z`PG+MZZpEuxVvLQ*H;~Pfa&wRS!xGZ|ED_NDa+Zxhm?ckE<$USZ7n4 zEU~W0fR$_e@7Q{0XSCn2i5#>w>~(m=>ZzT&5cqj@Mi^I)PRdSA8iP06zC`ae{ZtIs z=U|8~?gnGr8M9^YU54cwa4HKv!*N$%QA%4HfUl;qVEt9Bc|h^j&uT^QeEYI>If;!J z1zEJekU_tN@?p6t5Z93L=ala_?;<44EZ60dJKf+-y3pkzp2wU>50ALpl`7eqii0_y zMfShmHsLKUdz&4m)I<+aUX?mJO$+QYpUTL@?Cq|7mpQ*sX1Vdsfo=%y^KLeUW_+rJ zd{=r;qQN>m`p+JHh*WUR!PR@SHWQ2?mC5#LU&BR49ZgO}2M0flH6+?*JROS{|ahw)NJS_v)G|+<3@M!M~nq$zc$8n!)m#*HqbT);bH;VO6bsuptc z2vYHil&nT%-DTS?>F()GG^VW*A@doP!%Qg!ViehbwAZ zk_{6Z(&i6n=OgKgUv4W;Hb{&b31B;}vzg~y%?R=$cX-6i?$+4w-!PAHqqbzMrkPwc zxLl&bG zhBmp^M@t;EgeuM?zbm|Bg6S##W_qgfQ$HK0MLN2E)xrc#X&UX?n_8RTmMq!qdiEH@ zbNKZ~l4^Y!Q9%5^t`&(G*s`G?63qtiu%dom@x^FaNNuF?vCIpwE@2X zA4~5HHTC}7v-vNoAK9s8qHhjNX|ErBf0RvX3b1Pr*~+?Xi*ck|-l z(>cCO#@?JMR#Q>gX|~SPd(7Pet0y1ontAr*uCp9H^b|(~B44W+e;?DD{jPQu`u@u9YotY0b@CPyj%uCr)tP^5MKL28+bN%O8g z1soZGL`wJED$&fCKCo9k5qK{le`K*mJlw+PaKp+vH2A#W z;&o;f8bUp%2D0~YG(4`cu7DP9GB3S$n}*P1Se=<)z!3%)r?RV_qwXtX#Ba|nOf)+R(bL6kh;l3)wsz4DY@pK0v&W7PIH) zl{8T)>8pQzT`7riC24 z8owFX8ol>q?MU+-2-A^yZ7&kx>ZB9YqB>g6Z>Ft#?pKL9A`8GZE&Sh6wdr&DnhnxZ zf`bptvz z&gQ}|g{iVBY}MvU+vR??))a~7^3=O`R8Xui0re?*hI5V(9N78}@(ST#bmk=+`~F%6 zb@pJe0lBqvwcCDwF>H>JU=y?ukPSpe9q*2~6N@C|EAzb>U-|-Z@Bln%=|@nopv-FA z-3o5DrBBI(Z{wIn!ZnA^G$FCHN;eDnF8&zF+5lgZ<{wzIG-(R%y@=%_6amFA9P0@B=O+JjITqt z5Y%QYv!$-vDRAfWH*>_&8Y7|bgNHTC9uU8z7lybc zJYNSB45DeIz`0S9P+@RJA$QMQCU}UCRjkc$A#1DS43A@ndNmuQ-;lRvfCe_!QRLGs zAkoatk$yHYROI(_Y!)5XDC?pFs?p+b<~J>tkU|vWO0T87W4fBOWCox!i1o*| zA@FjCg4EQsn;Xcs2ns;%xJRZr1TpPM)(0QMyn?(ffjH2{2{UxO<~4QPJp;#Tmw(*t9C!{EPfY5-h;b`F^9(#lKfLNA-t!_q!!J%t-j zUc}NHEcpOFDd1g(|4=G-1amjZ3mSy~&bMJAq@((vJ&JWf5{D85=NX>Kx|X6`orJv< zDgwqG2n2!1Pk$*W0r zt3_8c$O~Yw9p%6qL73(9i2eL_E}ZxvPjh53o}^cQ0qY-5<7A0ZIGz&q)JXS?Ch@L` zztsvuz_5T9I*a6L+})y(P^u7t^#2_Y{#P6oT zzw0C?`hE(%W2<5FLa|gYF$sM@-^v4U%RwIK zoJo#pS?@Y`eW_+=F}~_Q*tF7@cO6Kno>eiH-B^%ePqFAgu?fesIWjEZ04lznD>9dmSv2N5)cmz zl`^dWn$*RTThCU&P6rh9Y{^{|7P&A>Ss-qibT_ilx4Bf#^$@6)c5{Sz&>4J5oI-(6 zsCt7)cPms><%cD?zs68{Lb?-gqZ?v`hVT<$Llm@-oNGesSao^fdjJ}gXJ?=yp`zf7 z)0Kxh$8=5>x_KVNVx8xoBmfl?SPm>6i)o(^ zZ#0Y)n|gLxbrs|*(=7WiEodOIO>%YHnpX*^CEgdV*8^RJYCBu^M#^cOQFLi45Ye<{Px&S zrrzx$4Xoh=pJzXM#EaFMk~7&i6$IZt9~;j>>7PTFBgm|xdN+BK{Z;edCJsWt=#F=1 zNQf`Bu43G(0 ze0P)oabn8j8I2Z0!Yx+h(RSU{iZ$l>$uT$Cm&tDa3C;KO-FDt-)s(q*y=)ho2oAD| z7vVDB)Zn*Y&H2&WpIW}^c^ zWLOJkbHK&s2?WF9&B3V*b7#yF(eojnTXx*&W_YDk-cLR=6TDBQ+WThexM#Y8l3V%e)wH(zXnr<4k)viJ_09Y%8zF$)4ZOzsD_VzBR!Mm;(u`zA zal9N~yI*DQA9xcK-oJQy>9}P^_Kp49V*QvC`i9LO&iNyPOX9a(ck6N7$GTqJ5_&g! zdY3m)v`=@vT-{o8#lk}}o3}qzj>@50%Mb*SvQ(FvNDI3qXgx&OYW$>p{_m~Q zm*MR?5z0&x+Cgu9uJr~Exsw&9)6e^{ZKucuudR`;jtbIF0JbH>p1BsEns96F?l>l^ z-*E$BZWbN4{=GqNsk(i`y~J$`sF!{V^VkwtPLR4;p(lyMY9+zNq9!eQTy6 ztsb;MJZ@gMq_8`t_*mTA>>XtP*Y&$h!>tl)%H-`ZgL&jHuITXW2;QmF%=9*hVaVoa zh{fmNl@kC$1ngg7f@uZ0cX`NgPAKT`Lx*qKUVw2zL{xh~0OMZy{B>mj4WoJhB%C*! zQ0|POgE$7xiD5eY=fK5+=VXmBxM-(KM~d0&S9l&57uYB&Px~vShvk|`(x%dthaLP#w*^7 zViWJcH7j0V%kGw1psFeB*Qow^)yi}{HMDU;l|5i$wsc&L8gAP%Rxa}`HE9fII*H1& zzp<}wS#vZ1XYH-pB6*&a6D%Wvfm|7qBrtV%C#^`#48V;C`%jfcVeLRrCx|Y5!-&m; zIx=SyqY#%N?TK(oEE8mQMEc+}WgKh;bSM{K>|C|5Q-_(}xg z_gp>ed-Gy3OktMNWdGl_Khyw&Ava~QGp2A?yT&LpO0 zo5vXG^*DI_9JdrzFomr+^|sfM>lFdCHq7KqC7RXLj7uCx8OV=zE`W>0GVpG7_B6#? zd8-K#IOx-fpHj89@&mz2h2`J*S$#b(zOf&J*o*K!R`D%W+>9=I$f4Hv&eM7BnT0h?^z&=3Sc^ z+wU--Url0sk3;B8m?0vN4}BMyfZhfXBA4g4=nNNU+E;Ni5$+{qq7s6j4uQFB-=e*H zYMnIC1b6#b%d$*CF!voxYV?s;B-|v=t!w^|2B%Vc#oeF||Fh!lpqenbkznt~QSh(7r@!$u>pc_QXT_ogPI80Bm{g-piR$oNosGJjA^LjCh=s;`P?#8mtHiWDA-- za+?<+b0RIRKK*zT9*+m?>(nHs3iYB0I3%yRFXa-@8|42HI1j3*dM*a$ui)6|JQ@Jkm#lN zTb;C6gQZWs*;c8HSo4OX-+&PCMegXn&OeS)IfvH-P~S6j7$u-y&eF~?y49blbWZ?| zWh*~PirId?#|%4zS>6iUePcfXnT|Ge8l!)B4W`2K<5J1`4?~{VP-n;Rbj}{*Jk*&) z8COzZoKv~N{Lo$6FA}~~;BKo3zoWcr4X* z{LmDgYrt6_%V9fR9|On6eb7Ctm6>lg)LER_8;^%IteMZCXNCB1WF#1^a8O+Va!XIF zn4Ax<6vqr56q)7?`hE~BA2m$`pxU-2Kq`>`mV(<00hMhR%tbZ{Ir*bMEPA;r4Vcq( zQ60Q!_vZj69;s$cAFB*UOe$2{(4PSxXhUOau3PUo9f3C6N4xpA-5>*Gi(-NXGTWu7 z0Vsv-HAdP0>S$zjm(_e|d!fNUGKx$jnc4bHhG2SajQFx3(3Cah;S10-LEJe2*_1H@@86J2 zK6(%f#9=w4$Emjx?kBCs-6-iBk_Q~LN|Lxf5+g#B4TswF-6Av#_$mvI(q`M5At07- zs0+mHeV;S_9E95s^7t69fiYxUW(%L)Shn=kIv^!$KiyHL$)3?$0#wsj@?Vu^R&0>l zz-LP#++B2(NAucsQYx6Jiwq+U5Ttg80G5hE^`+nU<3C*$`%glwk38!{`T0FwTn%UO z^8CfA(_V2g4*Ul>a3TLgqjmZdwH|XTijT~I=tB)^l0;`8JPJcpf0&mA@B~y>o*Xgv zJ4S1m8y~%DV~VN(@jVlIwB%1w=;mu6ft1)uI|*@L;j@&E_#%gzR7)7k4+wC)Mxv93 zx?~O30ob;x&79;UJrb&h1596Stmt*(p(j&fZGjfw>Y^m{0KKbT7sSVecQpL-_Tibt za*fLFazb;+ehMjsbK{Z7=_B0bP3YwIK-RH|JLFX!?VmR|Bb{!D}-B|B+-yvYcP-%RBdUyLfh& zEtxU9YijXVd`+YHi&WOC8-vRYMGklD$@Be2_DAAH!+ZCKW>AK;svbRiInIV_rbtO2 zf9q{`xNx%?$tclDb+qr0D|s=fT>4&yo^}4x(BE}R<%8U2xOc#I%a-#VYGeJEtt^-% zF>5rX*yZ<3?Uv}rQ*wAtn&H(F0oT7VlO?C$>MFviv9@E;)d7y1*EedzYqfB_4Nn0gxPl4x@{MgeZr;NB zW3kpzZY(9&IR5u0z)i1webn&I511W-O9U_Nrgs~h!AKwuxjSAbcY^HgedMAOc(fg* zl?{8aJw$)NiC$o8vv&I_*-=Vm=-`uQnzP7SEXHRl*Jlf}br_I$O zEw6Q?<&l+U^2#lYzfl|iLn)s{y-L*!i8ZHb`xEUgAJOa~OVzbWELbDOf?^?ojA*tj zzQKv1hKj8KePdvAY+p; zd;Tu#WMNGq*-3gV)F>3r>x0qe!`rq2fM9=PUv+Y@>@OfcPV*#;3Z_e6IoiEuh-y=+ zfh2RdUCv*%VTJ+p#=3|_WE5XFr<4;E?FIrNR50!Nip?zsS zY79@B0|&UL^k|=Xd)rm+7R@d(MMWIv1r|HQKZ({9P@VXt36iI~4^oRWK?YlwT-5p+Gr`?w$|RMtzgETmMWvWb zZ`vN^e0@T9+h9DkMq>2U{sseyqVnirzm?L;61nxHwMjyfTKAwvb?@X(Qx(%q-_dGQ@BM5Y=CY^@9k>mEG7sE-dS-qfTa;O40CBppz>o&?17viGY z?66KT^Pq)Y2JG@{fW{XC^bv05l1k+h-s~0mA?^J4@kX?Ij!aI=E~l~6e;lxIK!BZ`Zx84cY(y40?jhqughph7NYu|zPN{V0|>p&Lcj${zvr;9&IB*Q8$|zduc+be7~dEZ z=TEEbcd+Ur48Tl!S$q?qBY(7ri(Z;d+q~CsbrSRpbAmWZFR}jh>>9yflw;emye>nMDRPi~7XFPTz?k+y+P~PG=&DS`YWhs& z-7(EdlyEaWQ+_glrdyikS#hm*TLyEZyUL-CDk>Aa7I$NSIRC)LCK+K581|t;x4LIJ z5#RsL<_#kCTC&3O#V|xDK>0Hiuwt!|TGR$smgqBR>l&1sM(`iRX>8XMiSHQS&lggw zsT~mfozxe}L$4ZRGY-F5;)M9SR{lEtn*S*>i!-xqK;CoG$2N2}{laywm9RTj5Sj}# z`)hnF&fQp{`UQmEhng7!aBk12%8DLE{X@+$fQd(!nC8s5{B7>5%3qKM@nNA`UIS9A z2)^o`;J)#wa$r(XxQrqW0U4C`A*ijPEE!OFtZs?*9s{hr;rlr}!+Tt2xO+%hAu1A% z;;)%?k|BnA6wdQ1O~HCoW#whF!5y=0DUG(D79xukejxSNl7+`%(}2t$eO zQqkdgKA;D56+jPLeHiC0i=do!bzk%t1p;)&1rcGD24y(_sci7>)N_Qr#KP{C zk3#7VpY$<>8){kl!^NgNf?3psUBOFcwHHPe?D+0zMJ^~*tV&9&ZHB==&Nra4a2KqK zpoh<60dP=HywAikCWc8c&v}&NeHpgpo9Dzz2;@Wl*kl<@HIGJ24d;T@a%QOrP=bV; zr7D#M#l#heNN6acIiK(e$XyL*g5|sQ2Bv}H{mbQG_9IGPCh zFC^r1nA9)nLH3o+BPW-0rm7=aN4T?1ueI0&i6J&@YLjKdU#|{)u^1evKh8_be*$_H2e@q?fc3H zV^{)hhtAUw#CO9N6#Ub)kh*6b;3H8>AdTS zj3`xpP8w2LbpQ`O`7Wzb-LuLoRAYPil7lbcQQq?XLSH~;S9@u;!_)kd(bm=&!zkMM zF=6-dK_&OMTQdO~d878KQI`z3d7Fb4uW$5(kNp{a_o4RBkChIImTf57aZjGS^C5({ zc}R7bHWI_BvAxEB!o~V&j)ov5+v|`K#{u&Ys}8R7cWN8WXsZ0$ndpHjD)JJs9g9D- zKY60Is`)hiw}s4V{cqCO9eW1%l56Y;B>*u61+15lY@2!hVi^a7qO@l%b~LK>2NS0c z%DWD&_CiL;25vzK-KYpsts*pTGDeHLr%(t8?g}Q9(B0<wQssXpU?J9`zq_|L!(qbqr{IDvCt8mWP*b9Vw9nY z&X<0pfVG&@8r+Tg#H`E2*eoYgCfncAj*Cy zfbH*~GIb+|q|PngNp?BS6=jW9Jy!+ygoHmlm(KwfXaD+3##ydPm3kuk@6=j+Z}6l1 zt?F@C#x`?-2ZbJjLF4^e0(_lGqy=t;wX*YXM zuhI7u{%6hi)PKIRCuiAYemjh$V|4Y;DNnQX$v*k2!za$wvaZ_rHd9&m9vST-`UgVK z0@m-41{{;@p*v&Yoety6v1%hH^c%y`EwlZ%?pi-5n%`N=Jo<5}8DZ|(xNj`ndX^Ad zKr((7bnYxXK2c;Lpw^jN25jgD2gJDUFAG}jlkgiGOxGIXj<~aFf$* zgEpj;m6N%B$-&S~ANtods{NXDbyL84#l@Z4Z)>ZkId-5XQc2Sj$<&+2EA5tF*KCjF znP9b@o2jAtpr3m@_;ZBwZP^!Js7;)t?f0}#)zZt)j3hrNMr=tG>e8feQTAAqv3f`D z6Ep+^QGiMRJHBivo4|+{pH6MPl$gU7B1vLT2k1f3vB-#}x698S<$)7_JGPp>=Mz8= zt$d#WL&M}Bj(#@k_LaEU|6!H==0Xb1Lx3x%f^(yXM!szcd~)aU_2_?MrbuE|_Vy#4GZ9F%zs$!Ce>fhdZFGn`h}D~n0lVmN^GXB|_^Z{FMDltUoEg<1)tzw!~jE z;ve__L&y&j$?L#63xLcXgg^V)(7bAUmIXE}S^?dvsRuIHyw(9;zTUvjkdjbJhW!1x zMw8405c6B`k8gmy1?|@5iL71cp?ADz`4j8nw_s=Tw%Qf?J6nN#g5bv$LP0i3LcwK0fo7zhu~loQUt47X2?CIn5@|DT8fmjj z5`ak)F1F@5&V2Gl(x9JXhbgA&)$RvTOFGOjAZ&qZGXio4a()0{Wgl?Qn^+3Jl%}G) zGQ{@q(Ael4L1>*h(Ntp_+$y*5eu1W+(_dpCqseH2|7n9*f{zrjRjSE$A(xsdHCTL% zL~;FHko)y_j6YX6?t}>2Wk}TmPItR<YqHFh^rT{ zwlm7#A|uw7bt)Nmr@YQi1I64fbMv72ra9gmV{tsF@tO5~knbPk z&fHn^2$Goe6*I?2;nJVoetd{!ET?`v@GXvSOwsI&Ene@s9a&-Bd~c6eArIPF+KZvb z8-U!b=+9Pw9Oi+3y5+vF2-jAfhk{l<28NFneq@6I(ItvcUf}BaGY7hs;vJ(t38dpz zI|B(K4reO?;QO;ogr2B>k|JcL8d(9c82PZ=g=kv)0<z->M+O@RdU#6OWo%q%TiTp=L%+ zMLtn)FSBHJ-Yh4`44wmMFT6H_IK!YJso7Q~C@3B( zC@*O0R`xQ^@v|*wXBk!#;CL{xhLH*-cql$8mdq@Gl&HQN%_ifoZb4=(89BKiwYRZ}q{D z-)nAv&Pu8W9TfMHE&?MI-8?V$089b{30zgl0INNe+B-6&vDFO5Q~;vdDbAZ2HU^Zv z41hLE(!b;4Tf^DFk z$9Aw36daUn>7S|$vtMMpqC_{I9Uo6#|LrF8WXP!k?Z2fo8hthVB-3Cj+#N1yw;Cv9 z_2!r{0pURBRZ-RRACJu;`n>mdOqtk!DmG(pfl%_0Gux!=%Id+ zPOLP9JdtE`fx{7heH;3+|`*A2yTidYu-1}m+41AW_A;_|T?JQ_3Gv|)4!@ctOX z`SF>%My?*27Ol@^6iQqVM}-hpQEUZJQ?l!}$vaKcH1+gfAGw?@(RNXc0P}7hI-f(7 z&ca;Pu{{9u(uT?X1>_*-18qYfJ1q)`szX|~axj&v{fAGUO+-!~a3^MShEyH)fc7#E zL9j$zM(;|{WkaFSHN6{Bv!v{y(@PZgt9HS{&}V_v(HaLXmICxU8K_IyFSyy%()m&} zV_H953|pXhrgXl2t(mJ~>Qpcxc-vHVGVX9hWxH#1neCfQq>Zm^uzjCY<&+}L+t6`*jH6!v5i~vj=8SZ1BJjBfyLA_65^)bdjHO|& zdyDI2EkRzDxpX9@T)8g5rTaDUp$ZH$*e zBR}|m{x1L)aJ!?|@v`4-A}Q~pYD@N-xbhzpS7-pcX9zJSh6PyZnsZKQD?te~ws!Ja zDUfJ%=`4>w+iLb6Euk@?8yE`6C>j@_@fFEAuMaz_dqF{;L#{XsYizYfXv){JTLIo! zOZl=8S7_#Jxx*8zP@)-Kiua3ZiE8js{(lN%os6r@am^i!D~eW2Mb$N1oJE1IdEC31IqL^IjV7fUPV@d z1f-pt6E+LMqaGRWuMK3GIK^5spM-D z=ZrWR;bb*rb2)pRWQD8-Ac!r>4$PBr#JunsabB*>67P+EEd&V2IZbgkK+da-E-VC^3PJg59Wh@M6ZQm4Jz^ znr}L8^!*1#>tn&K@;>Ld@0nj-Z!{dyG&T;Mqthl5yJ`JsMzazwwnwA{?$sPaR9JT1 zBGdCog3q%Q&o!c^bvI6rpN%kJeY}Uinuax?kPtiRYF<{R9j-D&n1cn~Sjy*X3m-9O zu#F=qrn#aocgT1)_B>ka^4*i-+iHtfx!%!c+~gKa*&J=7CO6@s(rhNZp#wLzwDarj zc7@S6-3oT?Rg*o$^Tmw?4GkHYl`}1(9K#}PI%jgNhvf)Y25&L0D)!ljJnapw_PNnm zdtC3_TjRaB%7+lWK}X%S{QTf<30guZz%PABPfobMMU& zU1zPTx2s|z5fZF1RSH{nl-DtE2?4+mt@5-t2wGPQw-y%QF_Cqi$6MR#iRKORCs-=` zU#g~ouG4DW-{h<(Qf)5G^$1Mrx!ytL()Dx=U~8ihxkvpSaTg3~G%8lA#u>F9+;&1Y z_)i}(Qt;#&V@YMW*Yken07;{p0}Ph`gevsB>!ZZAxbMNP3uiVBEC ztf#mdvcnyI-)4SohDft{51s=c_VmO!n^IbO`|A$WIM3By23}9oOp-6f!bMZy-vow9 zil^3HMD(q(m!dynd>^sYltNaDR1m<+mTQK2oakweo|&2Fn)tR+W)Whozf;J(_|T1kBI5$d1~09xT$fP))xT$$7G{ zoV3_y`8;)a#N(L!!^^>ykKS-vh1?t1* zpfioBS&SwXE=nz;Oy(8+4ZHPI^Fka-JRU4i5h|F66965%Rt{n9JZ2CBKvf?#*O2|v z!3MOf|1QdAoBsF2P=LJv1^(hC5!hg}REzX%N039hBsF1Cb5O#3td`spd7}tqI6#rU zMSm}o!0E@Qlf^d+TI8P)+7h2X=x%y_)FUD;2YEq&!hyUZ19$X%{#@gdjnt^TFv~ z`T%ZY1!}D8ZXZGxZ8p+VRs_&SiyDyle2W9JaafzA6Lk-T7nQG8kgXt;1H6xH&>$gT zhQcu;Z&Q}@~eH0F!eiO&2lvN@&=n8c9MFWzI z*cyRMPzq*hRMbWbn}G8r%|s{wC|2RKnwP}?FDje<M-sSAG<^;H20?(-(|Mmt>7a2!|$^RN$zwp!or-MJWVfcssHa2nF8iG?m9 z^WC#Ng*I12pk`ptz}GaP^Flwf(TfBmtEz~i{6p|Rf!>w3&RYZ^9x z{6}#R!jaXhPYhT%_(7EqmIusQ7lRze063MX0IM?cuMPZbs+=~kSlxb&fPF?vIz3O6kd$aAg+BV6eGeNczc!Q3k%LI%{U zXPg&zO{-IxJrt3^Up%<8q0EBL4Fr1nRn1=3F=-`R+}~FikhOlHICv`0mbKQvrlH~0 z8!7mFYfzQ*-3IJBW5!KlE{F*Dujm&ih#U2Ku-~Eks2|A1$+H5H0JI_pb8>5tka@eyA@esa)vL}5 zv?qyBm9gbFo==PUc=N4X@$aDo^PcSou81FmmhgRVU)>|$qw&!XjSi9fV!mY7lO1>FT|gFefzcZ24;_D#N2ZPm;3y1&wnP_C)+xlC)Ug3nIG=#5u{|fuP!~B+BbooiVHXhp+ zwd#Z$EExq0pa9iGpI8LSPk#?cb%iHiChcx@e=3Jug z@lVZra_DfCf4SE`mdnM#k1BZkJdQ}|pCxs{QaRF{gVhkPKef-Bu#k4c8gnEF`U$mz z8H%IzB3d`Lj+~hKr00JcrcR6=-&Numbg~G?j4Pn5kbylNbc+?t2gCD<8y^tYM(^q3 zoxiPRU%h$W#=ED{y!Ru}MTaXU-rjq}U0R53R?Rvwh;>fjNmJ)4gsIWL2+GZOy~9!a z7#(=p|3YCepnz4`XLDJNZa~7Qq};C1QVuQKDO{yOjkRqxIb36r{q9DEHd{I1-OJVx zdy~I-sq!`kXW$A-)vG&0GklMRy8=zuke~}G?pLjRA<;+l&w?hLHFt-dD^%!)St6t& zWz|YCzVYKrNfeJh^xU7dsH~EJ^&!4=`sciR-X?qR_}7?Lo!w2|dcM}pW4XTw&MkT+asp(ez#W@SgEzL&R#dk6-Ljl5SP981!{M!(&wp}cB zjTKhJ;$2(yQ>eCTgU0RSS@b|XT2tt`z3?%O0mXvJKlMGjFef!=>n+CK#&?pJmzG~2 zM0>f4y2PC9jC~wDA6zam8{}Y|;rHib#}YgNt|^`1{!9R_L8h87lBwog&%5ZBO{PzZ z3A*=Qrv%MY;nCi0l6R@QPD3^958ubIPrLk;> zOOD-|Ic)xQaHdL@q=^HsFrD7?=g3hYHkE7^mp*I6{JN|7ZsYY;hLhKctDSvzs|K%b z0Yi_tSN?%Zi2W~NIv@n!jAvDLUpl(|h8sJjhzDz1E<9Av3j*5qi=jj^%ATD~`^y2< z#)E}@9Z)MO$A7#6L@`sZI#L`eOt&z4;~Z<1FAoKdKCQe5IPZ)(hL5H5uupTWc3~Co)X`<2bz+7wjPE%2?AaNKp z^r}byRyG9;=$89Rq8tY~tAk&hGI<$$7-`=_Ky!60-DgIPF42n8u~JuD=ZYdG@-yFA zuXVi>jW89@ARs6JqHm|@zG)NIlHu9bGFIhM6+{Pd7TNG|J>bG6UmxbwgI_DHpe(l& z&wB|TaqiW`gD6%?b6Ss7=a5-mkY+;%$nhXl;!$Yt;J^ODr&_1*Ocg5^t9aQ=&~Yak z0yJrio8=V((qPr=D-=dc!}&<0bEf9h13uB6nmd9c<4}Fm6Dz>Ex*iL)q?D%HISkzRq_aEP_d4XtrN1&@sKZYGaC?Qvv#LK|tNj*|vgnR;6brfR-IH0+fq45I7rSYHq+4o{~2XF0Fff zJ4%f|DEF$LT7{%ioeIMeJ)yRSO{vI-HM{cHQUWjqd;iI=6Ml?7_+>jwMfg&W1E@dC z1`Ua6h_4HhcE_B{(4vt)%B%)qsr~l- zfBuxQz$ACQi#&qCmM+U`9H#&cQF7c0gzzQKeTWWh*P&K*g$u@YA9R9*2R*){L1jZiI}Kh zTens-oFzM7p~}`x+d){}(UVWVWI)AL4jN2x?>bVz*Fot?4q2{;p^BM*5I;W(V$397 zor@v;_B1WXt?HouH@y^ym~a?pKDPzyK@}6SkY`G>7{a9ZQ@;@Cko1CpsW>ElKZ4D@O!Sx`p1^_IN_B|429LcS5@cWtj+DSr~yEXRvr}RY^8jQQTJfs>pDp z@MV&kR~Kg?GZr!0lWH;_zpzBuqKYfks{WBaKr9!zDAp=uS+)-JMyYd?j6F!p8KB%= zXA+l=tvOgOe|qK^PK2TjGC{l;{Ohgijt(e#jtGxefaRHBYTU(PTL`gsaai8Rg5k-( zjU5Apz=TV$UogojP5oT_Lw-YZ5+yLhRVNJI{W$*~kS52Hh z?~`&F&0oD0=#n10<^GstY8g1hhj}qH>!Ej#KX%MrPT2r5R0{frN>C=ln_1j`> zpIO;{9vXbtfUQTv1bk~*pnUg_nTc0hc?WVHCCDf6JC7x8}Edo8sV$4E3q zYlVVXr|BUA!spBm>jK$ybfs34@SEJAE|+cF+x)shyedxV@KX) zZ0!h{r_nxV`Yb8@4rjisy0pvw3=Z6uE`?+fUEMEpxhi+Q2>b1Rb?Nl2VBO!w2%s^g z%joxb5{E>{6m+ZDat$WkmBESNA|vQfMKx3TBH^EApDeygpkB&T#7EYLx^o(e<}0k) z;EHEVG981a#|i#hvxw*?i|5WZ%@OAvySDwOvAspnE&d9OR)@p198#ZM*zF0fb;#{Lh; zs@RfChpWHS^y*!d3dl(lOnJ+cVLDO79Qz_;Eie`IIC-m_Xg_C%vYHOlVNpleDlroW zl`C_FUA?&~JVMDl1MxN!^^*K&y`}9Ji`-lUI=N?GI&eSzJ;bUYn9{@rj4!s)R;)~i z@pT%~^$qJ5)5ra{`s^P9p1KAlfSx-JXs5xVu%^Qg3Ui_Qf7M`OjD2ZXBUc~9isqAnT@SQ@~K;F!ll*&5SIo&obkL6KXT ze$fYM+*n8EBw|O2|7PBnVt<8(`q24z&Z%@E{6efKfA<$%#n)hUxX|!}Xmw9@>1FsT zGhy4VGLR2+)Ks+Yq5-HA09g!v0u!F%ue8u__!;n#Q6KUduuT0{7qJi{C+F-so*EoXuc z>nGU=(7S95peaFqg+M7YR&zidaVREeVcpQY0TY_eSGoK^cnm=Z+Ngb znLYVTdTTIeC&-Xly*y`TsUc0+wEK!D7flJH^}pDtV|uT_n>B^q0d5U~orhRn(5ekD zg_LOATFxgKfbtLas-|%F5F8QKnV0;KY0-g{uj-6 zj-+s>xOfNnr{m{vU{6e?CMbX~9-TsfQ1wIRL438ubLzKLz<@eP@(I5YVO>aX_A)H8R`cJwbp=tp*YUZNF(au_xsA?Ka3n z1Rt9$Zv6thnp;&MB!%%u!%EEy93WrGxm^1lFCA93^#HCz0X_^K?7$ym+~B~bL)8sr z)ReKL^$?~(kYKxw0A{Y+xX{Ho1DhWUAJR0vm~~h@ofy(nftPMw0()n@q44g3g`dvtbAU;OHASrvvQ=sGT?{wo`r#h~E}Gxb&45G(QLtiLTaM z!#`#~S|50@_ePFiJ>P~S*kO%?!^&Y3e?3-x|I4bnj`EICZc9fJ{?a}n^H!V}0Gkk* zG`RAU4T4udwI+@#mf&wkxz$vMN18YczsZt#j8j?D2871QFbTw7sD?Nsrk3mja#Ka! zD;9+%0S_(8Z)uGL)1B|Jmeymn_G$eJ;PD}#*4OUqfG`|0-?}8vUtwVqz(_H&djBFo zs$~q=4%bFM*j>^knBZd3zXrZq&)|(*%@VU9ecIuO+r8@JmFKHZXDEX!5B^D>xm!^X z<9-Y!Hzf)fL@fB;#e&@(Ak7+cW`#7LaQ=zyR_6D1M>F}QIy|4z0eC+8pg5JWUV!vP zG#Nw@g2iNs6U4~x4ghrH-u`mUvKmx1L4~8*6H8!u`;A$C&qPv6Lu2n@+9ckREej@o z_ptEWpMF1hPfvXYlxC^GWkJ(IJfk~kV{RW}Z*5t~_@L|YCsXrMDw)^<8)gt+YtMnN z`JY9m)sB!4<9ug|5v(#dE&)$O3wVdfS&fgul5?z0QZHy%o z#`y=oTtBNxy9*cts+Kj?Nq`;J3L*@72WNRfjghQb;ck<-`xh#1l`+D$9O5@?wFT)v z*iI>2c0dZ4sK}zGxT-XT4k}~tk1mPR=`=QwYJ4kCO?S|@k}?rpfI9ZE7P45$<3DWL zx_vKG|FsL1oy@<;)&g}XER1$^ki_lJ|BvgZtitX^YdZa7t3_AVm7Ydi44|}-R9PKq{aIVVB$?@sLc(|T_fbYrSlp_SJE3I`B~YjEI6`0=t}ifijKU{4uElO?1< zBt%#k@naOBcjl?j#@DaXRgc32YgfN&R4{ciVCkm!8S$>uz3I>}&#_hcv7N*}S*vk5 ze(tEwxy`RNX#b}-ev5O6P<4>wNZy4~cTt1A?O(Xk1f?by=pa@j>o^ixKeX{lh&y(F zxhpf&>Gy*@;HuID-*5S3@0oSV*(*nVG3w&mTZXEA=_&m`LbiXs&Sa(9d)kiFX8!h( zv7f>bO8)i8;h$C0E!R5Ev%Y4)z4<;>%`fGnERogKb>7dj2Wp-kC+q#=PSKiUb1BJa zwJ`f*9ws!lA##@k~&6wt>41p03hYIKGaGYVlayRGZu3-!NSbo&Bb|+ zA46N;7c)L%oY}}_pz1pzPpXk$jF?FIJ^xvWtw;zL|{g)_~8q@lFd7`GPh)Lu|TV7|2gP^Ra_8-T!LPI%Xm1P!+SS7^7kRhf#abgi5 z6)5x_=8EC8*yI!~kezUSab-28S5vwf(Pc8JVDA;Raz&U`k3$wcpbuE$z3-`iRwvI` zBl4h}=q`{i+|5B&tQs2hG!8Yh2#9c_TxuYF4t0x^eCmkO6uvq+Aj0s?^M;sYN zk63&3bYx9di82h*J78h!X;L1(4NyNp{wkaZAM^U?xs7TwIR&%k@`a}%&zqzIl}Uto z&PzEE>q&*?cP4tpdekA5DgRC~5*CXY3MW+kv`a2DD){+icA0>t7hnf4AnJMrF)JlynFafr_B9-s_2;bbj{k}F@yqF2#S_&{_Puw{!u`+c_NAj|k z&}su6JFSz9V9H`jxIOnf<6c%}KIF#QEy3pmMj?7EvW>IY8eA?hS)ub6eFJfaV_*Ma zf8(ZnHG&ux91m&oI;#^=*!}9-0~UQjSL000GzIQXNx$C<{I9<0*PI+({yzK!b7-iD zc#lyYW;e$ep6M1>!ZXEBHvL^7k5Zmdrv7@Gp!EAlsINh$2Ex~1R<1hht5hJ(r0bJ* znhaa4`2o(8`YnaD{znG%0F5!tl5_o;jrpg#gMD>4Hy{mdMuLWDqV+s*Cl?~i2KyHT zEe4s9P@R?%3VSOOpya2SDN;`=BNBYq{8JrZ^Dy!eM~s z1Gc)L+(*|Lv5qb-x_yo@-`_JG$3TpOWn%1gL8(`zFsqUm>clNYbDy2eLdFZ{P|p%; zC!*XV?g7EXnU^6IQIHj?d??1VpE7rCn{zLW8So3D1$d<&e^dOuiyCVi6&coUltdSATOT|RLZk{39;$z<*;+gXHbXhQro*Tt!AruQ&lQw>1z zt_zHP)B|K$$8A3KiWK9q9?ME+MFUc}Gmo}%B2_@!m0%fV+AM>z_xOI^Z5xU;neSWZUBS>l59n_YmQ@rD`M?#|XZuDuWd3zFsQKssZG`gV z$k0dK31hwk_U#EL%4yVBS%+@$(}qCcw(rPu6Z{p;?ezq*$R z2)kaGm8oMYq+V|)S#T(!c4Z->y?(bqUjG?U4yPi}k?OZCN~GY%l9lVf#9(0{b3b}2 z_3&$XDWu+MeVGSi6E!vD!z}ANa15DrZfq)d|9LNHd6(t=uWeOP9Cm{S@zDe!4h3HfHrj#?M+HZDRTQ_!sPp zT1j`FwB1|?HKC!6BLijP&>vxR8;C|mOdRstYOT^ER+51DYV)s~^k~~OQ*&}i8+^&_ ze|?jwZZ2mUb>NE7-89Xp(dXm<4orCQ3*aOJa&%g}5`V5|I(S_Uov$%|0ocIX!CD^x zl98B<-VpOK1ywQ-dRiookAIw~DY#0g&6k1aeMRJG80Lyg`!xwcE5*~Fha)-955(BR zvt0qXY@N7;bovy2(sQ~O1+L?<0#dP?XBxV_scw@z7J?+Uc;;d3#ez&Zz z*7YYK4$hmanmNPTr4MMq*LkmneE*6V;{`PusEQgL*nZ}!2^$rFjp^r_-c-_xob%SR zyV|E@J~C&5?Jsj_t&)4Z6Mj`zk#oZeNQbn;KxG4O<$fg{#J$UaeWTG&44q2oR<45j zt=*z)G*^!VRngQMOT>;M?a(Bbw~JpogzpT#%ELo~2JGj&$+`=$FN5Hm$L)Z%?=vis zE9eIOAD#Ep=Ysd?pPGJ{dRTl8bn|VkGV)BYHP-N4TG`vxSY?!LRCwtELaHJm&(K|5<-@i)+Wtj3j| zTOl*sE_XqNbQUP+3)2bYWZijU=pw(AVucgnh6Gyp>O;7YdN5G(;y3OKUzLhRGm zOo$LXZZfy9TVXP}s2jKLlG3P)Vg`wRz=u$`U+4@6W{&s9d&RIO-C+JWQS6w?gzli6 zj>=sxNdE((P4C@`@rbffp{FNxjOvvs%!bdM`oETe!kdvvhJ*7#B+$CkYo#5M2i0gnai~+F52dpc@$CQu)=@OpKa|rs4}|ts z(q3nx=tT;;4i89N$hd)fU|8_M#rcbn(81H?oquf+KBRPkj5MwdD0@F9JHiY8&>Oqz?9H>SK>C zckVx~C2a@Jc0DU19jfeq&#bt?_LD1k-mpzlU|~>mxXFT!z;!xUxnT+7>lI2vc1mL( zUI2~VWLyE9FJk_R`@+hMRf`r-vMz>S(hO#O&z$C|2=;ot~k;c{$EsWq#Rod@Xvk`m>kyY4k@WhqjS#9mL}U`DI$= zkGAcNPBrfC5FT8IL%#B4a{E};nR|jMm+tidg||bHEKLb>u>uU_>8}HME;mBW0Ng&f zN1Z|z_V(6`o`v|@i@((@Of%sHctg75_V@Q64Rl5f0-2$kp*ff{kj|6{Wrx*mBOSMz zr-?tz`~@F=uKi5>toy=AvpRHweU)ORE?~Ms5j9o;^dux zFOIftJ1>N&SJiesf{6DojZ(}L5ao;cCUq9b5dUg#1$op`soI(kTHMS>N1tD6P_BLI zlu>_jNxeeiKJ=rkIucmJ7#SAKM)k8cMhdR|HQd^cW^LqtCZH_%_(iO=nGbI&Oe(a5mq+tq!skR@BwXs2 zR}=m$=bgvd$=0MIDrAwELbVjdOmK2R8tJ>z7h6vho2Jh0D^UeGQaJ(uvs1$yk1tsS zGi5+Li*SX7?ajxWHQ}JOUo!(RConh!3qBX#ux6a__vM+hCz^h~xKQ2y+lhF`GKwFajiu&9`oxafdLB{_cro;?&P7t^FSuRPq&5Ds@~Itc zvnIHjh2BG${D0aDDnGx+%hGGT50uJ=Wnhv|KB&5Y4ASp6a1=#J^g3G>?kV&TA)1qLw#n6-u%6gOA|(W`g!2XjoRmM;1Zbl#{~wcQA> zTJm0l@n#&9vh;J?zTZCT-hzo;z$QPiCD4!u-h>u{+kX8n`MN0y3?N52lK= zzD;mdv~ZlyDkZ4URGZQGmHGN%8i-5;rfB z@dZg<$j;o?8*nev;LaL(3$hbrNpr>mRQQjUf1fYlvCV?KY3%tY<0(2Gr^MX@nfa*6 z>4W&x5D>TV%^ZwiU;^Csv=vS%@nD&;y^2(sb63wYB`3sTtZfI&N%RRtLE;?D;+7OxbYfG_id zmMKO&0FT?()Ij!-+kZmlKKiF;Kq|l1Ys8siazWU&a%Rp6h*`b(5NLtb0# z7I@xwPo_wRp$kZjVyO@86dW`HU)L0 zY(Y1gayE1Qm+SBLGV=bBlK%VQ=DJIH6awTYRWXv^dyP6|TDzb*na-C(u=d7Y;T$Up zwZvQXxm2MUN{h8^PR5rppy#GDe>JBhxP5QBcTX`O|W~QCi z%B)J$+!EPb5=Zl$EHM=Sib83f+D#M)^F?tAqs=!f2yfM0`ppjO*jb#Mznez60F zfwMZS^~LAwRv!@MfZof`oOKQr&_PYO$#94qaml9rckF(>*{G72Y(F$)UJE!hurToo z=S%4DODn^oG)nIvu6F@k3$=uRZ=%5t82x7AV11Vo53S4BrNMv9o6`r!>@r%S05*w* z2_}`&r-AHk>gU#i+$Wn>VT%#1Q@UzaLMa))Cq)w#-LHZ-2X$8vF@6y!f^NFnpk*sT z@uCOv-+?MwfQ2*vFs7M6g&nK+x?PCFn5Ju+o8XTJ@r)TYkaX^heuWvp%(UDB9d34* z;ja{`l=omNU5@Z%CGCMK#|x3aLmlOlPID(_&YFAZd$p66`WA|gf5;5h$`JH}r7-SY zGK8Au2YD*Jft}FGB*9uYpV<4|W`i)`&7&!QIfx%8!jh(H|bryo^^39Bo& z>UpgGuGbE@`a#;Ki3a(t!hX}Q5mD7(^)UPmd&ZqG5E@hc?EB`Ku{4agK}xK~2v@8|R9JzsNOn8$Vyo|PxwY)*3kEQ|)QJ{Q- zlK;!3OW<|qIrK-OI*yu91$$JY;36lWKXZ3Pq4zhi+N|larh~k)k#p*w79KC{d3CeL#mRj?`EZTd5ZYfdZrJj;_S;T+ zu5%`HK*!tV2FdXg&yvDlg^P8bCu zy<~FEyxL`?$^66h-{;SB>#A_8IFTapy=ujVy;(oMhfkN~Ry%HBJrw`6#K?QBwiW-v zAI{ZyP!h(T+c35VSm_-0uDl;wC)TwJI6M)2ULzA<>JexDaf<%D18>1A=8RIM*eqioIgUc+>Kx@Y!tg$V*5%7NGbr>ranE?YZGHFnixz9pb^I+aILW zgfEH-S#Vl0_x72!+MzSFF4Ok(-REac(NONYi9>M0Fc;*>E|L1Umfk+Dar0cDiLAay z3z|B=eR%h-Rk#A6pjfq$zR||#>@w{-_(5g*0~HN79fz9NRh`!SZX=AJ-^cPU!>kdg zZ>(&tp2^gMnlu1?h+@cqmjJ?d6XPdVqya!oi8%*(ZS=$g>}^2?HQ}qKnibr> zRE`hxeioSxGAOIEEbwOTz1#qPj+)K{W-LB*QI9lJq0%o^n8ZC1R z6shzof0$!UH%5iK9&8=FABU$UNPrwCTfnq8u%ekwGfjP4QVe(FOg%P*D*mqLOFRg_ zU5`e#7XqRhF;QS`7PcEqyd@5Xt)cop=hMpq z*l!-Tj@l|u%jJC5J)#_JOwa>A0H;~vcs*ji*Eqc`u@BgF?8kF=j0bPB@-2okVl`J5 zS`g>~YeRzh1u|w2Fa|SYSng%nnmAZQEZ$-TobQm{y;KmxDYwsER@1Gr{%bJOacMGH z<-?EPaN>lwDu)-524(DP5$rz7+sDYJYot zXy_$v_aV}YUfS25-eLv*t~M1X8??lkuK^NOpESjaR61ftW+c9~YUd?*uRY)!jSmLU z&Wc*t~zS4KbvSPp^ey28MPTbo`9u>MzkuVDJ2U=j>aGID^N$ilTFC6h4O=JJ$= z=0SSL#9(`iyz76@+1vrJ^eLzb-;WA$FiuC>2yy`PBYn1C2@mIp&yY}UFE0b{RUc6S zPHmU#wnWM___y-TM6ks2j#83_G=_b6j&(&b@yw^;fuW0$(*aM$cFv>zS_|6*-a+&S zQGN5D#JzrfdnvT8xA(^q7zu}%?q#~Jr-`2`oX=QL321yfLe))g(a%~^*i|bT&jKsjlGn>R-h7rL-{;XlOys~ar1i_cr(Ae_W4Vypp7U}Y zuIT0l0FFu=Sdy9d&GimfcU)wM>Tr@WxM zqDnu;yP#VZ{3gQ1(LU5(<`n!JKsy6#<1WgSoVy-dvR~M3&ynG}*HW7E(*6?Xe5+kVyn_J zaK*^XIi)v)_d;@q*TX6x=c?vlBtSpjQ!OSyCD7hEZm;7K)`-gZ8L3Jngeq6Qwbb&5Nh;J5C9PW zUE3f040_Jto36{ zudbzk8_MJ{N7}SYQzb4QSx7C*Gz$q@)5woJ5n%k5>nE0Zo;Cg8MgVxBiY=8Esto?{ ziePEbx(eH>X>bKWB8B)0Gc-gW@tM1%up2l$hkE}mXA9+o)5r_AFD@-70kZP)!PC?*bx3LLpYNRIM{4&k#`1zm(TW^^pFXm8J8Uk;CH*Ao zf&p}C~CNznE(t1>XQ|U~U)(d|;L)S#AxC@~O zk9lv__?d}=ID;LskKz4V<{pr{ak#2vsw`9x)~nhEWOUbuj6Kxnj5 zVr`Iazj8}_B7QVRl)aQcs=KHg%&QtVKS6&|FFkWFQ5D*a>%d>jx8eI~{+z{bG_H$? z8_Yv|)OoDiaF9MCV3=}_TlC50!Nr|eAJJrmAKYQ6-`8B)S^j*=tyCGaWFLgmJ+YHq zmQ?u#W~6XKHaI08vIotJ-?hDUUT&A4Hkny}A_$`F`Vi@XSlQQf z&3|$6^lJ0cB&NDFvUI1BvpgW9R)t3|&k1l~PE4ZoBD>>Nm`9 z+WToU6mUH}MuZI#pIeDMHvP8ska)Lj+4F^Eb-+Tyi^@YpSWM>mpcHLM1##Dkm%*ye zFTg19$o<&@q9Rouc*Ao=%-;@?I`s^rx{gULO#d2DA9(mu@tW%knqC@0K@;iayI{Tu z;bh`SQV4T^?EAiF)@GACkNqoJxHNvoTm1s2OKjKv6r)`1}6IN+fUIO;;OR<^1` zHR9t|{$jfkbB*g14>MIbO9LI#j>bn;WM+6E)9>{^Zanu99KMlQJ+~xK8fg8c{4j5h zQUrHYx6>$*;UX70IpkAgfD&w|@vx~_+B!7|ARfj>1ruMhI8);rPF}_e`{w#_Va3kX zbg{{&)9<&P;ULkXRc`p^T2eJ-co%%7Q>$G4XRL@p2M z+Dr8hTG8Pv9_ks8-=Mqq>P`;Wid42_d<`ljyZ7gYPaW4f%5xG@BdE0X9;|%-CSWXO zlyQfGPVbMrF3q~$?6B#n4cE16t7X*qql}0W5etb20Bi_F0fWVacVo2Z_XY@Fnv)fE z0TMrNQd{N#NDo@MaD0a7QEDiP^>Pvv)?lbUEjwP`5A zftxN)(j4p8XgIR1PKj6;Z)5Ia3EyhM6}CwaR6lg%SN*37UFv6sJ#M&_tzjz-u0O5R z>r~iGSZhLkAUts1_0{{`k3sVpqYp$XvduCTlp+rPaF>SK5Ap_%$({NUKst<9C920% zZ(Xmd{G9%qpUBvzC&JIf1#B2H7R-1m{dWE>uM_s7iz&q#?|g-%SqW*oCM48fwj8IDfLr8WAfD~I{0_rT_zT$%|d zD>28+yhkP6C3k%G9T#NHF{ZXRowncGk>af%3GF23Di0|b2va`tv`c8o&PQ!x^w)W@ z8mR%uW`sD$f%KF@7-S{H{*}Age~Q7lJm0%=1 zGdZj3AKhfTPp>x8lsu8k0^8bfC^9<6R$qGdJ>hm!bVqgX zdT`T&9alEN5?n#XsmYf-@6Ik@C=A~E<@+@pkVhKq!PA~HbgJwtMA#l0K8i+nBsLSYeZcSz-1Yb)k6W{g=wjWd8Qn4YY zM^|mf7=gKKw_xzgp6S9yC~9#!hj)KmYAY|I2Zk=ao~v|A!%3e1*Gsm2_eMJ%4muKm zgJgFUcCXi5hnX{URV5V;8V7Wiy-zRsEjTPIIm4~)^)s!z3`n@Ea}C0BJye{$OvR;1 zK#WvIZb812%tT&Q8tIXDA>r-b+Yh2hU&}jU7oJ~NdRKpza6ZzCNN>Uu+)goUjvN?! zD2_IBMI_C+B6+*uP0?L$IyUcBlA1`J1NLT|MO2PUSbk1hA?|f6B%uJ${;d~$q%B|x zn#h6>fYaS#`d}d9iS1IJmqjgrNOBh#3E)b%VQ~dOT$>y&Rx!S%yp`ZfanI)U75^`? zv#P0+L-7r4SPg)G_vErs7p8`CHH!AkE@ZSl40m`1!y%{(qtrww_zIy*Zl&TNP2$Jn zl;MlSGg450vBSdk=6D?2A2~Is>77iCZ;7mEm1~9N65*x+o&87?v{`AMydfnBJH2x1 z0_Ki3fOOtei2l-W-~4&;?cGd&I%ZBVPXm+$xra;z{YS)G>i{*HVvN6*OPrF5ui>4P zZUNbO8&Ls_G<<#jLq~pB?TE!?Skcm%>}qE7A6hblPyjB)QYTypqlrwf`QZB!X}e6(=>&l$EjpsUZme+A1b2avHuf)aQ^2Suw`6 zsREsJFj;+WH#wA}0m_hfjkPE7>&4|Z7cxvaEIMEO4^`hCPv!gnZxb1nQAUT#4wYjI z+1XnesU&;vame%E<_Kkx77`+MAfoa*7B`HFb-Qv@Zt#9RlzGWU4gMTAF+7OnX)E z58nP2OjX2KEIEEkrWhGq1!nG)AMG>S{UHu232k6*Q&Bk2sjvAq@8#QYSJB7jL-Qhb?`|vwB><@f8Pyj4_V3W+4QT< zg{ixW3J?Xe-KgOZ?s45GF7mW$bT3*L^rFy(@sx@;)O;C`oI^jRJ2Sx+cdQ(70OF59 z4yq^7YtmxmC34&dYy^vwv)}paJ~DM_EsGa;8To_Mh(lx-RG84C?rt zY5#-CuB2rx_glkKu$?VOK;qTIgm$lK`FY8Om&Zmf8~Hwa7@#|`s!~=FHIC^zlbRY6 zb9P^$wALPMGhH7qf6==x(E5zZI^@FbR>O3`G8=G>LWij>-&1Vas0HrX#TYRvrEvV4!X%`F|i z|7YMA8!@_s8dC?xeqmwd#E6(CyS)HqV_`D7#^Lw2)IF=@`Dh>9yEdC!-jCi>PCS9f z$0dDNcD%Lb>HE8$BkM(Z&d23X`UO>-irNdiIbFi2AY|QUVC$R(E&dng8f z8!=H;p>aIxesWmVd5~sc73pTXppZ)tN7zZQFkhpnMea_sXfX-jsA+S#lfyD&&ZaeWDQa7EFQzv1iYz&CAl$T#~b z)iFUTbh(HJ#@o;FYo*0C{>=B^8}FZ0!ancTPCG}R1!maQR>~?Z?^}@$P>(>m`z1wtz&NzHcdZCYamhVpqCSo zt?^qYQgI+uY*5Sjqv}~ua`lAj{xBq1xCOhhbi24q!;&DX-F1pmF70{RNx9Ptau)!P zykeotEFs7!1+pp-Zwhu5dN5F6oJ0}(v-TT*F0d~J+t8QG5P#4l&$71W#pjbOWzJ0u$CNSuLqXL zDl_LX?!+eYEu3Da(jc>P{^0%9ja>{ktd#_%lcUc7L?5G^QmpWF{|?$1`EV`WUP%;;}OiTrUR`U(L$XJ&GmM955s8T!-0I@!I6wIs{IxNOh(MW zW2~2D8;jelu?g~u*HXvi$s}^<<*Z68#{v-deSHg6ztAB4I~^AZevtSFKR)~DI1aFG z%AVP}&lUB@%cStm!@e!0v}Jv3pM$r0H{GXhf&C}(>rFZU4VlYH9Pk)22pWeXVbvA zV?*EyuCozIEA3lgYHnkC1|W`dnE^i}A2in39^xYiwA|a$7rKi3Jf{=n@b03%WokHY zC~`UyI#t-a{r6hF^pdnPFwAtQQIa>!Dk(rMSR9-8Vx~MI6YMi#k0K?Vt}GX`k8zua zO~->792h3T{&F_)@3QqZxT~LFRu@b2Y!o)!q4Qt>Y9YvqH4LuosdxhXupUo=xyWyS zQ9(Bx>>#Ry=!u)vh74&q%R!qo`w{>;x37XBze`j?NW8M$R>0IzeHz56r8{QX^GT;K z{VD;Fn}f+f;l&StucdDta>UjS-GDoyJ2AcfB%uUjd2;%6T2zRyz5^b_g~i;S2hTyU zc}3?m-}(cRGzs>+;1OOwq@L4*% z+ArDyHtnSYdBYVf4M2y=w;nNDmkLXdBN8jj0SD)3X|12ldp&ri$Eo_nw%?>kLL3_? zw>PrgF5g^Lo&>A>V0R4+LI~qA@HE1_p%m~=HEgI}Ca_H!m{I`sjZ|0q4KS;W(+fpl zmQHyvuSBRw+Y#I4HFU2Gb%H-tiRm<*?^YF~f*1PqrZayEv-|z<67i^q1*jth++2Pr zP_owttvjA%G?(h+d=;uHrc+EA-R;ej8At>6o2kA*l>O<%7Z^n(<=OM@Q?BnI1nZ=E z9B3hyaW$4RK=rtV1U2=+K1yU0(JVY!xbC0Oz6v&i`l1D73}Xm8sh@QJvRvt-r*EzT z6uX30d>Kr|sUPbww6kmaD^%PX+UwXvQkQdm=!WS?J`cevDxxC)9)p7dIg0BxQmx7s zS)7$*fBJK!%W-wv&rwptz1L3`r1y*#a79j#w^SBs%VsAV;xkqbc@^IZ0wtCRnk&KR z#PwM=P(8muu33WOrQ)%<$)B+JzY-9M&)XGRgWTxv?O?jx|?V0;o+-5MW_fuAan~ zV*ykfuj~YPfj9XsK74)jRfDUn95Wg+*){p@+pZjri4S1auxycB_2nYU426F2nZJd( zrtUJ=6sPS1WiVNDcNASk%Zx=c!^TOa*C_*SzsnpElxT9&N5DFW6JTnN4;aZY&N2Dc zv~4~ToB1jMnLz#|6+d==l@-{yEV`0=-|NAa))CYRM*5Q3@}(7rfQ0;Z@v=h1zfEjE z)h_h<`NPM2RrMn9&WLhIU0*@%wU6P}lYVv^%TJ^J7vtiC$3d^;v`z5P$?tP-C5{<|rl#n3nMku~r=mHI>YaE}5=W4@Luwy}+NR zRI#)~cyv+Z5!Dvfah=|NO&`erQu#Z7l=bdQRBRbvX#DgAh=-v~wDUV=O?S=x-kj-5 z$^azpVR1Gdge!*7)773z`FPPHHXLs)dvava}!u}+`r6auRQeJVp8BHgW zuhLet2xZ4hj0W6F1xPUm$$u6KDZRS+V5?J3UslGN;R~j}?eb8V#Rp2wgO_%mDsf5M z4!a#p@ckgjgQpKSD}bv3+h))rQ{>>de>z~0`j_bf(lSp4r z?{~{p9Wr04{VrSvxaWZKsL?AytIkIW?7`~lB+rlnr82iK>iF<_Y$55$b})P! z=uSI>ke|0TENF4aR^JHgXti=7OOjBx?5(B=dX((vnEm9p-|P8)>3QF(cU$J2o=d-G zE^6MosLddOt`PwQ;LJIJ2iVBSb8C;RDr!(PtT}akZ|$w>5DH9wvF*}Iq`z|HKc zrMs;jRydRNwOD6WS6|d4MuUnO{%MZV-4IM*Ak;oO5N&!D zlXCFuSrczs_x@a2s*eUqL;btHiPt6&m6I%hF z=PtjNH9U2Vf8)jPq-&P72U6TPc}ct7_5I=czzYuxDe3Ay?>NcL_J00q{*?)9(+T!4 zUzfP%P<(^2?dZ*9r()``HS0jh9c!Z*pp#VG^Xy|{?r9JSyF2g z)3Wa1Dm(l4VDq00i?EuJ7!G1U=!bxy_J5F~32kF3dPMcXm*mNjQw_yGVc}z*cQb=m zoRLEeLSteAxqnl(MUHo{)FTCU19oB+hJ!Q%^8Qd+*`|L<+EE`y3 z)clu~oj8eb?rH{MUx6Nzz>aXD`OXxM>b{+)l4idvVLRy;h=MS|*pn~K?(;);m@D5aRhzi`vu@i1dPMDL2Zk@Px{Adn}7=+e>-SqfTCeaM0RoYGE?56+U7fI5Lphxl`yNm%?8n=aMe%I| zJJha+GsKuOL$9;wfQCD9UX3Qf?bO?>au{j>;N1v(&M&1efsz199}i~?PMaj|({5YO zw%CJR&jXym*YOlua!lS$?)Xn`?wUZ)F(f+FShEi12VJQ6W3R>gn1S% z^LGEHU*IeJ`rnyJ20mO6MgeJ8@IrvDTc9v&r}*{wrpkN0WScC44<=`JwOnwd$u*yQ zy3r85GI$h74T48mrP72RAk_Fc$MPj3r?eTOJ&I_{cY>{xOy~4n`x+&~R!-C{+%z@4 z*k=AvvDeGS1&POuKd3fW!y{S1eR23o4;;MU`C`n!rkL`0)kUzG?6Pvl zV>0dhtBqsupB(Ix2C>gJE|bPhJ{yUD#Q^UFt}h)C$!btzrv|8-*y9D_j-l4|kxD#x zln}z0uLzV10l(Go2u%tvQGQS<7=37dFC}FSF_0=a=`^&M_4Cb$)aSR>xilCa!%p zy{JmE33jKD7P2F!F@IN7VaJJ^8E%+M9G^xks$oiSr`hKR89mqW*b+5on%X;NbNmp$ zp)@&@4U1oOm+q*MV#mE%=Jq^3&}>ol7N7D{ z^%tLh38}1C=21QQ+x&vq8W{-CrJ67E2Of@U%M_&60C`4&vah0pLlS>(sa`@)lozw5 z_rLhoaZ-oVIMY5bDv~Hw(34aRhiiI4HP$L6sp;78bL6@iuSus=OQmlG1LVmn8YEpY z8{*@}5@`(|;jwDkf5;=CArOCD`Q97AfNbK}e2{w3k?m+u3W2t@7V2Dd5mpN+7OG*Q z&T1;pe5aA*IzKpyag?@GehRKTnuHg(Ehzlmx|UWkjNj~q@i;yVeLDfD9(dUBP@eg77>9|NF&BN*<1*eF z02O1ys;@;l#TBE-&@o1tnlcCo_$B?K{x$X-C6zr|msNq<`Y?wQz^C)s{Z@`^riyr# zZ=g&7Kl>1o>8KLDP*mI(`}7Zbv3M~{4FLJ=W$dc{iT55DGdL;v7wFgZB#;K;rLUlL z`S1@i6`)FrzQ3&@^9oOd-~}zbz~RPh(`msG<$K5UNT}Ut2 zDpu|YuI%MD&Z5cF4;8j(0vKpp>iFUYz6%{61fkE?X^E6TKZ=HcO3NRK=_{aHW9bCm_a$(!6{2q2t32KH#Y`sOzsAmjFx z-pRQIBmK(s9n>)pvi{Fk&6yP4T?&e8YCX}{v(m!$8}|KW^wr|up1mj({HvD>Q2Wey zY@Y|U!;3;j2tyi*BY{lX`02}kWHABeB#Op4GNp%lWcaz979C6oa4?N}fZOX;i7ohQ z07PZ&FU4q(x5;~q?Sbfpf+6jcw^SKV3{Yw!89eVuqej1EuqrEFmtd2i?P~KUyJeAj_9r)1~2s&UXmp7rphpprY%bG95;sD^=tQ`{sAf~`T zoseSsQpzf(7;QBmJ`*1gzU}ovn?%Y?HCRD)u~#t~s#VtATxqB74<~?o@%y-8UA4>0M-i@@d3YLdYb|MV*Oy~F|(=c_3#bkELDF_NoD*+ z4j*)sHE!Qjr&z8BWn1oC2Eb%Vm}XTp1=8Rip>fpEiV^@}q>RC$ zsRvWa!NOFD1=C%tmflL<2a55l{8krpR8hg7Fm5e|% z>IJ^P^midE&w}o{WM7W6%XD0e(VV>(B0MTGWEfIq+em*#(mxWCOF1MF9{=h#J;D}l zQVKpnLV&vnA99c(m`HmC0g)HUh)6E``x3N7?W~I3RG>W>r34=zTnnI9S)E3BGT}Qj zj2Y~akL;>Sr923tw(Zu8!FRiP4!{&s6gzjHv%x&w+U8-oG5ozH%qQ} zL+)B0hjK|O+r+Owum~D6PC3Sn6c@%}#&chHoM&_TDJ<-FN4m${zs}z@|EfVZt2eCa ziwLv!#_Yz&`CL(?ur6c13{%Y43qr)nhT;8HEeH*0)NJeKES`sNUuM8nfqmr)9n1uL zI&_LzWZ+Q^Udf?or%i*evxW#?2?-A(Z@|-2(t3hXOO}p~EaKx!qviP|w&Rjk<+CYb zLe3gD84AC$myL&njccRJi4asiuX{VapTNQI36O{{{?!ZsiBb}42dmn>zq1n?Z-8wC z0WyI~Pz1lHia2m#X-7pTjyuL%XQCFOC1_-zA z-^_eghEsKbc>SV-u_nYX5oDMbTL)n)Eu?sohifwAt`xMCVKPj z5>{KOQTT%0udDjp=D6Z52Gg~%Tj@D-$T6~Xn7N0;@ms8w5 zOTWf2iY8+UlgC8`=+AxYV-=K>o@;vC;RXlxkxD{;?aI`L8)l+ex<*O}edRR03 zi%FE5RB^pLw?Zd_rOI*n6npji`700!*j2XCm1I)N%N1sKesz8xBfD{GJ;&q^iLsxY zuXV=#!Lkhm9@o(cWl`;nr6cu2+X>+)J=;O$d=ANjK-G|sO@w)G-RRiXTX|aD9aeUK z2-Al=502OZ7AvL<-w6+3$y<5iva}unFoQ*ir$PZITPd;iIFVs!m7}@Ci)B85K#=r$ zD!m6o#}bFq`0bj7*_juia(?V4b1DtaQO=&Sd;zM* zO})eONlRKIlJ?sgG;lISNUN~#S0B85_bY1OH(rijZoUAF&%49rdd#!Nr#SA`%}9+p zWtl%;sZq_5k92ymObqsjC7D99ReCGqYuN}A zH_RbK^Au()2kixzm-LOd?Gmi&L_Kq)C5Z$2+S%aKX~fVmha^0UZgsU6lty!18g3CL)h9=L#M%J|CUY}0U1NVLp9!eAoL{J{>$3sjYQUfjdn_aXX*zZs zENqcgt7*#`aJd>31*3eXz+ZT&ccKC)u0ekiA*6_v_`ybm8TsJIW08V%?@MY>_)UI9 z<{1)+!?oJN0~;hh&PX#}JGR~HivIIyJJ@EojT8-y!+>;HOxXs32#D+gmdX-Y@J6EW z1L&#*jdO~f(RLnB8OA749{QYXSTdAHDQH$?r4yM}0iP(`CW>JaAnJrW5i6!s&Ww(WIbx>z2y8=FpICP{yZ=oiupJM3{?*HJ$q=+_RP2&f zM?m;Zs%WfBfbj@$KBeB_rmcvUMFuIIE_6owe4D&dL1QwPEjvj_+$B6#L9;m3rXtaG z_FkgrWr+;RpE}AY1}Ky)3D7)1#2r6SLx|2(wI_e$IflpKi|JI;%X6~~Y{ox5z)<9M zkIc9O@}&GdK$$tJ8R0-a!4gWzrrXOeJy1r3&`);pDM)S&nnG(-_ileyzLRB<2XX>! zNR-HdGl5kSj=YYk7+Q?Eyzo)4$8U#-K0Q>!y=xE7W=&4xNz=PZ%76BF0-`s_ChlRc1E^Et3}99ur|`_@i&7qI4>N6Ie>N;eS^c!O zW=zGjD`%Pvy(XOjX4Hzs9bQqy%1kLUM^^jD0XChF3LFTahcs`?lWAC*1%Mx^DsUPE z1XHq^RBf}`{d#cz14x5SfZFqHD%KNvxvg66dCuN)kmwYTKsR$J?Ablgb64*q*~;klhBJ zZ+kF|C|Gz=8nb9&XLFAB;|FfRp2<|<>&DWeKb&_f`PhhCbzsE>&h&O2AwBOv`py_z--j|;Un`IU>b+199KB}SimlaBHlM=E$kEW2GnRid|ol{8F_z?DW*a5&A<;++Vu@lFKb#AVI! z?bB1Jx|Ctt<1|SF`m5yO*?KK6MnkcM(pcx1$T_c#7mMm24Rh+kL=%9+K>>jFrkskk z+>t~bFVvlMbzOJDK}V7pGvau=>N1p;PCj{R_=iesO?V~^0v3QSMo;lU1+sN>neycm zsU$_faCMM0ZR=P98v-Hwsei}tx0(3T(MTZvT<&@;5cQhE|&;^oAa$P6;t6LkS% z5n*kNBNNCTOreIa9(d9t}k(M95e5 zMwG^b8B7_Sg3mG@7~h@Im_IV|irlRp7ax52W+gXdw^6`dDSV|a<|cRX;EGh%>9emU z?{FGU?O^>fu{ZWJN98Zc{VGDe;s&r@9rzJ2ks+f1>f0(TF>4Ab?n_~S^J=gnm}pT8 zZ9B4dOwt%-1>G%3bbCv=&1U1(o(%!C-?3s_o?Bg>a zWD&T3y{k6$v8UaiL7tO8tA+%w4I8h$h^(EiQ9|Rq))$0a-)&zYN&>Lj2<` zJmFiuutTf+1~6f(K_T5U*_>7a9c4b|r)N%#&yIy_Q z!Jt1{*q3C{RJ;|dmGKyhVsja(<2!dau4vQB>KO+ESjX$ki*;k(lL{5!qm;;*CL`K&I@X>x?wyh0 zC-5NIsTust+!s=rhlN8by~LZXm;*Pgz(l&J2ukzB=emYZZEw;S94^rAoZL$z=2GD4B#VplIU25A8N`)%(_l)~Z`b)pkhBKth%VL&pTlT5k5&hl zQ?Gp^b`}nrf&Gms4U03nfeGX|Bd-03IIa#JEzbqU? zmFC;2cia=VVr0wD7JZ~Rtv3(XhzMZ!96m;@JShL$y&t*p(I$F(+TLn-(LHkiqfKYz zoiWp_-OY*KE8h*SP!O&7S>B}ES(2sb(g`XG2+S7k7}hPHayKo%`vRjdA2V3si?^Qk(7$1sr10%*%YlRTADlA zP0WnMc$Lk z8mP@(F5PxHtw7H&83v1LzIRS!I3lgrJ59Es9O52Y`)c4=Ae$5b_FE!F?=fyG!SS1Y z9DGnh;W8DG{c-wLI)-|BX(krfa z>}f2I(K4ad9QMx`sllAqM4^}n5FND8iYMxBtl##$ox&Q@%^GqXKNP1rxHB&Hjoz;M zG_$(i>{|K*>V~Gyy`Np}Bg~W_Tg%rht@v-V?wFm;l4VUm^so3y=jbud|OC zB$T6DnoygHW)@jdrkM7Zbq}v-!>NBQXR*kM0bJ8ZE_f~kc^CoTS zdCjHE)^UxNS>vdil&l66d8-qJU~IAp1>6%0)F>DYSl-L@^2h^X#N+ognJiG`=+$|a z3j0C=gzFo|qQ1w`gz!#LP-nD}psMh%O2CaH2wuZmg@;RHnXppcR}Md7eqV`tE7#`? zu^=5={Jpd$H*@56rr>Jrt9}}53SsE@7I16QFo8KVj0q?}JMtY)LZKGIyyB?HU?EEf zS>`5Qmp4h@q}&KHG`HWKTAM$Zu@<>|K?i8h&#ZYO-Beb6aZBR zWZ}%tVK&TR0m~^3B44XbQ&w3Li9W3|SNKO#Dptl=9=y5lknOUc8c_~AaxQ*47;M9$ z3f$kzj7i)8pe0m{4Be|PSAkQRDi+FAb}I?fBNV(BcxIl;SC##etLlMcM98HRV@tpQ z7Sw{u5S=3^(Q@p-lwVE|*!Uh)UPIYmFR;;7)GH(9@;$(yq60AWt)5QA))+H0ZE8Shu>RPN{Oi+n z=`$K)0-A1Ycd&3R;3^1vwJo%0{cK!#2JZRT-dsfJSrDQ%U>JO^qyPE>uohv zXeoM7v$&Q}YMzNk72G!f^ab9etII}&7BgOMs{O4zTF)n9l2ZR-SHvh*bo5%yskOEb z*EnF;0LcdV56K2z7~zWuEBEZhK(+-x;Iino0?N4hz@$o6_rg5M@g?~XE|Ia1!#O2= z>k(|?4)*!Tf>7wFc8O#nTG7)G#HMB_Olkq^Fc4{ikc{}*jqBfy@JP3NQ6~&;~-vTvMu-)9E}&uo^k1 z^?un*LK;#@?fq!H#?f(^$aWeU_pPL|cjpQ4V+dRD(<6?}rfOP5fKU}+a*^`T^PTyP zP@T-ju1g05sF9B}GoL|n4{Sr(^loQkl10P)9?~}JzxJ3otUTc`zi~<%OV%l&*h35u z7eRlk#Nzu4V3Pq^f#q5%JS_}lC zgjs(MZ-jT#JM4T?k8AdglVg`7rxw};U9xN>+$d0O4diNni` z-O>G4GGLl-gQRNE&m`k@=XMq;LZ80l=HS;Wen%c}&&2xmHIo1)wQ0mTimgt>xbSw+ z+u5*BOV_*isQ(td;PaWG+kQu+gXHC4E=F~CYq~D4#T|9^l+7LC+AY8OmT}n$xKsY= z>bU5w(m-Fd9I&{ZJggKN?u0Xe)Fw^uVzdlCGhSm|e?u=9c%i``?eTvMGg$cmF!1DX zJpC7#6u$BR{0+R6%-#rGVzt59E#iJC&phGV{T`OKDR3#mH)rNDL%mG@*5c)a_MPLF zlB3zubfs9U9C;xNHu8<;E8p@nXNN=UFCidNwP8!Xv}8wj&e>@blxI(r2R?eOF?tz> zy3hVXUl5>cQp$>sdjiUxS?FTTVfqXJ$!fPZR)SgMj9NxT#s~iH&o_oz&$Cg>L4!sq zAv7*VR8zN#{5ieVopz^IMXhkVkMl2WpVm$v<$NFe$wFGV*w!8LeIM1tFWPi!5!HLO zF-<3Gy|M76&vMMm$EQ#B;7)I^9CYfd9ad)XJ;dqDc@*YPpN!TBfkyl3J_!hN+@t{+ z0N^H>%iY0jRe`N8u;jH#(2q=~ijPrm0k%P`*a7A`0n!W-yz)tm5zMsNC8T4+eq&&g zZVilP6OVWrQXphlj$j{kH{#ou80Mao4t*V{iRq}wYO7Iy z|BPN*-@!x8qiF80UYa?klgX6Y1;B7Ugo^%5hGk33jJNX?2N=DsmxNhAxbM#(=J^{p zbU>d$h&IR;Z#wo%turGaql$ zk@Yc>f?jMoJ;Pu*fLMwB41zq@cP*=9`OGYMi^;@WD0oFpPLiF;WI3fYUM|foM}I*Q zNEzIZe{x8MgD0fovLY}BRxpsD18zCHe=-_(V|@f|9wkG)(gV;WH62WUNs1WG>ljv^ zGj%-U>dL;Ma2YqZEf$n+AviYA;!N+EJI*+X5hbyEW(Ls7yJPi9H0FXHYWv4;XjO!s z&z{wrtpMN6@Lo@>R05e9_>P>|K5e=`w$V-~@MM1fZLdZV9J2$lpnm!d@e8zxzF(`q?9PWg3D7?7ZXL#e57kwm$@KWY65axfPx$ak1QUhl%VVij&kc$b9R zIOuc7Pd+^6bE)Ac*ZkWwa_#T}-NdKGtuj7E9kd-b$0@3v;xusY{(FfTah+_rQoE|n z7xIQM_?v*?pZ{h7+>o*Z96!jaScpkuan#ST)nceF!NUp+Yk(pxVSZRBua8r11J8LK zd%Ydlx6SB)J3f(C5O6ZqBN`umUfH>Nr#=f95i`Oml89DxhU%hOkeGA57YB)*=|mmA zd`R{UPi=>t<5JK3O1O%mc7rH+46!)$6gglCSig#%S_&b8+v5sW3+_=}Ed`e2)+w25Jw z{9|DY0lU+9g}oKrX{5Pf?6Z^3!`E1|ZD|%B7PHtTK96L;)f;n5ixYuqQ=)ygb zLaL>_FnYrpyQCMy|s*$T5k)<`3mUC0rt4;;d2; zYOV1-vnJnOUc=pp+ReFiT{e?d;Esriu&$S2KrmebOP3NTOw2}@vjV<+8s08DCO4m! z@HLBTei|*et^KW}S;A9CH8!x)YmZKUjg;?;$}u{5W8}(8C1tO39K=R|AWzoR-@?C4 zgS)s#lqGn@Xk($ArbZ$MldU+g$%>Td&9NsyX#ee;=RZdH8wFErev7P$96!=rQjAaMpBwWIQaJ4vI!(FSzDQ+~My;E& zdXw6BaPgy`i0@3emQQw_;92X`o(+~Qlv2c`-c?+@Za!*%DmljTxFAxJ^&Jl^l?CR% zUw4$hal!r4D~&g?l*O&|UT5ja_{+X$AEh4LMG_!Z8dz)2t`CF&`pYf61al2R)m1Cq_6;(!41D0W9*Cfga z=`3^hS;!r}2p{_PE^p!;(6bzvsLTk29i1Po*`s1IMGr187mhXaWC91|vWJJiw8|6; z0hsmsKi7AcD-<}2D6#dkKj%=D9rEt!cQg@H@LXzBF1U&kF6Wa>u%{_<+(j3(E68<) zSmm!Fz)54-oO%iZ$}MM7QKMr%wQf-dh6vDfxuS>M)vAbkq41d-%jR{&9sBD7Uk5V- zv)7>o&&`|Mls=yxUX-m|%m>|7_N>!BoIbK5T=ZS0-G`L__5vlP+kdWqJS1t;4wMN? z2ZJ>mZG3AZ3GNJeOlL0{EG!^V4V5{M*khZxuV>r5))@d=IcW_Wy_^?Q_XJ_aQ=$QyY2mSFV7#?FWG#@KV;0e=iU& zWkYI04aR<_4$=%Q-RdRmcNSd$^U-RFg?@(5h)^J6i`g{7YZhfwNUc*Sdz>{4^Yp_& zk!|$0=8n*o?=>!F?K7Lc)}a6{Tj9fEwW#tfEyF3!r$KK1f$HK%U(grt8eTd!d>SS} zPpote!@llp$Nw4|ply3*{rEFQT|;Pqh}e{%s*nnyqI0eDwrySJ?S%haE*!T3eZ#B9 z`zXz!pxn>}A$DO-k?@)i8gB~xp}+-&w-2MFu6G*Ci~0TF_Z=riuVG}{Lk8(IfpFg! z$WyfB_KZ##ArCNQX0mM0((~>9m_su_x})d!+fzp^vJ3<^eAQDSD-YQ^#V&OTtZZI< zCs^6p$HdfcAUq#@0Gg72FLwZ8G@*@LZsTdl>sTv`&j{0NGkHJtVQ#0->48nqL~MF6 z#f?g8fVn2nG!EJ|5!&BRbH>71-{T?aQa@g^pqxhwn)TMZu6R?sToeK$8ac8t`?NbWO|M!NdK-vId8W1C% zZ60+DR&Rsy?d2oCS+RnN)Bu#e48HK(6I72OjGj`E6t5rI0R&Y6P_I4x}5(+#ti zmY)E6yO%alf8y-Cf{LfFpnuwrlPj0k!BPX}Yzhs;5f5xnWc~M>cya5?yLtl7xNPPp*c#Y3XU&YcKR!7DlmOI)zpFI0w^$IN#AXplVtaX%kkfj7Gj zs~gfyma$Q=@=zatcuG%XYi@p-XGazi6-Q{j`GE?dVtKq~=Bu+4vVy_*6RDKmpNxBb z$Kvet)bzsFbwn<$(Czud9}c|#{|$r_dTfj?%d18$kp}JVldfK805Mp|hsX}|t3a?x zD=EYdQ<-2&9NSYj6H!eu%(*h1MAy@j8ni(HCNns%XQ$zg#7#klj8#i&g>9G(F!=gh z!}CsGZJb4Gq6M2Psq%dJ$PbcwIaS#IbIl+??gjzui_og-&4{0m>P0`ve0p_#Z75UE zvqr$@nOxem!e!NTubCMy{pxOcz|YkM;e}7W>2fBvxW-Qsis`^z z%pIkiMGgKV6$P2>boKx4eoFCj`vkFr)J3S9`2?%}vX{H!je2lJy=$!d6Dr|L?gahT zbqSO`uy=&EG8PyxvZdAOvf>GN=CB zc}L93q`|IP%ql@XcBMH$;@`I>uLum$!}(4lx5!Dyl7?TX&p%08bHJX3_?RO0#%nmN zH%%DW9qS)^lG6-`@14kd@BoTVUjaJ$Y@>-@JS~hE-Lzj5AgO(B*yhofceR=l?SGay z-e6&RgNl_0u>AI952-+GFFl*;;j@jmlh1l*XI#5B{&zv$2(cp^dtd*8idTDGZrq@k zNW2sYGT-Q>T#C-|&O@wgv797GC!cnpGbhV9h80HOMH`e+MpCO2B*QDTJS6BaSM!;f z@aEJ*kYGQOPQ1!r@fMe;ef;46-@;twjH_*q%hvD6*axu?o$6U5T^XPP)2LvdbTTX8iMK#<&DunAdk&VE{p^dE zv3KW4%7a+q80fmf{ZC2yQL(+>s6cK6QLn>WTP^68>d5&_Zv`c5)6q62rnSR^FDkGG z!ywMwv(}^~bC}%m??JXeVQ?eFO@dMqbv54!HvdHu!^%>3!@^)dWBl1paibqpjU+wNui zmRDK%sWi!kt;l{qqg@s(lqQ5?^_*V?FYWyPzbkBkAoGEzC0Vb^R|xW=@?|XyM%K5- zS$s7Q=9UAAmRgARhM52ot6ns9vwddcF3SoPP-curVk>-Kzy7QV*prz7V772+r(vxD zQgm$~-`S=>ph=aO+ep922th^w|n00i~|Qat!_&BL6)Ic;ZK=*nEqS9F|vkuG;LhXb0Wy7-kw;EMxR*l%MTRAW^fRx zUek~w_rI)~NmXWgmE9cDu%#&`Rwcy6G*(51KPcJe)2XOkfW^^-n9kg)1%nVd(6{P7 zB8;NpeFQX~Ci?PjdB+}1(v}Va#8BF&PRswkoj!^@-E2ZsmJGf8aE=oBpNV#o?bB+D zt3|qLo|QyB%Q>2KuwnN+77y*+VJE5^Do<~A89DGa5Uc#D2SISBD>^ntXC-QHmmshF zdaTeljM6Q)auvx#glXy37iT7IN~1wY$Z&{zp$KDRODAf2AJ-}4IT--|?;$vKJAowI zau;qsqY)CmtFiqKSuim#TD2kvJi9=iA@Z^VHS_d7m^;Og=w4{$p0oUpEi>V2&!e#< zDsx7VrSi{l@HbaRGb)bEI*>R{l-yQsuP0Y51V~NN`yYAW->>ffeZNWME6qQwEnJj; z@NT7cOmT;Y#V|?m#_q_yTT>yq9cw_{FDh$GPBVUe zQiM%);Jd+$#(_@CKXO44z|cHy8AZrr{qH24pG#c?dy`kMSDW-5NsIsYp_Nw7W|bpf zcnGRFqNjOItcwq^&FwsW0WxD*&faZW8*$$o_B71ww~AB3dM&+X?zL1p&JK{+rd!n5 zlk{&z%To8c){G9B$ACZ_mnC}vB1F*PSPlgS0$YE1D5E_jpMF2tICPy=*Kj56 z^m*F+wp3 zfmL-?Z8kt&#*_gN@P?$Td8MlJGe|^Zzcd|0C`hx)2J7T0_tV`1sFAEU5wwaRTV?*B z=xlOItcdsjQT5evP4?gWFiIMwq`@Er37If@Gzud{q*cTLBV{y0LPC&G1e9)+6zK*L zQHin9Lt0>T=ZN2pexK+0{9gRyOMU6R-S6{0=UnHyuCvCO$Ext5MPXSknmh=+!E@9+6%x0@p6q?*Q_d4bZm*!c|NIAQUr#5 zV>r%K`(IJOX6%x)YYJKbkLfq{AZfo;+_w=k-RaD@IoW@bB}kLk;+wj-$VU#M1;dT* z>SD=`ae-)(spI*JRi0> zlixs!%7Fg)0TjiZhK{XVMISkA15GW566=+1oairsQl;-7fvU`i(1Q8VAR;s*Q>~@K zLR3kXCDk|sg{I6#%pjFDD0+{%S%9^sz}Xiozk6PhqN;$9#eL-3h~iBa#>ywC?kZ&b z6YhWxF89I<60r8T7G>{+LSc^(P}vwYj=UEf>tGy|A5dt?yZSQ}Aoy2X*lih?08OL1 z$#<(hp=Vi^fJVTARILV~`rhNFwSj`StohNW+hsav(YJPhk%J(_=tlUGm3^G(>z`Ri z*(CNJI*RE3+GV@*sraV%6?Sty?L518AUm9gs&sSPUhp0n;K}j`P1aYLPn~PeIry>l z{Yt_|Vk{p+N$FfesO1HqJShwYm~CQZveI7@CYZ7tLM#L9OD)MuEdixc?=J~PH5(nF zINb}FjZmnW;?4g(_@S{-2I#u5W(0eKoWx&}5fK zUWrp|`w^G2H9F4)O7gpO)=5Zumcl7OHUAl+){k?rWGSW0KBVIWguc6IPb;cir?9J~ zRliA^|Ns7ulo;92&osN=a>GG-l3`{OW#G4a<&M9c`6oC}z9e z`3t$ya(*+*Cftz;xEM(B7?12drx)p+06P)!BCt}{#ETo$OOdlEJmTTmcW!9xDpfK| zg2}IIcBPFVhXSuV1t=T&<4!lyTCPu=9b{~3A9+4z_9cjSp^u;o6aQ9ZfUQAbeoBT# z9X}}@5%NwPa1VIje!!BkR~lJzS~wC%f8b=XX;OD@7ijkzoM7|Pvzgkx_11_e&8o4- z>!0|Ndy*eG5C}Pv-1VVpya zq`z8nwU}DJ1K`{upd}E9r|D(d1rXG~1%yT71vO$YS%HWa>v^8JF(IoZ&eys}tHwmeothOf5GOUK03?ke(D4xyqrA}_durE&g{0?ennd9J{zYCzoKq^Xm3$(~O)dnQlbG`jPlx6P$)N)g0S(VV< zjqaQjKu`Pk2XL>wLzEo+O}T!rpXcZPS@Kz8Nta)B(6(dr_e$#ISl>eEHaE(g4DRuk zY8&9z1KY}v@b10J>^FAWaY*4tbwEXJ0LbEi*?bB=y^?Dk$c7dx}ekw?E z_-R7VzXekldr&SBOqoGGb?$2g{1e%nC5MOR{Tj-h!fyV4cDu>Ioayx zI(!(`LTR)Jh1cJWyMJ=WN0&F+PafcE`0)XXs8oB}0f}=VCZN6BH4FyVaP&(BSGGMM zhpRq(=Jn6rp7#oH#j{ic2*UAY{;Gt`=~KTJUffo~xVIn!J;fF$eAqix|- z*J?n9vPdzhGN)1Ev39Z@=6P!P|?)%zo7GL!;7c#JrbA6{% z29EW7u&Fa_u)1+`WdN}R=)4HQk~L)^b{1mPSX*PewOLLr#6959$(#L8%OD;N^&mnq zJxU*vI6Y9sKz=bkhn#k)ICh{YEr?cas`N8$>A;b~u=c0ueLgihY+1>^dWBnR_~#G6 zjCnr@QC}lxwXPtVpFn0mj6Cjz$us6nR)SaPFT8O52oX*b_3g`xGA}9m zN_%$Mg?qbfHh4ajac@f==n*EWlt?XU{74tBRINvW_ScLlR6ZhwY;(w5KPS=xZSv$5 z9BF?RZwXGw@02in8dEzy!ZP+ar}(41(tkC`7mbIHh@vkjB49=!x}$z?(MOu~5y8J~ zR%W}S#N^ktBRWJm0h5ITCfkprOdQ>4a-rzy5B!Qgz$)#469+xcq55n&nR^=V^#HDW zv-yZy*Ezdp(9IyYMybk=jQ$oDuqOZ&35nM8jg|U?nS6pCSjZSpVcu!3 zE?VO|vnt%byWaGZH|=){FUP+zsDJT;*p~BvG!Y1Z1W_k}(U)DxAWFC;rp|}=lFTu$ z=~f%Ij%%;bl0IZLb>&fg?|d?wW`2vc5m&>uWI+=OSjPa_xQBomBZ9kl^XFWD4C8m) z)h)Ze)?&e$qTNvah`M2Kc7X#FUPP4L#X^Vv6#ASa4Y#Ap1r*QqE3!TT|I@R-Z2iK7 zk6l{N(2o|1AjK#~f{BqK#Gha&a)`^S6q&<~4%HXwJY27qB)QezN_`8s;#t1)`Io@a z&n;*%x6owH9ZOCf*_l|YX3NG$n`v_e>ac)h2VngSJDOlQ1@Oy1Zh+~QW^XGawPKLs zkZm$z%u9EGWRc-qc41(7ix^vO7b!h##ZnaT**&4ms*nq)EkiG4qnPX!(FG;J6;5=@ z$osiY20w@Y0e(fbNm)R^7F{Nf1?t=16?tJqfRV^Xqp)?w$+PF&srE5tzK(!cwTuru6JyUIo?||2O}@jCZbn zVhGG10R^BUX>*-i7+(COu_Kos`*|;DZ@c43C&d?!sbbt!yPN>)I68x@uD}ZIQ2rJJ zlH5Dd0JHTCz;O6ZjPd_~8w!$)&Z3t@>UuCof=B5}V1QHvBjw7kGytbYGDMe?V(s9@ zzyRwXcxURCIuK#}yKKrHLVXTX9=y@k8#^FI!we65_QIP1ipH@%=pWTE)Hl2FkXKJS z$N={sn?`#9dh59S+a4Zlu0x~Si&t;^wzvb#ek@#f;2kugI!Lkvt<(*8;0)_CYUOaH zOc-c{eyhI+;4i~I0QVl8F5EY;P)M0Csnu{Lq3qvG_x8d)sy@#2i=U1#6J1$tvp`eI zK}6#{u|8}Y;EoV&8SUKjwx~Fo35FLNjOa6YutIFO!xz59TrC(T$L6XmdroOlq5+oM z8s%KYsfSz9iKB1!p^_&LK&9dZmR|j!-)(0*iC?BpUaQLvjn7Wm; zm^uusH zWhKvvUzTeYQ_*INqqFRiN{1fxRNdd~TX9x$j@2?sP7qTY?mE3%GybGG@xS&@5xytAo%4+tls^MX}1#UW;s`h?z z|M}jaou5YKLu}po38C<2lFn|t!BybB+~ZIyLiG8FTL?4I4zg{~03C3BStu-Yz8Wwl z%P2`R44q$Ygsen*8U@^t!y(eFx9vM~T@OZjZ2k!+z<$|~^ae4Yn|PIJfD56!=csJC z`j|B;i*&FYf`3H6U~kX8iRm-ym_tCF9B&9+ev%YxG#0qO&|u`@V(jckzB^igAAo20 zWif~0dn;?U#9TPK zfN<-%?KWjarc3?{e2~8~{asi950af^GqguY`CLfWQkylL3$>{&qjC~YYxoa45Y-`l zLjug0E|#0(LMWDr6N!5O(?CEix%1>resU2|wT0TXHa?UY74_zK)rbyO2=O?~{w-YQ zw4oz2?%$}#F%^Jv;tjjHB5TNs_FR6f>YU)kVs-J)mbBs~L`4sSD}~7c;{@!# z2e7vLq843W^~0GY!VYUCn+b7m$|V|uWh!p90ilsBhn?^4ta8k$KMH33veIko`KEcw zSoUucEdZ{Ya~zTWdd-*(Xz+=^77^5h3|nr`iF7fBf`RxfA6kp*{RRvgSP3^562rjs zxA%6X5`am@m}?LcSoj<)Sz>?Gd@b%9ghQu+D0%3AM^v^kz@iVJ7P@e24!R6l1HnI_ z1-&(XB&x1bV?#lx-w|{Ruql6Vhp!lzyb8EEJccQ#UMU;2v7tI6k2kqQK)L0fj(@aj zMW?)05dBYLkcY{qzL_z3?!JO=dk1A%vLAJl11*gc2)@NU=@O0GVPyN*2dK+}?YXoF zM9BMDLT~>2f{M=-@}k}vfdzg7=puhn*KhK{@XAeUs{-gOyO?MkKSw8CCT$f2H*3$` z!FUV+h16x%O0I?HJO!U0a(8^q{q7zY;M63r(PtBBct13Z9*|{{^?sTxrB}ChcGn`4 z_$qONOIF5FaQ}Gf=tN?l0%L{r|C*5@NlbncZ1-w72;3$O*!{9)!(RV5`L}5019iSF z4{S(NSwQmfxDM4l@ng(#Zluf|lwTTe&riC02l23(I>5fTWJsCgt7=%s1}eL~2* zIlRt9v`T^%O*!=apOPvPFglj{h$dQK^@F{?B5}qK858An&^OLYu%_<`5pDHZ)z8!z z<>8*J{&lNXP=c3s#4xBs6E%_KHu~n%K!Om5^zTGea|a8fHHSYZ^ysC|dhHb>^804O zGY*JYYb!erh7-rKioV+(Q3{hzFWZ$*@Er=<^v;E|fc&@jw0tXiAp3gVYlNM2wmp~u>($M*CHHcSDW}$Y7pgd89UPg2ZM^P2`}#}Z*2ZA6i(Trh|2?}~x85#_ zkCc#5yj@)65MSkmxvL`Rdch_q(!u_AoJ4p5zpd4Hx;Txyu_Xu4O6L?URxLPi4ix@7 z2X+@D$nCf<08#xQBTZN*Q%g#Jn_}Htsmf#O6#}RdIRe82k>&B722>HW>E-mB+8@6& zLRfXbpB?5?k37CLR^2U0?`vAPF`P(vW?u7=T`3uyJ98t=UaBL}pKR~GOCFIOPn=Yq zTi?m30|-7KxZGu=rEs~LI-(h6TY%Ri!!`pVToax+VAZe3l*O;&W1eR-#BHjFO}JuM zi$-lVmOH`=Czi&$+Ca-yQc&bHnIsBG#=21d+%+;FK)h-|1emvoL5%wDc|;$nA{dFv zyePJA`rqQ37Bp^uGQ0}#qee{$MNvTw7#ErbO zm5Y<)qnfLRSx%F~Pc$j8K)mAtul~Q|LtuCakgfex>$uDa3Y1E>Hw~LdVLfi1WYkOS zR+dgTr1BEb(*!Y+Kl#_359s3#{Kq&gDu7#+#Ux`8Oq+sY1aHZdzH6mOx#B`{o@?Ie z?SC2GBL+ka?0q!e!w7C2AmnCWWa_zWvIuX5sY#?ZE87rnV*LW=pz&JGegBGX_l7TM{`C^Z4Dd^c|!$CuRAYK^U}J8Qk_|>eaM=Z zCXCP-0NXYq>96aQBZDe>d%>ZqUbf9>QY^4CmLkSJ(rUyLS~IF*c7Jd`%f|LstSvZ~_mA(pO^tlB!?Td_5+TH8v%W_yOlS7e%O z`j>ygC%6@3{meP*?2V56AA{udb+UK?q~9dtQ4XKYqir%9Z;2pqG$k=SIfn$Wpn=nj zF88xfXGKku??l~i$#quy|8Eg3dj7(fxWak^5?776i5Mu9_ZJSDS*#G6ZF%$5>-DMU3Pk5nyQA5KaSA1mJbut8&9%0y?T zS3;TVg7oS@JIUV=RSKA3l1rozFy=rygQR&P!e~MEpBD-}7%b;Wn76*mJv0CE`gqTO z8~5n-d=P8S6oSbRxd?f;o&%%|+C%02Ic1X-XUm&JIEq|*=Lk@&jHD|+$-gzv_lvcp ze?T}MVEY1@8CC#xd*}wFA9~v)5r}>0)xG0gA@5zt9*NZ|cROKXdb2-nNB^;)7Rd~8 z3{3sC*CDB(U-P8U6b-%J(M0%-MX@RVF%cZ*kanaq97)fVJT8H+FKxyt zFnP@d^n5Ug^WE4TPLE^_x7?hXGc#D8Up#X3Sp-nel`AZAm)Q5MrKkg|g8;u968Wfg z>R9^woT-ZeaZ*_U*3-5ke7sI1c4nQ%%cs$`&}2Zko>Z39_FnU9%|CsEC<2g5gUK+Y z*iNb){|U*5Y`_iV$=siDbSMuD3q`g9U>&5rm-WO7c^?doW+IN;gFRDs9#M%H4I1nR zfwqyrAS{lgBt)iOw~97hB46Js^t#{^E#T!swQxSbh^kC`GY8Po=dX_fka63;kn!&e-}lkRY^2P& z#5{pCH}b)>^`%9J83i80C;~F`F$sLI)cN$KgyzrBly~!~D%s4OrgRX>yCQ@>Hpe<5 z7MoHro(Sn-Pk5x{k>hpJT+~oaiTW_oryFo^I1F?d8y+MFHlf^5vw20GJIDnQ*Sra^ zJ$SAR)FFG7eT@PvhZ__yANM=-yNi^u~&F}F4GF1Wy9GV0@(&Gmt4E&}Sb58Z; zWh|uf?fc{{SA$7_GSpM%(_t{MWwpa!azEWQWynxD`FZBlQUyJv|B5KS9g=kPN+N%N z_zwi??zl;8&ryr5SG-ZVD#pZ_TXyru@O!U(xqER`(Pgo8Z#+=H8OwyillR}__~Z6o zhWy~)y~;XP!^C^j$VwmBDo}n;?k(F2m&B#rQ z#muDRvA_VcMeMua5?x?u+>Ma>w40*XX<8NKPKSn=xLaZtZrso!NhE6RIog^2YWe=l z)=VZ>rF%$y(aWU}dU=}|s+Xl;S`V%acMh$h<&>2=UfeD*wI_94;v$z|ARb{!8M76g zID5x^ZFyiTHJgR6KM?^VcSk5jw-GOtY zmd*XgnVY#F!j#D|+l*iH7j16ZZeis+J6k)IZp+gA84O%$4Bp?eQ=W<0b1JF>pP^h~ zXa4gYUfMygYwl*;EoPSj7v4QK%0x}GEn_KyZ?u{=i2<|Qqot8Pcb>p`DKEcgNmM=} zKe*&@m#mhbg}>8x<@d`k3#HDM$bhmt`D^T8;yf4>PWGoIIfQ$XtbKM6>J$vk&E*o$ zB{Ked#@`pZuP|sjRV)%mXWctUS9qVYu}W~`r47A_T&`(K|8)dwo_b99BvdLw+fh=q z$EwpU;{XxbzLl8JtA7J+gW(wXdMbX}^)Of}r0d(7bBVwy79rNSoe~`e5_OF`b%d+; z?u?!G=BtE*z;%AS%!@xhh~au(`xjZmnvKPe5h~9O1XIE`H!G^Xl%yai4Egp6ahm%V za}*gN@w5Z8B_%W%dEWm4!dtH}=u$d<_A>gijjz!AJ;u8u&On7V(vt0+`*dEQ3&=Uu zwRcLS!Wws)7RMI{;1*f_!+lBRM5!*{YX-9ds>g(^$eO*xo01apT<7{o5qwMAV-!jZ zDI8^oKhh_xk!L|+&rXb>>7n@oCNs zTC-x*>g=7HH8@9RApFVOd-s%$ZpN3Y?xcE1BSJ8Prc6Ig(CNwrsGYVi?AB}7N z=jyY%5!2TUsJmnvueK)eA=!Imi;u+#JTq-JKSk5*E6sk?8sL$QH`CqUz?y7hcbdE?tMxFuU9~H~)6haF4GSF8a zg1;GWD?E3yF?OA|xl{fdWfvY;iLQnhqUd^$akz;^D7Z~>zk?#z;|7wrkNf!}{b@Et zziMEUo3`_!6l{}{7#K4x`9*bt00*~W6S|J0H;QCGswpbP0AmeFHNf=1^S>qw3>pMg z@~@9dZ%D=QYfb;TVsJ#)P0Bx_-%;}*m&8UpgsXv(GC;CG-8(y5ZK8Z@Y2vZaWZjgk zorl$D7y0qVv8%lNvLgdTBBYHrnlgx}{PHg_-L*A_icAXMY5qki5iORY_&M@qv7p}s z5V4pFNQ$!k?x&uI;v<*oM*wj5!DkJ`{f~Ez3w_s7UX$2>s^uZB-nxZf(t~Hk9v;04 z`!s~(b-zOERownBhbh$jTQUoNUal&>AB0rWp2zXOqr>nJZx(Y18nh^=rn%c^<0eCw zniu_IZlf;DPEnfJKHxxnxr~F~%I?sAyAcDX#%h0YIDHi@`ktm;{wsA!({Q~DxA)MA zK^RD%hzd$9NJKWzB*>HrQ0Qb5`yrPu1gjhU?Cl~z13v4`x z;Y(h<5UHqnpY^_tUx-qE+hdP=TMB9VQdw3=(X2)7I$b)f&2+3!FrqgY?i3#g9?lE( z0?e4-koVq-_0F7=7u6%NZ)UwiRMh!17%y@msXRt+OSN3#hOV!alyxa!!jw84Iuw~r zLzYRz6bRDKY?Z!<3v+%lPD6`58KlIa>>%F8NbCDGBg_2U_>q{xTRTvSu|BuE)cyLF zEKKm4@+kd-;QJNKcP8+;H;14`9YeRr_edH%=%NU zsSg{o4T+m?Hf>2=lz8)#pP`g+*Sk||@>&UpJi7(^9;nxs4qADi#1{CPfMjg3_T}cEuM5d^}b-zCUy%f zhQuvMI(6F^o$P$RTGMYT5VAmrWuIX`|7!lcx~W_!AJOVn6jpI zQv*Syu=idtWWk?j`2&R+`nB=Xxb)=3?Dq~P2mE&eB<|ji46!?Oe7YNL_59@P@RD)W zBHNAKZiiM|Yf39S>${IR|9(YwUSwOZHGUSN!ku$Q=NB20{$_UwmVz@3cKo#^{fwL4hqMbx?9 zO@pE7Hz=zNvy10~e4a9$k5K^+6Nv1+v(z8`KL6xFdxj4k9ApoKS63b(4*e#!$97st z^!mO<2Uyitdn`YdJv)vjrg{EGH}xIL`upjLCWwBUxc>AAfloAF%TMR!+5jipfB zV3TzX*HFK@3;$V#?mV%>#9!#`sLj(7xMEo|!VWt^qFSa+ulAEfu%|ldRMz%s)5OD|dC~ z5mm1}A`Ve{esr(@J-V{iL99)9dEbfc-u$y8>ocDEwfZ6!5$`8YC@p>FT5=ZT;fy!U zt6zAo{o?ViU(an=OZJ;}tL)E*Ar>*3UPIHSrR$^a;xBB;cTZ0zS|t_yM2BUb?_l6x z;^>)9hP}tj}>Q{Zo0lf7L95J-I z1*#GP#FiC8;s`>;lxfXv;>BEr++B!01J^>(5Gt>@UGAE$S!17D%Sc_Idn&8h%G59B z+}#I)f5I>mx*#Mj-lu6|ed2qBO>)k+>AZJk8eRrBM!aR&ca+Q^UtBZ1?r+1X8g&!Wm1@ez$v*+-7GBy#62r@*-HjrKP>zAJ z)Y%nNGW6mIbEhfOeQlCOd{f_v&d+03%G0hF_K_ru4kdE_ujyOfjFF{Q(V8;!IBf@l z8~e;`-)5bsr?ii)a+8P2eboMAPWzpr8?k2xUWb7`9KCl$JV|kG}wS&BO8(O(m79=YgAWNAYKQ+pn+)>@QA#x%UOR|{T zLXHox&;`y`sHnjKipP*m*|`1Z)X>Hx}$e?RpDeu z@o3?B^SG_xLbEQ>xPu#7%0Y)qUWHMi%dx&2fw)AXP^S9jj`ixbCcE9sC70jn*iGMG zrNZ252(vF`%#2Z~41-&@ib%Pxk)-c>yYr6gHFO@l{Jk^cwa5W1I^wot)7}c{)UI?~ ziA(kEfi?E|s+h+Oq5iLE3EDFW;=XQP(i<^f@*P7^xiTfjxSDxrf= zC;x|4H0D}s)Y(;T>>rYJICB|8a=@+*#mxd0&dWtB9O+e-!bbx3?cKWBjA|`bTmGmY zwcQ!vht^&dr8bQ2P3a%fV0pG(`0SiX>19XEPnK*SJ7RlL_p@43F=XnE4?8xdE$T(~+b%B1)~WVi z&O;D%n|7W*Y5P`L>iJZZJoZ`&ejXg#>H%Z$S_V2sZx&Y;KL`)IU*fm$G5TyCB0>LuJ(208SSVtEeyF2*-2IU-^acoV#j-9%X3$#XzDNd`A>(M+npR4?|41m z&muE&`{nN9LO<@mjka5#X#XnSP0(KciemFsB8x8@xGj&Eo$!Cy{1%u>FC z7%I*jEJ`BtQ{=f&bU-F7->XW$nu$iOrBHu+9T45S5T84}vdUTCrv0{d7XQo%DoZo{ zX+!#3P(^wR7hiIlO!DPynM2Y=jW6y<1yKJT-V(lgCVy@no-40N;O`rlju)3cx?5?& zl@47D=We2BLt}K)$+4JfNcf*3El7s!uFUC-!f?X@w#drkV$=NXF?>7EsrgY~xFV|@ z-#W&>AEs2;@-j~03(pCDy+8SO*GnGo6ZB@?f^()<)AD4$-t!~<3ureIg{|+p_3O=@ z_^Uj1kdj_M?-@7WrS3@Apyjtc4rZKJ*GZ$WPSYZ+?{v#)BmcUiIsu zU*D^yz)R7MKU|kAcoCOUuL1NFVXhynuf;c_O{Xj}z=D;4S%GqeRmfXZ5K?m5bm)r@ zi+qdMsSlAx9i*3YH^BmqDEBw#zRHo$5{?>aDg8JMMv4_!MM3GSp{B(-q zOm>GKIE^lp`$6;dEoX!jBj6Y6Tf%K+wKLdH>tVD-Uy^b+hCFESsiJki>%g+ImlVH$ zrcG`?7=mny%HpP<-N113A>epLQ|`xS1M#s zJ$5Y(C71dGdPf3lKHSqRD@T{^)GFf;;sgnAqrRA9B;vigA58w5iqW+f*VZ#6Jbq(? z^Ys<^Xy05y{nP#I3rS8_8(KW!WEmAK8<~Yvo^QxJr> zwb)>=lK6eMeRmSMB)gmW?WEwPErw z{O>IfwbBaU>t?aw?+h{-uSASTCYX>Wl0lD#U_)dsN8X`V)UUKVn%s;`>Aj zF5{~0_o(SIcokfZL3#(#Za$Ojolj{)$NJvlPuG(AqI7@Vuc^c;JrE<@08?e7MpNLN z#EbIfzofPoOO_muY^!eS^*Xn>pJBD_Gs|=u>3_IY)wth(j#8jZH^)+skE;$E!(U7l z4+sAF+KH&X3isJ^sIn{3IG96;_pL)O=aR%C@d-~et97FH6r+5A!$H$qu_2PfFy8Px zVV99yNMS7P6DdQ$dxGZ1nX|0c5 zY;>0)plf@A;ZkV|C`o3?)|V>o$VD0qj*%U%~jq)$lu)>UA5{mD7 zq;%DnDKGGO;8Sfs-_$R%k!Ho*(zN#+TTNr%lVR#h$SXy(`cJl?m6VWW8Fn&^{YLTX z4{EH`M(RR9u1|W^Nqs6AcJ8w?m$maXz>;=$o!H?|N#?^ewHjy{Bk!KACqZ>UJsnY@ z7w++aOD=g8_0%ZGTZ{NqYnhJ}W#O>-lxS4}v)+2t#x803YeIpx(Jq@5inOJCjc&5oz( z<2KsV)l|T!6P3B>RSL@^P&4va5ZX*^yt8VBF+Hc+kz4kzSXM^AQCkcDOFmh2QFHva z)1&VVAudm&rEaF>vi6m|NzUT_`x2ks(5HKx`C3*rC=9fNIc=@*@E=+{*?nE4LWT;e z{J4L(qUsgCoz8Xaw~jR#Sf2^9IaL~H<}-VhMiJiD8>Ajs(cMue7O_W(#wijnUZ?QF zJFL%TPx-8Fz3&^M?hN3bhw~hpzEisGK#o;p`MJ^kk$uJg%cjr&^|Vvg#CwWYJ;Fe= zB>1$D1*72~q1lH-_UDz!5KE)oj3#n@N<^)U{UcucH}!|8VEk;6)bMKB3S0K+;^vXh zMKY5JQL1#?l77o3q$Bg088}6QPX4;OSlyq_JIoTYcNN8+2!rAVsc%jd3oIyLGuR** zy{X=6COQ9yOvO+UWpa@@X06eZ*jc&by0rZRk*TF_Q^jNU5ktF*K{x?5gzL~=^({4N zPIfF&xIc~3FJ}A=^eOWM z>e{P5M>2L$-wJB}$yQxC*&<}!odv9^t`}@K-pl;Kl24X0wJN&g0tVo)mAn+zS_oPY zc{sFZ+g9P6LWZq(GL)fB&C|n))nmzJ&d(1K)rfFk!d|^8VY)BpB^A?YQCzEJnSp1s zxT#o3Wh>Hh8T(T4s)xZT{_+R6x-H8sxHD=Y8A z55vq)3^9W8QGBIJsq36563q84l_^ulO4^0EfID?Be6@O4k&tkwcN$oE%+b>q?v*6+ zh_vi1E)e?C8@{@=S;IYAG>(OQaUw{u-hGh6qsmxjk?>NVPM8gI`8?zpiip-pR-b*P zi~N}{sDA+}&?Z?XzRnVngPKKd{l}ebCw(^ zyNdm9HR0BIP5$pECvS3)p|dZxOY%?@B=*hP6t!EF=FQ#V##buVlAkxOfuN^U zkZ{*`u#o$-`mJ)%0-p>Y1$%B$Q?d42s*>&QW)9L3=_Ctv#>NOs9R_crqs6u;O57#z_n-O3SA}wM3l1#(#i2hL z5z$}7Ee`%HSuhI8$pemHyH~~s9FDQc(i+9S8QTtm7Pt{=nBMtxbnACcqbHy%IrZp zgx|L!#yx3sldJs=U`QrKDo7R}`F^6P9ORRwPTlpbU7-RVcwuvMbR!xsdmvA*RYN7O zIb7j61=+mFI`MigC?+P<{cmk9ZbHOu=U!sglqVf1wW(NfS@s*2Ikl>`1aux;s|(MH zR4Q*mG=~!?aye+x1}X8qFy(sVY11<8Ml5?SOukQ^9DqCS{0*z8RJ`OkodQq0IkHUH z^n0?!)xtiz^*gfggG}QOVK3kH089K_hY*PC5uRl5CQ;FpU}Vvk3aeOP3ZTvdais7b zLST4NA8x5snTaI?hpSXv;+56rv-lHF-6ljt3f8fnirWo?fkBtV(rOc|DjmbUyc0jN zWk>1yM#+)Gtv5tGsny)Ap46EzU)ld2_L`+~$n2h0X zY@S*UKc&JX7{>PB1N{W`JX-^QcmyW~{vXd5aMPteeOAlH9f{-z&ANqDKYTJ4uJpHJ z6s9-et0xkhuMvQ2$XwjM8dlt6vp<(M4Ur{_!oJq>J`8$<%7Bbsd&xJI5zgFel+`OTAqt zW@1dS&9D0&rHF@i^Y^F}sgsKRQ+>M z`F`a;{|EFX01NyCv)~kB?)>M1x=~p{fpcy z89Z`JR0HbDNT$@o#@7?@lAHfy@)CdqNt?Rc82ti&&3kC?H`${6Mk-l1PSnVI z2(=Z66mF}q(msbEs#N}7bSyW3`1|v`LqsLhqd=J0l>nxLQ^l(_L3ZO}M_V!Ah%P`~ zI92TA04(olt*HJ%p6fJqc<{20LODtFeU$C6yJnZqlxgfEDr^ZA+V`d#Z%Nrd1;gE- z(!)pTOH`3g`GL2gUMBf=vlDVurcWyX-f?ObgAbosY*vsgT|SIgmL81YsI|DJ2BhNZ zo7A}g)=E;rJzTj0{FCY6IOp>?x)>MmY%VHfDSYSp-`Lcjssvr12qO7-mFW`*|DFm{ zf3nX~zoDU03FNxqgFrhry>{?0rM~2~iIWu#-_518fs(aMde_7{88J|{B`^VEp}=N| z5~N?qJ<>8ad6?)1*$1wyUxHdd;#jUq-Tvwo+#g*}^?ze9ND0y7Ou2=e%ne~bgGVcb z4a34!zp%ST@$OuSH&cZD1es|u1!0L8^FK5LsA++N33%mNKA4QAAZSGu}cxy zmm|NtYabV|(Pt*>8C-L5rzRn@+n7nd>mXH9D+!+e!Q%b+OEv3lhU{xY1rT$?+mI6{@g zJKePFjOW3LvUcp>=JlbQpgt8h@CYp7cb&?A9xH9?sv`H(xzr@ttdwXmiPPLZ?J_fg zGHWs7YBj15ijeJmO#D|Li^mb%>B$85BgYie)^x=B-i}MUD;*C|Wu?9)P2cqhgDb|o z+V6`|C3#d@mXZjhF`Ndu{T-h#a>di8p|;-}U&>6$7_eLXsV~)lQUQ7I^_~KnzOV5q zM+8eWSjRn$Sbq#!DFlge8HbeCN+B(dwhCHtL;*)qqc0Y5-3ZX4Fl#0;HWC84H49}1?#&9T2$+H6yAwduIZ%M z?Ws`;@#QX>!6!74mbqduO->E*Xg0`9^$&Jmd~<^g?W;p&1yv6~_fjsZV1X64=N0&e4r<(1mGyDq)2+(=-VLBpuVP-l=Ye zo4`&C|1U@kL(`La!IPoy2C|S!Q?V|;Q86{d_IzM6Up>xv#br>vwZf{Wa1*{%AgMsI z`xza4-m0a;GbT!&^c;<96THxfHw4m+RC8J6i}RLafVoxmg@+KXX^JP)^r9XE7e%j` zYmnW?e&8gOLV@K=`?}FD>mDh}?t!^DC*;d|_wTqdz>tkDV6gOoF@JY>LF|Fl#Tl-awZJW#1@fR{xWb;>?M?Gu^d^pK(PI+gat4 zsKJ9O?n_W%j*{s!_lPkDc0*Fn>bUsKT4m~4Hkk+@dp0rI*s^Uw`DHf%Zng66eeqP{ zew+Kc_m`-stzht!={*g)^Gd?iB=e<2-`vBs)iJR=r?K7~RT>Z;U6`+@(pt z%`zWV+PF2ilP}#Q!nq)zba)+g)Gy5+Gb+RyNn&^Z`=xBBR@2GAzY{zUtB76@+{wHF zio66_u5vYP9VW}QeT5%s?(Ls4MNfkOgvF7j8wVjn*UOeWl3)WD)Y#mJ&u_RmP2zxP zuL^9{aC6B0Qj5FRr(0h3`)ecs{%lsiRM=&|iepB$)7E@Vw#6;vrvzwC9u0Br%uBbV zCW`UIa2566h$6GQ-$j(Y9bD1Omd{W^7$K^nRT~Ses4ht0!!ey#wjvCU)L5*TYa2T?;(e*KMnXs4wRUK=iTLhCb`I-+Znlx0#DnS_ScnE z(DLqqr7frI^>c|0FVP;K7bS1shCRbe$kzROXB`UMi%vhVK4!NdfcBkj;P(9cATyp@ zrN3z~_AlFH0065N!1DxRUP|4e>3R09QV-D%b)@RZU&YRAHzZO3!zvmqsK4GSX?E&; zkSR}nlgB7o`tFnS-z->0sJ4$dsUlwd!4q4PKq~-V^9)yR-*4u-gGux7PJFbtBBMn? z$C($+F|1{*fbK7t@VUqoxetwsAXd|hEiFiYZEI+xmEOsi_9S9YpE|YEC)+YhM)rAy z0>-DQ2jlTIjha)yCwI=*!kWjUbfegbAtFZ6@x%1!Xjieo+s|U&iJK4;28HpOYsY7n z*8fz%znEPoDP$+BYpz~ZrJgdqFDWIZteq(G3w1+}hs|B$H(=tDaewQyGz!1gJj%O$ zrGt57S0;Q2~nYFxU{NxToH(t*p3$c*tJ0!tXjeO zIczbVPiRQlEVDkKtz7?_8a<5Xs$!y!fFo+&uEBmk=qKfy_R3h8Tt+%P$o5A^Oe6>% zW+(Hz-hBcJ5Uz+Z*`$BK@jxE3yT|;t;aAI;tESk>N?&k6f6j@{EMwjl=pkR}DvHUI z%hIK*>xbc4^-dn>Qva~D$!1HQHQX?uDPqf>=nPlI_pTup69C0^Iihud?rsr~3cnJqX#dDqCfg)vz5S zTe6a57s-*mk4>@?D%l*zXqo98WJb#7IQAZibL>qB_kH+&`~L19_mArj<8eOTpYdL= z=Xkw7v`ftysSu2npz@|_>HaUKe@LA#0(IlIZM{cjbbWsQTO3w$i ziNfzE^w=t7pim93MYFBJ9G2eg@hKi;$q#sqTSIK zd!{Pkn{@U=Rx9g!MGexQhu1wRwj!T;noK~a*cslvBE?*H&iN)S#@#lmDP3M_hnXI% zLp`(BKs-`Mk24`W74o}cS%Pg#IHuVD?VnI$5juLeiS)Tw>R#OeJ927VyUm81)wm3f zYCW507Ms}<$fI3_iSxBFFUvnqZ{``9s{|e5g3cvs?>~zKjn79XD@kl+#0_ z$5vIM8JdqdX=!Gc;K}qG{Z+?KBW5ErR^Mz%hx^R6QZo?>{=rU_bLv|XSS5r!_L|IA zH9BBlokcB{zhJv2si}!%VHO~Y9m%LD1ZVP*63f^`Zo!UsCsii{35TSm*=-Lq*`7)% zq`XwM^x`=4B3X7kmDGak7Y9a0j_Rj;!*bhZ+)~@wHa1MTyP@f)F!D&_cCDwl*Cd;r z(XYJDz4wOhhv<#xi3oQbsR%oyFf$%hthCq8Jb9?wdyE%Z%84y2-NND_D|-E$<9!k<_qkik*rq@-E(mZtb3WgY>1l7rXoBdcCD0 zbm6mMYjEG&G#G|ho{D(-Ja-0YK3~Q2tu9(}xI~H+6+*jFQ7R(p7L0_j>=`L=6a-8!ZQwP!qf(w_QQGcC-W{+=DR7&-Iax10>DA4M zk5i0v8Mnv2<78eX?gEQi|14v+xD)^)3VSZ?IMlejD_;^y*=@A7^XSO|*qDf^g4!)rXmc`EwMv*$iw&yc9 zyq>~B9(Q^^v59m7tf`!Ts7DUqTYivhfTOG~{=KfNdPvPGmvi^S`4TCmh&*1c3N18~ zVEHD6rrpQq=>aY67@KH%COZuTlV`cO$8G~q2=ozEFgwZr&d%#hlL0_adNJi%;Y#_7 z46jy)YJNZoAT6Ph=LEd$OH+6X+YxSCsAciei5av}LNo`C8YKJM#vP_$av9b1?aDV) zNHz-01zT2?s$kR$j8DEIV2&2V(Znj{3{ZPV2gOQea38!>x!@?Pv&x&d`y6DI=R%Ls z(WehgE>S_VwHm@X!OV)8c^>+J7VGT>kf^-^(|bG8i^#U{<_#VK^Ry68+FeKsz%y}o zy4DjiXxr#l0n1CO$DS_0gBn7rTvV9tM%?oy&y0(^pP@;JnW$nAY+WakoD6V#z?R|p zvwpB7!0@_?E)7e0mFi|p7zF(mMsAXhqM1r`B1gBbW0?MO&o; zsC7Bq&{wPcE^_%*>sxAD}zkuP?r3_Vh~{pdDx{A~k@Ekgr^5Pcu1>IR6I4 z03@t`SUhw%vG}&)MbBr%6-22<6Q?6}p4#dwP-M@@;EEKNh{0Y{uw*Y8*$*UF9-9z5 zqn8q4wkeXj<4;x{h}(TLfQ~`ddTicfF$&%ZR+~RfnjXY_<$C%>D#Q#e-i7v~RvT}x z@;bWAtwSPR`I}g7(7o~bDRvO2Jt|Z!x}iaJTPwq^HhI$c+cgO0T_!F1*gAuLPh86V ztYHR*G4y`d*9qzP%tVBJw<=WrgC+Yd7mm1FU$@k$!G8NBT6V3B?cuBay*i|03zi1CQ)fT_s*9HhWN%$U}=P~q}evqG(E108KABf$G-wd>#@@yL6Ec$fnW4eAlqu z{g>jD#1vjO)5}SJxjw4h@Q8XuqT@x>V;2z_&HL(NYLy0)(#1wYD&BRdf0s*`Ht8oi z5Bu>X=slke#kOA}2$&I^h0PzHZBqd2RFoT2xNRU8dN*%oVwXq8X|o!Oz+ZrNV#QT4 zrRtSqQx*9pJn|3>w(7+{lrcT2+0V=h(K`zQlN?ANJ0EVq(?p|H6*qsi(tMA|jjFZb zQMsYf#xvmmD<&8=e&_ue3!I1CQ{gj${M~6%7F#tV;SkiX=>U`|ua1bRy8myTRp|ab zrsm63!gpL zQZG^XfwS2ifsO2ps|t%! zBYiF~9!q>#BJ>%+dM=OCkL(BdUK*3;e-j-(`$4!P7zBpHoSEDiXAz`tcn7xU+}NQD z3&4E|y6J@WhdGlzdF%Em#{4j+#%RL0|14#fkRhuIpjX}U9SDHM#=ob@t^f zRG0|S(_1foJjv6pfaOG@#+9nW>9pbonl&5H`JWf1B3WRwqw1f5)b*Z1FHO;d)1}{Q zPzkN=@?02dUv>MY3kpi##5lOS@QPo9kQ^MLNJys><-IQt=_BmSC- zBo)FZP=^>x+=(g;Jn{^IIchQx*PnJd9r}AEIX<=eBkGOx3)ktq ze=wjY`EBMXa*tc!IJ%O#OH@t$R@`ZE;$SS|4vo*=T)^g9T+roG?Q6ZvDX--)R0h*> zhQt^vDuVQCBo#5}^TC;8jc3lq$MgPe%AJ>9A{AOv5zg?(5BkZA7hLSnwbjZs_K|d% zAN5y3+^X>Y&O~!M59>eH3#edl#A!LIROc_c0rP4yE|UTs?RW8M6MrZImfa_EorCr} zSN(UELpOns^`Jduqax*cM20;*9mcK36@kAbV0Ts*9sXEf*DV~+oM1a6*6#U*+~|w% zhYff(n3V8joUl#?41TZAGtz5ILy{F?L$kCTmFW4eU@A?TR}Xg44xPQ^XUq+|kUyn16MV4uqN z9H}PohGnY-A<}KrLiPZ!*tJy%Ye=#oet7j@iqWDM$W_i}U1xG_5^je2qSwBkrT>OP(;+i@y~nZQ&=KTQYZ=<@pzlYyp$ z9`I&(#0CUa*1&=QN%w?+jHSv^p{W~VOB=cUk*^Vm=?_Y-=ushlx=OR;JJk*ZEDlNu zTgtP`F5>a0IpqDJ+o?sHv|YQC#<$nWu|8Qj=Z{0IxHo6BZJcO&%wn}%=`&7Yis}k* z-oVC0ae(XM%OuM~ zhMx<@ErN(Rtl2rM1zE;%Gk3O0F~eju1R=z# zcmZe9=-NVr6`9WxC3J^5(b<(7JF4qBbw;)8a=wQfn0GtXxbn~lirs@tDh&;x9$S51 zl`($fL%?gi8QLCIz4UF09Pz^<9PiJ?Wcjk5-n>^H8)|?Ol|P?rU7zS-+nim4qsC&# zr2TJ$3ao;H`*!d0B}YvGEwgW`F8)KdODpf^X z2gfLFsQ~gb*>rlDL(cbUQPnclX6;T*l>E`I{oL<0SJv~!O0r&yRPzeD{&IpoM6j=` zLVP32Xi+!|mA^8Y5D@RSeynk%z&h+By2&~F2G!Zm7sEDJF zwVE_ul%&J00yZNg&V`l?Ck0QGK9?PRTfRYhP>0MGfx-=uHfRbnG-7Io>w)pY2#YmyANL@594W*+g-&~}D9tx_3s!Y3&N z;j0vYW@%p(!-LUTekn7ZSk&NT2-r6LHjU`6$}tcRgLLC&FgH zY=bYa@AXBF!%4bBD~o-+rbw`p5Hz}lil-8+fh@T4Pd(aWU$C{;v@m>Drr_hdpd~-NRoQS-hg~dKT;G0wpP(+dDma81&ktE6spt${30Ca;l~| z@9z%Bok17+^4HFpFod;-fHZ9MJDJl)K4TibLN4wOT}Rh#4AM?A-wVM1-nyC8X*%SXpYqVsuzNzTM`j!d{Edvjn^ku{sx3q`eK5-t z`tsP|nuK{fZm5wA9Y&z+J+g@h8;d-b=kqNOF8JbPEtS2;wyv7Pr-Y;|-8)vgfeV^G zV2bJ}(e49)Vd`v|%Ps8a4`kGs*XLMLQ)0L`o#*Bf&`qcaVPwXWO; zRkVAlBV$8}X=pU5genio8L1}T7ClUDD{A3ap^~ysOQpb4V`O&8>_CWqKhbQYb%qO( ze879fWTJWF%gW8sowu+w2u4-##Tr%n^2Z!I^n~;&-DK9y}bPr7=Gk zLbJ+?gOHq+FuoeDHQU#e@rxM7`Qa6acS&4V>C3w=Ed1m)!Qe;;Mlo7o6zd4a3xLQJ z_|!PzEPCMFOv2??0Bd14!DcrtNDkej!WZQm6tUTR1wuDpZ!{ zAC&7j&c2#%B)ti+*n^VGkYJ}6*}zRa1uJW60OP~nY@4>ku2&bWvGb%j9Y{wGGX+*c z;m-(7_EyFxq9+ECWkj})S{K2t46-OBxHCvG#BJ#~%_U;YXNk0xSDV*5KwX<#S;q#+ z;M0&X*3737oWnPh%(uVYx3<`ArJ9?H@cwSmlK@~}D6miX1mXdwvyhezc3drKifqzU zX>UzcCGboDe?mM5ta)|mXH$QKdxhGT$YORh_xNUlahGiL=#H5wqdMNhl>H04`jdi| zyB5EZlLeG>4VYW3zQZHHH+Z64-o!~Fy(6*ghjW5|(h5p$Wk_GkNGE}h7-pH~^C1(HT zI_8=AzR*;%=jh<;3SC;@6x9HTWcJMVn$>F+n_@FG7C0?7DsfE8=mmMKd|>kpm8wO? zjE|`|NdiBu8isnaq0#o)JbRD4xia*}93_KQ?ZfeM=4?W~mn64<$`6cZMJ8dsIx!2t zhUpbyd*<0!%c6Z15`?Pu3GX6Hn%cqV)$irCFjhs^oq0HSq@I&=5gmAN<=;&Tjh zn>2e4R2xhhdjNT^4)r1O7<@bc{tm^9rHRDkbetFE9pcOBY2{pjFr5j;l!pmWuiZHi zHm`2hR#krt>^DrKfPQvYKX|HK&zs(G_E@7&Y*;PmL4~Gi(3)qKkJ_yY$^6=_B|@mm zog@eP18gIc=~OtFPaixRHmvA@;F^7ByYMBM7kwbcbNZ92;c&~wMC%(x7 zaZTXYR3j-ZlDrH;Jz;1X2=J~^Av{N*++%aALVL;nM-WUl%Zaj(cFbH`=Jx9&^?=~~ z?k2j0&e`$~aO_iwHHAG%hCL+4UXKm8Ggv`WsHA;Eg+DH7xl|59ImBfRQ5HChV|Q&t zu&qAD2@Po;Vj?_9H9X}~4!QXI4$>v~vGO#x%u+;I@ekD|I~x$W#SW+AM#-|be!o-9 zAR|oS5b4W8$|HRX{%RrXKW7Cy9y?6=M(@?=+0p8`@hSZx3z6s7ErW=5zo9@LzIMqfFh#1EP3(oP@P z4K2PZ*oK-)x2A?<8_5&?+Y0f)`L6`oz&bo$NZI-9@sa$zGyv`F!4clguifp8zitnH}^PHsXF1ufErH>&)z8WtaELPb(XWP z*vO|Gk8P-d*ImhQTw0}9XTG=GQ(!4Li0k7Tk2pB-l<8#f8)& z`&Z2di0FmyoJ6f~ePoI$*4%GN7BWFi2D?W;&)Yg*T%aTebqo?oMfeCTAvXKi-Dtz{y6UM1 z3Iw~Bw}EDl@#KJDFOZ&$JQVRChJ?qtgk^9S=bUR_w0kK-%JsU~!=uBCo9#Eq@p}u! zS*A`EX}`_*^qSgaK;ClrNcL&5WnJj#=a@}xMOt;>TKv>%W0C1!{|iL z01sQR4yDWa(RPQBsM}39ir+EBXzwMXr-*$1m{%can!wgDfP>+b9&*CcxGFOifoSyU z-l|F!#JxM|Cbx{BTBYHnaX+>N0b_(0EkJb98YevCOVf~B@zAalxt8VHv0O{tY$qo< zXWbo64qo@7_v-6z8eRALOat0^;$h|PY}K6Q(boI=XdCvx8y`$Zek<`n97!;rf9X7f znZj9wQ%SMFc3+^m4jg3SaF#ULGue)l6-6Z6Cb=gS}I0@2JeCqs6phme`3@TXy*2amtA_w%fCtj-tU;SB1>^SdGYGI3R$UGRL@%Z!ml(u#TrKsHR z$@tB)L2C(^5e zCY5x2sTuOAN7Cf|BTtRR(l4ed-n`Q=afpI7o(=r;=N?VT(% zRX;0M8ir#`s3*0)WY`{#7NvGr5yV{byq2dR-)Gw^QmF6kb7+v`GwI_7Dz?t9wh);} zU#;@a85B3av40Rz@007MQOP^omQOyX;bZu7E0<~`LF0+|S9uDAXa1}CGe4){()$TG zIr9w##(ysuyUbn2qxl=Q>o-g&Q86_ByftIBVNUQ>DR zlg1cMm(Mm8B>|9pPN6!WkGISuX23x}U+CC-D}1C7JP;Voda`}CP>R`~r7go7WLCZ^ z0!fu!*3}Oi@>c6>xDHo|D(Buk5+JM-vzCW5O&;^T)Ccuke9 zp1q~tB}cf~N!qgs>G*d2LVEw9?m$rcM+KRE1MUIcKh>*?R$dn8TvBf27gIrPV=}zt zoV-EeiREg$JBokUdz}d5!04CzL$J`X9YiuOpfisHXwijxXKxodH}1SWexPR|>c*lFQ_uIh7)XjK_uQ#iO zk*;?WJ<^hNF<*wRI$upcrkat8=0s^Pn|%41Ozsfb&*!~ik)N5sCwQusbHb2B)R+#P znG{Wvjm1Sq)YvqNew?{3SKfaZ|1%2My@45ZQhYn6V_D>z?POH7oQ<>s&i7SO3;eGhRmoN4fGlj~4;M1qh z$(D~dO31Tw%#-k>#ET3#p9fS?}C#IM~l|^z3_a!H1!ZO zNC%^^M5GfhJT~;ZRAeIEvv4~RoVEl#kZ{DWx=UZSgC|O?x2dMfcfZs3xu_sYHD!En zNGg&H8a?~(w5cP>DA2AlZ=va`?)pKDjd_-pOZSq39mLt31Ee3c0T+eP4ly3#BFDIm zsqovGdW=V6w68;zzCeS$+A0N>Qv|H0fuibPBlZNO8h z@%!3A@GoFHq%T~$Ml>%)h>d7Ed^txxQ$X92eLUi8Yd0>)tIw_q<*(6UgKe=aC!zlB zkV%^1dikzhI+Sr&-Wf_b5#h49D^KG~YJdoar^F8TUqbfN7fur%4*{stpSQUsg8UD{z_cR=xT=_kDSsZ; zV*oOEqmJp;OYlUWejpAb;cO~;=g@@bI z{>7Sz)G3M>C68B=><1d(LqJ}*@#2}talghgO_ z$0qz%-{d3|dL_ivCR~TM_;vk%$|<|)o<~1pjC)%x54qoY1sZBknuLlsNM!D8 zcJ-dewXeLKcJSPFiM4Py-$s~8d%s4Bbxj`%Eae@1g;7G=UZ2nAGVzK^mw=vq8Mut) zlJs{PwZErjxcsNN_rY>)_u7jPqlETeo#H$$qu6U&Rn)W@9tg%zPg1Rk3Bpq))Bt(K2YZdiE?j%TeY2p z2l-CON|UIs<)|1N-0IM59fy+rU2YupHB;<{c1^^NMBAx$DnfvQzfW3+$#A!)3X0Uz zGR*5#vj44YVhPhrnNneBxP`iN8uOmNxIhkd`SDe#mQ|#aniV|pJN?*;+^vC~x7ac~ zCg(6+qMLTtBJoPc!OZ7Z_Kjx8ct-7tUSV(Z3@o=WSeA(M?F6sE6bX~As9twYp^kIexD3X8m>OdJBbs@a#H#Avae6Nqj%`G&%tv6REZ+4=C!J7+BLiBaOO7d8Ptw&3 z36)HamLTutiLlSt`;5Fl55=k{Bg$J8SsZV3U!t)RdUwn539*fxUXsk0sUKqSM4sp2 zcrh@8o`=I2GqjhJ2Gb-ZcSlqF12;M`2S00r7@j29ni24PdzAbMp4UgRe#tbC^)kj; zed?h^hT_&T#5DJMTt?|!-$&_qmxa(VCb!tf)4WIlvt0J}q;aD#B|*7&5TML<+$^nd zwko%C+VDZ`vZr-omR{F-|KWBS|FsvSGVX(=BjEThTFNhVKofhyL0SMA-Wq><@IYtp zA;KsR+Vzk`{GHcK$W^xH8zl{72pi}GJwSF=q0W(=IrfNs{%!slA9-6Jd5{z99x%Kk zyyTZE!Ds1ypm4$7|0KH(jUpCt=J{2tQAqG#8Ko;rb<3IBDfBvCau11ty2L+9qw=2# zsgaUhuS30&2-Hn z&g*0MlFX-+;%10twVC!)Ghr$8*`u(p+A5m`ntBkZxOlBW{VZ z3$*?~_T}-A$@rl7_6~1S4x_l;fVeS{$J@t!(0hzMTwQz$i(99BvXtV^2;)LH&o)2r z6vdU%;~5b@$V>^@>QF< ziPPLYg{41mWRLgHNCN>1;?I*jP6gGTc2^$}8~EU2wzZx%5G;fYVX%+Rr=V?Sn)DgD zahn?{@5gq~m}p%#ctP&U&F&pO$G~`7rtZB4l8kq>MZg{OX^{EEBzQbXGuJ_6w9o%j zfcnx+`h(i! zPG?3dX35#haOCu(o5$J!_gx4Nd&b61e3^0U@7t1czE;V;T88s;dHOqZ)$G5<-m-d< zs!O*=wTk(1as*kynT@sc$Q}p?7}>JaJ$>@p*drjGu0h|jf}s=TIgj9miMh8bv8J1p zhWOg@*;P6VFsSG^dz6G8HvS^n)HqW081Kbc7fWWZ-#wz=(urkU(0BU&?3(*3Zqg`V zh{)FEQ)TCV5XvbBLkSSbk z=Cq|9nM|KbIf_#}$*2#3ldfKW12-Qo>7Rc;rb}1sVL5Gp`4We{aPiNVIj_~Fv?rgL z72b}dIuM0@eLWOGwky6*`?W#b6D_Qr!4ZF4X+Xx12zq)@+Pj|;DQi1)pMt=LLQXhE z)_fp_v*mlgLJ=XO@1C_jDd7eo903vy#bd*ifj1A*#o@|Ua{2^8gHMos%ysuV3j-tC zmq--T?86fOZ4FGi=EC3wHL?nRHT4yc6qF1)vECg<)^+S*&n~n7j z|Fv1e^x;ByPL0$3=cN!lldH==UY6r|T+0NKd}`k~97;j(vlArukD>hWO$ZT#tIKeY zCj#F@OBnuZE{wTOzDwBOT}Ycm(UdZL_J1!i2QsdbtX|r`ND}PSu}_?Td=A0^A+!dB z(c`ZC|JR&i>7AAyngA0$B8UgoI8*XJsllK{55#dUlpkgAa=Kqs!U;knJYC@eh(&Jq zH_4`MF$ntY1K4p`d(tf-P|7d9NG%^e)l4NOh~n7`f@H_C>B&FW`IDMiBilA28jKm4 zA&Qdv{By^`>*@PnC1&-PMM zcbOv&n`hVtYl=Pa*k7XSE-W99hZ!K`qe9PHTutf8jhXVONFxHdSP`**?*zhh)d+dd zaa{S?fWXQKyR1-8UcY3#hna}_R1Wg&&pO0XhpoSzq#g?{fYrs;ueAG>HtwP6V z4}a*>%I6*%8+*T)H%{0X+?_Gyl+53ogOEZ6x`gO9|Et)T_}Lb7li9g=5H?O`;GZy8Wi3umcAp*h*oki1%CztD)ZZR4+jZ_Y&q zZKERQZe;Gt#Kh@_bN=-Hy6*$@a)<%($@8b&p43?~MKbwB&yW5tj zs|ziW^}nyry1BLWEQ`|?Q6W>1n)0!0ye8t8o9QnIzU+(kRffOU33lexE&7Lr_i~Dg z;5(i`obZ=Ry}jo!c=cBG+fmDdzMv?t;!K6rI!3h9n83k|Wo@}dQy8jKCe-3+Z-RP3 zigrI>W&bWrJu!pNt0V0Lk`dx@^PAQEzr!Cw2_x;q?<3^JuLN!7a~UpK6t%AXD6cgv z&vbMLEVtv(XZf;*)m3ibG_tA}kC)%y=E(Z^(O`4g`^ec!6y*DO@ye;duJij|O1DMBpdcn-*OAJM_T9QZT)Lom|Hs-7 z)U`&#>vIi==^8(}o&^hU*G~(L9M>I^i!HxC2Noyu%^^%+=*11S48)=eQgC4M!IN;osm8n~tUW*# z%m^||uOX_r`TU>=;GgnqL1Qk)E#~gj?!@p!qR3N}uUf1=72Z7D`6~S)*!)K?cpOvld^%BtQ<$ z@_xH1X3V1}ZvI*qbyu-Zhs54$#E}FVlS?Q0t0r@(L3m$LVWS=OabNLs$a<@N<&Q^6O9ZF4h{}eQ9(uv4i01j9NZ{Kz=&9szX%*0 zyq>MJw1%RzG>wL3)qEVpwo(H@w)J}OFeJDq`|b_uxt(EELE8- zTlvqQyj9kNzuwE)w|*5AX4zgVYY|x6+N*8CQd1j$N8fz*ESza{esC2S5YT>e1tU^? zJDLoaYM=4enkjAjcQl>2v>g8;uCyUPMfz+LkN&A>PL*#$Vy0J!xo*Edn)r1YHgZ{s za{2e}ZIk!fVHb#lg?Eya{3KpM8sZJjM_k>)eR;W3xF_g*0b)eC7k9dj11T+Gw>DoF^%pP#--ysQJ^GvzI!H?eJtEg^m#N2qbah#Y`b@t3(h z?Uoc(ZdJ!sh{+2~ULW{Cwo>YX$Zpzh=qIZ3;A*hD#&($N(M><^Hf!YqqJC|qr)aIJ z3daguqrkyO*usH~21e?q=TXj&Ah-L*#$y z$XK~qxY|0q+d4VY{H1GV?&RSvN=NtiMgRWyKYUtw+y3WGj&A>27O+6b-#ZXa4k+Z` zw1KH2e@BHhY`v}Q^<``w0Pz6t5aZ?J7WwD-|Le|w-uPcL_5L%H56b`FGym((|9|Ey zH!D|ZCkNn_?qdJZ%)ci8_sxGz6oLF*`F}~`f5iOHC?IDsG!e+ZbtZ;Zmo*^=2PXli zC?l!k4gb5{%U@^yGhdsAq!cKWOp519?TadLB@J|CE#I2CA?1PbX5gde`H7#!pi8dn zn+*cycuIa~yCMqeRCigGZZv~LTp35-mpP)4FpVrhw|o7Zf=pM>fa`q0iR$)i-|&@w za4reF91PbK{I8RaWS4B(>lWPq9wUJdf=huIqr}3|ccDN*|C}l!fg!@~owEO9`gy9|3J5}Oz@wHP>@Q8H|D>n{BtU#1BP_KIXUM4%fw%r!^Cy}Cu1_O;f!cg zH|_uC0(!T>`)`&2Vz6iw=$#g>y<_x$Rzw2NWYUK8-)w5&0z<69W2&70vzGs1W-Dg? zzt#r@vC?&IDa+QkzW8rZWcr_x{aaQ5O$k|WrvFD2KK}my70h2^fUpq$o6Y|RVL8f$ zuibP$P~P6%b*&sb?(O{!9UsTqJNO-3TdVf?4Z-W!eVtm=vp4TpcrtE6Fbg{OMXpRE5yFR50U`^2!XJ+?v*iQ z!?TeesxTFa8`yDh*Y&eDrjerp7idMH!tW0%h&}R>a<6!>mSeB4^Sas7M*jTjSbQ~N zDAJjQg)KNSaTsUq1eq$I>UQ0A&|`hzQ0iP|ugdg z4fjj(z}t|MbpzX7-lDn}9$)#dYopX2gH~tVDOVqMJ56_DNu9S3UI_$TQ?#94)xnUH zA!h;IzX;VPB8*v`Esen7+wNVHT&>TC;Y=n+M@LZKS(dYM)_2R98z>7y=Ngzlj9byj zSC@hDPJCZgS^L2#v_&h8+1CZd>!jk ze(UzZ+Ux5iU3T6l>O`yVPwI6M!zs*??m7e%f}V!en7j`?4*SUPjs9t=>D|k%2|-`J zWYj0l+#oUDQx%=ytIf$uIEb0qoXfsJ&#jJon$li|5;z)CMiwZUn&ZMBG)P@ZXaDu{r!;bh+ zP%*}gq1rLahi~9(bzpOffD1V=H?(JK+U$+qQMFs0^gv{>X16rf> z5Ba=|Yz5trH4P0{0T~cSBv5^!;CoFC6cYL;e>A{br7Pkd?BHS$EfAU1>P7vg zldV~Ah|C~D%=pENn63{6+5klIiwKW=&`0{iC zee|I4a5x^6d zyYS;a4o5*f?P)Bntz$@FM6iK#X?qFry6Hx=$XE>G^#~+{P}Bv}z08MffL(wpsM3{7 z92AcOk)r2e14qXwk78paoQi?umL#G!I{F9urDUxLXXnoMn}eLW zMjqTxnclvq0=|RZ;=Vgi%ox;6BWM;!%0G0g@accLaq)xV@gP#Yc6}%2%vQ8{1RckDZ_!;40C-91XRc<pflL+N=1Q(+55GDme2LjJu7u2b@GdDG3e zZ@TB5Fsk+P*Jt%IVSrFIxu*6Y5EtDopQ+1$==S!V;fE3~|Lov`cO#PI_(crR z48UEV&!(jzJ}ZWw%y81zZ?(2q4^NX_>j{g|Fw_C5i!_k6wY4$u?i?JTDNo*e92toI z9vM#2K_;GN1}%9V2Mv@R)(5Vz{uCMltMIY3(gDty7=mC#L&FS^RLx0-tJ%Aln(8LP zG*YRL&7*-|_WJc8fnq&aVwuSOqU)Es{hJ+&wO6jIyO#doJ#LeDm-aoKs`B!uK-hI` zE^4MIiwl(>j_J7-woC;S|=>TV5$C85SxeWWrv6sKoyk&dg*{j9+Lzf2@Fj z7Z-gQLYJo&c^?|&Ee|PB*~`nzC8RCre=p`SzG*j1x<{etn#8-Z=~q!R<|*t;HEcHr zF%c)vRYweG@a`I2Xuec!vw@kJ6*(V^4BpeR#pWw8h4&~ew=ZEr0v-_c)#|SXEC~!0 zcP8=>7_F=}>g7)C9+yc_Cez(XZ3V(3N~VJfSo5qwWoV;i_MyWWFUnv23egJj#swKs z8Uc0`Go5t$#%ANo0wPgnS$M#F7=pd=|0X3!V&mEURAzGY^G-9MDUGb3gnF33|P zti|VoZz{#(@O6k5|7%DcZengKi_90>n3NP3930Rh2?qld3a8L6anuJ^ap;TtMU?{C zoG3DrD`YyO(_rZl-M=NQpJ_LnQ+Q7)8gS2M*aORg1RNrg(7NrxI*u6Gv$0jZwc?uv z1WA#D4*4BHimI}*vNk)r!{AYYLs@K5tMd;L`t=gjvrNX|7Y>ZFp%FhBo9%;MK(}ym za^9FO#jkjixgdd&6SVy?=;dNz0q zl@1JEqk-SmM13RSI(h=%Fk=PVAv_wbg@6c zUfDDlClDcFXGcyU=u1&tOy9k-(%RxQepOn|gAWzd;CWA}(lIJNm>sX7ydjHlB9T=z ztpzB@9aq6VSFQF{QS7AKgh&{k6g|V-hBxQpVy=Lh$n2ak{MQDzX?_qg7S(_>Nk=^! zy%9g96{sxd4PB!4Ow2ED$?;&1rW;frP>k!{sKb zZu_R)d^L{4bX;CaAZ}p@?oYu7S~ec=53KOR$`X|>cV5b`hZrf471by~p;F`xSp_+{ za7q4wKf{nUg&R42eIp|;Q^54PE{1H6aPj<9qEnUlT68ip7D6SxE@>O*ClHZFf8z zmtN$<>ymeZOs17RH4g)Tk^-Y+rzG0}S6Wx~2|b&v?$c=Ec!n0fk|be9s+7M!+hm*) zb`*-Kiak%RfD4|ZDUG_?y#x*O4IEk#zvOvw*!^B&Ub`vCnpuNrXkcpulu~_(bEVQ| z^P7QtHZFLSUz0j9MGV(wFp=iu@y_V?GF0!IZx~8qRYtxwn;PQ#OY+gt#X+z!a*7ml z#tZ+^)KGy_(#?_(D#1BKCe!$JtGQ)hYYKg0jZ;49i!m)E(d5|ket)^J%UaYkCJ^1_ z(!`d8aOGwE%p|0KXh$9;MUu#S{JYiP%)!OoKG(z;%wbX+Wan{}nB0hBcq&tki;oYb zAJ1+Jus&ymW#`h z*0&xC4-cdg77{W$Y&I&E2DBPANpruyk|9bO-^h!4=AxlxfCSk7_dY=dAEPCtrRh_P z&m}D_TO8-3>0wZKH!!=~HsCmF?{utqP$7{jPisgGk?_wTUhHz8UZHi{{P?g}vN2x-E!`xJPQv_D( z+q-yN--7R7${f&Dx|;e;YUZ;1KZZ3)E^(rt(cSL%Sy;VFlYHAlvCf#x~M%gv1BNjkk`V6%&^@PvzLm(y-8r#3kM#p%a4@(13t5w#PADjWMy)0VSK2? zcn*EL_4zi60nvyZ(}t|JSNR2&&MPC!I5Et5mjELK9UUFB`2zFqrlvG~ z#lLa%J6Q~on745jIxG@!CXH|UShvZh%*Fs)D)55KGio>^)-?Mg>nB`Dc227sHGbdW z^^rBVYMR-=^xPcQd*59ri9l_JJDF~$xNJisqtL6Wjw1NRPi}ES7%Mk9kq-Jkh~epa zg~Hniyj>QcGNkW|P2F3{b{sR4;NCV4aF>WxkL`4ah$vskHh9kISg#yUI5)c2sF7K)7eSTH9$a_RMDLA0J6dm8Aqb^fh1+XXTr0dT z8hhgvd7W?2Nu*fs)8Q$XK!xaLEsoaD_@SbBvX-puwN0dy^6Wgngwi>kw3FrtudYhh zmXsFtRp#y+4Qg+)X5!ZXtP{-Jla}f%6Z{y__0#Rn8J97%<8EUf*y`Ht;je6>9_OZK zl8YJ|a6NyI>J-V^@knlLTUD%+gt@doJ_Xcp+6c=5umLL(BROn1Ly}2p*wG-&8#f&F ztigG60J9L{rS_eEG8Rwj&Ex@Zz@iS|NZQUZ-%SR8`NGdoJVzrK{^?3NAGO8zGuFFz zcC>;-||g3ue=w)BPj`!!3AHT8aBfU9IRq{whUl`P>SNLIk4&fFbEgjy`M@@IdTI zZ?jJiNr426hOoAqZu~&F$Q4YGBt{eY($rKL{4I@)_I1dKL+UCph7DW+|)nhgiODFZkA%1IO)ES76h89D^$AsoT zcq{NG&uqlc*H=PDhUC7TGIYnfIq)ZUQfaWpD-U?<(M$k^P+b$Oiy+W+f$iZ;-LLsl zAbF~h%PVFZKg5e?%G82bF~YhOslba%!lpAsLfiZpb2Ua*cU_qy)Dt+&*Nr#ZjZQ_B z%J%ce?UR$U07}|fO3L|!5eA1}UxYLLER+H{+LdUaf}W9)ERM%>utL1 z__vZ7KVPHUv_dmN6A40XMtFsUlqf`KG+opX=q0+nm6b-CTf^Yx=f z2Gq_8%Y73bTkVOy9&!W6Q^;q{RS9-Z2I61S^Nkm89aK8DWVD$*IM2v@>3}><*N-2B z-$$y#$43Q`WMI`q!k)(ihrOnn)1aVzSQfjdnE=vxoU~w7O8G?L&Y`>per?eV<2PS zpfqhhsHV!U<&T&+yrkU7cUBD%KM^n@A{PVNUv|x4l-2pe86mKJUSWL5;9DjU9s*X@ zN(#sjBdj^b)%Ajf4PTDlWK;_pQXQ4L74|pr^n3WbHFdACzz=>NDIZxx8M)94PY;M; zs{ePeilRGZRnBmRh4(%eKR(2EW;%>4bek}Z0!;$s|ASZeZ|bgMr3HgAw2fibG>@)S zGZTlJnV|+q;TXJK3yDnyo$t{3V4vPZ^vPgBI8k&OO@LrnxHOs7@|+Qs?}@;CgE4?( zW78stV&H`wA@c*SjVx+W=i~MX)OK1XQ!JqJ36VXQ+htvZgx@i@J}~LWaZCWP<932p@ z1&OKVhReZFr`&@)8_pW8xMx_OYMXS7trw4SgMP&1p|dbgC{JTiV6 z?^EV-zd=tP)i}L%`CaEuom5o7!^3wKij;|mT_T@A_7!foC829sFrg>(Y?HRL5QV*V z?sH($?R`*)JPjQe1!B|6$!4$mtUO?w?lYGREYGc^dn6K6+O~44TlQ?$W9Uudc4|Jh zw^Od(U3}ZKJfZ7Lh)DV(%KQzN=1_ManWx3~iuFK@s`*>)PcFxWmREZ1uM5HW%tyGU zpt3Ov0L3AB4cBm;C1V(MB1-p46;@p!+&^Idn8CZZ+b z;@Uj166h_y8E3nT?9$Z*@<~zn&{1@Bn?oz(EZ9eJe3g#bK||LVl{N-xepAUh-25Iq zmtCxpP7D-0V;barHVgtXJT6iY!V~hy_jx2qm=0lj;Z;>_E!FkW2suN!AjIKU12S1o zZSPm+*I8~bBq~CDs0TBEi@$m+JH|z2SneUQXTlnp2v9y%9`qF6Rr@!Tlpp}{BrT2i z&PQeerj(QzTDU8!^5V8vVo1h}_BF{uLPAB=Z6G3cgRYH3p*(jc(*so?c)hAmU&h0S z3{PU}CsG93K5UM*UP$kJei!~2Y~JF1#?^KjSJ#D-j^pY}Iw_fO*>B78dle;1Ur=rS zZ7N!0qub=c53phsdhE27@^uPorqImzmNI27QK$)>tZo-g&tlwv(bWxopksLA%_A_1%}l2+gKUgenIFhKlEUnAOHFt zV`Da2h8zC`ihazB-HGlNTPvHVcNyP&S7yDCt=fj>W7tNY13SL%6MI?O06qvaE@_rR zrK6Ot+*FXs7%g~7{l`qXY7k%BU6M4koC<94=FR#_=O28g&DZp@*1HViAj>BuWyN4Q z48w084~}=_lZtV=b#s!c4(trf5YV~TrX?Fd_64`eqoM|q?(pZo+cIw}xTuJBGOB$1 z`~sa}-mEOx^5gAZ%0yq{>pBAtwUBIEe_yhgjCm9W#wd+f`iPc6yl)PUJJ1CMeV}|a za7=0>PR;B3)*=8hEO^Ica&E!e3WO}lMQ)XaRaNNVIP~E3Ill4(PUZElUy)jz*XiyV zK7btJT(pRSWTP(DIrtiENBFGBrwgxvL{g6r1`9bMVU$=%E!ib3Clwv=9JQ$w`vuW~e{q_mg+-Os!3xq2^^*~IG9iMDx zw!ug$q>t|D;VI>C^lI<8xps7NEa%JG;~fYn6v*54ljxsqe@Bux4J|J}jVk64OQ|CJ)aO9jphx}M(dv3_6X z#_YfOz3V)v+YV1AR7{UEwsoTjSFhEa^wx}KIzaFt$p0iZb8#x#z+)X$TfWb>WYvf2 zUO%DIMFIY8>Hrmpo--$zh zmO5YxA%BAGoSe@`v3+x1C#x^PO~f3T%ne8!)_+l)pqPb92gRU@E9&1Zsr`XQu`Sg= z#k!)c7>)JxB&&SBBy>G(aUO7tp@VU=o-kKu-y15ve{g_D zx2|2*2fq?3sE-ePG1p_lDUb)})d9R@OsF~HPj^O{0zj58n^!uHsTC6yrSt=nBpjO7Tk9j~ znCgx%Jud`Y^nE^{5RmimY4q5%M*al0Cf{u=*Bu!J^|0qYjp)9&Yx@n3YW;RCaQdr8(b_jcAcoKHJV$26>m!IxK)ChTA42tcb^fx0KxJ zL&5nQ2N@%)bRZ4LofH0*>P*`jrF*l}yRVKU;^gx1-vXbI2nf?Q(qFUP#+!9g$e(Eo zzt`IEM?oV)&+=<5QZ7f9+>^295L!eoOfcAx!h#fClTG>gsdU{J&@!1kZPMKt{XFWTfCPHT<0D;DpvQjg%)rhgJp%Vadq(Vl7rP>Ar`>SJ?fiDTz0{~~1DZH!M5clEbWGij&Z`GH%2ffF)LIhmI!obEt>?vZem9`9>+Mj^yL&wJ;fa6tK?Y*4v~*G9 zc`(NV(+6!z5)XeMy}xJio|vcz8&_CHSyFR}tGing2S6p~=+Us^p+iQ8g%(7_rU0}4 zO;X=|yc_9V0B#><(J+~)ap*7^tAQ$dHyAJs4Gk)L^A!)ZIE5BWTAWcku7AAMJP%_G zEiI~WctJNx8Z&b`yU9Bwx$7y)a8BE1sEv-#tlFjhiOP2m@1~mupow65zTIbTwXqHM z7UB@HQWD`Q!EZ2D&kzI|DJ#G9Z(Qe&?7@LEBasV9alu8wz<{+ZkYIoe!IYGXZ#tVD zeqpM{sn$Clv2F%`7oEp|ufm5inc!tm;X|UjNDKAcbwUNs^mHtLE8J}5=CwO@N{G+c7v4rh$b-qm|;C4+>ZTy*{tzA!Qj~0e;8(vU{J(?+oiH06C zb^oL2Ckjybm$J~tzsG5WHCv~cCWqH30VD-mU|HURD4CL<24&>Q7PV#<7m?oIE%`xx z&KWZKc)JTf0nIHjuo!fM&S~vJ_%9EhCqI{N8d>Xvg})WHloC+o@#1?({*2HdoK#(n zBt#`ifgls{;zN+TxV-1;p(1DA-I>f(ic)(sm^r2-#f;aIM0R$sA>_ zFynft-?AFC$;FY`wmiEkNvCd0B06C-8;|gV*oc zYi?-?{i%jXLe__|>GQ|8PhVZH$biC5P->}c%fRim*`HV!H9y>XH26*R37nU~QS&%( zS(oQSNvpvv6ryG7qV3P7%#Ge#d#E%nr@#kEmoK%sp!~FMnSPU;LWEX+!@lHM!NssR zK0Z7g(m--<4ul?+O~Y||0IxUzuOZbAOvWKFi*x0s&-i3y<`p)l49;!*!n%DIXeg)r zcNk}H|V^hf{JPYKTi|q-z-sUv3#>30bF^fYQTU^Y+ zvl3mS;MieZ@t2WNx?O30Rx1H z1}WAl{+d834nL)-8IILmOdw`h=Zcb<2IIUt_+*{weFfjw11awt>>kVE4^s2q7yR7R z)RoS@WOk4W&I}du%dHOU`pT@Z`j!N6-8v0HyOaXpzbT?zp$c?3S%+bJQ6T@Y{%Z#0Fs|gzI+WtN&EiJyL5-V|y zNloJysqz=YQ~Ay7g4VgePhG=2=}h@R16zlyecWe_7x<<{_FFn4K(TN$po> zP4JRorz56!LujJouHt@tO^@luG{GXGA~bY#7&d;Vo^CPr4xcwA zvFL6;S*s$y3js*+f~;vx)0s_F+M1qO_P;&-(`hhWFp6_m6mWYc2fuodHsUNiWb{kI z^@Kp)6tI)tWK-DJ>(})C{wefFt9gj3EQRgP&mw}An?fY;`Z!Po_)k1{fR!KF?V3$< zryVYG#&=yA-2xphe)er~-{-PqQ&h94xyY?{spFu3*1lKH8lmBn;94qW{~Hc;OBW2C0U*k9mHax6w+ zEzYO>j@NKJ6oqX>0r`DXpq15bA&2c3ZTjU5H;Fy@G6qJWSJ=eX;8dxuA@FGO7Jx~# zs1YxI2m`jlnREx}i=mkBUmF5_u|-GH?jOwPc*4Atw-Bc=Qi)X)k}SvF1Uir|KYnU4 z@-}j<`}+0k+DHu;WB@BJ(K(uu$%@A|r5BrBoLICv05*_L*K zu=1sWJ$#^@((ca@5)xkD-oOrrTU#%n+b9EUwsu6jr%r!XOA=SJ7R<67)-;N zO)k;LR{Q!!j7tSfoWNzOd7!jcuiAf2Z~6H7A=@vuQ7(0$A9B_+;YzE;N|=E6PGzP1 z*$9Y;q>TasevL?XlpTFuFOTnjy;(%TZN8#{zvRRtL8Osxr9UPDs78j!x z)Ae97vWepmJ$88DBr0|N-o|yMv-Lig#qEetQfUj9imby9myj~dbr$iwWa87yi#N6# zSWp%A{2eY&orT)HIUs0|d+`PX9%wF(lt0w9`XO8KvEBS;Z#V-=jM#*L@MyXYz#TJw z=Uh#G6a`w->r<3gWE<~uUIGiN4aS?~2IGLUGtRYx4KypOv}}z0_{Wol&+-Z=jO+%H z&u?q9FGI+Ai9k^b`N4yTsCOTWI+z{kzXg0F9qLgM3uAj_B^^c`7Y-`{kFHKcNJ+;mXXmI8H)iNZ#BU?qdpi+vDDZ=zl#LXY&Twig0S}~ zij16Gy?KwR#2IfdjVT2FkOU^rBB-&M0uh0q;|J_h3`(abQP62UPOQ7hwmmOa+R4FJ zgjOHqF2wNe&5?AtyEA8VFoh(nxq>^rwEIWZyy>5y-VmZE_e~<)4$HeuWu&n|Vp4c| zT2pNJ!@UT37E!t0l)C2YYhH87PtNbnPNkXr1E`MGPFpBdjM-vl%vUXGirhAHAR|E=)bJ6+JzuR%ezwYBx$ zimbC{le51A9v;{`9UdHQWZ;iH>~ydF@_t!@W8=F_!Lc1qKh%Klrlv+T+fSu!)>vrn zT|)8jH**bbUdwQnq3!UvH;7$!bJY^cea?14V zDI$#@VKJu(H_wdD562_Fz@T)%n1DeI4O7u07)d8%fTu(gZ3j9P>udAz@NK7r24hJv z6HF6Vi#PCSKC&ti7&f+)s(??fu6LkJL`G!kZ$TveJA z+^f%h*>pY>rGGrTyc|0O>%IK_}xf!eh{S#z&!P)&lI#@15gp_ss6UnoC>Fc zs$9*%xsrw79yoB$Xi53bA}78%Oq?}&d)-jB(69E2+_sVb!mm5o_FK!Y*fl2Ayzbt; zS=!UCv)MF$&cDBJ`lIev^^e6HIHrp%UFd-(%wBZc{TTXtuk#FiZcYkbhcKPQ|7^;Sx6a zeoYDq=aHTpCGF&{q^|kf&H1FzL91Bo9Qiikdy=Wd=xg5z#CaMdp+1q+labxtdVh66 zgA$#5s*n1*Y`@&%<{BKvqIu)eVs0t|&-hjRC#EG?O-xKGx=uWJQ;LRlot>eh`A;mP z{Vd~RB>`(B*;q!L6*P#wY;sb~3GuHsD@jCs31nzd(Xr9PYK4uUPUH5Ehyq$F+1aLU zZwBOGfwVpwkkU`P=T^)nVPXBwXFZI!1M>wDxbzD*0}C%@JKH;hmLNd8S#U#8(CKiv z>OWPvoV<|ENBPK#>tls3!~KaLo*_NLi%&c%%Mxdf(Q}wzKi)L6uG!_JN$U~&njFgN z9qWtig>#(GjNMV8(ripgQ|%==KFUPzHS7jRVjPPS^I!UHgC%k9>}86|+0yXmWyobf z^;DI!uOV?rQAjJNQM{9?ZxZ4BSEWfRFrGDo@+mgTRI7s{VMBfeU=1I%h-K}BIE_iw ze6qs%_JSLn(AB=8atBE)a8lvC=)7N~l)9e`fsFoawg>q!i0U@m{jHI6$6hu%p4HjH zLu-p1nCv3br(dLf=Szg4xc}H|C-qjpZRCnC>I1Zu4V|0nzdXB_!3^ z`7^H>o-~JO&OLtr{@qn`!?$qz^EFVcPtUaDy?<-h3$z3m^CysU%h?N0!??Jn?Kklf z2x!|#@{}it38EnBpWaRs^L_}zNM;|p4sUKsPZUh!uYZD2S~BsOs(AX_6J$8129u68H#P)r zjQj~6qZY+=b3pa>m-sUx5W%5t9k^V){!|&l!*fSh+J=lv#^frulz918`BFLju{WMd z_GOl^{xHXyZGqPMh&1(d(klIw5|PVcrufHf>PWh1W{oA+J80rs}xNhIxTey`* z$n zj0cBL&^Hpp<9ea@W@)f- zK$;FRGIXO$&YDCO(ks>#+6HJF=>EKFG@ptKWqT;1y$(3JEwVV1BbdyO{iU7KfN?jn zSiFiYk50-g*ENcADc@$(7Ek7~)irdxH6q=rr*LVP)B)$vAYrOGQ77G)oR*>6-TLUy zv+oyavt{M&YJ+Sr%;Ih4?3~zA6dtBZlp=(vZZu8I%)Ci2AqFJ5fr^IdTs3JjvJ6&H zf&V>eIyF+2u4w#Wh?9SEH;%}Wq zQn@Z16bzZRiVIg#7Yg{E(=EFeq_191!3vxOiaI|i0Po0d^VyXtNgRvPK}}tmXlZSH zw%_V13Xbyjg`{|OPcdFYji%h|>XD3fGJ}RlnW>vTpu-F&J~Z%nc`z|?Wv{_}-Od%9 zAv|@XEh&ksl9vq!udv55<%yn00%3g-6dTX;oW#PvXIQ|2LlWz)i7ZOUvw;DIoegKG zu_0aBrP3vrGcco7;}ehLClEw@K#N-V`Dynol_Fn23SHk;KWyRafegBmh6c^Ol?=L; z+#9Tm-7(xH{qe`Ils1ib0X{f1S+v{sXsNGEL@FQLN_>RCM$((wXvAVY9uqUxn>^N6Tq1 znkYM;#_Gh^$da;iL$L;#&nBk=^_qEBRu2TI=}l3<;dI74DD1HU1I#9S2t~Uxou>QB z8PC4V4IW`?PXxcB)U2$Fe|92mWAfQAvvu^*)AfX!AU_%8aWPVTq3$`REI2Yk7oP{g zFZwQrCGCA+XiRkMH?4G^dH!fc-cKzB62=2=K=$X#pbE3p3F6H+>G8f?RZ=n-I=xJZ#nJf@` zXMZG6H?=-mVGbU+dw7siap!q<#lj7wz1SHi60@~u)b>JjFH|2-TdXqgpb#~be4YGh z_kvc43-9siY4%9q3m*$eCiVr!*gp5}8YtWx2kWFK+5^!*gE~IgJ-!DvhCfh3i2fb} zRo?57Z9G>@wQp+rV)yiu>Qd3iGoexjMzJk!xhJ*mikr?qPk*G2pF<>ym<2dNa`Iiq z8?u|FA#CrMEx0m_S+ZVm;H?bxN-@WD8cP%4`kv$U z3JDZkpd=E;G(QhV^O9NIYAzt1PcfLVMK_CKh-;VDkVX@Y%Uh2HR}AGye9f2pES3Vh z_7S0wv2-caHUcWH5=;Axj8;7!Jr&~b@=PcVLr8I)L%pZGKkJGmqAwGvCnCC~^;0Cf5zV4|m$QZp7$q7yx)Yt_ z{c9Mf1;|wArxJK7L`w2Q#CeY2fOZZ4!~QyS}6 z(A>T22JpiySBkaER_WU(qX{wA_wXbNQf5;b)?;LsqOI?8aj+h4sPPs(4)gVR*Zilk zJDX-LZ#RYC%dQMsB(~Xf!+h>Q^o4K16pY3^M8GGY(s9`qjkHf5pnqRXe=;3=iR?Os zT2;JZJ~XJUN)UT?Y1?+UM)bY;=vyBqBf++v)Re(YlxD3Wix5%X)9`L=$`i_DoFE+? z#h37-Kes%a&4hQpWBE@gDt!`}xm%JFp#j~}Yy?%`-(K3R@2QE))EZUc7xyywaP!ef z=r!!6nvmeJM-LK*_3Zhc_9r8U1=-OSXL+sRh@20N(k9F#P?FPZ)hI#7_2{UW8bD$Q z^n<#wkuU;a3(fXKTKrk*jpR1#7Q;^}ZZZE0A`Wke0#T_6yUkDZhfh&NP!sTzXp+us zmMaNfa}iJ#(1(7PKWom!>p4F7 zA+*;+jmY3Eg7%(8!zLYUn7|-KMNJ;EbohI7;a9P(jSaz4tvfVg17k5|FJj(DBuw>e zc*pb+LX_5w%sXDf3mV6P)ZCAIY1JgoOMbgl&Tupa1m2@tM#z{JPk}E}CGXt^wt(A? zf|xf#Wn`~V67YRW;Nl3rMK(*;q?V~F!m6t&iazpZcESk?|G9X=<}_3Yp8WX^rc;z!uoiNc&MPd-o6qR=6> zwBIVd_=J&-!v~h@eH+v!{-o{P>NWR@^4bn#FhTPdwp|NwlSEf!UyQT)`G@{@Q!Y7{ zj2Ci>jL~gs!%Qv8GBI@S1>z<&plQMq6Om%oosx zQalHzDNGLP8ZZI$Q>RSkk+?Gn1XCJ!6GJtg`(_@(yIR6tr{wMqk(hE8dX$uuf8qZ9 z$4lS`I`!y6(7=_2F1XA0Ik3P8O(-h0qHY>i6o#DjkG*fCi-qhzV~8PUG;2Os@-^jf zQcekpYCq0ljfscx3&uqVMe4=%)Hu-X{UG^TRMddGm&)Pbl|&fhzm=>> zo~A?5b9z^*xOrDrJE@YCus*($1*Jl4`A`8(w1e-*UoP;H(4!Zm%9FzH{~;6xONt`K z%pK0qo^d+rvD~Ip{4nb$W(oBBqf6L#2)~^mMEO{X)|8lrs`w$m`_pk(O)O2M_&W#6ulYCVF-jOu)g(@=K(1_h=n zB0^Fdu_##5Ya0EA;zWDxTO=V_a(r^D7j^|yJJI)vDQuaNe{j))Df`O4o%nzM zFMvRev@~Kfex=J<^HOg#J*9K3BpX_Ebo5?_QP0e1vHy>zuZ-&I`Mw4OrBg~8q`Re& z?v!qj6p-#N>6Gpk=|(!GyStI@&j0ZJJ)VNaQeM@htf4czSp@bXQ87V z`FhjEiptpO-=COP?04|tJtV1mwTT?IE7njZEn)v}rNCBdq0NaN%mHSPHyZs_r@_2E zbh)K`RZNPORXn$D44VDTV&P*wjAwE+3o&t@BC_krZm$kFvnqb6FE#fmh z&f^SE&-VTY0@uEBbGzrRN1MsC9ed-b6%&*{sXo?*sQ=e<_T4WRqWNgV6GDqom$N)* zmD!BXLXTwNlu9}ggp7cRn;-3co(M56*kw#D-H)m05tK~Rb+Iu+V-$y@;6Xb^zlZPg z-?e+zx#GpX_W>hFe!&5^DEYmATUw&)Q1IiS+Yyvs2FI}v&bKWZf+**Lq2r8=mOi2T zA!DAUl^HeDbuuG%ab8lyO5MaAB%=6oga?Y93))l55fR$iaG(JWY?Q;ftF0!@J$eU+qndqGh-945>asaZwWS*g_>3(_uY5Zfu#a+dNOy>*28E zG*GQ|dw=a|3_({m9m&9cN7x-AblF2nt4e#Hw)`3DAS}fbgZkD?Bnh@oa&AbF#4J|A zkTwBh?Vw^ep_C_J=i7(SuY>IMg9!y;!faa}FSk|X-1zLy{qV3!fT5nod{@;uz}}D3 zPb$pZV=2$|DhzJyRp_@+~n||Hyc8`>P>p7zSbu29{&Fcfx#hr{{A02ktvhnVFBD$_S zZPLD8HF#~lecK(;GrPrVT6+7+@xMfC3LJ&H=PF_)sPQPQ?K6X?dE3Y4D^D=pC=Z3e6_zQ=0Luj78rtWL7_1iC|uVQ zsZiR{po81Tm_0x<3Xk-8h8&F!tN(pEbY3(9*Y4Jd-=dQ))s{?TFGy}<5nJZhMo}Br z1+8bYFBDpkMA!F#xqv=2us#U?b#2NC&Iwh{4YrLK3r3M=`}-^KY?23ejRD zJzb=Fbg|=-;sONcJvpc-mOWL&hyuug5O+_;N1|tz0s`u_hVu&Z+?mi>s!#)=+Q|_UD%m$Wi)i?(nlr z1e=C2W^7uOmVIZrOR!^6{>$#y@Q%LZ(n{N9&)N4gk&^zOet zdv)2tst3A^cb_X#4bp!ntYC#jO>PVuIZ;y}P6_Dg-@pv^m7vz?QVza2tsxQhrc4*6 z&>bNjHvS=$Rd5}u?hkZrVRKf(+s@bAcW&b|pRDrZwi7YPh$*3f3?=|Cj*&|ZW!BgN znkuh{{O6+UlUf^QHX#)}FAN1aQQ6(aj(!@m9vXDQS7*@1Ns$U}%r`lkW-lqD(n%eT ze*r8kt>wJcg}FIs9%qw!IefnwklvqGKoUaJ@r)v0p`3AQR!Wu&UGA=Pw} zKI>-KlX$&o5N!|b4r4Mp-##2zKQ9pTp+n5$xf|qM@e>x0?2PT9K3%Gohcf4g?8XSA zr>Ac?!Xegu$a=$%!KBRiP6tsg*mRR58kV;K4WCYrNzeUVVp>{o%w>63#*pVV*1AWy zU>mG@ybBr*5ccSxKT?nhq8(`Ivr5$+&i#2;kUcd1P2ee}!YPIgg*;Y}w5@#a=413O zABBDZ6eT&@oPW;6)fJM^-siBn?_@142G@t;-3Az;KY9T(#m@)mZ`OOZqz8VlvlNJB z5!5S361?E+dS6(DPdgH_AF=2I(mN@>=!tLK)d9=BkE4Url~*d<+#9n~1THjU@f$-# zS0P9j^C$CorMS2(Na5nIMs&P#;Xb*r>gg_Mx`5fJ!=AQU1FL`ohkpEg+9gkdQHpQ@ z1h1KG_he|>E6dAI*|y3)gKujDyT!!$93trTQ9gHm@AGM&v1*FGWa~f=mlW45)Fda$ zRAjPW_>wi}T*E#Zf>r@U8@hZF<~Mt_&IMqQk_83zzUg37p5K49`RQF{{B1-zU(~aX zxqs+;wd}O$MH}bf5Z5FR#Y8|*XR^hz@awLYWa4KxMk|wMlogjV_@bm7*K_^v`RN_| z5dx<*K6Db$=cxTpHLL+tfL}DU+%dbvn~?y?1=U}*B(v?>D2dJ75A~1`G4}ByP>9Ix z6MBU&I!1+W^!g2f=o;W11?E0>jnErxNMntf zh(b-{+G{h=d;TDN<|>_tRU)Qkp%lwvgpz5#C!M%R=~sJcIBlX3_1UnqTK$6u=2M7p zRCZ4^K~Y)1mX$<8XlaV|0k6o3tOt6?`qw8TM(Eug$ICg};K<1Len%|~=FdNcbh<@E zh3E&Y2zZ_Ycb?XfcLAMR_s!@#;HOr(PD>%=1Erk7>-cuX<)YqZe+ySVG^S&=T+82A zDW8iWj@{3r2cK^bEH4r!6_^csb~r?Mc4&;dM^m%wf?=;P%4T+`PK7p8Zrw|}hF%~7 z_Iqt|VC$QW$L()8)CR|5T>d);*29%*Y(mek6wUY5AbYvMhoYezQVC2|0C8|O2Aqz% zS)YOiQR4{oA&JCo1SD#MQ>k2ly+m-7vM8^+k2T_bU21A^#Xt;sLu;$oShL6Y2e9)W z+%l3qkRs6jF;PLik7mJ+>Ui0o{ho{J#LRnf>4uopD3V}wUpSK1v-Ue3P~Jo&cY&A( zIyE1D9Ii8+DuWNXr&?KILVPsjl2Fp*+exc-)~$0|Nf-nM*Bw)b&Je9lrzY!0V^A zsP?Lc`yFa}bL`(Tx@RwHpb2P?S$p?L?qRn4aU|{CgU@h4+$^A)HVFZ%Ks<2sas~Hz z^YRRL?6B&4()vh$yMG}+=*8>3^(%(SwiCJ#%>ZhLEuf&p$K(BI2BS}Of1G}&%L9s| z8Qfcqe^93)JN&%KlKe4%SOtDU@6LaEAY1EnQb8>?6`ZFB0lgP?LU%@C$t?BTd3jym ztSmtVA&-XUW++n9&aa>S;gaZ>Qhvv_xZ97rX}yzX#X`Y7RAYQY30J0$*eLZ*3z!>~ zCR*DHd=c~sN!%o6y|cq-WyofQrh*{nnrwUN=tT|eUGYBOeDNuqDOb5v_X7K-&}2vc z%G@`9bn8>A%=(36BA5C0`MEXdgMynT{9m$*K+iv}LHnG}s@x#p^9*{oq(4||OTB}Q z?t0)_N^yOPSPjMz27>AJ`NG+b-SOO@aPAYCo0I4)j!?Ybzal)!!@|bNK77z2QCja5?F0dhgFNAVzi;HW%9tCiTNe$Cy@dOs(Wo2hc%*Q=MOY5abxjk-eV8y-r zo?L(UAh+AF5P|JU%T%V&8!_r*|K%g-e4}I5or<3Rb!a8=4T2*2E_V47PE@`4Z!bje z@F)}+SY%a)DVg^7foh5I^;u&NcYZ=i+~kDv|02hXiH?q@2DYUGPiC{b#E*$nCR(DdSqfX&dssdvi_W?wUhZ&f1v77W%S#p|5klLCVR zQj?{}_bDWtHxRe$PRk4I_voVuel+I!K{;z2=^lBbjFk4o?cLI?u0Tdcl%O3q1RGtp zY|N{2EA8-$v2#+-)+PMuU->g?Pl-P!9Ff8Io4~AV7h`(8x>hF0Y7&EEarj}I(=kOv zSbU1Qnqj7e>EeVi151%r8M(jWAPAf7`?jQYdH--Eqnh>5C((sFUe-Imz>(Y{+{Y7n zpk#QOwCr$FR4Hixk@8#6VTo|qwfIj=6JtNNH_w+mkE7a&La3Kwu$9d_<}5Fdf)llP z0jzt3@$N0`SQx;LZ)NhlDp>~DxqSsGgQBPy7<%-JzGsuK!740emGj=P-QGuz2fne> z(&BL-IfF+*a5VfGiERwE^T|YvS}{sV-NEG}2?G`{ZxCMoqSKZAQ=QwX_&-0*vId2=etP0c%AmqhzY~aK z+^*P8ITG=4I0WV%=pfHqeRABPvu>gDrJO1I!tN1}t`j&gK!bya^GoAY8VCnQelnly zG&|s09EX^qh`SQ97KkEXuSsrGpv8@bZ?YaFfpvMRfpDrP@f#5|jjnvU@Wd* zu$W%wo?c`=!4}AbDD!!A6EAzLO#uFg*_EBH!h^3Afky}Q(C2oCl=Qke=aUhkwqLfd z$vORc;?6n(XB`fxT0fhcbB&?U%iX`e==92D+HKT@=h@qYP10WvJzNWnsSHCf+N z2!ZPk-;iGofAotoWSMu>`CI6>62;wu`4YZ{0Pbbw<-M1PiwABW`WyKx&A<;4<=bGr z$U52c-E;4$xA%Q9vF7T_i*C@rOm}$ye76r!c%+f9Dsc61&Voc>zr)D7t}ft|6X(en zYRV|e?4pK!;f;iX$AJhipF(si8YYb$!J9Dq;@7jPqTjk2d?#>q^J751M#x9bAx8c5 zrRx;UcpEc1wi(vzJlFe2JB0Tz{%pR!qJ}G^wzkf=CN_C~gP}2yeZ4Iu#Z>OT0sLuo zCU4~M59~@Y9GB`vQKM8~vQ6_IJKivjx6W(NJTl3pNC59uXSk$9UkBK`kvhqzc15{79+ooDuAS1s(;K*gzdOzjt8l&g; zuE^zHQ#Kg|NmU7W37Pi1tO9G?1-C+<-)CpGYsNO9N9()0yA!gMVSAr@g00cbW&T>d zk4{a`^9imCtnRLlux=eTO%Mr_VF2a!hnn{_JYY;91)*>{T^{eJe1JtknY?OdhMc^* zY=3U<`ZcqL@cwQ&v>)baQEB|%v9t^snULQ^6xM;&ghF>g4knJ#>Wow6;ON(Cg7X?v z#@9zA!1wHkJDBY}-AhQNKG0MN)1?8aX-MLI(v4M2zZ$>|wOz0dxlA^|vGH-|=*15xq(t%Q;EB+1(cT_Y zgy@Mt8c>S_DdGnv`*1afW6}#|#tfC8D&cDyXepLxPgp7qJC2`W@;uKJoA4u8Ose_y4p)qUvw3 zLoj`49^R6EGd4W-k!vuPVVRNH0~$syJSxmz&HG*$7%4(u4$fGHuumXu(01De{ z+REYsGOtQq*Mn=2N<@{)nMGY4u;6O_07ZP$oVq*z$xSaT=hJH|z>oq<8D4j}4_K*}E@!RfO4KdVtI*+Jd z+a2Gm_-gxs_hBfG>8&tR5}$4iC%nZZnrkivh5o`2zNZOQ3SWpRB|}=FETzK&&7Ou* zyJ4(`h0r#v+`wze!_`hNjqgvahSkjTVBN=6vgu35VFG3aMTTLv$QHG(E;u~kp(oWM zWA1ukB5FCC7%rG0mAy6X>`~e=9q9Bx6HHPgJuOB>&V}~)^r%l18a|ngC3j8=*4E|S zE{Oo+U$c}726PC1AXc9VV ziq9cfy1HUEWHIQlWsI;$gAhEFsjICOwl&8cN`ImX2hK>AMsLeKZ$Y0K84}R7D=ziJ z^%K{B*y~iem@SSGxS|R2d|fXpYJn<$2_>Dv4mziXT1WR9IR@g*FT}X ztH<}QM!oNNWYRvNJ#Rj|1X1G78r{Mk3}nqg+~CUkEo@pb%3cANt>?WwpXS#&uGXb$ zEf!BG&0ecm7OB|Ev#{W;tsOoH?MR~nV>k*u&75-ox>vPLO%49@MdEijoxkAvHeBHa z@%G{214}_XdbF#T;S2CLj5h7K z^+U^K+*yicl2;M`kjV%~*Ro`Hf>uF6K_O}IJfFfPZc~=Ker;Cx(=HQ$xOv4yB=C6* z?Uqq4BZzb5v2-j|tIiUxM62mTm$*yuSYu@hs^0=2qbf8FsuLuRX;J8-3m&Khmb~uPTqiq(i86Fw?n$MANvIV9HU*vu!;%4vRl8)evN#41G{~7D?L7+i@|d2o;7)IP8+3~z)!NCA$zE+3&pZxh z(r;EbDN(?w1oMUPTY#X^Oox5>Csq5{mpI%nX4^2v>vD5Q*8n<)?(7s&Kki1xryXCV zWnyZ#TZaN!s`8VYaS`xRn5eQ#Vj<7ysdir{-KI{jppdpVR>6$!d<%Rk^f#`E3B^2n zwg!K(nu@pW^<4`H+~Pd{dwHg_ds%dDgVFPRHg|%qd&8rJb?%RVkZ$R2UL+1soGj+qbI9AqVK#)$XwIN432_h%#sCG#z7z^9pCbSBpIL|Ay8F5wktaMev*PI_(F+6^ zdm?2VLeQBPeEa=vZ6`u2b|57m6^wUGm4Zz(M|(fn7~n*HU24a@3+;jh6q6h&L9)aC zA*Y6td3dHXmc?)=raPAYGyotvf#VPr(j^DJz!?mkPAsy#z#VirA>V}Evy`1IHJ9S* z-^oZobGB14pL0v{xe{SB7VqoM{Q*QNeSrK{bhazSc8rf zB1JcJEb*m7SUj+n7BDzVbeiB*%hcbl;PVS5P}5M+1jX#yeCPOVW!i24bxrQ3Re$6c z6hr}xp9Wfg>UEMHu!7;;#uiy%?_N#P6%f~yNJ~1$1E;^`pNPvO@I;^W?oV1?(4>;L zI&->VPQx-^aB`T#1Dcu^$1rV>n@~@2`QZP`SCmyh2@*3yzA+QMO9ic;kdz%Mjj&Bg zv+qo3^-0_nEj>HjKHdjlIY?q!%qrtbp&OJ;(@$W04pgO9@Uc7dKZvY+R$pdcLaD}9 zpJzC`6EV_}H$E~#P48ODM^2>?inZ@UTXqEvlfD<)=yXN#?>gxVh3IGR=@vm)W#sO+ zx(0%qL)Il$e&8jSY-;!18W4-u=CMh?ZiryELvR6P=%wtx=5RIIkY zMmReJT7WqOjDPm%uj3O~xMXN@@_a!7kzvpfCEKdLBgA-}sf|Cvb0uM6#kVu+c_Sbb z@xzCWSKa{eN@tu3KX{$%^M8O6rtxG+)O6JxzW(dueyK>iwf;~&@F~glHvag0Yj9>+ ztI9~=MlvM%cMm6Mf?3OO!?+HYz>Qa?HR!KI9DdDmt?>aeusBPcTXDHE6$o&(CwhYt zwVra>YY`EfRabn##LG3%>To^Of(eVGp$#nkV7%Xt>Nc`16RLlT3Wps^zrYC>jgKTe zP^%AT|E7hB0if;dZ%0s)NCX6%K7MouESA&1so%TIKSD$?4*G!m?DLS{kf%!fR^05| zPKWAsOxzF^^KdwDQ`qmZJ_`xqyCD7}`ixA6q)`R@u!Imb+kmZ4R%`3$1n%0hfRMx) z)-0U|fcU$feG~cvwP8w(BBR3X?d8r-AhDdYyIx)b9V79U6n` z>YQ%3CS^}k>t7&@skR=k%K6{nhADT1)iD( ztTEEB0da1|S|H<{47&e==-N8NTi8&AmqOu*gKrADyI3iItWn zCZNu2E2TJ%_wR>=+9lMYA6pVk=yr%ixz#HHm?PcY?~f~7-zi<>-i>+E0a_CQRg+O* z^tX*mu^MxJE_FMq*BTgwNrm48>-E@mA}r`5aL`r6i~WXO4LBn$--dCMk~(D3J+`L9 z;-ve;c+qgpk0$ZM2;_P>MW$3!N3?HTem%Xo3Ismd`Khs`UKF}jpUp!fc5hOCuiYP{*4?LcHgZ_#E z*Wd_m{CUph-&-Fd3uSYSNY|PEYLoRqwop>&x@D4FJ%Di_%n%q6uT2$IpWdf}{!lI* zO|D74ObdZb+^u+wn{%BCimatsQGsV}+%OFY;lm}`CB);Ab?G!4d<2U9he}lw6V^E@ zD!jG{rhX$h)ed$KG9=L@0vo_iWv_#4tK0XYF3v~&e&VLX0kdBB@YV)0q5_Q0fm%EJ z`J@WEijXmAbie2^+k6LbBYdouYA{n$%7m3BpdxQL#_}v~`8C=|$vO=LV#`7Agyha* zGbz*j_V3?)HIQd&p!(Flf<$>co!TZGl4S^7a~vxk&&YB3JEgO+{%HO|ZE*PW)_T?C zv(=x|L!Br^SR8`j{!zvNY8-`l00c&}S~JSkGe}DGekgd!eg~Q@fW7pdKry=TP*`i@ z4sU%tSbc=F8^itSm8^Ihe0r+DPfgA`BlSi6!ue>Q9kF7-Z$WBJ+HpVKNAcDV*y$srVRv!B7qmBv~2(@E)(?y^l2T3Ou`!4a-$N=H2 z$f~*(7)IN*?j~Iv54D`Wx^MjYWpmpf^-S<;X}F8v8+V3kV{iYCbhs-BiB(wtEX zTE+dn*eCa6-tOL9m%4Xhrg+AZrF!+64vvF$Iw_9HA&DkqcvS{K=U-S_U5zo4D}2nj zdW(e5bIoPJT<~h@|1NVp_wFw}nlj&e3@{a?`&GK5y&LEQcXkN4QXoM}NXsf=Kv@q; zLYuiK$;GGvcHUKSSN{S&<4E_Q?NEuXUw>i%=Gf8_-6Mk2@jyWGE}lq-5|O)QLNr{g z0s;0o8q_wG<%r+HzI-qtERL0yPFa~RxOc&a7keUKa|jCq-yAS9!Wg@$N&&HvVwPG6 zd~%V8$e(h!J+?l<8@ynRq>uhkp(W~VGhRCyUMIu%QJmH2KNr<20J8@{X(+LTL!GAT zfD;AaMSS&cl%6{R;?A5w`xA=P;D9fbR&flN|M*sMEdoYbZ}Y^sJ$&8ma~pq9%REn0M2!U(j#9MXujX zcZmF!Y&UDF%+7{nNyyt=x=_nOF3_{X-u-E3F+gf&Y2oKN|3E&=s{R>h_OrWY4@G_2 z%KNH)_nWCgG!PFitK* zEdLYM3?m|@Qq+vh#B4k*^I0r{WZ4f?eKFhb1Z^{#_Xpz(mzeVC_xRrn#+ z^mQneo-6(d&jzW103FlTw$`cD1js+!<=mBr%!vt z5!E0Bt6}Z#T48~fm+PS;hpeBHUjXKN^PScw$9p>7R?867$*aHgRB|()1z~gaiv3S3 z6b=v<1j$tVe6|Tb(REj6YOi7tEDPG$sQnQ1aiW+%kw>g%_<(b%=|G8kbsQ^@Yw(!#w^%+xIm$-z6bP$96o*fdRI9Ku> z4tXjV%SOlfEdLek2W07hiZRsd?WunbJj=xZ#a+&)QiXK+u0lMHuGF?WzMomB*J>H=nj*E==NqN(RMavfKagplb2@X*Y)y@) zUCv?xzYSU5#nDw1fZiAMSRXUsP;DF?1A(0;P*}tF%BMNFh{!bK2Mtxg1dB7>+1cFV zGh-_u78We|(1uszPxDB( z_jNo^6|tiJST~w0RF1?Q|4v~4kN53YNDSu3#-^iVDh$S^Y!*?m4YXtH{kJll&D(=3 zf^M&$_IQ3r)baAXs@L7$bMmw(4Nw?0V#2^WnatUqtsUw#6>aykuAJX5L)#+g@VZQ3 z34#C#`HVxyCE7!1udGQdI1|46OCl?72$%vnIr@eqf^SpMV4MZNw6$EEmhBImUnT^g zj&EsGh#TRhA_@^_3nEj@F)VH?nEx)E+^=;rnHhS7oK&f9EXMymPW7ER6 z-A782DvTsL795$M6(LZPLn~^q(pjgSo+rzvItf_vC(G`~T&rC2CpRPWrZ1M;WXV5X zdem46bqma*2zj#i$e!yr@8T0v$zHC$zi2i(9!T8>e~n~|T0Qv1z;nH~Jh)k#=jI64 zP1-(^#zos3Ni;h*5@V6ETxD&`i%jL4mexPA`rvpF+LMr$%8jZkI}UgJt?rCrUe)&* zTh9V%V$SyI-m!Q6dG-0p3YXt9>9PLhoHLfk3SJs10utfu!sM4HuCUc=gb#3R+dk8( zGmO97pH{Xjkh#{;DzdSJW^ug!b~{EQ_p5(

)j+wzF7~&DVQ9VLvz_x&Mh}$NkK) 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

rjE$1ax)Rf6uOgN_VP=&3C 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 SV=WNy(NxvF|LLAh#Qy+bC&VKF literal 0 HcmV?d00001 diff --git a/demos/adaptive_multigrid/solution_l15.png b/demos/adaptive_multigrid/solution_l15.png new file mode 100644 index 0000000000000000000000000000000000000000..e2436d74c05ac926acaf83703b43e37c198f6881 GIT binary patch literal 155993 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�Tf=nkoO_^RqdLrb{C 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 O-o+^NX^crU7FpJ66(U(%M6^gxojpD3|dP)`( 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≪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�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 GVgCaNs+)8G literal 0 HcmV?d00001 diff --git a/demos/adaptive_multigrid/solution_l4.png b/demos/adaptive_multigrid/solution_l4.png new file mode 100644 index 0000000000000000000000000000000000000000..d457e299795a28577cb2cef823b401abeeba2e6e GIT binary patch literal 104185 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±E767J`aD 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 1D Vlasov-Poisson equation using vertical independent function spaces. Degree-independent multigrid convergence using patch relaxation. + Multigrid on adaptively-refined mesh hierarchies. Monolithic multigrid with Vanka relaxation for Stokes. Vertex/edge star multigrid relaxation for H(div). Auxiliary space patch relaxation multigrid for H(curl). diff --git a/tests/firedrake/demos/test_demos_run.py b/tests/firedrake/demos/test_demos_run.py index dbb0b938be..dd8ce626bc 100644 --- a/tests/firedrake/demos/test_demos_run.py +++ b/tests/firedrake/demos/test_demos_run.py @@ -18,6 +18,7 @@ DEMO_DIR = join(CWD, "..", "..", "..", "demos") SERIAL_DEMOS = [ + Demo(("adaptive_multigrid", "adaptive_multigrid"), ["netgen", "vtk"]), Demo(("benney_luke", "benney_luke"), ["vtk"]), Demo(("boussinesq", "boussinesq"), []), Demo(("burgers", "burgers"), ["vtk"]), From 76f39423c5fa90113be2c038b3febaabbe897a6e Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Tue, 27 Jan 2026 18:50:13 +0000 Subject: [PATCH 31/37] Edits --- .../adaptive_multigrid/adaptive_multigrid.py.rst | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/demos/adaptive_multigrid/adaptive_multigrid.py.rst b/demos/adaptive_multigrid/adaptive_multigrid.py.rst index 43bb2e0a9a..55e3456845 100644 --- a/demos/adaptive_multigrid/adaptive_multigrid.py.rst +++ b/demos/adaptive_multigrid/adaptive_multigrid.py.rst @@ -45,9 +45,9 @@ Now we can define a simple Poisson problem .. math:: - - \nabla^2 u = f \text{ in } \Omega, \quad u = 0 \text{ on } \partial \Omega + - \nabla^2 u = f \text{ in } \Omega, \quad u = 0 \text{ on } \partial \Omega. -Our approach strongly follows the similar problem in this `lecture course `_. We define the function ``solve_poisson``. The first lines correspond to finding a solution in the CG1 space. The variational problem is formulated with F, where f is the constant function equal to 1. Since we want Dirichlet boundary conditions, we construct the :class:`.DirichletBC` object and apply it to the entire boundary: :: +Our approach strongly follows the similar problem in this `lecture course `_. We define the function ``solve_poisson``. The first lines correspond to finding a solution in the CG1 space. The right-hand side is set to be the constant function equal to 1. Since we want Dirichlet boundary conditions, we construct the :class:`.DirichletBC` object and apply it to the entire boundary: :: def solve_poisson(mesh, params): V = FunctionSpace(mesh, "CG", 1) @@ -64,7 +64,7 @@ Our approach strongly follows the similar problem in this `lecture course Date: Wed, 28 Jan 2026 13:51:16 +0000 Subject: [PATCH 32/37] fix test --- tests/firedrake/regression/test_interpolate_cross_mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/firedrake/regression/test_interpolate_cross_mesh.py b/tests/firedrake/regression/test_interpolate_cross_mesh.py index 4c1d53df29..f9b8b5c4af 100644 --- a/tests/firedrake/regression/test_interpolate_cross_mesh.py +++ b/tests/firedrake/regression/test_interpolate_cross_mesh.py @@ -38,7 +38,7 @@ def make_high_order(m_low_order, degree): @pytest.fixture( params=[ - "unitsquare_RT_N1curl_destination", + "unitsquare", "circlemanifold", "circlemanifold_to_high_order", "unitsquare_from_high_order", From 139ec3383b44d01c29e50549b0484e57bad28f06 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Thu, 29 Jan 2026 11:58:45 +0000 Subject: [PATCH 33/37] MG iteration counts --- .../adaptive_convergence.png | Bin 34117 -> 34117 bytes .../adaptive_multigrid.py.rst | 92 ++++++++++++------ tests/firedrake/demos/test_demos_run.py | 2 +- 3 files changed, 65 insertions(+), 29 deletions(-) diff --git a/demos/adaptive_multigrid/adaptive_convergence.png b/demos/adaptive_multigrid/adaptive_convergence.png index 0091fe0a26376c70bb09924b728de14f0f68c384..295d8de024e8829002265d1eb16a11f355ab71de 100644 GIT binary patch delta 29090 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�Hk0sPV%!0nJJ)J*Q`E zj1l5T0e^%->S55^dUr@>SikRol+ld2RrUQiRK}F7R8)bqBN#Ay53rb^O3p4VwZmxq z@X;fz8#izIfKY&lLmGvT|1^G!(|f;=1%$(`QzncuZCWdQD*Wx2N&)QMNFL_70F{UR z490I-DI~y`GJL#eIruJmQ)9PRTBXuz0*`>;1(2dq+ z@qP&qBH`n$%lL*+ibU<^6{6>WNlQmtU10cO-oy{_o_urzK^~6PHu7jU`@h#x$3Jn2 zKPofl%Aq7$1droH{fN@|r)R^hoQ%~$ke6VA*c!L*Eq2{CQDP+nZg>Vw)BFg#`EPZ& z_rH99Oe#3DET~#drzv0r8*l3`!|XcJG{H9Z)cse6EC!;i|4s3Lry?RYeg?b@%)>Uv zw8-5SUi6X{DC##^+A1V{{%@Z7C_HIn@|-&hU{Az4Ay$PaMzBGNB^8-E#<3-;G)ty< zjw;giFp>zE{H2Y7G^NewR17Mm!EY%$M&bPCBJU0i4#HF8!LlpbR@~Uw_byao?1e24K z=*s{-d6k-40W9DkS=zz8#ki5CAUO78YAUi}WFpL?>Ad7k{}oop{EsoCt>^-Oysh!C zOog731Jz6=|DB(V;el|`&SQ}ZO8R6>AHTn&MdY>`1Bb>#Ptb#DABtfk zpLS#As~mHH%^$`vaK%HtJ{Y$rv0v=IdFReAub#271X$p?LP|RGA;*sJF(XAdtVAMg8HTgL3j1S}h&2b$7~l;-w9-@=qU`Spmj3s1>#33L<8!<6zm6#~`)+Bd zrluxhJBz)%yiDAl`#d+AZm9Ylz>sTeZBZV_Kpe7l5@VLu7e?C1-HW9)E(>!Q zs51F5y56l=!veps1}JEFgoLnH+&c3J+GSYH$-Skx=@GR3SOsh5$@XkqIb;f=OR(o%rxKF5=|35v|6Q?W8w08r!D@ zfoiQB|J5r)AXd<${607*nZ^Cced(p|r7vONjYxj9ena1C!H-cP>g^+C5~8OB#%ZCg z?*oIRDul^7gtx&#NJ0LSWmF7 zl2(Sr;m}CEJ;rM63jGu?>+)(tzlZq?=9XrXg8sLLt6+V*u)P_cc<;ZM+nB5qhfTqy z_iV{GBqV4D87fJ@Y7=w(3ftlw8`=NqC!f_{d*3yh*s2qFz8y$YkIFsf+r;0uO=@z+ zH8P5F(<#DfrvH&P!loLm&EE%uPNM55?ZcECvaMXF^#qImeC9>Ab^>s}%Y5uXS-h`q zg=P&-OTtFqp&+#S@b1!a6|Z6VD*CyC@4`OA#C{A1oX96D9K>_@UUp_!IOgt2^XYk5 zveJZF8mC(U-&y>prZuD4EXm?B>V|k%ah2ujW=7FisNC?)27C^GRbgsaTzh01yuUsc zDUEp1yUvq>tj`!>f5}f~*tPGJg4eaNpm3&i(dPV0y}k)-Ui~;dC(3@t91A|QPdXi@s;escgAIZ*-Ihqeoy6lj||Y#>^% zmWfAg*!)J#*ro>jIxvHMfU8!E5t1U||7!b`HWbk-7wj+Z2WKjnU#T; zC!33Jj+Xf(M$rRMR`1=b;R(}G4UMg>vH_cg2aW;}k&)T@bz)!)AC{1YeK8ymDg#NG zz*>(BA)5udFxY5EyP*F1!j~GD9Em{%&9BoUCABrCE;@CrvY}?ZAb}p}?=#vWi}dCzTSMmY%J69uA%yEU+c2*XZr+yo%>wjt^gVd>iVcnadTdc~7hbi``!GQsVM~_My zl$Dg2`S}O(m#zc`qQdMD{KW&`mSD@m+_C^6hPQ?5QxCvrTYg54HZ`~YQj(BV`e&~0 zZ@R$|9GW%i=MyYGKzo;M0#hH>Z(%DLm8V-ha4qIk1q!moRDBY9Y16B_rNtNaEsG#h zEwb%_f&Oq^@Rm*i_^Wb{0`4zu!nCLn9qkkG*aMDZKC}7&7 zTK4)0>_^=NU3z`NpO~%_47sCVbs*BK1RV-(Y?_}phIR2cLG$RAy>n$IZ_xFHr{~pU zCoW%A_8z4~@RTW}c|)~$FL?exMOQ#Y?`ZV?`0i!&pJCwCF# z8R<$4cO%W^0|DoDGq4&UEj+kAJ5B*_z!kL!mWuI!!5E`6(c#UMh=_=-y*)>5$^Xx4 zOP=WyfZS0AUVr~llpReMzU-iy`Q>!db&4_hVN=uBOmbEAP6`7Xk6uPs)K9{Mx`21N z*SPVtVQ8|%wt?@l@LrFc0M<6Bp`qanNd(Sockw4gYm3&<%>TRjQhioY^uNs)^yZv$ zE+|`8;T_n?lNFo!>cCHh6nImnr=Fw6TvN6D?sK}<<8N|H{eUbIupfJ zF1C(N8+)ezSGRG?xP?C&2ep8CDL7w^S1tE6mzJpdPxI-JJJQp!Pe%imBy z3-7h7g_~1K5F+vhh5nE5+XDDD00ytao4`=ltben9#~L0KIF8-oZJE+C8)J!YWWzW1 zy}ym_;-~V@qOGQ#sY8pOo0@qzN2hhv{h9phZ^-Kw$(h0v{^#vO6qS^W!Q}BQPct08 zwZ_EsxpN|*mLFV!$OKlYTVqB#C=D0-zBpJ-Ew5Wp|hS2 zT4C>{dyn)#15ZKeRjw>`ug|Dt-Rx$la;Y@md`fLMJ>hHp z=#&)mR!G?JM5~$qr>*k<$GZLdKPn?LqmbR8LCBsZq>|D=!%ifGtP)=hBderBSxuEy zHrX>-l_V>BRQBGU_gBB?`Tw8ecsh>zxbNf6bzQFWdyda|zh5UdZc;_I=&5q~n~0EX z`R`1xrNu=#xKFWyNkWUCAMGy!Hg}y!x%~*64juliNWAA(L+dxi)_C7%4Xa7D$LESS z#uo(!Rk*oU3ZD2TN|v@4^LnqP=O!ety!qs znj>Nr(prgzRqX!T17PXkslCt&5t6$6gW-J}cd)mW-dG)wyjqmMKhby)KFUeSB2hQuImq=Xm<*4?X%VC!fLd z(L+}K;?*%5QhRnHyK&eYJ~`<`LSA8->|XAFHmC z+%tMCV7h$#&n@HZ`wx98iM7hy4_CVxGqq2b?zQs$Yl1+GfF3qUzJQyL47e%kR2Fu_ zq@O|NIU%{9TKM_qX%)07NA`&{%^HWQdi~JVFp$ZjV{SjqP~!FW?>&e1h06vrE$htK zl2SU~3>65Obt8g8gFP6n$-M{!fF&x6Rwmp<40ELDH|{p+`4lpJu)KHO{8~XFM;bgb z!4P7bmwxRnf-^i>IVbbaaa6}!Dt^0F+^H*BYp$UF^{vj>V6cIs+-l8=l>OnT(?W2@ z!`F23)nSfcKIK1TiD_$cm2p>c&mQG<7t?%yGpiNk+ul~9i(q(ogSXfy2FIO-RWH9HdtIIxBj{0qpVXJR0|f{IQ>6y)hxO z+k;~_*BSrE>k0b8ZtiX-4Yf4kM8EoeillRy!9Nnuk$w-dxlS@MrbpWAFgsw2m4@2I z@t+bLTB8RM7mqAvXs6_f>Cy1bQH{&jjy%ntTDzyN&A0c8VH;$6UG+)nqu=Tev_3}o z#Yt)N{mlk=2ZZ+S4TY|jR0TeR!~G|geDvXE5O=(lJUW(LpLH{g(gAPN+5hZ}zcbWT zXcSJ^#(bQc9eaZ1_kPiY=fK6Ga_gGMhF{bjy=_`(zVHsP-SN|6vY+EzTzo#XLr72~ z`J7X4k=*=^>>%y=k&*R|vkd+V^@Kl$@yp0_}G4o&H)H=QYua_v;ZA zEQ_sBvm)d^O<(`ZKAXGlyc5swzl{kD9#0=rcJy9zpSx5Sp~&;b@2{LRW%Z{|g#dR! zQ7u1#zMzn7#o)S`;9Fu>3kxVB+uUo;6_=bn-7$8(OoD-wBIEqKdNfzaHT)zS>Ft2M zI=IZtp%2-Vy4}(2jSz4=w4(ie$g8`26M@i2wps5LJe`uesh9GbYafRnNxFNwhshBk zxxUdg?=WM}h$CT>G+UuM-)FzpX@OFKpgG;V;=Fh-&Np0H8%KUrAIJI!PfTCUq$QHZ z;O8b9!whjFYk*og8q6cFrm0B{LV^IPms&*Hu-ahd7ertF&*wA5?DK6>?sV@|sS6vN z=-Uc@7C$x*6JhD7neq60^0i59z?w&cvCEs4qCASo_Tj<5a6*13Wl-j>_pQ1Nz*8W>PN2jSe!IP0Zxf;Iu%SA=6b=*8jr-sxk<*Z4K z`}=uY@r2{Vdm$wS#`UMW%uaCg3fuM!%w0I_yKdB@eV$C36wDliu)4!3>=0Xm!bNc$ z>l(GX2(qz_15`_FQ|iV(CAveFMfJ>lZp_wBo#aQ(kva|EE#r z9EJ6iK%bf<`L^_jE`1jZiQ&ro+u3jHVw=##PWIF|M&Wa=LLp}sIG1chgfQ2eLI1OL z`*ulG{Yi}tb`dK2=4txHc3P2BT<=t<_Q61l(}D;Co{Cg{v?pgkM(6DCUZ}Pc8zpET zC~<0{&Bhaar76W5+>v{$qRRdghOC0#VgiZc_u zF1=eLLXDE0?rYcm*2AmEXWCHy zUH6*Sl1XoA|IS>2x_C7s6`zAqF{>yJ_P9#x}b-kq$W=&gv>$` z5+V0gi1|-swbAdwz4@hQ{bsaxOZRqiUd=uDr6%`|D!;I$v`OoOk|&!)vQK2#tU*Nz zipOqH8Ysx}JaP=VkKAGPJXBx_+;_bDU4Cg)Ifv6rTYz#HprTC4u(tnyer73*;f&$dn&0d z5XL-5!5zGzbYwdg!IQuz{e^XXPUJIR`ySO-P%-Wyj#VVh5}1yD?%DQMYsM;OHXKjh zg>o)Br~QfEG-NtO;eFfV+6%+eWRa~)tM@utXW=Q-HzNLffs4s6KxQl?#-aC&(qhE@ zbN)K*{5!V;rOPE!FRweyKH6_%w$mfORdXddlg)M8Bb485&Ve%79R zsh~vUQG4>NUAS11vf>UD59kQfz{@`=*&<cu07n#0QyNU0Kl zU}OXsy7|IuLdmEuV_P-k>W(9`4aiJ?lok0aLX1Sx_=r)ulp6YkxwR&Re=<9(GS*t2 zCt-*eRh(sCl~DP8e4vTNT|cs`h5DONQ_Us1j-{FQV`|05yPlGer>^eqq2xVAxmpN; zqfV0xYPe&F+4jY=CCd&Dii#i2GWS(-h+EfR(T`4C4f@@lzyKj@z;x8BG7#Mgrnc%t zKik$-cjmr$c54lA*C^#&hk3x-xb{cpJ?sj8pN?jaKDF&0xVnI& zODU7)1{LM(lr~jK-=HbBYzpp&I|}jSABwQpN6~*yL^ru~Lm|-@Ld^Hzi;gp!_I6ZS z9FG@HTlxwA#;Losrk*Q4xi<)n8+l4U?I(pqg%dhcr4Lr785nY=^=LeS&I97zYjgXb z(j9-+U|hkp$Ghann3VhIsZdEW{-(BAfB%W8#bh1LrIj&iPvsYkFUzh)KBj)uyii)M_{gmP{{rpnzYG)bV);lJnlGq7AcpGh z?p{-PPj&f|@=U9FJFNmBA%LM=X2R+Jsommr6KjEJs7-P}!_9;FUN0`oc5<^vDR@TarPQfn;hWO`k>?Q>s4y(jpv9OKpKJO5)$U6DS<^8PI2MLWgH z0dJbD2aoT@`QG)c`8-;!Y%w+_^>OW{xJC*Do-~i1%lo?-YC`2 zl#{H*=xg(${Jm%0$A-5w z%*|I`XJ?)gmJxh}GUeD{rsB{R)ZNKeqhHUu#|)!;DEgU;Eo)5s^+)eLy}?-J^WnmA zwrJ}U+{|o?SqluLnP)ioN3}0>d>vO?{?4-T{-yu_i#_NzNPKUn1X&ToE_M<6dpZSuY9R~(tNs<5 zD!}sU{R=W91ZPgiy5D|KYIq3!I!RP2MOeFBgZv%$Otlk00tAr9Lytj)Y~kQ9`(B1L z9>yt}#miq`^oP1#sx``3{BTtJf~TrZg>l&`_=4nKM0L6D9Jh)450-%y7Cq59A)A=> zLBv+Br3^{hu2>2wu5tZwBFtr7 zz9)O_;O7(HOG--FT*EpbeXx-K2dt>s0k{KbpA!NKK(*$4aCQPa%m0|G)q*@32oua9+vH5NXhoI70j;^Z?cQC~CY z6Xjh5y-)krN?bb1Kyf84QLS-)n;}cu)k{pVtc9ds2QU5cdq_N9xRjrUdCxgkgSR!( z0l|ij_Xi#wq;#7Jv35$}y(YZHSz)R@hwNo{Mf?A_71y}$l`m1aN0mK(Az8z>RsUu* z;}I&dIMl{eyGF^7*9*B>mY=c8!0fiI(LS-G1;NJtH@}>i4ntht$d{mP?ehrivW~fk zkI=<*-f|9cN=BJ(o zZczb;bY77ot-k!NZ;hKhRk(+ZJGE!?r)h(1RktU~v%uH1p8UY_mP_yYv6j!lY+;6* zl3Q8HR7q%j6HdCBJ1V}WN<=t)rPz8s zJ0Di$VjJdMx3hh}LA5;d$GC!3r>NP%B%NjOZ`owD^IHQszX|4kUS~wfl3I@3cwqf{_@$@*>BnZv*mJa-s>@zVA^2WV`}gya zf9@5XjE_Cep{2sSSD|oRR)lq+O!nBXqaiHD!KK>}d!EzMsX;I#d z25I2z+7me@0>-Lm?%h~68dTvrHgc&Y>xrF%bK1DX+q9{S;5N63S6x*_obe`NbSLaQdGfZG(dk zmBlikB0qwKtuI;T4|CqkY$`<-^;^Pu7h}6o5!_DaH^ot`excH)r1Fy2R&wdy?^Knv zPG&S6JF{wiM3p2*Oa<&1JVKqmFy{G$JANNWwE`?t8s(Pju2LIapvoY&jt241TsDfO z-$72l4gK_@>+&AoKQ*y~B6{+C>FyC-_Pu44qZ9e5Y4awGm`DSkMcN*(4ooFq^sluU zyj9I-`R|*oJzml+ay9SZxBg-K^)w5Pi)QQZLD8(=H`Jgf;To<-*-o7(#0vYYgo7}1 zcV@?qga$>nZ?l&O){}cVCnomix0#(|VcpPGHNd1R1$kbJx$b|sJ2(*NKfZSe-fGYsedHO))ZoW(T;Phh)ogoygeBg4EhdsXyxi? zVjH2~ZQ94yn*N5jYWSm8ozFIj2$S02lW7EJfzK7$7?YB(^k+pQk4jOwt)`ReJsS<> zX;O1a?gnKvre9BaF@D@Ak_gAnI#i~lEe=*r)E{=&vkiX=q*sSGiG`i1jkr~QfP&2? z=Ck1uevA17a}rC5;SF9uj@N6&hW;B~=m(2ejJ%Vs7LlHS7oVyLy|gKV{^QlF66mhy z0uyl6;&FAIwHUtX`S;lc^XiBlN*8|7E=nJ$v60l3tZsK6>)jun#Iz49`A%%{7h6i3 zNG+-wi4~{y0j4H05u9z$b|OnS&ubdJy0NM|QbP=NBY3*7?R1p`X=p2fSH@z^>c>3j zremiYJJ}T$Bt;YY%tbCV$AusNuoL(I0olC_YrK$QZ90fwNJ#cio##TGXDbNGxs3Wr z=P3oy@F@$yg8fvJ1N{R;C`n8u+q8WY;|ek>tCV_K&OvuHaTVxmh2x-1?MMWx4KoYl6)+y18_!>R0Wx^t*%EE-o2& zS9V%*QsZ+4g@mY>nP(yyij#3zO3A!xWGm#J6cuILrTIDg@2B>d*1bbD-qZ}7_sx?% zcBvA3tyHgWu}IeM)2r*f(8QbBtUmnWf4@*Db6NFcs1v0ZaYT zZ#^>&%&Nm^$9~XRhhS=2e#E-ZVHYIkBv2o7)I>4@YD&+?k|^&y+u3IFx6{tfb zT}uR>!Tf`)0pyU?eQ&lY%D*^DT6}^1ML(lFU{Ai5fx%B+f1}76t|3#%h#>3gW762| zcp2y3xkI5xPHiRnj}L>pNf!Q5OCHp@Bii(d%T~xZ{|4Ea1Ijgju5UB+T&{7&n}k2M zO}{rOqJo%(WZI8h_$ee?$Kr6(O9E|PUvspBq%j3d2-^<^f#@QbqsKUH4)-Dnl?{TO zYh1^Br|YN0jJpL;55!2|D-JRcCx`E!yTptvSe9(TAWtp^LeXmj504G{lYex4L>&)E zQHhNEqK=+%rCldrqv&7-n0Y`_uiGqZx3*B6;rir25t4}m=usJRylWMd{k9#ya0LoK z6k1wZWDtXUpT8-6^nE*`alWm4a1M>rT)A?EoSPt`4OO78Ox`5m zxil{psC`}o>qcj2|2S(K)yB*RK-+;!J(z56W=57&NL2M6qe!sr>hs)5&iGNZ-y_6L zsdWDbZg<4x#MAo)C*4^xJO5aG5_0_pw+f>`l|Gt%Ll!FY16y9Wjdl5CW@hR_7-$Z4 zYZARdN>uZm#i-`nS@g>E@Lj5x)>tuxex=+;Y*ug?lkZd81-4eDxt>szXGwfJ$<+oFYsh{G7Ib^?c02K?QRv{3 zwq^&^n*xeD{1Q8ia^+N1R4`G*?K=uD=M#;p9>5^db0sE5r8iW1>TD{umMz z`SVvlKiq+eBpr6loq7qMphzCH_e7}@2pTs0KkG&!sRlbmYH2z~9g8vmhYdM2v!k8U z?QB1re~|TK%+gOFU12}aj#i4m7?QYA0Olbmu>dfqacSx9rvhm|u8lSj$z%Pe@ZjD=QB zDX+$UoV&sW8?4MPw{FIgs;VlZV{nI1a-!+E_hMbN?O=OBJBf`50+7AC*qa`3>vBxp zAb6X&_vB4JAc5N$0N(PvnO~Oyn`||5#c~Y-1g;x6U@0a(B`bX3=#vq`6<8Zhd;9le zKn8Qe+AjrthBY)@tDg?lAXZAy&eQKW_vDV=g6sA2dCdAJjX*2K=t2r$4rN7ow6c33 zPzg+4`A4K* zefe^H3#p@<;bUPjNwaSFj34*?06#HF@rFV~6ATt`B{%TY5TS>tGq zb0S13#|>8 zDkEA!TND(U<(vlYO8`}m{dY3}zId@XaG8N1VIM5(_{?FEFYmsmYDbVyXj>GrloP?JLWcxs%_H;G;C-bfN-j_}su8KzAo)tCx|Hk>>gHkxM_(_6@?u zv_)FFq0_SJ;SO`{CsLJ0b+E$o*4BYHkLb*g0DOpi<}YCC*1Udwz97G@;4)_J*SKT+ zzUKE-=HEDg`_f_zb-<5-UwI48$rE)h7MvL_Yt*%rc z+>=IlaY1#(a`SL=di;`sjZFe2C!(C(;e|~h2?&-;%gC#C{)48qo8vzH?o?4pcd}|f zuBZS$Z7>A%6 zK2{W zfPntZxy+=J^p!d8SnOzIuWtD|0tWI1s@Q#$zLzUXOMfPVUTsI-9OOFz5RD+*S@6~J zc}(gi5k`53aY*3W5oU;;u4WC*9Rn&XYpA_t3f39Oo`y#Gu<@%MKYm|%8T-VElPBe` zPl_O9Au;2SLMY}|V65wx73J(ZC~$J6w#(2|xJ+9{fMBM$+sztgW~kFiKcXjS=GN0A zD>fy>75FJSDb6&f`w@$>$Mk6gx`yHMRl~t>?f0v&l7(;L&X6;D*?0jRw5tx zRuVaicWj z<;$06(xvBeZxso^e5pHkXP+D)&dFf*!9WE1qj!5D!2nHvzW_^Ye0%^_(n%vD9S;xX zV=*d3(0s0^@7r1jY!KKAh2ISWf=^3*yKsi*^9ps>zVB1f^r|_@D~tk`SB>cf^Ft|) z`xSUWfQGT!@Z!v9UOg`_uZ5YJP-|07?^)}-yu6;?Udqv-7TNjvc{w~OinEE2`}!`D zeOF@Wg;vh649D8gPE;lAw;BtuE8*>lP1f(c0FX!asq|JO9 z6?IgEy$hQDp1wYvCLKM!jYi3`&uzvR-dd%f)jW9c5Zs||w3d!h`veLR*}S$TktYqq9DAH%C)vHRku8t95k7kHuZXvA?_ytl5E;pn z?g21A0zaHjfkh_aDU6Q}m*LRiRb?t=VwN&Mr7BnL~pl*aOUeBN!f8362P= zja_?U_2MNs8Kk77)E{nQXCIxLuml{l?#mYzCSP+MfC}Y!T0gon7qpX?%h=ciBH3Ak ztZsIk=%ojKrQ+|Dq?A-CRva#Q5M*CpW3AfI(D1#X;p_MB>H;hs5O?KzE)rx2x8UyqX1KGw?1{aVU1BOKBI0h5No-bD_~XYLp}HD%Q~Lhn$M|UH0Seq!Vwbu3 zV_R)Uhd@wJP+Df@iv3bqaj}}q;7{VFQF2^rYUs>J`$Sh6y|uNq+teQp3etB1wHda4 zJe3k)!m`|F#DGetF6?!5Sekd9Us&Mce%KdtKRLg>xF#AKG)f?3!J z73ki4yHrzgPOYOyEgRD=40O{}O`)LOj1_2N0=8~in2bRu0y%gA`}Gp`t-9k2n(=BL^ul@>gw*du-JC`^yxPZ)(Q#=R<^bl5Ur+K$K~fox3->lQsDLW z_Qtg%dw0@&{q1z({CVxur#a4?IWsVIJ=f@p+jntcVP9;qCYdc?t)!fsob0jSe4P56H?k zydff%`i2ILbLU#p{__2qx{lkX{AwOIX$X z+BK>6?GwDiqUOiBh505e`Cp}+bQIn!YP5o8for|+uRAOf_@RG4Gr>Hf(Ni`+=M_eQ OKZi7Q)RWXqZv7YMXrAE! delta 29060 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 1: - rate = -numpy.diff(numpy.log(est_errors)) / numpy.diff(numpy.log(dofs)) - print(f" rate = {rate[-1]}") + if len(est_errors) > 1: + rates = -numpy.diff(numpy.log(est_errors)) / numpy.diff(numpy.log(sqrt_dofs)) + print(f" rate = {rates[-1]}") - if i != max_iterations - 1: + if i != refinements - 1: amh.adapt(eta, theta) from matplotlib import pyplot as plt - opt_errors = est_errors[0] * (numpy.array(dofs)/dofs[0]) ** -0.5 + dofs = numpy.array(sqrt_dofs) ** 2 + opt_errors = est_errors[0] * (sqrt_dofs[0] / numpy.array(sqrt_dofs)) plt.loglog(dofs, est_errors, '-o', markersize = 3, label="Estimated error") plt.loglog(dofs, opt_errors, '--', markersize = 3, label="Optimal convergence") plt.ylabel("Error estimate of the energy norm") @@ -207,6 +215,34 @@ The convergence follows the expected optimal behavior: :align: center :alt: Convergence of the error estimator. +Moreover, the multigrid iteration count is robust to the level of refinement :: + + print(" Level\t | Iterations") + print("---------------------") + for level, its in enumerate(mg_iterations): + print(f" {level}\t | {its}") + +.. + +======== ================ + Level Iterations +======== ================ + 0 2 + 1 12 + 2 13 + 3 13 + 4 13 + 5 13 + 6 13 + 7 14 + 8 15 + 9 15 + 10 15 + 11 15 + 12 16 + 13 16 + 14 16 +======== ================ A runnable python version of this demo can be found :demo:`here`. diff --git a/tests/firedrake/demos/test_demos_run.py b/tests/firedrake/demos/test_demos_run.py index dd8ce626bc..e3a78532aa 100644 --- a/tests/firedrake/demos/test_demos_run.py +++ b/tests/firedrake/demos/test_demos_run.py @@ -18,7 +18,7 @@ DEMO_DIR = join(CWD, "..", "..", "..", "demos") SERIAL_DEMOS = [ - Demo(("adaptive_multigrid", "adaptive_multigrid"), ["netgen", "vtk"]), + Demo(("adaptive_multigrid", "adaptive_multigrid"), ["matplotlib", "netgen", "vtk"]), Demo(("benney_luke", "benney_luke"), ["vtk"]), Demo(("boussinesq", "boussinesq"), []), Demo(("burgers", "burgers"), ["vtk"]), From 862b9435825164c1dc4ea556209dee1f72257540 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Thu, 29 Jan 2026 13:52:26 +0000 Subject: [PATCH 34/37] fixes --- .../adaptive_multigrid.py.rst | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/demos/adaptive_multigrid/adaptive_multigrid.py.rst b/demos/adaptive_multigrid/adaptive_multigrid.py.rst index 2b974e1b7a..76babbbeec 100644 --- a/demos/adaptive_multigrid/adaptive_multigrid.py.rst +++ b/demos/adaptive_multigrid/adaptive_multigrid.py.rst @@ -2,7 +2,7 @@ Adaptive Multigrid Methods using AdaptiveMeshHierarchy ====================================================== -Contributed by Anurag Rao +Contributed by Anurag Rao. The purpose of this demo is to show how to use Firedrake's multigrid solver on a hierarchy of adaptively refined Netgen meshes. We will first have a look at how to use the :class:`.AdaptiveMeshHierarchy` to construct the mesh hierarchy with Netgen meshes, then we will consider a solution to the Poisson problem on an L-shaped domain. @@ -101,10 +101,10 @@ For this problem, we will be using the Babuška-Rheinbolt a posteriori estimate .. math:: \eta_K^2 = h_K^2 \int_K \| f + \nabla^2 u_h \|^2 \mathrm{d}x + \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \mathrm{d}s, -where :math:`K` is the element, :math:`h_K` is the diameter of the element, :math:`n` is the normal, and :math:`⟦ \cdot ⟧` is the jump operator. The a posteriori estimator is computed using the solution at the current level :math:`h`. Integrating over the domain and using the fact that the components of the estimator are piecewise constant on each cell, we can transform the above estimator into the variational problem +where :math:`K` is the element, :math:`h_K` is the diameter of the element, :math:`n` is the outward-facing normal, and :math:`⟦ \cdot ⟧` is the jump operator. The a posteriori estimator is computed using the solution at the current level :math:`h`. Integrating over the domain and using the fact that the components of the estimator are piecewise constant on each cell, we can transform the above estimator into the variational problem .. math:: - \int_\Omega \eta_K^2 w \,\mathrm{d}x = \int_\Omega \sum_K h_K^2 \int_K (f + \text{div} (\text{grad} u_h) )^2 \,\mathrm{d}x w \,\mathrm{d}x + \int_\Omega \sum_K \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \,\mathrm{d}s w \,\mathrm{d}x + \int_\Omega \eta_K^2 q \,\mathrm{d}x = \int_\Omega \sum_K h_K^2 \int_K (f + \text{div} (\text{grad} u_h) )^2 \,\mathrm{d}x q \,\mathrm{d}x + \int_\Omega \sum_K \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \,\mathrm{d}s q \,\mathrm{d}x \quad \forall\, q \in \mathrm{DG}_0 Our approach will be to compute the estimator over all elements and selectively choose to refine only those that contribute most to the error. To compute the error estimator, we use the function below to solve the variational formulation of the error estimator. Since our estimator is a constant per element, we use a DG0 function space. :: @@ -173,18 +173,6 @@ With these helper functions complete, we can solve the system iteratively. In th if i != refinements - 1: amh.adapt(eta, theta) - from matplotlib import pyplot as plt - - dofs = numpy.array(sqrt_dofs) ** 2 - opt_errors = est_errors[0] * (sqrt_dofs[0] / numpy.array(sqrt_dofs)) - plt.loglog(dofs, est_errors, '-o', markersize = 3, label="Estimated error") - plt.loglog(dofs, opt_errors, '--', markersize = 3, label="Optimal convergence") - plt.ylabel("Error estimate of the energy norm") - plt.xlabel("Number of degrees of freedom") - plt.legend() - plt.savefig("output/adaptive_convergence.png") - - To perform Dörfler marking, refine the current mesh, and add the mesh to the :class:`.AdaptiveMeshHierarchy`, we use the ``amh.adapt(eta, theta)`` method. In this method the input is the recently computed error estimator ``eta`` and the Dörfler marking parameter ``theta``. The method always performs this on the current fine mesh in the hierarchy. There is another method for adding a mesh to the hierarchy: ``amh.add_mesh(mesh)``. In this method, refinement on the mesh is performed externally by some custom procedure and the resulting mesh directly gets added to the hierarchy. The meshes now refine according to the error estimator. The error estimators at levels 3,5, and 15 are shown below. Zooming into the vertex of the L-shape at level 15 shows the error indicator remains strongest there. Further refinements will focus on that area. @@ -208,8 +196,18 @@ The solutions at level 4 and 15 are shown below. | *MG solution at level 4* | *MG solution at level 15* | +------------------------------------+------------------------------------+ +The convergence follows the expected optimal behavior: :: + + from matplotlib import pyplot as plt -The convergence follows the expected optimal behavior: + dofs = numpy.array(sqrt_dofs) ** 2 + opt_errors = est_errors[0] * (sqrt_dofs[0] / numpy.array(sqrt_dofs)) + plt.loglog(dofs, est_errors, '-o', markersize = 3, label="Estimated error") + plt.loglog(dofs, opt_errors, '--', markersize = 3, label="Optimal convergence") + plt.ylabel("Error estimate of the energy norm") + plt.xlabel("Number of degrees of freedom") + plt.legend() + plt.savefig("output/adaptive_convergence.png") .. figure:: adaptive_convergence.png :align: center From f3352c3dba7a67d93e7bde4cb4c34883f86892b2 Mon Sep 17 00:00:00 2001 From: Leo Collins Date: Thu, 29 Jan 2026 14:59:33 +0000 Subject: [PATCH 35/37] review suggestions --- firedrake/interpolation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firedrake/interpolation.py b/firedrake/interpolation.py index 142cc987c2..4ff0372cfc 100644 --- a/firedrake/interpolation.py +++ b/firedrake/interpolation.py @@ -532,7 +532,7 @@ def _get_symbolic_expressions(self, target_space: WithGeometry) -> tuple[Interpo If the target space does not have point-evaluation dofs. """ from firedrake.assemble import assemble - if target_space.finat_element.mapping != "affine": + if not target_space.finat_element.has_pointwise_dual_basis: raise ValueError(f"FunctionSpace {target_space} must have point-evaluation dofs.") # Immerse coordinates of target space point evaluation dofs in src_mesh @@ -573,7 +573,7 @@ def _get_callable(self, tensor=None, bcs=None, mat_type=None, sub_mat_type=None) mat_type = mat_type or "aij" # Interpolate into intermediate quadrature space for non-identity mapped elements - if into_quadrature_space := self.target_space.finat_element.mapping != "affine": + if into_quadrature_space := not self.target_space.finat_element.has_pointwise_dual_basis: target_space = self._get_quadrature_space(self.target_space) f = Function(target_space.dual() if self.ufl_interpolate.is_adjoint else target_space) else: From 0ea4dc721db9e915cd05a2fe620a1f5aca7d9eb3 Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Thu, 29 Jan 2026 17:39:09 +0000 Subject: [PATCH 36/37] fix latex --- .../adaptive_multigrid.py.rst | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/demos/adaptive_multigrid/adaptive_multigrid.py.rst b/demos/adaptive_multigrid/adaptive_multigrid.py.rst index 76babbbeec..64e6d77819 100644 --- a/demos/adaptive_multigrid/adaptive_multigrid.py.rst +++ b/demos/adaptive_multigrid/adaptive_multigrid.py.rst @@ -5,9 +5,9 @@ Adaptive Multigrid Methods using AdaptiveMeshHierarchy Contributed by Anurag Rao. The purpose of this demo is to show how to use Firedrake's multigrid solver on a hierarchy of adaptively refined Netgen meshes. -We will first have a look at how to use the :class:`.AdaptiveMeshHierarchy` to construct the mesh hierarchy with Netgen meshes, then we will consider a solution to the Poisson problem on an L-shaped domain. -Finally, we will show how to use the :class:`.AdaptiveMeshHierarchy` and :class:`.AdaptiveTransferManager` to construct a scalable solver. The :class:`.AdaptiveMeshHierarchy` contains information of the mesh hierarchy and the parent child relations between the meshes. -The :class:`.AdaptiveTransferManager` deals with the transfer operator logic across any given levels in the hierarchy. +We will first have a look at how to use the :class:`~.AdaptiveMeshHierarchy` to construct the mesh hierarchy with Netgen meshes, then we will consider a solution to the Poisson problem on an L-shaped domain. +Finally, we will show how to use the :class:`~.AdaptiveMeshHierarchy` and :class:`~.AdaptiveTransferManager` to construct a scalable solver. The :class:`~.AdaptiveMeshHierarchy` contains information of the mesh hierarchy and the parent child relations between the meshes. +The :class:`~.AdaptiveTransferManager` deals with the transfer operator logic across any given levels in the hierarchy. We begin by importing the necessary libraries :: from firedrake import * @@ -28,13 +28,13 @@ We begin with the L-shaped domain, which we build as the union of two rectangles ngmsh = geo.GenerateMesh(maxh=0.5) mesh = Mesh(ngmsh) -It is important to convert the initial Netgen mesh into a Firedrake mesh before constructing the :class:`.AdaptiveMeshHierarchy`. To call the constructor to the hierarchy, we must pass the initial mesh. Our initial mesh looks like this: +It is important to convert the initial Netgen mesh into a Firedrake mesh before constructing the :class:`~.AdaptiveMeshHierarchy`. To call the constructor to the hierarchy, we must pass the initial mesh. Our initial mesh looks like this: .. figure:: initial_mesh.png :align: center :alt: Initial mesh. -We will also initialize the :class:`.AdaptiveTransferManager` here: :: +We will also initialize the :class:`~.AdaptiveTransferManager` here: :: amh = AdaptiveMeshHierarchy(mesh) atm = AdaptiveTransferManager() @@ -47,24 +47,29 @@ Now we can define a simple Poisson problem - \nabla^2 u = f \text{ in } \Omega, \quad u = 0 \text{ on } \partial \Omega. -Our approach strongly follows the similar problem in this `lecture course `_. We define the function ``solve_poisson``. The first lines correspond to finding a solution in the CG1 space. The right-hand side is set to be the constant function equal to 1. Since we want Dirichlet boundary conditions, we construct the :class:`.DirichletBC` object and apply it to the entire boundary: :: +Our approach strongly follows the similar problem in this `lecture course `_. We define the function ``solve_poisson``. The first lines correspond to finding a solution in the CG1 space. The right-hand side is set to be the constant function equal to 1. Since we want Dirichlet boundary conditions, we construct the :class:`~.DirichletBC` object and apply it to the entire boundary: :: def solve_poisson(mesh, params): V = FunctionSpace(mesh, "CG", 1) - uh = Function(V, name="solution") v = TestFunction(V) - bc = DirichletBC(V, 0, "on_boundary") + u = TrialFunction(V) + uh = Function(V, name="solution") + bcs = [DirichletBC(V, 0, "on_boundary")] f = Constant(1) - F = inner(grad(uh), grad(v))*dx - inner(f, v)*dx - problem = NonlinearVariationalProblem(F, uh, bc) - solver = NonlinearVariationalSolver(problem, solver_parameters=params) + a = inner(grad(u), grad(v))*dx + L = inner(f, v)*dx + + problem = LinearVariationalProblem(a, L, uh, bcs) + solver = LinearVariationalSolver(problem, solver_parameters=params) + solver.set_transfer_manager(atm) solver.solve() + its = solver.snes.getLinearSolveIterations() return uh, its -Note the code after the construction of the :class:`.NonlinearVariationalProblem`. To use the :class:`.AdaptiveMeshHierarchy` with the existing Firedrake solver, we have to set the :class:`.AdaptiveTransferManager` as the transfer manager of the multigrid solver. +Note the code after the construction of the :class:`~.LinearVariationalProblem`. To use the :class:`~.AdaptiveMeshHierarchy` with the existing Firedrake solver, we have to set the :class:`~.AdaptiveTransferManager` as the transfer manager of the multigrid solver. Since we are using linear Lagrange elements, we will employ Jacobi as the multigrid relaxation, which we define with :: solver_params = { @@ -95,16 +100,16 @@ The initial solution is shown below. Adaptive Mesh Refinement ------------------------ -In this section we will discuss how to adaptively refine select elements and add the newly refined mesh into the :class:`.AdaptiveMeshHierarchy`. -For this problem, we will be using the Babuška-Rheinbolt a posteriori estimate for an element: +In this section we will discuss how to adaptively refine select elements and add the newly refined mesh into the :class:`~.AdaptiveMeshHierarchy`. +For this problem, we will be using the Babuška-Rheinbolt a-posteriori estimate for an element: .. math:: - \eta_K^2 = h_K^2 \int_K \| f + \nabla^2 u_h \|^2 \mathrm{d}x + \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \mathrm{d}s, + \eta_K^2 = h_K^2 \int_K \| f + \nabla^2 u_h \|^2 \mathrm{d}x + \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} \left[[ \nabla u_h \cdot \mathbf{n} \right]]^2 \mathrm{d}s, -where :math:`K` is the element, :math:`h_K` is the diameter of the element, :math:`n` is the outward-facing normal, and :math:`⟦ \cdot ⟧` is the jump operator. The a posteriori estimator is computed using the solution at the current level :math:`h`. Integrating over the domain and using the fact that the components of the estimator are piecewise constant on each cell, we can transform the above estimator into the variational problem +where :math:`K` is the element, :math:`h_K` is the diameter of the element, :math:`\mathbf{n}` is the outward-facing normal, and :math:`\left[[ \cdot \right]]` is the jump operator. The a-posteriori estimator is computed using the solution at the current level :math:`h`. Integrating over the domain and using the fact that the components of the estimator are piecewise constant on each cell, we can transform the above estimator into the variational problem .. math:: - \int_\Omega \eta_K^2 q \,\mathrm{d}x = \int_\Omega \sum_K h_K^2 \int_K (f + \text{div} (\text{grad} u_h) )^2 \,\mathrm{d}x q \,\mathrm{d}x + \int_\Omega \sum_K \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} ⟦ \nabla u_h \cdot n ⟧^2 \,\mathrm{d}s q \,\mathrm{d}x \quad \forall\, q \in \mathrm{DG}_0 + \int_\Omega \eta_K^2 q \,\mathrm{d}x = \int_\Omega \sum_K h_K^2 \int_K (f + \text{div} (\text{grad} u_h) )^2 \,\mathrm{d}x q \,\mathrm{d}x + \int_\Omega \sum_K \frac{h_K}{2} \int_{\partial K \setminus \partial \Omega} \left[[ \nabla u_h \cdot \mathbf{n} \right]]^2 \,\mathrm{d}s q \,\mathrm{d}x \quad \forall\, q \in \mathrm{DG}_0 Our approach will be to compute the estimator over all elements and selectively choose to refine only those that contribute most to the error. To compute the error estimator, we use the function below to solve the variational formulation of the error estimator. Since our estimator is a constant per element, we use a DG0 function space. :: @@ -173,7 +178,7 @@ With these helper functions complete, we can solve the system iteratively. In th if i != refinements - 1: amh.adapt(eta, theta) -To perform Dörfler marking, refine the current mesh, and add the mesh to the :class:`.AdaptiveMeshHierarchy`, we use the ``amh.adapt(eta, theta)`` method. In this method the input is the recently computed error estimator ``eta`` and the Dörfler marking parameter ``theta``. The method always performs this on the current fine mesh in the hierarchy. There is another method for adding a mesh to the hierarchy: ``amh.add_mesh(mesh)``. In this method, refinement on the mesh is performed externally by some custom procedure and the resulting mesh directly gets added to the hierarchy. +To perform Dörfler marking, refine the current mesh, and add the mesh to the :class:`~.AdaptiveMeshHierarchy`, we use the ``amh.adapt(eta, theta)`` method. In this method the input is the recently computed error estimator ``eta`` and the Dörfler marking parameter ``theta``. The method always performs this on the current fine mesh in the hierarchy. There is another method for adding a mesh to the hierarchy: ``amh.add_mesh(mesh)``. In this method, refinement on the mesh is performed externally by some custom procedure and the resulting mesh directly gets added to the hierarchy. The meshes now refine according to the error estimator. The error estimators at levels 3,5, and 15 are shown below. Zooming into the vertex of the L-shape at level 15 shows the error indicator remains strongest there. Further refinements will focus on that area. +-------------------------------+-------------------------------+-------------------------------+ From 9b46f426d95aefd1096ac71a19263b8244e5b5fa Mon Sep 17 00:00:00 2001 From: Pablo Brubeck Date: Thu, 29 Jan 2026 18:09:53 +0000 Subject: [PATCH 37/37] Use native interpolation --- .../adaptive_multigrid.py.rst | 30 ++++----- firedrake/mg/adaptive_transfer_manager.py | 61 +++---------------- 2 files changed, 25 insertions(+), 66 deletions(-) diff --git a/demos/adaptive_multigrid/adaptive_multigrid.py.rst b/demos/adaptive_multigrid/adaptive_multigrid.py.rst index 64e6d77819..44ff4eac0f 100644 --- a/demos/adaptive_multigrid/adaptive_multigrid.py.rst +++ b/demos/adaptive_multigrid/adaptive_multigrid.py.rst @@ -230,21 +230,21 @@ Moreover, the multigrid iteration count is robust to the level of refinement :: ======== ================ Level Iterations ======== ================ - 0 2 - 1 12 - 2 13 - 3 13 - 4 13 - 5 13 - 6 13 - 7 14 - 8 15 - 9 15 - 10 15 - 11 15 - 12 16 - 13 16 - 14 16 + 0 2 + 1 8 + 2 8 + 3 8 + 4 8 + 5 8 + 6 8 + 7 8 + 8 8 + 9 9 + 10 9 + 11 9 + 12 9 + 13 9 + 14 9 ======== ================ A runnable python version of this demo can be found :demo:`here`. diff --git a/firedrake/mg/adaptive_transfer_manager.py b/firedrake/mg/adaptive_transfer_manager.py index 05b1feca4b..149906b845 100644 --- a/firedrake/mg/adaptive_transfer_manager.py +++ b/firedrake/mg/adaptive_transfer_manager.py @@ -4,13 +4,7 @@ """ from firedrake.mg.embedded import TransferManager from firedrake.ufl_expr import action, TrialFunction -from firedrake.functionspace import FunctionSpace, TensorFunctionSpace from firedrake.interpolation import interpolate -from firedrake.preconditioners.bddc import is_lagrange -from finat.quadrature import QuadratureRule -from functools import partial - -import numpy __all__ = ("AdaptiveTransferManager",) @@ -26,35 +20,30 @@ def __init__(self, *, native_transfers=None, use_averaging=True): super().__init__(native_transfers=native_transfers, use_averaging=use_averaging) self.cache = {} - def get_operators(self, Vc, Vf): + def get_interpolator(self, Vc, Vf): + from firedrake.assemble import assemble key = (Vc, Vf) try: return self.cache[key] except KeyError: - ops = get_mg_interpolator(Vc, Vf) - return self.cache.setdefault(key, ops) + Iexpr = interpolate(TrialFunction(Vc), Vf) + # TODO reusable matfree Interpolator + I = assemble(Iexpr, mat_type="aij") + return self.cache.setdefault(key, I) def forward(self, uc, uf): from firedrake.assemble import assemble Vc = uc.function_space() Vf = uf.function_space() - ops = self.get_operators(Vc, Vf) - - expr = uc - for op in ops: - expr = action(op, expr) - return assemble(expr, tensor=uf) + I = self.get_interpolator(Vc, Vf) + return assemble(action(I, uc), tensor=uf) def adjoint(self, uf, uc): from firedrake.assemble import assemble Vc = uc.function_space().dual() Vf = uf.function_space().dual() - ops = self.get_operators(Vc, Vf) - - expr = uf - for op in reversed(ops): - expr = action(expr, op) - return assemble(expr, tensor=uc) + I = self.get_interpolator(Vc, Vf) + return assemble(action(uf, I), tensor=uc) def prolong(self, uf, uc): return self.forward(uf, uc) @@ -64,33 +53,3 @@ def inject(self, uc, uf): def restrict(self, uc, uf): return self.adjoint(uc, uf) - - -def make_quadrature_space(V): - fe = V.finat_element - _, ps = fe.dual_basis - wts = numpy.full(len(ps.points), numpy.nan) - scheme = QuadratureRule(ps, wts, ref_el=fe.cell) - if V.value_shape == (): - make_space = FunctionSpace - else: - make_space = partial(TensorFunctionSpace, shape=V.value_shape) - return make_space(V.mesh(), "Quadrature", degree=fe.degree, quad_scheme=scheme) - - -def get_mg_interpolator(V1, V2): - from firedrake.assemble import assemble - if is_lagrange(V2.finat_element): - spaces = (V1, V2) - else: - Q2 = make_quadrature_space(V2) - spaces = (V1, Q2, V2) - - ops = [] - for i in range(len(spaces)-1): - Vsrc = spaces[i] - Vdest = spaces[i+1] - Iexpr = interpolate(TrialFunction(Vsrc), Vdest) - op = assemble(Iexpr, mat_type="aij") - ops.append(op) - return ops