diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..f0202916a5eb02291cdef773543f59df68298c9a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# Change Log + +## Unreleased + +### Removed +* Removing OpenCL support because it is not supported by pystencils anymore diff --git a/doc/notebooks/08_tutorial_shanchen_twophase.ipynb b/doc/notebooks/08_tutorial_shanchen_twophase.ipynb index 74e5605cd0d4d66cffb87e9cd0a52745373a0899..2a7351cd542b0ffa520b0aa2d700881d321dba41 100644 --- a/doc/notebooks/08_tutorial_shanchen_twophase.ipynb +++ b/doc/notebooks/08_tutorial_shanchen_twophase.ipynb @@ -62,11 +62,9 @@ "metadata": {}, "outputs": [], "source": [ - "dim = len(stencil[0])\n", + "dh = ps.create_data_handling((N,) * stencil.D, periodicity=True, default_target=ps.Target.CPU)\n", "\n", - "dh = ps.create_data_handling((N,)*dim, periodicity=True, default_target=ps.Target.CPU)\n", - "\n", - "src = dh.add_array('src', values_per_cell=len(stencil))\n", + "src = dh.add_array('src', values_per_cell=stencil.Q)\n", "dst = dh.add_array_like('dst', 'src')\n", "\n", "ρ = dh.add_array('rho')" @@ -105,7 +103,7 @@ "metadata": {}, "outputs": [], "source": [ - "zero_vec = sp.Matrix([0] * dh.dim) \n", + "zero_vec = sp.Matrix([0] * stencil.D) \n", "\n", "force = sum((psi(ρ[d]) * w_d * sp.Matrix(d)\n", " for d, w_d in zip(stencil, weights)), zero_vec) * psi(ρ.center) * -1 * g_aa" @@ -133,11 +131,10 @@ "stream = create_stream_pull_with_output_kernel(collision.method, src, dst, {'density': ρ})\n", "\n", "\n", - "opts = {'cpu_openmp': False, \n", - " 'target': dh.default_target}\n", + "config = ps.CreateKernelConfig(target=dh.default_target, cpu_openmp=False)\n", "\n", - "stream_kernel = ps.create_kernel(stream, **opts).compile()\n", - "collision_kernel = ps.create_kernel(collision, **opts).compile()" + "stream_kernel = ps.create_kernel(stream, config=config).compile()\n", + "collision_kernel = ps.create_kernel(collision, config=config).compile()" ] }, { @@ -158,7 +155,7 @@ " pdfs=src.center_vector, density=ρ.center)\n", "\n", "\n", - "init_kernel = ps.create_kernel(init_assignments, ghost_layers=0).compile()" + "init_kernel = ps.create_kernel(init_assignments, ghost_layers=0, config=config).compile()" ] }, { @@ -235,7 +232,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 3200x1200 with 2 Axes>" ] @@ -251,34 +248,6 @@ "plot_ρs()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Check the first time step against reference data\n", - "\n", - "The reference data was obtained with the [sample code](https://github.com/lbm-principles-practice/code/blob/master/chapter9/shanchen.cpp) after making the following changes:\n", - "```c++\n", - "const int nsteps = 1000;\n", - "const int noutput = 1;\n", - "```\n", - "\n", - "Remove the next cell if you changed the parameters at the beginning of this notebook." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "init()\n", - "time_loop(1)\n", - "ref = np.array([0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.136756, 0.220324, 1.2382, 2.26247, 2.26183, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.26183, 2.26247, 1.2382, 0.220324, 0.136756, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15, 0.15])\n", - "\n", - "assert np.allclose(dh.gather_array(ρ.name)[N//2], ref)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -288,12 +257,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 3200x1200 with 2 Axes>" ] @@ -309,6 +278,15 @@ "time_loop(1000)\n", "plot_ρs()" ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "assert np.isfinite(dh.gather_array(ρ.name)).all()" + ] } ], "metadata": { diff --git a/doc/notebooks/09_tutorial_shanchen_twocomponent.ipynb b/doc/notebooks/09_tutorial_shanchen_twocomponent.ipynb index 526db1ebfa4268bddb45c2df44b95f0de8c20df0..077e53f808699e1caea33ea85eac33da29ff2b33 100644 --- a/doc/notebooks/09_tutorial_shanchen_twocomponent.ipynb +++ b/doc/notebooks/09_tutorial_shanchen_twocomponent.ipynb @@ -255,6 +255,9 @@ "\n", " dh.fill(ρ_b.name, 0.9, slice_obj=ps.make_slice[:, :0.5])\n", " dh.fill(ρ_b.name, 0.1, slice_obj=ps.make_slice[:, 0.5:])\n", + " \n", + " dh.fill(f_a.name, 0.0)\n", + " dh.fill(f_b.name, 0.0)\n", "\n", " dh.run_kernel(init_a_kernel)\n", " dh.run_kernel(init_b_kernel)\n", diff --git a/lbmpy/advanced_streaming/communication.py b/lbmpy/advanced_streaming/communication.py index 5d67f68d5f478d2792106909434fafaf7949214a..2345b32a6aa6e88fbc7e0e680f8fa1e78bd055e8 100644 --- a/lbmpy/advanced_streaming/communication.py +++ b/lbmpy/advanced_streaming/communication.py @@ -104,8 +104,7 @@ def get_communication_slices( def periodic_pdf_copy_kernel(pdf_field, src_slice, dst_slice, - domain_size=None, target=Target.GPU, - opencl_queue=None, opencl_ctx=None): + domain_size=None, target=Target.GPU): """Copies a rectangular array slice onto another non-overlapping array slice""" from pystencils.gpucuda.kernelcreation import create_cuda_kernel @@ -136,9 +135,6 @@ def periodic_pdf_copy_kernel(pdf_field, src_slice, dst_slice, if target == Target.GPU: from pystencils.gpucuda import make_python_function return make_python_function(ast) - elif target == Target.OPENCL: - from pystencils.opencl import make_python_function - return make_python_function(ast, opencl_queue, opencl_ctx) else: raise ValueError('Invalid target:', target) @@ -147,22 +143,17 @@ class LBMPeriodicityHandling: def __init__(self, stencil, data_handling, pdf_field_name, streaming_pattern='pull', ghost_layers=1, - opencl_queue=None, opencl_ctx=None, pycuda_direct_copy=True): """ Periodicity Handling for Lattice Boltzmann Streaming. - **On the usage with cuda/opencl:** + **On the usage with cuda:** - pycuda allows the copying of sliced arrays within device memory using the numpy syntax, e.g. `dst[:,0] = src[:,-1]`. In this implementation, this is the default for periodicity handling. Alternatively, if you set `pycuda_direct_copy=False`, GPU kernels are generated and compiled. The compiled kernels are almost twice as fast in execution as pycuda array copying, but especially for large stencils like D3Q27, their compilation can take up to 20 seconds. Choose your weapon depending on your use case. - - - pyopencl does not support copying of non-contiguous sliced arrays, so the usage of compiled - copy kernels is forced on us. On the positive side, compilation of the OpenCL kernels appears - to be about four times faster. """ if not isinstance(data_handling, SerialDataHandling): raise ValueError('Only serial data handling is supported!') @@ -172,7 +163,7 @@ class LBMPeriodicityHandling: self.dh = data_handling target = data_handling.default_target - assert target in [Target.CPU, Target.GPU, Target.OPENCL] + assert target in [Target.CPU, Target.GPU] self.pdf_field_name = pdf_field_name self.ghost_layers = ghost_layers @@ -180,8 +171,6 @@ class LBMPeriodicityHandling: self.inplace_pattern = is_inplace(streaming_pattern) self.target = target self.cpu = target == Target.CPU - self.opencl_queue = opencl_queue - self.opencl_ctx = opencl_ctx self.pycuda_direct_copy = target == Target.GPU and pycuda_direct_copy def is_copy_direction(direction): @@ -205,7 +194,7 @@ class LBMPeriodicityHandling: ghost_layers=ghost_layers) self.comm_slices.append(list(chain.from_iterable(v for k, v in slices_per_comm_dir.items()))) - if target == Target.OPENCL or (target == Target.GPU and not pycuda_direct_copy): + if target == Target.GPU and not pycuda_direct_copy: self.device_copy_kernels = [] for timestep in timesteps: self.device_copy_kernels.append(self._compile_copy_kernels(timestep)) @@ -227,9 +216,7 @@ class LBMPeriodicityHandling: kernels = [] for src, dst in self.comm_slices[timestep.idx]: kernels.append( - periodic_pdf_copy_kernel( - pdf_field, src, dst, target=self.target, - opencl_queue=self.opencl_queue, opencl_ctx=self.opencl_ctx)) + periodic_pdf_copy_kernel(pdf_field, src, dst, target=self.target)) return kernels def _periodicity_handling_gpu(self, prev_timestep): diff --git a/lbmpy/boundaries/boundaryconditions.py b/lbmpy/boundaries/boundaryconditions.py index 96251e0e858ddd09c1398ba9e0a02878dd7e6783..b21208cfa2fd5e97b6dcc022633742402b4b9cf8 100644 --- a/lbmpy/boundaries/boundaryconditions.py +++ b/lbmpy/boundaries/boundaryconditions.py @@ -120,9 +120,10 @@ class FreeSlip(LbBoundary): Args: stencil: LBM stencil which is used for the simulation - normal_direction: optional normal direction. If the Free slip boundary is applied to a certain side in the - domain it is not necessary to calculate the normal direction since it can be stated for all - boundary cells. This reduces the memory space for the index array significantly. + normal_direction: optional normal direction pointing from wall to fluid. + If the Free slip boundary is applied to a certain side in the domain it is not necessary + to calculate the normal direction since it can be stated for all boundary cells. + This reduces the memory space for the index array significantly. name: optional name of the boundary. """ @@ -182,7 +183,12 @@ class FreeSlip(LbBoundary): normal_direction[i] = direction[i] ref_direction = MirroredStencilDirections.mirror_stencil(ref_direction, i) - ref_direction = inverse_direction(ref_direction) + # convex corner special case: + if all(n == 0 for n in normal_direction): + normal_direction = direction + else: + ref_direction = inverse_direction(ref_direction) + for i, cell_name in zip(range(dim), self.additional_data): cell[cell_name[0]] = -normal_direction[i] cell['ref_dir'] = self.stencil.index(ref_direction) @@ -208,13 +214,14 @@ class FreeSlip(LbBoundary): def get_additional_code_nodes(self, lb_method): if self.normal_direction: - return [MirroredStencilDirections(self.stencil, self.mirror_axis)] + return [MirroredStencilDirections(self.stencil, self.mirror_axis), NeighbourOffsetArrays(lb_method.stencil)] else: - return [] + return [NeighbourOffsetArrays(lb_method.stencil)] def __call__(self, f_out, f_in, dir_symbol, inv_dir, lb_method, index_field): + neighbor_offset = NeighbourOffsetArrays.neighbour_offset(dir_symbol, lb_method.stencil) if self.normal_direction: - normal_direction = self.normal_direction + tangential_offset = tuple(offset + normal for offset, normal in zip(neighbor_offset, self.normal_direction)) mirrored_stencil_symbol = MirroredStencilDirections._mirrored_symbol(self.mirror_axis) mirrored_direction = inv_dir[sp.IndexedBase(mirrored_stencil_symbol, shape=(1,))[dir_symbol]] else: @@ -222,10 +229,11 @@ class FreeSlip(LbBoundary): for i, cell_name in zip(range(self.dim), self.additional_data): normal_direction.append(index_field[0](cell_name[0])) normal_direction = tuple(normal_direction) + tangential_offset = tuple(offset + normal for offset, normal in zip(neighbor_offset, normal_direction)) mirrored_direction = index_field[0]('ref_dir') - return Assignment(f_in(inv_dir[dir_symbol]), f_in[normal_direction](mirrored_direction)) + return Assignment(f_in.center(inv_dir[dir_symbol]), f_out[tangential_offset](mirrored_direction)) # end class FreeSlip @@ -283,7 +291,7 @@ class UBB(LbBoundary): Returns: list containing LbmWeightInfo and NeighbourOffsetArrays """ - return [LbmWeightInfo(lb_method), NeighbourOffsetArrays(lb_method.stencil)] + return [LbmWeightInfo(lb_method, self.data_type), NeighbourOffsetArrays(lb_method.stencil)] @property def velocity_is_callable(self): @@ -312,7 +320,8 @@ class UBB(LbBoundary): velocity = [eq.rhs for eq in shifted_vel_eqs.new_filtered(cqc.first_order_moment_symbols).main_assignments] c_s_sq = sp.Rational(1, 3) - weight_of_direction = LbmWeightInfo.weight_of_direction + weight_info = LbmWeightInfo(lb_method, data_type=self.data_type) + weight_of_direction = weight_info.weight_of_direction vel_term = 2 / c_s_sq * sum([d_i * v_i for d_i, v_i in zip(neighbor_offset, velocity)]) * weight_of_direction( dir_symbol, lb_method) @@ -595,10 +604,11 @@ class DiffusionDirichlet(LbBoundary): name: optional name of the boundary. """ - def __init__(self, concentration, name=None): + def __init__(self, concentration, name=None, data_type='double'): if name is None: name = "Diffusion Dirichlet " + str(concentration) self.concentration = concentration + self._data_type = data_type super(DiffusionDirichlet, self).__init__(name) @@ -611,10 +621,11 @@ class DiffusionDirichlet(LbBoundary): Returns: list containing LbmWeightInfo """ - return [LbmWeightInfo(lb_method)] + return [LbmWeightInfo(lb_method, self._data_type)] def __call__(self, f_out, f_in, dir_symbol, inv_dir, lb_method, index_field): - w_dir = LbmWeightInfo.weight_of_direction(dir_symbol, lb_method) + weight_info = LbmWeightInfo(lb_method, self._data_type) + w_dir = weight_info.weight_of_direction(dir_symbol, lb_method) return [Assignment(f_in(inv_dir[dir_symbol]), 2 * w_dir * self.concentration - f_out(dir_symbol))] diff --git a/lbmpy/boundaries/boundaryhandling.py b/lbmpy/boundaries/boundaryhandling.py index 71bded3b415ac7874d110ec568173337cd9693cd..60c00dfee531f5189f4570ea652b398da2100694 100644 --- a/lbmpy/boundaries/boundaryhandling.py +++ b/lbmpy/boundaries/boundaryhandling.py @@ -38,7 +38,7 @@ class LatticeBoltzmannBoundaryHandling(BoundaryHandling): self._prev_timestep = None def add_fixed_steps(self, fixed_loop, **kwargs): - if self._inplace: # Fixed Loop can't do timestep selection + if self._inplace: # Fixed Loop can't do timestep selection raise NotImplementedError("Adding to fixed loop is currently not supported for inplace kernels") super(LatticeBoltzmannBoundaryHandling, self).add_fixed_steps(fixed_loop, **kwargs) @@ -52,10 +52,12 @@ class LatticeBoltzmannBoundaryHandling(BoundaryHandling): if boundary_obj not in self._boundary_object_to_boundary_info: sym_index_field = Field.create_generic('indexField', spatial_dimensions=1, dtype=numpy_data_type_for_boundary_object(boundary_obj, self.dim)) - kernels = [self._create_boundary_kernel( - self._data_handling.fields[self._field_name], sym_index_field, boundary_obj, Timestep.EVEN).compile(), - self._create_boundary_kernel( - self._data_handling.fields[self._field_name], sym_index_field, boundary_obj, Timestep.ODD).compile()] + + ast_even = self._create_boundary_kernel(self._data_handling.fields[self._field_name], sym_index_field, + boundary_obj, Timestep.EVEN) + ast_odd = self._create_boundary_kernel(self._data_handling.fields[self._field_name], sym_index_field, + boundary_obj, Timestep.ODD) + kernels = [ast_even.compile(), ast_odd.compile()] if flag is None: flag = self.flag_interface.reserve_next_flag() boundary_info = self.InplaceStreamingBoundaryInfo(self, boundary_obj, flag, kernels) @@ -84,6 +86,7 @@ class LatticeBoltzmannBoundaryHandling(BoundaryHandling): self.boundary_object = boundary_obj self.flag = flag self._kernels = kernels + # end class InplaceStreamingBoundaryInfo # ------------------------------ Force On Boundary ------------------------------------------------------------ @@ -148,29 +151,32 @@ class LatticeBoltzmannBoundaryHandling(BoundaryHandling): return dh.reduce_float_sequence(list(result), 'sum') + # end class LatticeBoltzmannBoundaryHandling class LbmWeightInfo(CustomCodeNode): + def __init__(self, lb_method, data_type='double'): + self.weights_symbol = TypedSymbol("weights", data_type) + data_type_string = "double" if self.weights_symbol.dtype.numpy_dtype == np.float64 else "float" + + weights = [str(w.evalf(17)) for w in lb_method.weights] + if data_type_string == "float": + weights = "f, ".join(weights) + weights += "f" # suffix for the last element + else: + weights = ", ".join(weights) + w_sym = self.weights_symbol + code = f"const {data_type_string} {w_sym.name} [] = {{{ weights }}};\n" + super(LbmWeightInfo, self).__init__(code, symbols_read=set(), symbols_defined={w_sym}) - # --------------------------- Functions to be used by boundaries -------------------------- - - @staticmethod - def weight_of_direction(dir_idx, lb_method=None): + def weight_of_direction(self, dir_idx, lb_method=None): if isinstance(sp.sympify(dir_idx), sp.Integer): - return lb_method.weights[dir_idx].evalf() + return lb_method.weights[dir_idx].evalf(17) else: - return sp.IndexedBase(LbmWeightInfo.WEIGHTS_SYMBOL, shape=(1,))[dir_idx] + return sp.IndexedBase(self.weights_symbol, shape=(1,))[dir_idx] - # ---------------------------------- Internal --------------------------------------------- - WEIGHTS_SYMBOL = TypedSymbol("weights", "double") - - def __init__(self, lb_method): - weights = [str(w.evalf()) for w in lb_method.weights] - w_sym = LbmWeightInfo.WEIGHTS_SYMBOL - code = "const double %s [] = { %s };\n" % (w_sym.name, ",".join(weights)) - super(LbmWeightInfo, self).__init__(code, symbols_read=set(), symbols_defined={w_sym}) # end class LbmWeightInfo diff --git a/lbmpy/lbstep.py b/lbmpy/lbstep.py index 15e73fe69ff3d48ed65270f5dbe7d2d6fc93c469..44aea72a2c5ca7f7f3fa99f09d06c438c59d3fae 100644 --- a/lbmpy/lbstep.py +++ b/lbmpy/lbstep.py @@ -74,7 +74,7 @@ class LatticeBoltzmannStep: self.density_data_name = name + "_density" if density_data_name is None else density_data_name self.density_data_index = density_data_index - self._gpu = target == Target.GPU or target == Target.OPENCL + self._gpu = target == Target.GPU layout = lbm_optimisation.field_layout alignment = False diff --git a/lbmpy/macroscopic_value_kernels.py b/lbmpy/macroscopic_value_kernels.py index 3f7a26033b83304917b3c26d06d816b6c0fce15d..4ec4f31ae4e44f0468ec58a191ea9843c8072a97 100644 --- a/lbmpy/macroscopic_value_kernels.py +++ b/lbmpy/macroscopic_value_kernels.py @@ -8,12 +8,16 @@ from lbmpy.advanced_streaming.utility import get_accessor, Timestep def pdf_initialization_assignments(lb_method, density, velocity, pdfs, - streaming_pattern='pull', previous_timestep=Timestep.BOTH): + streaming_pattern='pull', previous_timestep=Timestep.BOTH, + set_pre_collision_pdfs=False): """Assignments to initialize the pdf field with equilibrium""" if isinstance(pdfs, Field): - previous_step_accessor = get_accessor(streaming_pattern, previous_timestep) - field_accesses = previous_step_accessor.write(pdfs, lb_method.stencil) - elif streaming_pattern == 'pull': + accessor = get_accessor(streaming_pattern, previous_timestep) + if set_pre_collision_pdfs: + field_accesses = accessor.read(pdfs, lb_method.stencil) + else: + field_accesses = accessor.write(pdfs, lb_method.stencil) + elif streaming_pattern == 'pull' and not set_pre_collision_pdfs: field_accesses = pdfs else: raise ValueError("Invalid value of pdfs: A PDF field reference is required to derive " @@ -28,11 +32,15 @@ def pdf_initialization_assignments(lb_method, density, velocity, pdfs, def macroscopic_values_getter(lb_method, density, velocity, pdfs, - streaming_pattern='pull', previous_timestep=Timestep.BOTH): + streaming_pattern='pull', previous_timestep=Timestep.BOTH, + use_pre_collision_pdfs=False): if isinstance(pdfs, Field): - previous_step_accessor = get_accessor(streaming_pattern, previous_timestep) - field_accesses = previous_step_accessor.write(pdfs, lb_method.stencil) - elif streaming_pattern == 'pull': + accessor = get_accessor(streaming_pattern, previous_timestep) + if use_pre_collision_pdfs: + field_accesses = accessor.read(pdfs, lb_method.stencil) + else: + field_accesses = accessor.write(pdfs, lb_method.stencil) + elif streaming_pattern == 'pull' and not use_pre_collision_pdfs: field_accesses = pdfs else: raise ValueError("Invalid value of pdfs: A PDF field reference is required to derive " diff --git a/lbmpy/moment_transforms/centralmomenttransforms.py b/lbmpy/moment_transforms/centralmomenttransforms.py index 3d6ec0f485ad2dd1f808983494a031a0dde57302..700445dd9a6afba5d7aa7c37cbaa90e7b4295f9f 100644 --- a/lbmpy/moment_transforms/centralmomenttransforms.py +++ b/lbmpy/moment_transforms/centralmomenttransforms.py @@ -268,7 +268,7 @@ class FastCentralMomentTransform(AbstractCentralMomentTransform): ac = AssignmentCollection(main_assignments, subexpressions=subexpressions, subexpression_symbol_generator=symbol_gen) if simplification: - ac = self._simplify_lower_order_moments(ac, monomial_symbol_base) + ac = self._simplify_lower_order_moments(ac, monomial_symbol_base, return_monomials) ac = simplification.apply(ac) return ac @@ -335,14 +335,19 @@ class FastCentralMomentTransform(AbstractCentralMomentTransform): 'backward': backward_simp } - def _simplify_lower_order_moments(self, ac, moment_base): + def _simplify_lower_order_moments(self, ac, moment_base, search_in_main_assignments): if self.cqe is None: return ac - f_to_cm_dict = ac.main_assignments_dict - f_to_cm_dict_reduced = ac.new_without_subexpressions().main_assignments_dict - moment_symbols = [sq_sym(moment_base, e) for e in moments_up_to_order(1, dim=self.dim)] + + if search_in_main_assignments: + f_to_cm_dict = ac.main_assignments_dict + f_to_cm_dict_reduced = ac.new_without_subexpressions().main_assignments_dict + else: + f_to_cm_dict = ac.subexpressions_dict + f_to_cm_dict_reduced = ac.new_without_subexpressions(moment_symbols).subexpressions_dict + cqe_subs = self.cqe.new_without_subexpressions().main_assignments_dict for m in moment_symbols: m_eq = fast_subs(fast_subs(f_to_cm_dict_reduced[m], cqe_subs), cqe_subs) @@ -351,8 +356,12 @@ class FastCentralMomentTransform(AbstractCentralMomentTransform): m_eq = subs_additive(m_eq, cqe_sym, cqe_exp) f_to_cm_dict[m] = m_eq - main_assignments = [Assignment(lhs, rhs) for lhs, rhs in f_to_cm_dict.items()] - return ac.copy(main_assignments=main_assignments) + if search_in_main_assignments: + main_assignments = [Assignment(lhs, rhs) for lhs, rhs in f_to_cm_dict.items()] + return ac.copy(main_assignments=main_assignments) + else: + subexpressions = [Assignment(lhs, rhs) for lhs, rhs in f_to_cm_dict.items()] + return ac.copy(subexpressions=subexpressions) def _split_backward_equations_recursive(self, assignment, all_subexpressions, stencil_direction, subexp_symgen, known_coeffs_dict, diff --git a/lbmpy/oldroydb.py b/lbmpy/oldroydb.py new file mode 100644 index 0000000000000000000000000000000000000000..16148f7010e3e917529fb8bcdb645dd844164f94 --- /dev/null +++ b/lbmpy/oldroydb.py @@ -0,0 +1,209 @@ +import pystencils as ps +import sympy as sp +import numpy as np + +from pystencils.boundaries.boundaryconditions import Boundary +from pystencils.stencil import inverse_direction_string, direction_string_to_offset + + +class OldroydB: + def __init__(self, dim, u, tau, F, tauflux, tauface, lambda_p, eta_p, vof=True): + assert not ps.FieldType.is_staggered(u) + assert not ps.FieldType.is_staggered(tau) + assert not ps.FieldType.is_staggered(F) + assert ps.FieldType.is_staggered(tauflux) + assert ps.FieldType.is_staggered(tauface) + + self.dim = dim + self.u = u + self.tau = tau + self.F = F + self.tauflux = tauflux + self.tauface_field = tauface + self.lambda_p = lambda_p + self.eta_p = eta_p + + full_stencil = ["C"] + self.tauflux.staggered_stencil + \ + list(map(inverse_direction_string, self.tauflux.staggered_stencil)) + self.stencil = tuple(map(lambda d: tuple(ps.stencil.direction_string_to_offset(d, self.dim)), full_stencil)) + full_stencil = ["C"] + self.tauface_field.staggered_stencil + \ + list(map(inverse_direction_string, self.tauface_field.staggered_stencil)) + self.force_stencil = tuple(map(lambda d: tuple(ps.stencil.direction_string_to_offset(d, self.dim)), + full_stencil)) + + self.disc = ps.fd.FVM1stOrder(self.tau, self._flux(), self._source()) + if vof: + self.vof = ps.fd.VOF(self.tauflux, self.u, self.tau) + else: + self.vof = None + + def _flux(self): + return [self.tau.center_vector.applyfunc(lambda t: t * self.u.center_vector[i]) for i in range(self.dim)] + + def _source(self): + gradu = sp.Matrix([[ps.fd.diff(self.u.center_vector[j], i) for j in range(self.dim)] for i in range(self.dim)]) + gamma = gradu + gradu.transpose() + return self.tau.center_vector * gradu + gradu.transpose() * self.tau.center_vector + \ + (self.eta_p * gamma - self.tau.center_vector) / self.lambda_p + + def tauface(self): + return ps.AssignmentCollection([ps.Assignment(self.tauface_field.staggered_vector_access(d), + (self.tau.center_vector + self.tau.neighbor_vector(d)) / 2) + for d in self.tauface_field.staggered_stencil]) + + def force(self): + full_stencil = self.tauface_field.staggered_stencil + \ + list(map(inverse_direction_string, self.tauface_field.staggered_stencil)) + dtau = sp.Matrix([sum([sum([ + self.tauface_field.staggered_access(d, (i, j)) * direction_string_to_offset(d)[i] + for i in range(self.dim)]) / sp.Matrix(direction_string_to_offset(d)).norm() + for d in full_stencil]) for j in range(self.dim)]) + A0 = sum([sp.Matrix(direction_string_to_offset(d)).norm() for d in full_stencil]) + return ps.AssignmentCollection(ps.Assignment(self.F.center_vector, dtau / A0 * 2 * self.dim)) + + def flux(self): + if self.vof is not None: + return self.vof + else: + return self.disc.discrete_flux(self.tauflux) + + def continuity(self): + cont = self.disc.discrete_continuity(self.tauflux) + tau_copy = sp.Matrix(self.dim, self.dim, lambda i, j: sp.Symbol("tau_old_%d_%d" % (i, j))) + tau_subs = {self.tau.center_vector[i, j]: tau_copy[i, j] for i in range(self.dim) for j in range(self.dim)} + return [ps.Assignment(tau_copy[i, j], self.tau.center_vector[i, j]) + for i in range(self.dim) for j in range(self.dim)] + \ + [ps.Assignment(a.lhs, a.rhs.subs(tau_subs)) for a in cont] + + +class Flux(Boundary): + inner_or_boundary = True # call the boundary condition with the fluid cell + single_link = False # needs to be called for all directional fluxes + + def __init__(self, stencil, value=None): + self.stencil = stencil + self.value = value + + def __call__(self, field, direction_symbol, **kwargs): + assert ps.FieldType.is_staggered(field) + + assert all([s == 0 for s in self.stencil[0]]) + accesses = [field.staggered_vector_access(ps.stencil.offset_to_direction_string(d)) + for d in self.stencil[1:]] + conds = [sp.Equality(direction_symbol, d + 1) for d in range(len(accesses))] + + if self.value is None: + val = sp.Matrix(np.zeros(accesses[0].shape, dtype=int)) + else: + val = self.value + + # use conditional + conditional = None + for a, c, d in zip(accesses, conds, self.stencil[1:]): + d = ps.stencil.offset_to_direction_string(d) + assignments = [] + for i in range(len(a)): + fac = 1 + if ps.FieldType.is_staggered_flux(field) and type(a[i]) is sp.Mul and a[i].args[0] == -1: + fac = a[i].args[0] + a[i] *= a[i].args[0] + assignments.append(ps.Assignment(a[i], fac * val[i])) + if len(assignments) > 0: + conditional = ps.astnodes.Conditional(ps.data_types.type_all_numbers(c, "int"), + ps.astnodes.Block(assignments), + conditional) + return [conditional] + + def __hash__(self): + return hash((Flux, self.stencil, self.value)) + + def __eq__(self, other): + return type(other) == Flux and other.stencil == self.stencil and self.value == other.value + + +class Extrapolation(Boundary): + inner_or_boundary = True # call the boundary condition with the fluid cell + single_link = False # needs to be called for all directional fluxes + + def __init__(self, stencil, src_field, order): + self.stencil = stencil + self.src = src_field + if order == 0: + self.weights = (1,) + elif order == 1: + self.weights = (sp.Rational(3, 2), - sp.Rational(1, 2)) + elif order == 2: + self.weights = (sp.Rational(15, 8), - sp.Rational(10, 8), sp.Rational(3, 8)) + else: + raise NotImplementedError("weights are not known for extrapolation orders > 2") + + def __call__(self, field, direction_symbol, **kwargs): + assert ps.FieldType.is_staggered(field) + + assert all([s == 0 for s in self.stencil[0]]) + accesses = [field.staggered_vector_access(ps.stencil.offset_to_direction_string(d)) + for d in self.stencil[1:]] + conds = [sp.Equality(direction_symbol, d + 1) for d in range(len(accesses))] + + # use conditional + conditional = None + for a, c, o in zip(accesses, conds, self.stencil[1:]): + assignments = [] + src = [self.src.neighbor_vector(tuple([-1 * n * i for i in o])) for n in range(len(self.weights))] + interp = self.weights[0] * src[0] + for i in range(1, len(self.weights)): + interp += self.weights[i] * src[i] + for i in range(len(a)): + fac = 1 + if ps.FieldType.is_staggered_flux(field) and type(a[i]) is sp.Mul and a[i].args[0] == -1: + fac = a[i].args[0] + a[i] *= a[i].args[0] + assignments.append(ps.Assignment(a[i], fac * interp[i])) + if len(assignments) > 0: + conditional = ps.astnodes.Conditional(ps.data_types.type_all_numbers(c, "int"), + ps.astnodes.Block(assignments), + conditional) + return [conditional] + + def __hash__(self): + return hash((Extrapolation, self.stencil, self.src, self.weights)) + + def __eq__(self, other): + return type(other) == Extrapolation and other.stencil == self.stencil and \ + other.src == self.src and other.weights == self.weights + + +class ForceOnBoundary(Boundary): + inner_or_boundary = False # call the boundary condition with the boundary cell + single_link = False # needs to be called for all directional fluxes + + def __init__(self, stencil, force_field): + self.stencil = stencil + self.force_field = force_field + + assert not ps.FieldType.is_staggered(force_field) + + def __call__(self, face_stress_field, direction_symbol, **kwargs): + assert ps.FieldType.is_staggered(face_stress_field) + + assert all([s == 0 for s in self.stencil[0]]) + accesses = [face_stress_field.staggered_vector_access(ps.stencil.offset_to_direction_string(d)) + for d in self.stencil[1:]] + conds = [sp.Equality(direction_symbol, d + 1) for d in range(len(accesses))] + + # use conditional + conditional = None + for a, c, o in zip(accesses, conds, self.stencil[1:]): + assignments = ps.Assignment(self.force_field.center_vector, + self.force_field.center_vector + 1 * a.transpose() * sp.Matrix(o)) + conditional = ps.astnodes.Conditional(ps.data_types.type_all_numbers(c, "int"), + ps.astnodes.Block(assignments), + conditional) + return [conditional] + + def __hash__(self): + return hash((ForceOnBoundary, self.stencil, self.force_field)) + + def __eq__(self, other): + return type(other) == ForceOnBoundary and other.stencil == self.stencil and \ + other.force_field == self.force_field diff --git a/lbmpy/simplificationfactory.py b/lbmpy/simplificationfactory.py index cbc58565bef3f5cc51921899afe85623bbbcec8c..ad89fe60b99faf946e3d36171412dbfed800a14f 100644 --- a/lbmpy/simplificationfactory.py +++ b/lbmpy/simplificationfactory.py @@ -2,6 +2,7 @@ import sympy as sp from lbmpy.innerloopsplit import create_lbm_split_groups from lbmpy.methods.momentbased.momentbasedmethod import MomentBasedLbMethod +from lbmpy.methods.momentbased.centralmomentbasedmethod import CentralMomentBasedLbMethod from lbmpy.methods.centeredcumulant import CenteredCumulantBasedLbMethod from lbmpy.methods.momentbased.momentbasedsimplifications import ( factor_density_after_factoring_relaxation_times, factor_relaxation_rates, @@ -22,6 +23,8 @@ def create_simplification_strategy(lb_method, split_inner_loop=False): else: # General MRT methods with population-space collision return _mrt_population_space_simplification(split_inner_loop) + elif isinstance(lb_method, CentralMomentBasedLbMethod): + return _moment_space_simplification(split_inner_loop) elif isinstance(lb_method, CenteredCumulantBasedLbMethod): return _moment_space_simplification(split_inner_loop) else: diff --git a/lbmpy_tests/advanced_streaming/test_fully_periodic_flow.py b/lbmpy_tests/advanced_streaming/test_fully_periodic_flow.py index 9804a1e36a23df79a848fc0e618a224bd7f78e8c..0c37cfc37c52506d1a373815fa9d1d849bf03cd5 100644 --- a/lbmpy_tests/advanced_streaming/test_fully_periodic_flow.py +++ b/lbmpy_tests/advanced_streaming/test_fully_periodic_flow.py @@ -25,27 +25,15 @@ try: except Exception: pass -try: - import pystencils.opencl.autoinit - from pystencils.opencl.opencljit import get_global_cl_queue - if get_global_cl_queue() is not None: - targets += [Target.OPENCL] -except Exception: - pass - @pytest.mark.parametrize('target', targets) @pytest.mark.parametrize('stencil', [Stencil.D2Q9, Stencil.D3Q19, Stencil.D3Q27]) @pytest.mark.parametrize('streaming_pattern', streaming_patterns) @pytest.mark.longrun def test_fully_periodic_flow(target, stencil, streaming_pattern): - - if target == Target.OPENCL: - opencl_queue = get_global_cl_queue() - else: - opencl_queue = None - - gpu = target in [Target.GPU, Target.OPENCL] + gpu = False + if target == Target.GPU: + gpu = True # Stencil stencil = LBStencil(stencil) @@ -59,8 +47,7 @@ def test_fully_periodic_flow(target, stencil, streaming_pattern): domain_size = (30,) * stencil.D periodicity = (True,) * stencil.D - dh = create_data_handling(domain_size=domain_size, periodicity=periodicity, - default_target=target, opencl_queue=opencl_queue) + dh = create_data_handling(domain_size=domain_size, periodicity=periodicity, default_target=target) pdfs = dh.add_array('pdfs', stencil.Q) if not inplace: diff --git a/lbmpy_tests/advanced_streaming/test_periodic_pipe_with_force.py b/lbmpy_tests/advanced_streaming/test_periodic_pipe_with_force.py index 7ee8a608a0b6080ad76229c9385b90f1f89e7e2c..42b6671a35f61167e63cba0171b12e08dd022b7b 100644 --- a/lbmpy_tests/advanced_streaming/test_periodic_pipe_with_force.py +++ b/lbmpy_tests/advanced_streaming/test_periodic_pipe_with_force.py @@ -26,14 +26,6 @@ try: except Exception: pass -try: - import pystencils.opencl.autoinit - from pystencils.opencl.opencljit import get_global_cl_queue - if get_global_cl_queue() is not None: - targets += [Target.OPENCL] -except Exception: - pass - class PeriodicPipeFlow: def __init__(self, stencil, streaming_pattern, wall_boundary=None, target=Target.CPU): @@ -42,7 +34,7 @@ class PeriodicPipeFlow: wall_boundary = NoSlip() self.target = target - self.gpu = target in [Target.GPU, Target.OPENCL] + self.gpu = target in [Target.GPU] # Stencil self.stencil = stencil diff --git a/lbmpy_tests/centeredcumulant/test_periodic_pipe_flow.ipynb b/lbmpy_tests/centeredcumulant/test_periodic_pipe_flow.ipynb index cddc784870ea4b92f4fdf9b1b4abdbe3e515c0a2..ef7082dc03ffeaa2c1bec67a876345285218bc0d 100644 --- a/lbmpy_tests/centeredcumulant/test_periodic_pipe_flow.ipynb +++ b/lbmpy_tests/centeredcumulant/test_periodic_pipe_flow.ipynb @@ -260,7 +260,7 @@ { "data": { "text/plain": [ - "<matplotlib.colorbar.Colorbar at 0x122dae4f0>" + "<matplotlib.colorbar.Colorbar at 0x7f7e7bd42370>" ] }, "execution_count": 7, @@ -269,7 +269,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA00AAAFoCAYAAACL/RCAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqrklEQVR4nO3db4xc133e8efZ2dk/3KVMUqIkhpIrJWaKKEEju4QswH3hxJFDqUFpFxAgxbVVxyglRAJswEWhOC/s1ChgBLGduFAlyDFhCVUtSLBdEwYbmVUduAZqR5SryFIY1ayqWLRokRJFkUtyd2dnfn2xl85kvTvzu3d3ljOc7wcYcObOc++enTtzh789557riBAAAAAAYHkjF7oBAAAAANDPKJoAAAAAoAOKJgAAAADogKIJAAAAADqgaAIAAACADiiaAAAAAKADiiYAAAAAfcn2Ltsv2D5s+95lnrftLxTPP2v7HcXyCdt/ZfuvbT9v+4/a1tli+4DtHxX/bu7WDoomAAAAAH3Hdk3SfZJulnSdpNttX7ckdrOkHcVtj6T7i+Vzkn4zIn5d0vWSdtm+sXjuXklPRsQOSU8WjzuiaAIAAADQj26QdDgiXoyIeUmPStq9JLNb0sOx6HuSNtneVjyeKTL14hZt6zxU3H9I0vu6NWR0db9HOZdddllcc8016/kjAWBd/Z+nX0xnPdKjv1u5B9uM7pFKm2210tlf/qe/2JtGAEAfePrpp1+LiK0Xuh1l/PZvTMXrJ5qV13/62bnnJc22LXowIh5se7xd0sttj49IeueSzSyX2S7paNFT9bSkt0m6LyK+X2SuiIijkhQRR21f3q2t61o0XXPNNTp48OB6/kgAWFc3jdyazo5MbshvuFZLR+21r5oiSlRNzfwXaOvs2XT2wMHH820AgAFj++8udBvKeu1EU99/4qrK69e3/d/ZiNjZIbLcF9rSL6QVMxHRlHS97U2Svm771yLiuSptXdeiCQAAAMDFItSM/IiBCo5Iurrt8VWSXimbiYiTtv9S0i5Jz0l6tRjCd9T2NknHujWEc5oAAAAAlBaSWorKt4SnJO2wfa3tMUm3Sdq3JLNP0oeKWfRulPRmUQxtLXqYZHtS0m9J+tu2de4o7t8h6RvdGkJPEwAAAIC+ExELtu+R9ISkmqS9EfG87buK5x+QtF/SLZIOSzor6cPF6tskPVSc1zQi6bGI+Gbx3GckPWb7I5J+LKnr2HqKJgAAAACVtNTT4XmKiP1aLIzalz3Qdj8k3b3Mes9KevsK23xd0nvKtIOiCQAAAEBpoVCzzERBA4yiCQAAAEAlyXOTBh4TQQAAAABAB/Q0AQAAACgtJDWHpKeJognARaPUhWWnptJZb8hfhLZ23S+ns83p8XS2NZa/uK1qa39xWzXzX4oj8/mL29Zm5tLZXVf8fjobJS6a2zpzJp090OICuwDQbliG51E0AQAAACgtJCaCAAAAAIBOejvheP9gIggAAAAA6ICeJgAAAAClhYKJIAAAAABgRVFqnqCBRtEEAAAAoLTQ8JzTRNEEAAAAoAKrqR5c5qIPMREEAAAAAHRATxMAAACA0kJSi3OaAAAAAGBlwzI8j6IJQF977/gH0tnajl9MZ5uXTqezjel6Prsxf1hdmMx/0TTr+WzU0tE0N/PZWiP/Z8fRcxvS2fovbMxnZxrpbO31mXS2zPvxW3OPpLMAMIhCw1M0cU4TAAAAAHRATxMAAACASloxHD1NFE0AAAAAShum4XkUTQAAAABKC1nNITnbh6IJAAAAQCXDMjxvOEpDAAAAAKiIniYAAAAApXFOEwAAAAB0ZDVjOAauUTQBAAAAKC0ktYbkbB+KJgAAAACVMDwPAEq4aeTWdLZ26ZZ01r/6tnT23JVT6ezs5lo625jOfyE0pvLZ5ng6qlaJo3Xkf7U0N/PZkYX8a1Cby2+3fib/18z6TD2dndiU3xETUxPp7K6td6azzddPpHIHWo+ntwkAWDsUTQAAAABKi+CcJgAAAADoqMXwPAAAAABY3uKU48PR0zQcvyUAAAAAVERPEwAAAIAKOKcJAAAAAFbEdZoAAAAAoItmMBEEAAAAACwrZCaCAAAAAADQ0wQAAACgohYTQQCA9N6x21O52tuuTW+zsW1TOnvu8rF0dnZL/sA995b8GOyF6XRUCxORzrZKZKNeIjuSz2a5lX+93MhnR2bz2dEy2Zl8tjFdIju1MZ2d3DieztaPviWVy34eJelb819JZwGgimG6ThNFEwAAAIDSQh6aiSC6loa2r7b9bduHbD9v+6PF8k/Z/ontZ4rbLb1vLgAAAACsr0xP04Kkj0fED2xvlPS07QPFc5+PiD/pXfMAAAAA9Cuu01SIiKOSjhb3T9s+JGl7rxsGAAAAoH9FSM0hmQii1G9p+xpJb5f0/WLRPbaftb3X9ua1bhwAAACAfmW1VnEbJOmiyfa0pK9K+lhEnJJ0v6RfknS9FnuiPrvCentsH7R98Pjx46tvMQAAAIALLrTY01T1NkhSrbVd12LB9EhEfE2SIuLViGhGREvSFyXdsNy6EfFgROyMiJ1bt25dq3YDAAAAwLroek6TbUv6kqRDEfG5tuXbivOdJOn9kp7rTRMBAAAA9COu0/T33iXpg5J+aPuZYtknJN1u+3ot9sy9JOnOHrQPAAAAQB8KWa0huU5TZva870rLnqm1f+2bAwAAAGBQ0NME4KJ108it6WztbdemcnNv3ZLe5tkr6+nsuUvzB+P5Temo5i+JdLY53cxveCKfrY3ns/XRfHZkJP+7ZbVa+b8kLizU8tm5EtnZfLY2lc82J0v8bhMltjs+ns5uqOc+P/ktlvucH2g9XmLLALAoJLV6PKGD7V2S/kxSTdKfR8Rnljzv4vlbJJ2V9K+L68teLelhSVdKakl6MCL+rFjnU5L+jaTzs9R9IiI6dghRNAEAAADoO7Zrku6TdJOkI5Kesr0vIv6mLXazpB3F7Z1anOH7nZIWJH28KKA2Snra9oG2dT8fEX+SbQtFEwAAAIAKrGZvr7d0g6TDEfGiJNl+VNJuSe1F025JD0dESPqe7U1tE9YdlaSIOG37kKTtS9ZNG45BiAAAAADW1PnheVVvki47fz3X4rZnyY/YLunltsdHimWlMravkfR2Sd9vW3yP7Wdt77W9udvvSk8TAAAAgEpW2dP0WkTs7PD8chtfeuJux4ztaS1eb/ZjEXGqWHy/pE8XuU9L+qyk3+vUUHqaAAAAAPSjI5Kubnt8laRXshnbdS0WTI9ExNfOByLi1YhoRkRL0he1OAywI4omAAAAAKVFeLXD87p5StIO29faHpN0m6R9SzL7JH3Ii26U9GZEHC1m1fuSpEMR8bn2FWxva3v4fknPdWsIw/MAAAAAVNLs4ZTjEbFg+x5JT2hxyvG9EfG87buK5x/Q4rVjb5F0WItTjn+4WP1dkj4o6Ye2nymWnZ9a/I9tX6/F4XkvSbqzW1somgAAAACUFpJavZ09T0WRs3/Jsgfa7oeku5dZ77ta/nwnRcQHy7aDogkAAABABe5pT1M/oWgChlDt0i3pbGPbplTu7JX19DbPXp4/wM5tWTpJzsrmN7XS2di4kM6OT82nsxsmSmTHGunsZD2frTn/OmSV+VI81yjxXpgvkZ0dS2fnJvLZ2fH8V2Grnn8dolbmPxK512GksSm/xTfyn3MAQGcUTQAAAABKW7xOU2+H5/ULiiYAAAAAlTSHZDJuiiYAAAAApYVMTxMAAAAAdNIakp6m4fgtAQAAAKAiepoAAAAAlBYhNRmeBwAAAAAr45wmAAAAAFjB4kQQw3G2z3D8lgAAAABQET1NAAAAACppiuF5AAbIe8c/kM76V9+Wzp67fCyXuzTfcT23JdLZ+S2tdNab5tPZjdOz6ezmDefS2U3j+ewlY/nsZK2Rztadf82yGiWGX5xr1tPZU/OT6ezJiXz2jbF8dqY+kc7Oj+Q+D4vyr5mbuWxtLv/zR09fmc6WOX58a+6RdBbAxS3EOU0AAAAA0MHwnNNE0QQAAACgktaQDM8bjtIQAAAAACqipwkAAABAaVzcFgAAAAC64JwmAAAAAFjB4sVt6WkCAAAAgBUxEQQAAAAAgJ4mAAAAAOVxcVsAAAAA6IKJIABccDeN3JrO1nb8Yjp77sqpdHZ2S+5gOL8pvUnNb2qls940n86+5ZKz6ezl0zP57OTpdHbrWH67l4zOprMbanPpbN3NdDarEbV09mxzPJ09NTaRzh4fm05nJ0Y3prPHRvLvxzfTSWm+NZbOjjRyr+/sbP4/J/Uz+c/55Jmr0tkyx6UDrcfTWQADKIZnIojhKA0BAAAAoCJ6mgAAAACUFhqe2fMomgAAAABUMizD8yiaAAAAAJTG7HkAAAAA0MWwFE1MBAEAAAAAHdDTBAAAAKC00PBMOU7RBAAAAKASZs8DAAAAgJXE8JzTRNEEAAAAoDRmzwPQF0amptLZ5qXT6ezs5lo6O/eW3MFw/pJIbzM2LqSzG6dn09nLp2fS2e0b3kxnt03ks5fVT6ezW2r59k6NzKezdedf36xG5L8uzrTG0tkTo/n37WStkc7W3Upny2i28vMnnWrks/NzuWztXP4/J/WZ/Od8rMTxY+SV/HEJAC4WFE0AAAAAKqGnCQAAAABWMEyz53UdD2D7atvftn3I9vO2P1os32L7gO0fFf9u7n1zAQAAAPSLCFe+DZLMIOoFSR+PiF+RdKOku21fJ+leSU9GxA5JTxaPAQAAAOCi0rVoioijEfGD4v5pSYckbZe0W9JDRewhSe/rURsBAAAA9KGWXPk2SEqd02T7Gklvl/R9SVdExFFpsbCyffkK6+yRtEeS3vrWt66qsQAAAAD6QwzRdZrS86Hanpb0VUkfi4hT2fUi4sGI2BkRO7du3VqljQAAAAD60LCc05TqabJd12LB9EhEfK1Y/KrtbUUv0zZJx3rVSAAAAAD9htnzfsa2JX1J0qGI+FzbU/sk3VHcv0PSN9a+eQAAAABwYWV6mt4l6YOSfmj7mWLZJyR9RtJjtj8i6ceSbu1JCwEAAAD0pUEbZldV16IpIr4rrTi9xXvWtjkA2nnDhnS2MV0vkc0f4Bamc7nmdDO9zfGp+XR284Zz6ezlk6fT2W0Tb6azV42dSGe3jubbsKl2Jp2dcv41qzu/L7IaUUtnz8RYOjs1kv+9JtxIZ8toRPr0Xs0u5D9nc/P5uZbmZnOv78KZ/DbLfM7LHD8mShyXAFzcQsMzEUSp2fMAAAAAQJIUizPoDYP8n9cAAAAAoE2vr9Nke5ftF2wftn3vMs/b9heK55+1/Y5i+dW2v237kO3nbX+0bZ0ttg/Y/lHx7+Zu7aBoAgAAANB3bNck3SfpZknXSbrd9nVLYjdL2lHc9ki6v1i+IOnjEfErkm6UdHfbuvdKejIidkh6snjcEUUTAAAAgNJCPb9O0w2SDkfEixExL+lRSbuXZHZLejgWfU/SpvOXRYqIH0hSRJyWdEjS9rZ1HiruPyTpfd0awjlNAAAAACpY9XWaLrN9sO3xgxHxYNvj7ZJebnt8RNI7l2xjucx2SUd/1kr7Gklvl/T9YtEVEXFUkoprzl7eraEUTQAAAAAqWeVEEK9FxM4Ozy9XkS39iR0ztqclfVXSxyLiVPkmLmJ4HgAAAIB+dETS1W2Pr5L0SjZju67FgumRiPhaW+ZV29uKzDZJx7o1hKIJAAAAQCU9PqfpKUk7bF9re0zSbZL2Lcnsk/ShYha9GyW9WQy5s6QvSToUEZ9bZp07ivt3SPpGt4YwPA8AAABAaRHKFj8Vtx8Ltu+R9ISkmqS9EfG87buK5x+QtF/SLZIOSzor6cPF6u+S9EFJP7T9TLHsExGxX9JnJD1m+yOSfizp1m5toWgCAAAAUMkqJ4Loqihy9i9Z9kDb/ZB09zLrfVfLn++kiHhd0nvKtIOiCVhnN410/WPGz9Su++V0trEx/3FuTOUPcAsTyTM8J5rpbW6YmE9nN42fS2e3js2ks5fVT+e3O1ommz/HdNPIbDq70QvpbL0H31+NEif6no5GOlt3/n1TxmzU09lzzXz21PhkPjsxns7OTYylcgsTtfQ2y3zOyxw/JrZ2vQbkz5Q53h1oPZ7OAugfq5wIYmBwThMAAAAAdEBPEwAAAIBKenlOUz+haAIAAABQWig9C97Ao2gCAAAAUMmQnNJE0QQAAACggh5POd5PmAgCAAAAADqgpwkAAABANUMyPo+iCQAAAEAlwzI8j6IJAAAAQCVc3BYAAAAAQE8TsN5GNmxIZ5vT4+nswmS+e7yZ36xaE7k/IdXGm+ltbhhrpLOXjJ3LZ0dn09kttZl0dlPtTD47UqINIwvp7JTzf+Oql8hmNaKV//mR/72k/OvVqNXS2TOtsXT2zdH8Z7LM+3HD2FQ6eyr5+cl+HiWpOZ4/JpQ6fpQ4LpU53gEYPCGG5wEAAADAykISRRMAAAAArGxYzmmiaAIAAABQzZAUTUwEAQAAAAAd0NMEAAAAoAIzEQQAAAAAdDQkw/MomgAAAACUF8Mz5TjnNAEAAABAB/Q0AQAAAKiG4XkAAAAA0MlwDM+jaALWW62WjrbG8tlmPX/QapX45Ec99yek+mgzvc3JeiOfreWzG2pz6ezUyHw+63x2oxdKbDc/QnrDSD2dHVX+fZNVd37/qpXfZ40Sr9fZEvuhzP4t874p834s8z4fTX5+5pOfR6nc57zU8aPEcWmkxPEOwICipwkAAAAAOhiSoomJIAAAAACgA3qaAAAAAJQXkoZkynGKJgAAAACVxJAMz6NoAgAAAFANRRMAAAAAdDAkw/OYCAIAAAAAOqCnCQAAAEAlZngeAAAAAKwgxDlNAAAAALAyD805TRRNwDqzSxxcavls1PKbLZUdyf0JaSSZk6SaW+lsvVS2WSK70KPtpqOqO39a6ajyO61WYrtpJf6SWO71GrT9m29vmfd59vOT/TxKvTsmlDkulTreAUAfo2gCAAAAUM2QDM/r+udI23ttH7P9XNuyT9n+ie1nitstvW0mAAAAgL4Tq7gNkMwYji9L2rXM8s9HxPXFbf/aNgsAAABA3xuSoqnr8LyI+I7ta9ahLQAAAAAGRWhoJoJYzdnC99h+thi+t3mlkO09tg/aPnj8+PFV/DgAAAAAWH9Vi6b7Jf2SpOslHZX02ZWCEfFgROyMiJ1bt26t+OMAAAAA9BtH9dsgqVQ0RcSrEdGMiJakL0q6YW2bBQAAAKDvDck5TZWKJtvb2h6+X9JzK2UBAAAAYJB1nQjC9lckvVvSZbaPSPqkpHfbvl6LNeJLku7sXRMBAAAA9KNBG2ZXVWb2vNuXWfylHrQFAAAAAPpO16IJAAAAAJY1JFOOUzQBAAAAKG8AJ3SoiqIJAAAAQDVDUjSt5uK2AAAAAHDRo2gCAAAAUEmvL25re5ftF2wftn3vMs/b9heK55+1/Y625/baPmb7uSXrfMr2T2w/U9xu6dYOiiYAAAAA1fTw4ra2a5Luk3SzpOsk3W77uiWxmyXtKG57JN3f9tyXJe1aYfOfj4jri9v+bm2haAIAAABQTQ+LJkk3SDocES9GxLykRyXtXpLZLenhWPQ9SZtsb5OkiPiOpBOr+fXOo2gCAAAAUNpqhuYVw/Mus32w7bZnyY/YLunltsdHimVlM8u5pxjOt9f25m5hiiYAAAAAF8JrEbGz7fbgkueXuwjU0j6qTGap+yX9kqTrJR2V9NluDWXKcQAAAADV9PbitkckXd32+CpJr1TI/AMR8er5+7a/KOmb3RpC0QSss4gSFzRo5rNu5jdbKtvKHQxbyZwkNSPfyd0ola2VyOYPf+W2m46qEa10tl5mp/XgmhkLyv/8Mr9XuderH/Zv/v1Y5n2e/fxkP49S744JZY5LpY53AAZTbz/mT0naYftaST+RdJuk312S2afFoXaPSnqnpDcj4minjdre1pZ5v6TnOuUliiYAAAAAFWWnDq8iIhZs3yPpCUk1SXsj4nnbdxXPPyBpv6RbJB2WdFbSh3/WNvsrkt6txXOnjkj6ZER8SdIf275eiyXfS5Lu7NYWiiYAAAAA1fS4Q7mYDnz/kmUPtN0PSXevsO7tKyz/YNl2MBEEAAAAAHRATxMAAACA8qK3w/P6CUUTAAAAgGoomgAAAACggyEpmjinCQAAAAA6oKcJAAAAQCXDck4TPU0AAAAA0AE9TQAAAACqGZKeJoomYL01m+noyHw+W2vkj1ojC05n3chlFxZq6W2ea9Tz2WY+e7Y5ns6eaY3ls5HPno5GOluPhXRWrRLbdf59k9WIVjp7pkT2dOS/hsrshzL7t8z7psz7scz7PPv5yX4eJWmkxNur1PGjxHGpzPEOwAAaoinHGZ4HAAAAAB3Q0wQAAACgmiHpaaJoAgAAAFANRRMAAAAALM8annOaKJoAAAAAVDMkRRMTQQAAAABAB/Q0AQAAAChviKYcp2gCAAAAUA1FEwAAAAB0MCRFE+c0AQAAAEAH9DQB66x19mw6W5uZS2dHz23Ibze/WY3MOpVbmKult3l2vp7OnpqfzGfHJtLZE6PT6ezUyHw6W3cznZVm08mGF0q0oVWiDcmfX+Iviacj/9VyspXfZyebU+nsiWZ+/55ayLehzPuxzPu8mfz8jCY/j1K5z/noufwOLnNcapY43gEYTJzTBAAAAACdUDQBAAAAwApCFE0AAAAA0MmwDM9jIggAAAAA6ICeJgAAAADVDElPE0UTAAAAgEqGZXgeRRMAAACAaiiaAAAAAGAFQzR7HhNBAAAAAEAH9DQBAAAAKM3FbRhQNAHr7EDr8XR21xW/n87Wf2FjPnsm38k8Ops7HC7M1tLbPDs7ls6enJhMZ4+PTaezk7VGOjvhfLaMRq3Ea+b5dLbuZpXmdNSIfFvPRIn925xKZ48v5N/jrzXy2ePz+ffNybn8+7HM+1zJz0/28yhJ9TP5MTP10wvprI6/kY6WOd4BGFBDMjyPogkAAABAJcMyex7nNAEAAABAB12LJtt7bR+z/Vzbsi22D9j+UfHv5t42EwAAAEDfiVXcBkimp+nLknYtWXavpCcjYoekJ4vHAAAAAIYJRdOiiPiOpBNLFu+W9FBx/yFJ71vbZgEAAADoa7F4TlPV2yCpek7TFRFxVJKKfy9fKWh7j+2Dtg8eP3684o8DAAAA0HfoaVobEfFgROyMiJ1bt27t9Y8DAAAAgDVVtWh61fY2SSr+PbZ2TQIAAAAwCBie19k+SXcU9++Q9I21aQ4AAACAgTEkw/O6XtzW9lckvVvSZbaPSPqkpM9Iesz2RyT9WNKtvWwkAAAAgP4zaD1GVXUtmiLi9hWees8atwXAEnH2bDpbn2mUyNbT2dEZp3K1qVp6m3MTY+nsG2OT6ezE6MZ0tu5WOlvGbORf2zOt/OswNTKfzta9kM5mNaLr18XPlPm9TjSn09nXGvn9e3T2LenssXP57b5xNv9+nDuTfx1qM7nPz+hMepOqz+T/J1Pm+FHmuAQAF4v8tyAAAAAAnDeAw+yqomgCAAAAUA1FEwAAAAAsz+KcJgAAAADobEiKpp5f3BYAAAAABhlFEwAAAIBKHFH5ltq+vcv2C7YP2753medt+wvF88/afkfbc3ttH7P93JJ1ttg+YPtHxb+bu7WDogkAAABAeau5sG2iZrJdk3SfpJslXSfpdtvXLYndLGlHcdsj6f62574sadcym75X0pMRsUPSk8XjjiiaAAAAAFTiqH5LuEHS4Yh4MSLmJT0qafeSzG5JD8ei70naZHubJEXEdySdWGa7uyU9VNx/SNL7ujWEogkAAABANavrabrM9sG2254lW98u6eW2x0eKZWUzS10REUclqfj38m6/JrPnAQAAALgQXouInR2e9zLLlvZRZTKrRtEE9LHWmTPpbO31mXR2YtN4OtuYXu5Y9POak7mcJM2O5w89M/WJdPbYSCudLaMR+U75c816Ovvm6IZ0dkNtLp2tu5nOZjWils6ebebfX6cW8vv3+Px0Onvs3MZ8dia/3ZmZfHt9Ov8+HzuV+/yMv5n/f8DEG/n3QZnjR7PEcQnAxa/H12k6IunqtsdXSXqlQmapV21vi4ijxVC+Y90awvA8AAAAANX0cCIISU9J2mH7Wttjkm6TtG9JZp+kDxWz6N0o6c3zQ+862CfpjuL+HZK+0a0hFE0AAAAAylvFJBCZHqqIWJB0j6QnJB2S9FhEPG/7Ltt3FbH9kl6UdFjSFyX9/vn1bX9F0v+S9I9tH7H9keKpz0i6yfaPJN1UPO6I4XkAAAAA+lJE7NdiYdS+7IG2+yHp7hXWvX2F5a9Lek+ZdlA0AQAAAKimt+c09Q2KJgAAAAClWT2fCKJvUDQBAAAAqCaGo2qiaAIAAABQybD0NDF7HgAAAAB0QE8TAAAAgPLy11saeBRNAAAAACpx60K3YH1QNAF97EDr8XT2veMfSGcnpibS2cbUxlRuYaKW3marnh8ZPD8yls6+mU5KzVa+DbML9XT21PhkOnvJ2Ll0drLWSGfrPfgGa0T+9TrXLPF6zedfr5Nz+ewbZ/PZmZn85yFO5t+PYyfzr9nYyVxu4kR+30789Ew623rpSDpb5rgEYAjQ0wQAAAAAK2MiCAAAAAAAPU0AAAAAKghxnSYAAAAA6GRYhudRNAEAAACoZkiKJs5pAgAAAIAO6GkCAAAAUJrF8DwAAAAAWFkEE0EAAAAAQCf0NAEAAABAJxRNAAbJt+YeSWd3bb0znZ3cOJ7KNcdzOUmKWpk5aPLZ+dZYOnuqkd/u3Hz+UHlqIv86bBibSmcn6410tuZWOpvVjPzrda5RT2fPzpfIzub379yZfNan8/t37GT+dRg/4XR28vXcPps8Np/epl/+aTr7RInjBwAMI4omAAAAAJUwPA8AAAAAVhKSWsNRNVE0AQAAAKhmOGomiiYAAAAA1QzL8LwyZ2MDAAAAwNChpwkAAABANVzcFgAAAABWNizD8yiaAAAAAJQXGpqJIDinCQAAAAA6oKcJAAAAQGmWZM5pAnCxar5+Ip2tH31LKrehvqVEC+rppJv5DvGRRi2dnZ/Lb3duNr/duYmxdPbUeDOdHR3NZ0dG1v4LrNVyOruwkH+9mnP5rErsh9pMPjt2Kv+7jZ1MRzX5eiud3fDTRipXP5pvQJnPOQBUlj/UDTSKJgAAAACV0NOUYPslSaclNSUtRMTOtWgUAAAAgD43RBNBrEVP029ExGtrsB0AAAAA6DsMzwMAAABQQQzNxW1XO+V4SPqW7adt71kuYHuP7YO2Dx4/fnyVPw4AAABAv3BUvw2S1fY0vSsiXrF9uaQDtv82Ir7THoiIByU9KEk7d+4csJcHAAAAwIroaeouIl4p/j0m6euSbliLRgEAAADocyG5Vf02SCoXTbanbG88f1/SeyU9t1YNAwAAAIB+sJrheVdI+rrt89v5LxHxF2vSKgAAAAD9b0iG51UumiLiRUm/voZtAQAAADBIhqNmYspxYBgdaD2ezr537PZUbrzEzx9pbEpna3Nj6ezsbH7Ece2c09mFM/lD5cJELZ1tTeS/aebr+WyMrP03mFv518uNfHZ0tkfZmXRU42/mX6+JE/lB+JPH5tPZ+tGTqVzrpZfT2yzzOQeAqjwkPU2rnXIcAAAAAC5q9DQBAAAAqGZIepoomgAAAACUF5IGbOrwqiiaAAAAAJRmxdCc00TRBAAAAKCaISmamAgCAAAAADqgpwkAAABANfQ0AQAAAMAKzk8EUfWWYHuX7RdsH7Z97zLP2/YXiueftf2Obuva/pTtn9h+prjd0q0d9DQBAAAAqKSXE0HYrkm6T9JNko5Iesr2voj4m7bYzZJ2FLd3Srpf0jsT634+Iv4k2xaKJgAdfWv+K6ncTSO3prdZf2NLOjt6+sr8ds9M5bMztXS2Me18diqfbY7ns60SR+vI/2ppbuazIwv5bG0un62fyX8x12fy2Yk38r/cxE/PpLN++afpbPP1E6ncgdbj6W0CwLro7fC8GyQdjogXJcn2o5J2S2ovmnZLejgiQtL3bG+yvU3SNYl10xieBwAAAOBCuMz2wbbbniXPb5f0ctvjI8WyTKbbuvcUw/n22t7craH0NAEAAACoIFbb0/RaROzs8PxyQzKW/sCVMp3WvV/Sp4vHn5b0WUm/16mhFE0AAAAAygv1enjeEUlXtz2+StIryczYSutGxKvnF9r+oqRvdmsIw/MAAAAAVNPb2fOekrTD9rW2xyTdJmnfksw+SR8qZtG7UdKbEXG007rFOU/nvV/Sc90aQk8TAAAAgL4TEQu275H0hKSapL0R8bztu4rnH5C0X9Itkg5LOivpw53WLTb9x7av12Jf2UuS7uzWFoomAAAAAJX0cspxSYqI/VosjNqXPdB2PyTdnV23WP7Bsu2gaAIAAABQTY+Lpn5B0QQAAACgvJDUomgCAAAAgBWsesrxgcHseQAAAADQAT1NANbEgdbjPdnue8c/kM5OnrkqnR27dDqdbUzX89mN+cPqwuRy191bXrOez0YtHU1zM5+tNfJ/dRw9l8/WTy/kszONdLb2+kw623rpSDr7xNwj6SwADKwh6WmiaAIAAABQDUUTAAAAAKyAiSAAAAAAoJOQonWhG7EumAgCAAAAADqgpwkAAABANZzTBAAAAAAr4JwmAAAAAOhiSHqaOKcJAAAAADqgpwkAAABANUPS00TRBAAAAKCCoGgCgH7wrblH0tmbRm5NZ0demUpnJzZsyGe3bk5nm9Pj6WxrrJbOquZ8NquZ/1IcmW+ms7WZuXwbjr+RjsbZs+ls88yZdPZA6/F0FgAueiGpNRzXaaJoAgAAAFDNkPQ0MREEAAAAAHRATxMAAACAaoakp4miCQAAAEAFwcVtAQAAAGBFIUUMx0QQnNMEAAAAAB3Q0wQAAACgGobnAQAAAEAHTAQBAAAAACuI4OK2AAAAANARPU0AMFgOtB6/0E3QTSO3prMjGzbks7VaOms7nc2KMl+KzWY+evZsOtsP+xcAMJwomgAAAABUEkMyPG9VU47b3mX7BduHbd+7Vo0CAAAA0O9icXhe1dsAqdzTZLsm6T5JN0k6Iukp2/si4m/WqnEAAAAA+lSIKccTbpB0OCJelCTbj0raLYmiCQAAABgGwfC8brZLernt8ZFi2T9ge4/tg7YPHj9+fBU/DgAAAADW32qKpuWmZ/q5/rmIeDAidkbEzq1bt67ixwEAAADoFyEpWlH5NkhWMzzviKSr2x5fJemV1TUHAAAAwECIGJrheaspmp6StMP2tZJ+Iuk2Sb+7Jq0CAAAA0PcGrceoqspFU0Qs2L5H0hOSapL2RsTza9YyAAAAAOgDq7q4bUTsl7R/jdoCAAAAYJAMyfA8xzpeWMr2cUl/t24/cLhdJum1C90IpLG/Bg/7bPCwzwYP+2ywsL9W5x9FxEDNmmb7L7S436t6LSJ2rVV7emldiyasH9sHI2LnhW4Hcthfg4d9NnjYZ4OHfTZY2F+4mK1mynEAAAAAuOhRNAEAAABABxRNF68HL3QDUAr7a/CwzwYP+2zwsM8GC/sLFy3OaQIAAACADuhpAgAAAIAOKJoAAAAAoAOKpouI7VttP2+7ZXvnkuf+wPZh2y/Y/u0L1Ub8PNu7iv1y2Pa9F7o9+Hm299o+Zvu5tmVbbB+w/aPi380Xso34e7avtv1t24eKY+JHi+Xssz5le8L2X9n+62Kf/VGxnH3Wx2zXbP9v298sHrO/cNGiaLq4PCfpX0r6TvtC29dJuk3Sr0raJek/2a6tf/OwVLEf7pN0s6TrJN1e7C/0ly9r8bPT7l5JT0bEDklPFo/RHxYkfTwifkXSjZLuLj5X7LP+NSfpNyPi1yVdL2mX7RvFPut3H5V0qO0x+wsXLYqmi0hEHIqIF5Z5arekRyNiLiL+n6TDkm5Y39ZhBTdIOhwRL0bEvKRHtbi/0Eci4juSTixZvFvSQ8X9hyS9bz3bhJVFxNGI+EFx/7QW/1O3XeyzvhWLZoqH9eIWYp/1LdtXSfrnkv68bTH7CxctiqbhsF3Sy22PjxTLcOGxbwbXFRFxVFr8T7qkyy9we7AM29dIeruk74t91teKoV7PSDom6UBEsM/6259K+neSWm3L2F+4aI1e6AagHNv/XdKVyzz1hxHxjZVWW2YZc833B/YN0CO2pyV9VdLHIuKUvdzHDf0iIpqSrre9SdLXbf/aBW4SVmD7dyQdi4inbb/7AjcHWBcUTQMmIn6rwmpHJF3d9vgqSa+sTYuwSuybwfWq7W0RcdT2Ni3+dRx9wnZdiwXTIxHxtWIx+2wARMRJ23+pxfMI2Wf96V2S/oXtWyRNSLrE9n8W+wsXMYbnDYd9km6zPW77Wkk7JP3VBW4TFj0laYfta22PaXHCjn0XuE3I2SfpjuL+HZJW6unFOvNil9KXJB2KiM+1PcU+61O2txY9TLI9Kem3JP2t2Gd9KSL+ICKuiohrtPi99T8i4l+J/YWLmCMYCXSxsP1+Sf9R0lZJJyU9ExG/XTz3h5J+T4uzSn0sIv7bhWon/qHiL3V/KqkmaW9E/IcL2yIsZfsrkt4t6TJJr0r6pKT/KukxSW+V9GNJt0bE0skicAHY/meS/qekH+rvz7f4hBbPa2Kf9SHb/0SLEwfUtPgH3cci4t/bvlTss75WDM/7txHxO+wvXMwomgAAAACgA4bnAQAAAEAHFE0AAAAA0AFFEwAAAAB0QNEEAAAAAB1QNAEAAABABxRNAAAAANABRRMAAAAAdPD/AUle7uPMpBiuAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA00AAAFoCAYAAACL/RCAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqe0lEQVR4nO3df4wc533f8c/n9vZ+8I4ySekkMZRUKTEThAka2iVkAS4KJ45sSg1Ku4AAqa6tOkZpIxJgAy4KxfkjTo0CRhDbiQtVghwRllHVggXbNWGwkVnVgWsgdkS5iiyFUcWqikWLFilRFHkk725v99s/bhivz3d735m7JXdv3y9gwN3Zz849t7M7x+8+zzzjiBAAAAAAYGlDl7oBAAAAANDLKJoAAAAAoAOKJgAAAADogKIJAAAAADqgaAIAAACADiiaAAAAAKADiiYAAAAAPcn2btvP2T5i+54lHrftzxePP237rcX6Mdt/bftvbD9r+4/anrPF9kHbzxf/bl6pHRRNAAAAAHqO7ZqkeyXdImmHpDts71gUu0XS9mLZK+m+Yv2spN+KiN+QtFPSbts3FY/dI+nxiNgu6fHifkcUTQAAAAB60Y2SjkTECxExJ+kRSXsWZfZI+lIs+J6kTba3Fveni0y9WKLtOQ8Vtx+S9J6VGjK8ut+jnCuuuCKuv/76i/kjAeCi+j9PvpDOeqhL31u5C9uMlSOVNttqpbO//E9+sTuNAIAe8OSTT74aEVOXuh1lvPs3J+K1k83Kz3/y6dlnJc20rXogIh5ou79N0ktt949KetuizSyV2SbpWNFT9aSkN0u6NyK+X2SuiohjkhQRx2xfuVJbL2rRdP311+vQoUMX80cCwEV189Bt6ezQ+Ib8hmu1dNRe+6opokTV1Mz/AW2dO5fOHjz0aL4NANBnbP/9pW5DWa+ebOr7j11T+fn1rf93JiJ2dYgs9Qdt8R+kZTMR0ZS00/YmSV+3/esR8UyVtjI8DwAAAEAvOirp2rb710h6uWwmIk5J+ktJu4tVr9jeKknFv8dXaghFEwAAAIAKQs1oVV4SnpC03fYNtkck3S5p/6LMfkkfKGbRu0nSG8WQu6mih0m2xyX9tqS/a3vOncXtOyV9Y6WGXNTheQAAAADWh5DU6tZJr5IiYt723ZIek1STtC8inrX9keLx+yUdkHSrpCOSzkn6YPH0rZIeKs5rGpL0lYj4ZvHYpyV9xfaHJP1I0opj6ymaAAAAAFTSUn5Cnyoi4oAWCqP2dfe33Q5Jdy3xvKclvWWZbb4m6Z1l2sHwPAAAAADogJ4mAAAAAKWFQs0ys6v2MYomAAAAAJV085ymXkLRBAAAAKC0kNSkaAKA/lLqwrITE+msN+QvQlvb8cvpbHNyNJ1tjeQvbqva2l/cVs38H8WhufzFbWvTs+ns7qt+L52NEhfNbZ09m84ebHGBXQBoNyg9TUwEAQAAAAAd0NMEAAAAoLSQmAgCAAAAADrp7lWaegdFEwAAAIDSQsFEEAAAAACwrCg1T1BfYyIIAAAAAOiAniYAAAAApYU4pwkAAAAAOrCa6sK1AXsQRRMAAACA0kJSi3OaAAAAAAD0NAHoae8afV86W9v+i+ls8/LJdLYxWc9nN+YPq/Pj+SENzXo+G7V0NM3NfLbWyH/tOHx+Qzpb/4WN+ex0I52tvTadzpZ5P35r9uF0FgD6FcPzAAAAAGAZIYomAAAAAOioFRRNAAAAALCkQeppYiIIAAAAAOiAniYAAAAApYWs5oD0wVA0AQAAAKiEc5oAAAAAYBmDdE4TRRMAAACACqxmDMbwvMH4LQEAAACgInqaAAAAAJQWkloD0gdD0QRgTdw8dFs6W7t8SzrrX3tzOnv+6ol0dmZzLZ1tTObHazcm8tnmaDqqVomjdeR/tTQ389mh+fxrUJvNb7d+Nv+HuT5dT2fHNuV3xNjEWDq7e+rD6WzztZOp3MHWo+ltAsDFwDlNAAAAALCMCM5pAgAAAACIniYAAAAAFbUYngcAAAAAS1u4TtNgDFyjaAIAAABQweCc00TRBAAAAKC0QZpyfDB+SwAAAACoiJ4mAAAAAJU0g4kgAAAAAGBJITMRBAAAAAB00mIiCACQ3jVyRypXe/MN6W02tm5KZ89fOZLOzmzJH7hn35QfTjA/mY5qfizS2VaJbNRLZIfy2Sy38q+XG/ns0Ew+O1wmO53PNiZLZCc2prPjG0fT2fqxN6Vy2c+jJH1r7svpLABUMUhTjg/GbwkAAAAAFa1YNNm+1va3bR+2/aztjxbrP2n7x7afKpZbu99cAAAAAL0gZDWj+tJPMsPz5iV9PCJ+YHujpCdtHywe+1xE/En3mgcAAACgVw3KdZpWLJoi4pikY8XtM7YPS9rW7YYBAAAA6F0RUnNAJoIo9Vvavl7SWyR9v1h1t+2nbe+zvXmtGwcAAAAAl1q6aLI9Kemrkj4WEacl3SfplyTt1EJP1GeWed5e24dsHzpx4sTqWwwAAACgB1itVSz9JFU02a5roWB6OCK+JkkR8UpENCOiJekLkm5c6rkR8UBE7IqIXVNTU2vVbgAAAACXUGhheF7VpZ+seE6TbUt6UNLhiPhs2/qtxflOkvReSc90p4kAAAAAetGgXKcpM3ve2yW9X9IPbT9VrPuEpDts79RCkfmipA93oX0AAAAAelDIavXZ1OFVZWbP+6605KDDA2vfHAAAAADoLZmeJgDrzM1Dt6WztTffkMrNXrclvc1zV9fT2fOX57v95zalo5q7LNLZ5mQzv+GxfLY2ms/Wh/PZoaH875bVauW/SZyfr+WzsyWyM/lsbSKfbY6X+N3GSmx3dDSd3VDPfX7yWyz3OT/YerTElgHgp7o9PM/2bkl/Jqkm6c8j4tOLHnfx+K2Szkn6N8X1Za+V9CVJV0tqSXogIv6seM4nJf1bSRdmqftERHTsEKJoAgAAAFBaSGp1cUIH2zVJ90q6WdJRSU/Y3h8Rf9sWu0XS9mJ5mxZm+H6bpHlJHy8KqI2SnrR9sO25n4uIP8m2haIJAAAAQAVWs7tTh98o6UhEvCBJth+RtEdSe9G0R9KXIiIkfc/2prYJ645JUkScsX1Y0rZFz00bjOkuAAAAAKypCz1NVRdJV1y4nmux7F30I7ZJeqnt/tFiXamM7eslvUXS99tW3237adv7bG9e6XelaAIAAABwKbx64XquxfLAoseX6sZafOJux4ztSS1cb/ZjEXG6WH2fpF+StFMLvVGfWamhDM8DAAAAUEmXh+cdlXRt2/1rJL2czdiua6FgejgivnYhEBGvXLht+wuSvrlSQ+hpAgAAAFBahFc7PG8lT0jabvsG2yOSbpe0f1Fmv6QPeMFNkt6IiGPFrHoPSjocEZ9tf4LtrW133yvpmZUaQk8TAAAAgEqaXZw9LyLmbd8t6TEtTDm+LyKetf2R4vH7tXDt2FslHdHClOMfLJ7+dknvl/RD208V6y5MLf7HtndqYRjfi5I+vFJbKJoAAAAA9KSiyDmwaN39bbdD0l1LPO+7Wvp8J0XE+8u2g6IJAAAAQGkhqdXdc5p6BkUTMIBql29JZxtbN6Vy566up7d57sp8V/7slsWT5CxvblMrnY2N8+ns6MRcOrthrER2pJHOjtfz2Zrzr0NWmeEX5xsl3gtzJbIzI+ns7Fg+OzOa/1PYqudfh6iVGbKSex2GGpvyW3w9/zkHgGrc1eF5vYSiCQAAAEBpC9dpoqcJAAAAAJbVHJDJuAfjtwQAAACAiuhpAgAAAFBayAzPAwAAAIBOWgMycI2iCQAAAEBpEVKTniYAAAAAWN6gDM8bjP40AAAAAKiIniYAAAAApS1MBDEYfTAUTQAAAAAqaWowhudRNAHrxLtG35fO+tfenM6ev3Ikl7s8/03T7JZIZ+e2tNJZb5pLZzdOzqSzmzecT2c3jeazl43ks+O1Rjpbd/41y2qU+CbxfLOezp6eG09nT43ls6+P5LPT9bF0dm4o93lYkH/N3Mxla7P5nz985up0tszx41uzD6ezANa3EOc0AQAAAABETxMAAACASjinCQAAAAA6anFOEwAAAAAsjYvbAgAAAMAKBmV43mD8lgAAAABQET1NAAAAAEpbuLgtw/MAAAAAYFlMBAEAAAAAy+DitgAAAAAASfQ0AT3t5qHb0tna9l9MZ89fPZHOzmzJfbcytym9Sc1taqWz3jSXzr7psnPp7JWT0/ns+Jl0dmokv93LhmfS2Q212XS27mY6m9WIWjp7rjmazp4eGUtnT4xMprNjwxvT2eND+ffjG+mkNNcaSWeHGrnXd2Ym/11n/Wz+cz5+9pp0tsxx6WDr0XQWQH8alNnzKJoAAAAAlBdMBAEAAAAAywoxEQQAAAAAdDQoPU2DMQgRAAAAACqipwkAAABAaYM05ThFEwAAAIBKKJoAAAAAYBkhZs8DAAAAgI4GZfY8JoIAAAAAgA7oaQIAAABQXnBOE4AeMDQxkc42L59MZ2c219LZ2TflDoZzl0V6m7FxPp3dODmTzl45OZ3ObtvwRjq7dSyfvaJ+Jp3dUsu3d2JoLp2tO//6ZjUi/+fibGsknT05nH/fjtca6WzdrXS2jGYrP0DjdCOfnZvNZWvn8/85qU/nP+cjJY4fQy/nj0sA1jdmzwMAAACAFQxK0cQ5TQAAAADQwYpFk+1rbX/b9mHbz9r+aLF+i+2Dtp8v/t3c/eYCAAAA6AUXphyvuvSTTE/TvKSPR8SvSrpJ0l22d0i6R9LjEbFd0uPFfQAAAAADIsKVl36yYtEUEcci4gfF7TOSDkvaJmmPpIeK2EOS3tOlNgIAAADoQS258tJPSk0EYft6SW+R9H1JV0XEMWmhsLJ95TLP2StpryRdd911q2osAAAAgN4QAzTleHoiCNuTkr4q6WMRcTr7vIh4ICJ2RcSuqampKm0EAAAAgEsm1dNku66FgunhiPhasfoV21uLXqatko53q5EAAAAAek+/nZtUVWb2PEt6UNLhiPhs20P7Jd1Z3L5T0jfWvnkAAAAAetPgzJ6X6Wl6u6T3S/qh7aeKdZ+Q9GlJX7H9IUk/knRbV1oIAAAAoCcNSk/TikVTRHxXWnZ6i3eubXMAtPOGDelsY7JeIps/wM1P5nLNyWZ6m6MTc+ns5g3n09krx8+ks1vH3khnrxk5mc5ODefbsKl2Np2dcP41qzu/L7IaUUtnz8ZIOjsxlP+9xtxIZ8toRP467zPz+c/Z7Fx+rqXZmdzrO382v80yn/Myx4+xEsclAOtbiIkgAAAAAACiaAIAAABQRSxMO151ybC92/Zzto/YvmeJx23788XjT9t+a7H+Wtvftn3Y9rO2P9r2nC22D9p+vvh380rtoGgCAAAAUEk3L25ruybpXkm3SNoh6Q7bOxbFbpG0vVj2SrqvWD8v6eMR8auSbpJ0V9tz75H0eERsl/R4cb8jiiYAAAAApYUWJoKouiTcKOlIRLwQEXOSHpG0Z1Fmj6QvxYLvSdp04bJIEfEDSYqIM5IOS9rW9pyHitsPSXrPSg2haAIAAABwKVxh+1DbsnfR49skvdR2/6h+WvikM7avl/QWSd8vVl0VEcckqfj3ypUamp+GBwAAAAD+waqvt/RqROzq+AN+3uKzoTpmbE9K+qqkj0XE6fJNXEBPEwAAAIBKujwRxFFJ17bdv0bSy9mM7boWCqaHI+JrbZlXbG8tMlslHV+pIRRNAAAAACrp8jlNT0jabvsG2yOSbpe0f1Fmv6QPFLPo3STpjYg4ZtuSHpR0OCI+u8Rz7ixu3ynpGys1hOF5AAAAAEpb6DHq3sVtI2Le9t2SHpNUk7QvIp61/ZHi8fslHZB0q6Qjks5J+mDx9LdLer+kH9p+qlj3iYg4IOnTkr5i+0OSfiTptpXaQtEEAAAAoCcVRc6BRevub7sdku5a4nnf1dLnOykiXpP0zjLtoGgCLrKbh1b8MuMf1Hb8cjrb2Jj/ODcm8t8KzY8lrz431kxvc8PYXDq7afR8Ojs1Mp3OXlE/k9/ucJls/hzTTUMz6exGz6ez9S586ddIvg0k6Uw00tm68++bMmains6eb+azp0fH89mx0XR2dmwklZsfq6W3WeZzXub4MTa14jUg/0GZ493B1qPpLIDescqJIPoGRRMAAACASpITOvQ9iiYAAAAAlXTznKZeQtEEAAAAoLRQeha8vseU4wAAAADQAT1NAAAAACoZkFOaKJoAAAAAVNDl6zT1EoomAAAAANUMSFcT5zQBAAAAQAf0NAEAAACohOF5AAAAANABF7cF0BVDGzaks83J0XR2fjz/TU8zv1m1xnJHw9poM73NDSONdPaykfP57PBMOrulNp3ObqqdzWeHSrRhaD6dnXB+NHW9RDarEa38z4/87yXlX69GrZbOnm2NpLNvDOc/k2XejxtGJtLZ08nPT/bzKEnN0fwxodTxo8RxqczxDkD/CdHTBAAAAADLC0kDUjQxEQQAAAAAdEBPEwAAAIBKOKcJAAAAADqhaAIAAACA5ZiJIAAAAACgowHpaWIiCAAAAADogJ4mAAAAAOUF12kCAAAAgM4GZHgeRRMAAACAiuhpAtANtVo62hrJZ5v1/EGrVeKTH/XcV0j14WZ6m+P1Rj5by2c31GbT2YmhuXzW+exGz5fYbv600g1D9XR2WPn3TVbd+f2rVn6fNUq8XudK7Icy+7fM+6bM+7HM+3w4+fmZS34epXKf81LHjxLHpaESxzsA6GUUTQAAAACqYXgeAAAAAHRA0QQAAAAAywhJzJ4HAAAAAMuLAelp4uK2AAAAANABPU0AAAAAqhmQniaKJgAAAADVcE4TAAAAACzP9DQBAAAAwDJCAzM8j4kgAAAAAKADepqAi8wuMfa3ls9GLb/ZUtmh3FdIQ8mcJNXcSmfrpbLNEtn5Lm03HVXd+e+thpXfabUS200r8U1iuder3/Zvvr1l3ufZz0/28yh175hQ5rhU6ngHoA+Zc5oAAAAAoCOG5y2wvc/2cdvPtK37pO0f236qWG7tbjMBAAAA9JxYxdJHMmM4vihp9xLrPxcRO4vlwNo2CwAAAAB6w4pFU0R8R9LJi9AWAAAAAP2EnqYV3W376WL43ublQrb32j5k+9CJEydW8eMAAAAA9IzQwkQQVZc+UrVouk/SL0naKemYpM8sF4yIByJiV0TsmpqaqvjjAAAAAPQaR/Wln1QqmiLilYhoRkRL0hck3bi2zQIAAADQ8xietzzbW9vuvlfSM8tlAQAAAKCfrXidJttflvQOSVfYPirpDyW9w/ZOLdSIL0r6cPeaCAAAAACXzopFU0TcscTqB7vQFgAAAAB9pN/OTapqxaIJAAAAAJbUZ7PgVUXRBAAAAKC8PpzQoarVXKcJAAAAANY9epoAAAAAVENPEwAAAAAsr9sXt7W92/Zzto/YvmeJx23788XjT9t+a9tj+2wft/3Moud80vaPbT9VLLeu1A6KJgAAAADVdPHitrZrku6VdIukHZLusL1jUewWSduLZa+k+9oe+6Kk3cts/nMRsbNYDqzUFoomAAAAAL3oRklHIuKFiJiT9IikPYsyeyR9KRZ8T9Im21slKSK+I+nkWjSEogkAAABANavrabrC9qG2Ze+irW+T9FLb/aPFurKZpdxdDOfbZ3vzSmEmggAAAABQWplzk5bxakTs6vQjlli3+CdmMovdJ+lTRe5Tkj4j6Xc7PYGiCQAAAEA13b247VFJ17bdv0bSyxUyPyMiXrlw2/YXJH1zpYZQNAEXWUSJr2Sa+ayb+c2WyrZyB8NWMidJzciPDG6UytZKZPOHv3LbTUfViFY6Wy+z07ow/eu88j+/zO9V7vXqhf2bfz+WeZ9nPz/Zz6PUvWNCmeNSqeMdgP7U3Y/5E5K2275B0o8l3S7pXy3K7NfCULtHJL1N0hsRcazTRm1vbcu8V9IznfISRRMAAACAHhQR87bvlvSYpJqkfRHxrO2PFI/fL+mApFslHZF0TtIHLzzf9pclvUML504dlfSHEfGgpD+2vVMLJd+Lkj68UlsomgAAAABUsspzmlZUTAd+YNG6+9tuh6S7lnnuHcusf3/ZdlA0AQAAAKhmQEbhUjQBAAAAKG/1s+f1Da7TBAAAAAAd0NMEAAAAoJoB6WmiaAIAAABQDUUTAAAAACyPc5oAAAAAABRNAAAAANAJw/OAi63ZTEeH5vLZWiPfPz4073TWjVx2fr6W3ub5Rj2fbeaz55qj6ezZ1kg+G/nsmWiks/WYT2fVKrFd5983WY1opbNnS2TPRP7PUJn9UGb/lnnflHk/lnmfZz8/2c+jJA2VeHuVOn6UOC6VOd4B6FMDMjyPogkAAABAeQN0nSaKJgAAAADVUDQBAAAAQAcDUjQxEQQAAAAAdEBPEwAAAIDSLM5pAgAAAIDOKJoAAAAAYBkDNHse5zQBAAAAQAf0NAEAAACoZkB6miiaAAAAAFRD0QSgG1rnzqWztenZdHb4/Ib8dvOb1dCMU7n52Vp6m+fm6uns6bnxfHZkLJ09OTyZzk4MzaWzdTfTWWkmnWx4vkQbWiXakPz5Jf4onon8n5ZTrfw+O9WcSGdPNvP79/R8vg1l3o9l3ufN5OdnOPl5lMp9zofP53dwmeNSs8TxDkB/GpRzmiiaAAAAAFQzIEUTE0EAAAAAQAf0NAEAAAAoLzQwPU0UTQAAAAAq4ZwmAAAAAOiEogkAAAAAljcoPU1MBAEAAAAAHdDTBAAAAKCaAelpomgCAAAAUB6z5wEAAADA8lwsg4CiCbjIDrYeTWd3X/V76Wz9Fzbms2fzpzMOz+QOh/MztfQ2z82MpLOnxsbT2RMjk+nseK2Rzo45ny2jUSvxmnkuna27WaU5HTUi39azUWL/NifS2RPz+ff4q4189sRc/n1zajb/fizzPlfy85P9PEpS/Wz+69/6mfl0VideT0fLHO8AoJdRNAEAAACohuF5AAAAALA8phwv2N5n+7jtZ9rWbbF90Pbzxb+bu9tMAAAAAD0nVrH0kcyJDV+UtHvRunskPR4R2yU9XtwHAAAAMEgomhZExHcknVy0eo+kh4rbD0l6z9o2CwAAAAB6Q9Vzmq6KiGOSFBHHbF+5XND2Xkl7Jem6666r+OMAAAAA9JTgnKY1ExEPRMSuiNg1NTXV7R8HAAAA4GJheF5Hr9jeKknFv8fXrkkAAAAA+oGj+tJPqhZN+yXdWdy+U9I31qY5AAAAAPoGPU0LbH9Z0l9J+hXbR21/SNKnJd1s+3lJNxf3AQAAAGDdWXEiiIi4Y5mH3rnGbQGwSJw7l87WpxslsvV0dnjaqVxtopbe5uzYSDr7+sh4Ojs2vDGdrbuVzpYxE/nX9mwr/zpMDM2ls3XPp7NZjcjPG1Tm9zrZnExnX23k9++xmTels8fP57f7+rn8+3H2bP51qE3nPj/D0+lNqj6d/xq3zPGjzHEJwPrXb8Psqqo6ex4AAACAQdaHw+yqomgCAAAAUM2AFE1dn3IcAAAAAPoZPU0AAAAASrM4pwkAAAAAOhuQoonheQAAAAAqcUTlJbV9e7ft52wfsX3PEo/b9ueLx5+2/da2x/bZPm77mUXP2WL7oO3ni383r9QOiiYAAAAA5a3mwraJmsl2TdK9km6RtEPSHbZ3LIrdIml7seyVdF/bY1+UtHuJTd8j6fGI2C7p8eJ+RxRNAAAAAHrRjZKORMQLETEn6RFJexZl9kj6Uiz4nqRNtrdKUkR8R9LJJba7R9JDxe2HJL1npYZQNAEAAACoxFF9kXSF7UNty95Fm98m6aW2+0eLdWUzi10VEcckqfj3ypV+TyaCAAAAAFDN6iaCeDUidnV43ImfmMmsGkUT0MNaZ8+ms7XXptPZsU2j6Wxjcqlj0c9rjudykjQzmj/0TNfH0tnjQ610toxG5Dvlzzfr6ewbwxvS2Q212XS27mY6m9WIWjp7rpl/f52ez+/fE3OT6ezx8xvz2en8dqen8+31mfz7fOR07vMz+kb+/wFjr+ffB2WOH80SxyUA61+Xpxw/KunatvvXSHq5QmaxV2xvjYhjxVC+4ys1hOF5AAAAAKrp4kQQkp6QtN32DbZHJN0uaf+izH5JHyhm0btJ0hsXht51sF/SncXtOyV9Y6WGUDQBAAAA6DkRMS/pbkmPSTos6SsR8aztj9j+SBE7IOkFSUckfUHS7114vu0vS/orSb9i+6jtDxUPfVrSzbafl3Rzcb8jhucBAAAAKC+6PjxPEXFAC4VR+7r7226HpLuWee4dy6x/TdI7y7SDogkAAABANV0umnoFRRMAAACA0qzu9zT1Cs5pAgAAAIAO6GkCAAAAUE0MRlcTRRMAAACASgZleB5FEwAAAIDy8tdb6nsUTQAAAAAqcetSt+DioGgCetjB1qPp7LtG35fOjk2MpbONiY2p3PxYLb3NVj0/B83c0Eg6+0Y6KTVb+TbMzNfT2dOj4+nsZSPn09nxWiOdrXfhL1gj8q/X+WaJ12su/3qdms1nXz+Xz05P5z8PcSr/fhw5lX/NRk7lcmMn8/t27Cdn09nWi0fT2TLHJQBYLyiaAAAAAFTD8DwAAAAAWB4TQQAAAADAckJMOQ4AAAAAnQxKT1P+LFUAAAAAGED0NAEAAACoZkB6miiaAAAAAJRmDc7wPIomAAAAAOVFDMxEEJzTBAAAAAAd0NMEAAAAoBKG5wHoK9+afTid3T314XR2fONoKtcczeUkKWplOrnz2bnWSDp7upHf7uxc/lB5eiz/OmwYmUhnx+uNdLbmVjqb1Yz863W+UU9nz82VyM7k9+/s2XzWZ/L7d+RU/nUYPel0dvy13D4bPz6X3qZf+kk6+1iJ4wcA/AyKJgAAAABYHj1NAAAAALCckNQajKqJiSAAAAAAoAN6mgAAAABUMxgdTRRNAAAAAKrhnCYAAAAA6GRALm5L0QQAAACgkkHpaWIiCAAAAADogJ4mAAAAAOWFmAgCAAAAAJZjSeacJgDrVfO1k+ls/dibUrkN9S0lWlBPJ93MjyIeatTS2bnZ/HZnZ/LbnR0bSWdPjzbT2eHhfHZoaO3/gLVaTmfn5/OvV3M2n1WJ/VCbzmdHTud/t5FT6ajGX2ulsxt+0kjl6sfyDSjzOQeAyvKHur7GOU0AAAAA0MGqeppsvyjpjKSmpPmI2LUWjQIAAADQ+xiel/ebEfHqGmwHAAAAQL9gIggAAAAA6CQG5uK2qz2nKSR9y/aTtvcuFbC91/Yh24dOnDixyh8HAAAAoFc4qi/9ZLVF09sj4q2SbpF0l+1/tjgQEQ9ExK6I2DU1NbXKHwcAAAAAF9eqiqaIeLn497ikr0u6cS0aBQAAAKAPRFRf+kjlosn2hO2NF25LepekZ9aqYQAAAAB6WEhuVV/6yWomgrhK0tdtX9jOf42Iv1iTVgEAAADofX3WY1RV5aIpIl6Q9Btr2BYAAAAA6DlMOQ4MoIOtR9PZd43ckcqNlvj5Q41N6WxtdiSdnZnJjziunXc6O382f6icH6uls62x/Ldzc/V8NobW/ls/t/Kvlxv57PBMl7LT6ahG38i/XmMn8+NJxo/PpbP1Y6dSudaLL6W3WeZzDgCVDUZHE0UTAAAAgGrM8DwAAAAA6ICiCQAAAACWEZL6bBa8qlZ7cVsAAAAAWNfoaQIAAABQmhWc0wQAAAAAHVE0AQAAAEAHA1I0cU4TAAAAgPIuTARRdUmwvdv2c7aP2L5nicdt+/PF40/bfutKz7X9Sds/tv1Usdy6UjsomgAAAAD0HNs1SfdKukXSDkl32N6xKHaLpO3FslfSfcnnfi4idhbLgZXawvA8AB19a+7LqdzNQ7elt1l/fUs6O3zm6vx2z07ks9O1dLYx6Xx2Ip9tjuazrRJH68j/amlu5rND8/lsbTafrZ/NDwGpT+ezY6/nf7mxn5xNZ/3ST9LZ5msnU7mDrUfT2wSAi6HLE0HcKOlIRLwgSbYfkbRH0t+2ZfZI+lJEhKTv2d5ke6uk6xPPTaOnCQAAAEA1EdUX6Qrbh9qWvYu2vk3SS233jxbrMpmVnnt3MZxvn+3NK/2a9DQBAAAAqCBWOxHEqxGxq8PjSw3JWPwDl8t0eu59kj5V3P+UpM9I+t1ODaVoAgAAANCLjkq6tu3+NZJeTmZGlntuRLxyYaXtL0j65koNYXgeAAAAgPJCqx2et5InJG23fYPtEUm3S9q/KLNf0geKWfRukvRGRBzr9NzinKcL3ivpmZUaQk8TAAAAgGqSU4dXERHztu+W9JikmqR9EfGs7Y8Uj98v6YCkWyUdkXRO0gc7PbfY9B/b3qmFsu9FSR9eqS0UTQAAAAAq6fLseSqmAz+waN39bbdD0l3Z5xbr31+2HRRNAAAAAKrpctHUKzinCQAAAAA6oKcJAAAAQHkhqTUYPU0UTQAAAAAqWPV1mvoGRROANXGw9WhXtvuu0fels+Nnr0lnRy6fTGcbk/V8dmP+sDo/vtR195bWrOezUUtH09zMZ2uN/B/Q4fP5bP3MfD473Uhna69Np7OtF4+ms4/NPpzOAkDfomgCAAAAgA4GpGhiIggAAAAA6ICeJgAAAADlMREEAAAAAHQSUrQudSMuCoomAAAAANVwThMAAAAAgJ4mAAAAAOVxThMAAAAArGBAhudRNAEAAACohqIJAAAAAJYTFE0A0Au+NftwOnvz0G3p7NDLE+ns2IYN+ezU5nS2OTmazrZGaumsas5ns5r5P4pDc810tjY9m2/DidfT0Th3Lp1tnj2bzh5sPZrOAgDWD4omAAAAAOWFpBbXaQIAAACA5TE8DwAAAAA6oGgCAAAAgOXEwFynaehSNwAAAAAAehk9TQAAAADKCymCiSAAAAAAYHkDMjyPogkAAABANQMyEQTnNAEAAABAB/Q0AQAAACgvgovbAkC/Odh69FI3QTcP3ZbODm3YkM/Waums7XQ2K8oMv2g289Fz59LZXti/AIBFBmR4HkUTAAAAgEpiQHqaVnVOk+3dtp+zfcT2PWvVKAAAAAC9LhZ6mqoufaRy0WS7JuleSbdI2iHpDts71qphAAAAANALVjM870ZJRyLiBUmy/YikPZL+di0aBgAAAKCHhQbmOk2rGZ63TdJLbfePFut+hu29tg/ZPnTixIlV/DgAAAAAPSVa1Zc+spqiaanpmX6u1IyIByJiV0TsmpqaWsWPAwAAANArQlK0ovLST1YzPO+opGvb7l8j6eXVNQcAAABAX4joux6jqlbT0/SEpO22b7A9Iul2SfvXplkAAAAA0Bsq9zRFxLztuyU9JqkmaV9EPLtmLQMAAADQ0/ptmF1Vq7q4bUQckHRgjdoCAAAAoJ8MyPA8x0W8sJTtE5L+/qL9wMF2haRXL3UjkMb+6j/ss/7DPus/7LP+wv5anX8UEX01a5rtv9DCfq/q1YjYvVbt6aaLWjTh4rF9KCJ2Xep2IIf91X/YZ/2HfdZ/2Gf9hf2F9Ww1E0EAAAAAwLpH0QQAAAAAHVA0rV8PXOoGoBT2V/9hn/Uf9ln/YZ/1F/YX1i3OaQIAAACADuhpAgAAAIAOKJoAAAAAoAOKpnXE9m22n7Xdsr1r0WO/b/uI7edsv/tStRE/z/buYr8csX3PpW4Pfp7tfbaP236mbd0W2wdtP1/8u/lSthE/Zfta29+2fbg4Jn60WM8+61G2x2z/te2/KfbZHxXr2Wc9zHbN9v+2/c3iPvsL6xZF0/ryjKR/Kek77Stt75B0u6Rfk7Rb0n+2Xbv4zcNixX64V9ItknZIuqPYX+gtX9TCZ6fdPZIej4jtkh4v7qM3zEv6eET8qqSbJN1VfK7YZ71rVtJvRcRvSNopabftm8Q+63UflXS47T77C+sWRdM6EhGHI+K5JR7aI+mRiJiNiP8n6YikGy9u67CMGyUdiYgXImJO0iNa2F/oIRHxHUknF63eI+mh4vZDkt5zMduE5UXEsYj4QXH7jBb+U7dN7LOeFQumi7v1Ygmxz3qW7Wsk/XNJf962mv2FdYuiaTBsk/RS2/2jxTpceuyb/nVVRByTFv6TLunKS9weLMH29ZLeIun7Yp/1tGKo11OSjks6GBHss972p5L+vaRW2zr2F9at4UvdAJRj+39IunqJh/4gIr6x3NOWWMdc872BfQN0ie1JSV+V9LGIOG0v9XFDr4iIpqSdtjdJ+rrtX7/ETcIybP+OpOMR8aTtd1zi5gAXBUVTn4mI367wtKOSrm27f42kl9emRVgl9k3/esX21og4ZnurFr4dR4+wXddCwfRwRHytWM0+6wMRccr2X2rhPEL2WW96u6R/YftWSWOSLrP9X8T+wjrG8LzBsF/S7bZHbd8gabukv77EbcKCJyRtt32D7REtTNix/xK3CTn7Jd1Z3L5T0nI9vbjIvNCl9KCkwxHx2baH2Gc9yvZU0cMk2+OSflvS34l91pMi4vcj4pqIuF4Lf7f+Z0T8a7G/sI45gpFA64Xt90r6T5KmJJ2S9FREvLt47A8k/a4WZpX6WET890vVTvys4pu6P5VUk7QvIv7jpW0RFrP9ZUnvkHSFpFck/aGk/ybpK5Kuk/QjSbdFxOLJInAJ2P6nkv6XpB/qp+dbfEIL5zWxz3qQ7X+shYkDalr4QvcrEfEfbF8u9llPK4bn/buI+B32F9YziiYAAAAA6IDheQAAAADQAUUTAAAAAHRA0QQAAAAAHVA0AQAAAEAHFE0AAAAA0AFFEwAAAAB0QNEEAAAAAB38f/SChoDhQ3vWAAAAAElFTkSuQmCC", "text/plain": [ "<Figure size 1152x432 with 2 Axes>" ] @@ -316,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -327,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -337,7 +337,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -352,7 +352,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "<Figure size 1152x432 with 2 Axes>" ] @@ -371,7 +371,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -387,7 +387,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -415,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -425,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -440,7 +440,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "<Figure size 1152x432 with 2 Axes>" ] @@ -459,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -484,7 +484,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.2" } }, "nbformat": 4, diff --git a/lbmpy_tests/shan_chen/test_shan_chen_two_component.py b/lbmpy_tests/shan_chen/test_shan_chen_two_component.py new file mode 100644 index 0000000000000000000000000000000000000000..451527195ff7287c252c92b170e56f248381d4ee --- /dev/null +++ b/lbmpy_tests/shan_chen/test_shan_chen_two_component.py @@ -0,0 +1,175 @@ +""" +Test Shan-Chen two-component implementation against reference implementation +""" + +import lbmpy + +import pystencils as ps +import sympy as sp +import numpy as np + + +def test_shan_chen_two_component(): + from lbmpy.enums import Stencil + from lbmpy import LBMConfig, ForceModel, create_lb_update_rule + from lbmpy.macroscopic_value_kernels import macroscopic_values_setter + from lbmpy.creationfunctions import create_stream_pull_with_output_kernel + from lbmpy.maxwellian_equilibrium import get_weights + + N = 64 + omega_a = 1. + omega_b = 1. + + # interaction strength + g_aa = 0. + g_ab = g_ba = 6. + g_bb = 0. + + rho0 = 1. + + stencil = lbmpy.LBStencil(Stencil.D2Q9) + weights = get_weights(stencil, c_s_sq=sp.Rational(1, 3)) + + dim = stencil.D + dh = ps.create_data_handling((N, ) * dim, periodicity=True, default_target=ps.Target.CPU) + + src_a = dh.add_array('src_a', values_per_cell=stencil.Q) + dst_a = dh.add_array_like('dst_a', 'src_a') + + src_b = dh.add_array('src_b', values_per_cell=stencil.Q) + dst_b = dh.add_array_like('dst_b', 'src_b') + + ρ_a = dh.add_array('rho_a') + ρ_b = dh.add_array('rho_b') + u_a = dh.add_array('u_a', values_per_cell=stencil.D) + u_b = dh.add_array('u_b', values_per_cell=stencil.D) + u_bary = dh.add_array_like('u_bary', u_a.name) + + f_a = dh.add_array('f_a', values_per_cell=stencil.D) + f_b = dh.add_array_like('f_b', f_a.name) + + def psi(dens): + return rho0 * (1. - sp.exp(-dens / rho0)) + + zero_vec = sp.Matrix([0] * stencil.D) + + force_a = zero_vec + for factor, ρ in zip([g_aa, g_ab], [ρ_a, ρ_b]): + force_a += sum((psi(ρ[d]) * w_d * sp.Matrix(d) + for d, w_d in zip(stencil, weights)), + zero_vec) * psi(ρ_a.center) * -1 * factor + + force_b = zero_vec + for factor, ρ in zip([g_ba, g_bb], [ρ_a, ρ_b]): + force_b += sum((psi(ρ[d]) * w_d * sp.Matrix(d) + for d, w_d in zip(stencil, weights)), + zero_vec) * psi(ρ_b.center) * -1 * factor + + f_expressions = ps.AssignmentCollection([ + ps.Assignment(f_a.center_vector, force_a), + ps.Assignment(f_b.center_vector, force_b) + ]) + + # calculate the velocity without force correction + u_temp = ps.Assignment(u_bary.center_vector, + (ρ_a.center * u_a.center_vector + - f_a.center_vector / 2 + ρ_b.center * u_b.center_vector + - f_b.center_vector / 2) / (ρ_a.center + ρ_b.center)) + + # add the force correction to the velocity + u_corr = ps.Assignment(u_bary.center_vector, + u_bary.center_vector + + (f_a.center_vector / 2 + f_b.center_vector / 2) / (ρ_a.center + ρ_b.center)) + + lbm_config_a = LBMConfig(stencil=stencil, relaxation_rate=omega_a, compressible=True, + velocity_input=u_bary, density_input=ρ_a, force_model=ForceModel.GUO, + force=f_a, kernel_type='collide_only') + + lbm_config_b = LBMConfig(stencil=stencil, relaxation_rate=omega_b, compressible=True, + velocity_input=u_bary, density_input=ρ_b, force_model=ForceModel.GUO, + force=f_b, kernel_type='collide_only') + + collision_a = create_lb_update_rule(lbm_config=lbm_config_a, + optimization={'symbolic_field': src_a}) + + collision_b = create_lb_update_rule(lbm_config=lbm_config_b, + optimization={'symbolic_field': src_b}) + + stream_a = create_stream_pull_with_output_kernel(collision_a.method, src_a, dst_a, + {'density': ρ_a, 'velocity': u_a}) + stream_b = create_stream_pull_with_output_kernel(collision_b.method, src_b, dst_b, + {'density': ρ_b, 'velocity': u_b}) + + config = ps.CreateKernelConfig(target=dh.default_target) + + stream_a_kernel = ps.create_kernel(stream_a, config=config).compile() + stream_b_kernel = ps.create_kernel(stream_b, config=config).compile() + collision_a_kernel = ps.create_kernel(collision_a, config=config).compile() + collision_b_kernel = ps.create_kernel(collision_b, config=config).compile() + + force_kernel = ps.create_kernel(f_expressions, config=config).compile() + u_temp_kernel = ps.create_kernel(u_temp, config=config).compile() + u_corr_kernel = ps.create_kernel(u_corr, config=config).compile() + + init_a = macroscopic_values_setter(collision_a.method, velocity=(0, 0), + pdfs=src_a.center_vector, density=ρ_a.center) + init_b = macroscopic_values_setter(collision_b.method, velocity=(0, 0), + pdfs=src_b.center_vector, density=ρ_b.center) + init_a_kernel = ps.create_kernel(init_a, ghost_layers=0).compile() + init_b_kernel = ps.create_kernel(init_b, ghost_layers=0).compile() + + sync_pdfs = dh.synchronization_function([src_a.name, src_b.name]) + sync_ρs = dh.synchronization_function([ρ_a.name, ρ_b.name]) + + dh.fill(ρ_a.name, 0.1, slice_obj=ps.make_slice[:, :0.5]) + dh.fill(ρ_a.name, 0.9, slice_obj=ps.make_slice[:, 0.5:]) + + dh.fill(ρ_b.name, 0.9, slice_obj=ps.make_slice[:, :0.5]) + dh.fill(ρ_b.name, 0.1, slice_obj=ps.make_slice[:, 0.5:]) + + dh.fill(u_a.name, 0.0) + dh.fill(u_b.name, 0.0) + dh.fill(f_a.name, 0.0) + dh.fill(f_b.name, 0.0) + dh.run_kernel(u_temp_kernel) + + dh.run_kernel(init_a_kernel) + dh.run_kernel(init_b_kernel) + + for i in range(1000): + sync_ρs() + dh.run_kernel(force_kernel) + dh.run_kernel(u_corr_kernel) + dh.run_kernel(collision_a_kernel) + dh.run_kernel(collision_b_kernel) + + sync_pdfs() + dh.run_kernel(stream_a_kernel) + dh.run_kernel(stream_b_kernel) + dh.run_kernel(u_temp_kernel) + + dh.swap(src_a.name, dst_a.name) + dh.swap(src_b.name, dst_b.name) + + # reference generated from https://github.com/lbm-principles-practice/code/blob/master/chapter9/shanchen.cpp with + # const int nsteps = 1000; + # const int noutput = 1000; + # const int nfluids = 2; + # const double gA = 0; + + ref_a = np.array([0.213948, 0.0816724, 0.0516763, 0.0470179, 0.0480882, 0.0504771, 0.0531983, 0.0560094, 0.0588071, + 0.0615311, 0.064102, 0.0664467, 0.0684708, 0.070091, 0.0712222, 0.0718055, 0.0718055, 0.0712222, + 0.070091, 0.0684708, 0.0664467, 0.064102, 0.0615311, 0.0588071, 0.0560094, 0.0531983, 0.0504771, + 0.0480882, 0.0470179, 0.0516763, 0.0816724, 0.213948, 0.517153, 0.833334, 0.982884, 1.0151, + 1.01361, 1.0043, 0.993178, 0.981793, 0.970546, 0.959798, 0.949751, 0.940746, 0.933035, 0.926947, + 0.922713, 0.920548, 0.920548, 0.922713, 0.926947, 0.933035, 0.940746, 0.949751, 0.959798, + 0.970546, 0.981793, 0.993178, 1.0043, 1.01361, 1.0151, 0.982884, 0.833334, 0.517153]) + ref_b = np.array([0.517153, 0.833334, 0.982884, 1.0151, 1.01361, 1.0043, 0.993178, 0.981793, 0.970546, 0.959798, + 0.949751, 0.940746, 0.933035, 0.926947, 0.922713, 0.920548, 0.920548, 0.922713, 0.926947, + 0.933035, 0.940746, 0.949751, 0.959798, 0.970546, 0.981793, 0.993178, 1.0043, 1.01361, 1.0151, + 0.982884, 0.833334, 0.517153, 0.213948, 0.0816724, 0.0516763, 0.0470179, 0.0480882, 0.0504771, + 0.0531983, 0.0560094, 0.0588071, 0.0615311, 0.064102, 0.0664467, 0.0684708, 0.070091, 0.0712222, + 0.0718055, 0.0718055, 0.0712222, 0.070091, 0.0684708, 0.0664467, 0.064102, 0.0615311, 0.0588071, + 0.0560094, 0.0531983, 0.0504771, 0.0480882, 0.0470179, 0.0516763, 0.0816724, 0.213948]) + assert np.allclose(dh.gather_array(ρ_a.name)[0], ref_a) + assert np.allclose(dh.gather_array(ρ_b.name)[0], ref_b) diff --git a/lbmpy_tests/shan_chen/test_shan_chen_two_phase.py b/lbmpy_tests/shan_chen/test_shan_chen_two_phase.py new file mode 100644 index 0000000000000000000000000000000000000000..18a7dd2e32e52f50af8463adc634571b1657c025 --- /dev/null +++ b/lbmpy_tests/shan_chen/test_shan_chen_two_phase.py @@ -0,0 +1,93 @@ +""" +Test Shan-Chen two-phase implementation against reference implementation +""" + +import lbmpy + +import pystencils as ps +import sympy as sp +import numpy as np + + +def test_shan_chen_two_phase(): + from lbmpy.enums import Stencil + from lbmpy import LBMConfig, ForceModel, create_lb_update_rule + from lbmpy.macroscopic_value_kernels import macroscopic_values_setter + from lbmpy.creationfunctions import create_stream_pull_with_output_kernel, create_lb_method + from lbmpy.maxwellian_equilibrium import get_weights + + N = 64 + omega = 1. + g_aa = -4.7 + rho0 = 1. + + stencil = lbmpy.LBStencil(Stencil.D2Q9) + weights = get_weights(stencil, c_s_sq=sp.Rational(1, 3)) + + dh = ps.create_data_handling((N, ) * stencil.D, periodicity=True, default_target=ps.Target.CPU) + + src = dh.add_array('src', values_per_cell=stencil.Q) + dst = dh.add_array_like('dst', 'src') + + ρ = dh.add_array('rho') + + def psi(dens): + return rho0 * (1. - sp.exp(-dens / rho0)) + + zero_vec = sp.Matrix([0] * stencil.D) + + force = sum((psi(ρ[d]) * w_d * sp.Matrix(d) + for d, w_d in zip(stencil, weights)), zero_vec) * psi(ρ.center) * -1 * g_aa + + lbm_config = LBMConfig(stencil=stencil, relaxation_rate=omega, compressible=True, + force_model=ForceModel.GUO, force=force, kernel_type='collide_only') + + collision = create_lb_update_rule(lbm_config=lbm_config, + optimization={'symbolic_field': src}) + + stream = create_stream_pull_with_output_kernel(collision.method, src, dst, {'density': ρ}) + + config = ps.CreateKernelConfig(target=dh.default_target, cpu_openmp=False) + + stream_kernel = ps.create_kernel(stream, config=config).compile() + collision_kernel = ps.create_kernel(collision, config=config).compile() + + method_without_force = create_lb_method(LBMConfig(stencil=stencil, relaxation_rate=omega, compressible=True)) + init_assignments = macroscopic_values_setter(method_without_force, velocity=(0, 0), + pdfs=src.center_vector, density=ρ.center) + + init_kernel = ps.create_kernel(init_assignments, ghost_layers=0, config=config).compile() + + for x in range(N): + for y in range(N): + if (x - N / 2)**2 + (y - N / 2)**2 <= 15**2: + dh.fill(ρ.name, 2.1, slice_obj=[x, y]) + else: + dh.fill(ρ.name, 0.15, slice_obj=[x, y]) + + dh.run_kernel(init_kernel) + + sync_pdfs = dh.synchronization_function([src.name]) + sync_ρs = dh.synchronization_function([ρ.name]) + + for i in range(1000): + sync_ρs() + dh.run_kernel(collision_kernel) + + sync_pdfs() + dh.run_kernel(stream_kernel) + + dh.swap(src.name, dst.name) + + # reference generated from https://github.com/lbm-principles-practice/code/blob/master/chapter9/shanchen.cpp with + # const int nsteps = 1000; + # const int noutput = 1000; + + ref = np.array([0.185757, 0.185753, 0.185743, 0.185727, 0.185703, 0.185672, 0.185636, 0.185599, 0.185586, 0.185694, + 0.186302, 0.188901, 0.19923, 0.238074, 0.365271, 0.660658, 1.06766, 1.39673, 1.56644, 1.63217, + 1.65412, 1.66064, 1.66207, 1.66189, 1.66123, 1.66048, 1.65977, 1.65914, 1.65861, 1.6582, 1.6579, + 1.65772, 1.65766, 1.65772, 1.6579, 1.6582, 1.65861, 1.65914, 1.65977, 1.66048, 1.66123, 1.66189, + 1.66207, 1.66064, 1.65412, 1.63217, 1.56644, 1.39673, 1.06766, 0.660658, 0.365271, 0.238074, + 0.19923, 0.188901, 0.186302, 0.185694, 0.185586, 0.185599, 0.185636, 0.185672, 0.185703, 0.185727, + 0.185743, 0.185753]) + assert np.allclose(dh.gather_array(ρ.name)[N // 2], ref) diff --git a/lbmpy_tests/test_boundary_handling.py b/lbmpy_tests/test_boundary_handling.py index fa285f6b6a6d43cf92329f6e273742021410d835..d94cfa63f6e3c4049165eda12b4ee8744eace162 100644 --- a/lbmpy_tests/test_boundary_handling.py +++ b/lbmpy_tests/test_boundary_handling.py @@ -4,7 +4,7 @@ import pytest from lbmpy.boundaries import NoSlip, UBB, SimpleExtrapolationOutflow, ExtrapolationOutflow, \ FixedDensity, DiffusionDirichlet, NeumannByCopy, StreamInConstant, FreeSlip from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling -from lbmpy.creationfunctions import create_lb_function, create_lb_method, LBMConfig, LBMOptimisation +from lbmpy.creationfunctions import create_lb_function, create_lb_method, LBMConfig from lbmpy.enums import Stencil, Method from lbmpy.geometry import add_box_boundary from lbmpy.lbstep import LatticeBoltzmannStep @@ -22,22 +22,18 @@ def mirror_stencil(direction, mirror_axis): return tuple(direction) -@pytest.mark.parametrize("target", [Target.GPU, Target.CPU, Target.OPENCL]) +@pytest.mark.parametrize("target", [Target.GPU, Target.CPU]) def test_simple(target): if target == Target.GPU: import pytest pytest.importorskip('pycuda') - elif target == Target.OPENCL: - import pytest - pytest.importorskip('pyopencl') - import pystencils.opencl.autoinit dh = create_data_handling((4, 4), parallel=False, default_target=target) dh.add_array('pdfs', values_per_cell=9, cpu=True, gpu=target != Target.CPU) for i in range(9): dh.fill("pdfs", i, value_idx=i, ghost_layers=True) - if target == Target.GPU or target == Target.OPENCL: + if target == Target.GPU: dh.all_to_gpu() lbm_config = LBMConfig(stencil=LBStencil(Stencil.D2Q9), compressible=False, relaxation_rate=1.8) @@ -57,7 +53,7 @@ def test_simple(target): bh.prepare() bh() - if target == Target.GPU or target == Target.OPENCL: + if target == Target.GPU: dh.all_to_cpu() # left lower corner assert (dh.cpu_arrays['pdfs'][0, 0, 6] == 7) @@ -116,6 +112,122 @@ def test_simple(target): assert (all(dh.cpu_arrays['pdfs'][0, 2:4, 8] == 5)) +@pytest.mark.parametrize("given_normal", [True, False]) +def test_free_slip(given_normal): + # check if Free slip BC is applied correctly + + stencil = LBStencil(Stencil.D2Q9) + dh = create_data_handling(domain_size=(4, 4),) + src1 = dh.add_array('src1', values_per_cell=stencil.Q) + dh.fill('src1', 0.0, ghost_layers=True) + + shape = dh.gather_array('src1', ghost_layers=True).shape + + num = 0 + for x in range(shape[0]): + for y in range(shape[1]): + for direction in range(shape[2]): + dh.cpu_arrays[src1.name][x, y, direction] = num + num += 1 + + method = create_lb_method(lbm_config=LBMConfig(stencil=stencil, method=Method.SRT, relaxation_rate=1.8)) + + bh = LatticeBoltzmannBoundaryHandling(method, dh, 'src1', name="bh1") + if given_normal: + free_slipN = FreeSlip(stencil=stencil, normal_direction=(0, -1)) + free_slipS = FreeSlip(stencil=stencil, normal_direction=(0, 1)) + free_slipE = FreeSlip(stencil=stencil, normal_direction=(-1, 0)) + free_slipW = FreeSlip(stencil=stencil, normal_direction=(1, 0)) + + bh.set_boundary(free_slipN, slice_from_direction('N', dh.dim)) + bh.set_boundary(free_slipS, slice_from_direction('S', dh.dim)) + bh.set_boundary(free_slipE, slice_from_direction('E', dh.dim)) + bh.set_boundary(free_slipW, slice_from_direction('W', dh.dim)) + else: + free_slip = FreeSlip(stencil=stencil) + + bh.set_boundary(free_slip, slice_from_direction('N', dh.dim)) + bh.set_boundary(free_slip, slice_from_direction('S', dh.dim)) + bh.set_boundary(free_slip, slice_from_direction('E', dh.dim)) + bh.set_boundary(free_slip, slice_from_direction('W', dh.dim)) + + bh() + + mirrored_dirN = {6: 8, 1: 2, 5: 7} + mirrored_dirS = {7: 5, 2: 1, 8: 6} + mirrored_dirE = {6: 5, 4: 3, 8: 7} + mirrored_dirW = {5: 6, 3: 4, 7: 8} + + # check North + assert dh.cpu_arrays[src1.name][1, -1, mirrored_dirN[6]] == dh.cpu_arrays[src1.name][1, -2, 6] + assert dh.cpu_arrays[src1.name][1, -1, mirrored_dirN[1]] == dh.cpu_arrays[src1.name][1, -2, 1] + + for i in range(2, 4): + assert dh.cpu_arrays[src1.name][i, -1, mirrored_dirN[6]] == dh.cpu_arrays[src1.name][i, -2, 6] + assert dh.cpu_arrays[src1.name][i, -1, mirrored_dirN[1]] == dh.cpu_arrays[src1.name][i, -2, 1] + assert dh.cpu_arrays[src1.name][i, -1, mirrored_dirN[5]] == dh.cpu_arrays[src1.name][i, -2, 5] + + assert dh.cpu_arrays[src1.name][4, -1, mirrored_dirN[1]] == dh.cpu_arrays[src1.name][4, -2, 1] + assert dh.cpu_arrays[src1.name][4, -1, mirrored_dirN[5]] == dh.cpu_arrays[src1.name][4, -2, 5] + + # check East + assert dh.cpu_arrays[src1.name][-1, 1, mirrored_dirE[6]] == dh.cpu_arrays[src1.name][-2, 1, 6] + assert dh.cpu_arrays[src1.name][-1, 1, mirrored_dirE[4]] == dh.cpu_arrays[src1.name][-2, 1, 4] + + for i in range(2, 4): + assert dh.cpu_arrays[src1.name][-1, i, mirrored_dirE[6]] == dh.cpu_arrays[src1.name][-2, i, 6] + assert dh.cpu_arrays[src1.name][-1, i, mirrored_dirE[4]] == dh.cpu_arrays[src1.name][-2, i, 4] + assert dh.cpu_arrays[src1.name][-1, i, mirrored_dirE[8]] == dh.cpu_arrays[src1.name][-2, i, 8] + + assert dh.cpu_arrays[src1.name][-1, 4, mirrored_dirE[4]] == dh.cpu_arrays[src1.name][-2, 4, 4] + assert dh.cpu_arrays[src1.name][-1, 4, mirrored_dirE[8]] == dh.cpu_arrays[src1.name][-2, 4, 8] + + # check South + assert dh.cpu_arrays[src1.name][1, 0, mirrored_dirS[8]] == dh.cpu_arrays[src1.name][1, 1, 8] + assert dh.cpu_arrays[src1.name][1, 0, mirrored_dirS[2]] == dh.cpu_arrays[src1.name][1, 1, 2] + + for i in range(2, 4): + assert dh.cpu_arrays[src1.name][i, 0, mirrored_dirS[7]] == dh.cpu_arrays[src1.name][i, 1, 7] + assert dh.cpu_arrays[src1.name][i, 0, mirrored_dirS[2]] == dh.cpu_arrays[src1.name][i, 1, 2] + assert dh.cpu_arrays[src1.name][i, 0, mirrored_dirS[8]] == dh.cpu_arrays[src1.name][i, 1, 8] + + assert dh.cpu_arrays[src1.name][4, 0, mirrored_dirS[2]] == dh.cpu_arrays[src1.name][4, 1, 2] + assert dh.cpu_arrays[src1.name][4, 0, mirrored_dirS[7]] == dh.cpu_arrays[src1.name][4, 1, 7] + + # check West + assert dh.cpu_arrays[src1.name][0, 1, mirrored_dirW[5]] == dh.cpu_arrays[src1.name][1, 1, 5] + assert dh.cpu_arrays[src1.name][0, 1, mirrored_dirW[3]] == dh.cpu_arrays[src1.name][1, 1, 3] + + for i in range(2, 4): + assert dh.cpu_arrays[src1.name][0, i, mirrored_dirW[5]] == dh.cpu_arrays[src1.name][1, i, 5] + assert dh.cpu_arrays[src1.name][0, i, mirrored_dirW[3]] == dh.cpu_arrays[src1.name][1, i, 3] + assert dh.cpu_arrays[src1.name][0, i, mirrored_dirW[7]] == dh.cpu_arrays[src1.name][1, i, 7] + + assert dh.cpu_arrays[src1.name][0, 4, mirrored_dirW[3]] == dh.cpu_arrays[src1.name][1, 4, 3] + assert dh.cpu_arrays[src1.name][0, 4, mirrored_dirW[7]] == dh.cpu_arrays[src1.name][1, 4, 7] + + if given_normal: + # check corners --> determined by the last boundary applied there. + # SouthWest --> West + assert dh.cpu_arrays[src1.name][0, 0, mirrored_dirW[5]] == dh.cpu_arrays[src1.name][1, 0, 5] + # NorthWest --> West + assert dh.cpu_arrays[src1.name][0, -1, mirrored_dirW[7]] == dh.cpu_arrays[src1.name][1, -1, 7] + # NorthEast --> East + assert dh.cpu_arrays[src1.name][-1, -1, mirrored_dirE[8]] == dh.cpu_arrays[src1.name][-2, -1, 8] + # SouthEast --> East + assert dh.cpu_arrays[src1.name][-1, 0, mirrored_dirE[6]] == dh.cpu_arrays[src1.name][-2, 0, 6] + else: + # check corners --> this time the normals are calculated correctly in the corners + # SouthWest --> Normal = (1, 1); dir 7 --> 6 + assert dh.cpu_arrays[src1.name][0, 0, 6] == dh.cpu_arrays[src1.name][1, 1, 7] + # NorthWest --> Normal = (1, -1); dir 8 --> 5 + assert dh.cpu_arrays[src1.name][0, -1, 8] == dh.cpu_arrays[src1.name][1, -2, 5] + # NorthEast --> Normal = (-1, -1); dir 7 --> 6 + assert dh.cpu_arrays[src1.name][-1, -1, 7] == dh.cpu_arrays[src1.name][-2, -2, 6] + # SouthEast --> Normal = (-1, 1); dir 5 --> 8 + assert dh.cpu_arrays[src1.name][-1, 0, 5] == dh.cpu_arrays[src1.name][-2, 1, 8] + + def test_free_slip_index_list(): stencil = LBStencil(Stencil.D2Q9) dh = create_data_handling(domain_size=(4, 4), periodicity=(False, False)) @@ -185,6 +297,50 @@ def test_free_slip_index_list(): assert normal == normal_north_east +def test_free_slip_index_list_convex_corner(): + stencil = LBStencil(Stencil.D2Q9) + dh = create_data_handling(domain_size=(4, 4)) + src = dh.add_array('src', values_per_cell=len(stencil)) + dh.fill('src', 0.0, ghost_layers=True) + + lbm_config = LBMConfig(stencil=stencil, method=Method.SRT, relaxation_rate=1.8) + method = create_lb_method(lbm_config=lbm_config) + + def bh_callback(x, y): + radius = 2 + x_mid = 2 + y_mid = 2 + return (x - x_mid) ** 2 + (y - y_mid) ** 2 > radius ** 2 + + bh = LatticeBoltzmannBoundaryHandling(method, dh, 'src', name="bh") + + free_slip = FreeSlip(stencil=stencil) + bh.set_boundary(free_slip, mask_callback=bh_callback) + + bh.prepare() + for b in dh.iterate(): + for b_obj, idx_arr in b[bh._index_array_name].boundary_object_to_index_list.items(): + index_array = idx_arr + + # correct index array for this case with convex corners + test = [(2, 1, 2, 0, 1, 2), (2, 1, 3, 1, 0, 3), (2, 1, 7, 1, 1, 7), + (2, 1, 8, 0, 1, 7), (3, 1, 2, 0, 1, 2), (3, 1, 4, -1, 0, 4), + (3, 1, 7, 0, 1, 8), (3, 1, 8, -1, 1, 8), (1, 2, 2, 0, 1, 2), + (1, 2, 3, 1, 0, 3), (1, 2, 5, 1, 0, 7), (1, 2, 7, 1, 1, 7), + (2, 2, 7, 1, 1, 7), (3, 2, 8, -1, 1, 8), (4, 2, 2, 0, 1, 2), + (4, 2, 4, -1, 0, 4), (4, 2, 6, -1, 0, 8), (4, 2, 8, -1, 1, 8), + (1, 3, 1, 0, -1, 1), (1, 3, 3, 1, 0, 3), (1, 3, 5, 1, -1, 5), + (1, 3, 7, 1, 0, 5), (2, 3, 5, 1, -1, 5), (3, 3, 6, -1, -1, 6), + (4, 3, 1, 0, -1, 1), (4, 3, 4, -1, 0, 4), (4, 3, 6, -1, -1, 6), + (4, 3, 8, -1, 0, 6), (2, 4, 1, 0, -1, 1), (2, 4, 3, 1, 0, 3), + (2, 4, 5, 1, -1, 5), (2, 4, 6, 0, -1, 5), (3, 4, 1, 0, -1, 1), + (3, 4, 4, -1, 0, 4), (3, 4, 5, 0, -1, 6), (3, 4, 6, -1, -1, 6)] + + for i, cell in enumerate(index_array): + for j in range(len(cell)): + assert cell[j] == test[i][j] + + def test_free_slip_equivalence(): # check if Free slip BC does the same if the normal direction is specified or not @@ -218,7 +374,7 @@ def test_free_slip_equivalence(): bh1() bh2() - assert np.array_equal(dh.cpu_arrays['src1'], dh.cpu_arrays['src2']) + assert np.array_equal(dh.gather_array('src1'), dh.gather_array('src2')) def test_exotic_boundaries(): diff --git a/lbmpy_tests/test_code_hashequivalence.py b/lbmpy_tests/test_code_hashequivalence.py deleted file mode 100644 index 06ef0dedc28f7da6627879849daaaaf656f717a1..0000000000000000000000000000000000000000 --- a/lbmpy_tests/test_code_hashequivalence.py +++ /dev/null @@ -1,22 +0,0 @@ -from hashlib import sha256 - -from pystencils import Backend, CreateKernelConfig, Target -from lbmpy.creationfunctions import create_lb_ast -from lbmpy.enums import Stencil, Method -from lbmpy.creationfunctions import LBMConfig -from lbmpy.stencils import LBStencil - - -def test_hash_equivalence_llvm(): - import pytest - pytest.importorskip("llvmlite") - from pystencils.llvm.llvmjit import generate_llvm - - ref_value = "f1b1879e304fe8533977c885f2744516dd4964064a7e4ae64fd94b8426d995bb" - - lbm_config = LBMConfig(stencil=LBStencil(Stencil.D2Q9), method=Method.SRT) - config = CreateKernelConfig(target=Target.CPU, backend=Backend.LLVM) - ast = create_lb_ast(lbm_config=lbm_config, config=config) - code = generate_llvm(ast) - hash_value = sha256(str(code).encode()).hexdigest() - assert hash_value == ref_value diff --git a/lbmpy_tests/test_compiled_in_boundaries.ipynb b/lbmpy_tests/test_compiled_in_boundaries.ipynb index 1a0adbd9a18406864f9aadd3583126f4554cad7f..559ad60b015c1823c88fbcc5b87e36535d751d5a 100644 --- a/lbmpy_tests/test_compiled_in_boundaries.ipynb +++ b/lbmpy_tests/test_compiled_in_boundaries.ipynb @@ -107,7 +107,7 @@ { "data": { "text/plain": [ - "<matplotlib.colorbar.Colorbar at 0x11d5a7820>" + "<matplotlib.colorbar.Colorbar at 0x7fddd3f7a880>" ] }, "execution_count": 6, @@ -116,7 +116,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "<Figure size 1152x432 with 2 Axes>" ] @@ -150,7 +150,7 @@ { "data": { "text/plain": [ - "<matplotlib.colorbar.Colorbar at 0x11dcca970>" + "<matplotlib.colorbar.Colorbar at 0x7fddd28835e0>" ] }, "execution_count": 7, @@ -159,7 +159,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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", "text/plain": [ "<Figure size 1152x432 with 2 Axes>" ] @@ -205,7 +205,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.2" } }, "nbformat": 4, diff --git a/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py b/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py index af29332fecfeb47bae52f64940bd859fe8ac143d..8881a7d39d6215fbbb605811c1ef035af2f29230 100644 --- a/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py +++ b/lbmpy_tests/test_conserved_quantity_relaxation_invariance.py @@ -58,7 +58,7 @@ def check_for_collision_rule_equivalence(collision_rule1, collision_rule2, use_n for eq1, eq2 in zip(collision_rule1.main_assignments, collision_rule2.main_assignments): diff = sp.cancel(sp.expand(eq1.rhs - eq2.rhs)) if use_numeric_subs: - assert math.isclose(diff, 0, rel_tol=0.0, abs_tol=1e-12) + assert math.isclose(diff, 0, rel_tol=0.0, abs_tol=1e-10) else: assert diff == 0 @@ -78,8 +78,8 @@ def test_cumulant(): original_method = create_with_default_polynomial_cumulants(stencil, [sp.Symbol("omega")]) changed_method = __change_relaxation_rate_of_conserved_moments(original_method) - check_method_equivalence(original_method, changed_method, True, True) - check_method_equivalence(original_method, changed_method, False, True) + check_method_equivalence(original_method, changed_method, True, use_numeric_subs=True) + check_method_equivalence(original_method, changed_method, False, use_numeric_subs=True) @pytest.mark.longrun @@ -89,8 +89,8 @@ def test_srt(): maxwellian_moments=True) changed_method = __change_relaxation_rate_of_conserved_moments(original_method) - check_method_equivalence(original_method, changed_method, True) - check_method_equivalence(original_method, changed_method, False) + check_method_equivalence(original_method, changed_method, True, use_numeric_subs=True) + check_method_equivalence(original_method, changed_method, False, use_numeric_subs=True) def test_srt_short(): @@ -99,8 +99,8 @@ def test_srt_short(): maxwellian_moments=True) changed_method = __change_relaxation_rate_of_conserved_moments(original_method) - check_method_equivalence(original_method, changed_method, True) - check_method_equivalence(original_method, changed_method, False) + check_method_equivalence(original_method, changed_method, True, use_numeric_subs=False) + check_method_equivalence(original_method, changed_method, False, use_numeric_subs=False) @pytest.mark.parametrize('stencil_name', [Stencil.D2Q9, Stencil.D3Q19, Stencil.D3Q27]) @@ -117,8 +117,8 @@ def test_trt(stencil_name, continuous_moments): @pytest.mark.parametrize('method_name', [Method.TRT_KBC_N1, Method.TRT_KBC_N2, Method.TRT_KBC_N3, Method.TRT_KBC_N4]) -@pytest.mark.parametrize('dim', [2, 3]) -def test_trt_kbc_long(method_name, dim): +def test_trt_kbc(method_name): + dim = 2 method_nr = method_name.name[-1] original_method = create_trt_kbc(dim, sp.Symbol("omega1"), sp.Symbol("omega2"), method_name='KBC-N' + method_nr, @@ -127,3 +127,15 @@ def test_trt_kbc_long(method_name, dim): check_method_equivalence(original_method, changed_method, True) check_method_equivalence(original_method, changed_method, False) + +@pytest.mark.parametrize('method_name', [Method.TRT_KBC_N1, Method.TRT_KBC_N2, Method.TRT_KBC_N3, Method.TRT_KBC_N4]) +@pytest.mark.longrun +def test_trt_kbc_long(method_name): + dim = 3 + method_nr = method_name.name[-1] + original_method = create_trt_kbc(dim, sp.Symbol("omega1"), sp.Symbol("omega2"), + method_name='KBC-N' + method_nr, + maxwellian_moments=False) + changed_method = __change_relaxation_rate_of_conserved_moments(original_method) + check_method_equivalence(original_method, changed_method, True) + check_method_equivalence(original_method, changed_method, False) diff --git a/lbmpy_tests/test_diffusion.py b/lbmpy_tests/test_diffusion.py index 69215f25014b2f3a7f94b2559218b8694fd4fc8c..df390b948f947a3ca68fc22b512c6cd6a2e73849 100644 --- a/lbmpy_tests/test_diffusion.py +++ b/lbmpy_tests/test_diffusion.py @@ -75,8 +75,8 @@ def test_diffusion(): C(x,y) = 1 * erfc(y / sqrt(4Dx/u)) The hydrodynamic field is not simulated, instead a constant velocity is assumed. - """ - + """ + pytest.importorskip("pycuda") # Parameters domain_size = (1600, 160) omega = 1.38 @@ -84,9 +84,10 @@ def test_diffusion(): velocity = 0.05 time_steps = 50000 stencil = LBStencil(Stencil.D2Q9) + target = ps.Target.GPU # Data Handling - dh = ps.create_data_handling(domain_size=domain_size) + dh = ps.create_data_handling(domain_size=domain_size, default_target=target) vel_field = dh.add_array('vel_field', values_per_cell=stencil.D) dh.fill('vel_field', velocity, 0, ghost_layers=True) @@ -96,7 +97,9 @@ def test_diffusion(): dh.fill('con_field', 0.0, ghost_layers=True) pdfs = dh.add_array('pdfs', values_per_cell=stencil.Q) + dh.fill('pdfs', 0.0, ghost_layers=True) pdfs_tmp = dh.add_array('pdfs_tmp', values_per_cell=stencil.Q) + dh.fill('pdfs_tmp', 0.0, ghost_layers=True) # Lattice Boltzmann method lbm_config = LBMConfig(stencil=stencil, method=Method.MRT, relaxation_rates=[1, 1.5, 1, 1.5, 1], @@ -104,21 +107,24 @@ def test_diffusion(): weighted=True, kernel_type='stream_pull_collide') lbm_opt = LBMOptimisation(symbolic_field=pdfs, symbolic_temporary_field=pdfs_tmp) + config = ps.CreateKernelConfig(target=dh.default_target, cpu_openmp=True) method = create_lb_method(lbm_config=lbm_config) method.set_conserved_moments_relaxation_rate(omega) lbm_config = replace(lbm_config, lb_method=method) update_rule = create_lb_update_rule(lbm_config=lbm_config, lbm_optimisation=lbm_opt) - kernel = ps.create_kernel(update_rule).compile() + kernel = ps.create_kernel(update_rule, config=config).compile() # PDF initalization init = pdf_initialization_assignments(method, con_field.center, vel_field.center_vector, pdfs.center_vector) dh.run_kernel(ps.create_kernel(init).compile()) + dh.all_to_gpu() + # Boundary Handling - bh = LatticeBoltzmannBoundaryHandling(update_rule.method, dh, 'pdfs', name="bh") + bh = LatticeBoltzmannBoundaryHandling(update_rule.method, dh, 'pdfs', name="bh", target=dh.default_target) add_box_boundary(bh, boundary=NeumannByCopy()) bh.set_boundary(DiffusionDirichlet(0), slice_from_direction('W', dh.dim)) bh.set_boundary(DiffusionDirichlet(1), slice_from_direction('S', dh.dim)) @@ -129,6 +135,7 @@ def test_diffusion(): dh.run_kernel(kernel) dh.swap("pdfs", "pdfs_tmp") + dh.all_to_cpu() # Verification x = np.arange(1, domain_size[0], 1) y = np.arange(0, domain_size[1], 1) diff --git a/lbmpy_tests/test_force.py b/lbmpy_tests/test_force.py index 4215e957b8ee1948d52383e1bbbdf59ce01b933c..cc6b664de4393af61687e1cb9a3989a69a8ad4ec 100644 --- a/lbmpy_tests/test_force.py +++ b/lbmpy_tests/test_force.py @@ -7,7 +7,7 @@ from pystencils import Target from lbmpy.creationfunctions import create_lb_method, create_lb_update_rule, LBMConfig, LBMOptimisation from lbmpy.enums import Stencil, Method, ForceModel -from lbmpy.macroscopic_value_kernels import macroscopic_values_setter +from lbmpy.macroscopic_value_kernels import macroscopic_values_setter, macroscopic_values_getter from lbmpy.moments import is_bulk_moment from lbmpy.stencils import LBStencil from lbmpy.updatekernels import create_stream_pull_with_output_kernel @@ -37,17 +37,13 @@ def test_total_momentum(method_enum, force_model, omega): u = dh.add_array('u', values_per_cell=stencil.D) lbm_config = LBMConfig(method=method_enum, stencil=stencil, relaxation_rate=omega, - compressible=True, force_model=force_model, force=F, kernel_type='collide_only') + compressible=True, force_model=force_model, force=F, streaming_pattern='pull') lbm_opt = LBMOptimisation(symbolic_field=src) collision = create_lb_update_rule(lbm_config=lbm_config, lbm_optimisation=lbm_opt) - stream = create_stream_pull_with_output_kernel(collision.method, src, dst, - {'density': ρ, 'velocity': u}) - config = ps.CreateKernelConfig(cpu_openmp=True, target=dh.default_target) - stream_kernel = ps.create_kernel(stream, config=config).compile() collision_kernel = ps.create_kernel(collision, config=config).compile() def init(): @@ -55,24 +51,28 @@ def test_total_momentum(method_enum, force_model, omega): dh.fill(u.name, 0) setter = macroscopic_values_setter(collision.method, velocity=(0,) * dh.dim, - pdfs=src.center_vector, density=ρ.center) - kernel = ps.create_kernel(setter, ghost_layers=0).compile() + pdfs=src, density=ρ.center, + set_pre_collision_pdfs=True) + kernel = ps.create_kernel(setter).compile() dh.run_kernel(kernel) sync_pdfs = dh.synchronization_function([src.name]) + getter = macroscopic_values_getter(collision.method, ρ.center, u.center_vector, src, use_pre_collision_pdfs=True) + getter_kernel = ps.create_kernel(getter).compile() + def time_loop(steps): dh.all_to_gpu() - for i in range(steps): + for _ in range(steps): dh.run_kernel(collision_kernel) - sync_pdfs() - dh.run_kernel(stream_kernel) dh.swap(src.name, dst.name) + sync_pdfs() dh.all_to_cpu() t = 20 init() time_loop(t) + dh.run_kernel(getter_kernel) total = np.sum(dh.gather_array(u.name), axis=(0, 1)) assert np.allclose(total / np.prod(L) / F / t, 1) diff --git a/lbmpy_tests/test_free_slip.ipynb b/lbmpy_tests/test_free_slip.ipynb index 179b8f36058551f69d11d9788b6c8d3102f71b23..08069b409d80d3dbe5c6048164729d95bf7ebf74 100644 --- a/lbmpy_tests/test_free_slip.ipynb +++ b/lbmpy_tests/test_free_slip.ipynb @@ -161,7 +161,7 @@ "outputs": [ { "data": { - "image/png": "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Qw4AAAD0CosWLap4+9vfviHcfPvb377k/e9//8Ktttpq/YMPPlh93nnnjb7yyitHPvTQQwOaa+Oyyy4b+olPfGL7nHMMGDCg/vTTT3/x8MMPX15ZWZlvu+22QT/5yU/GLF26tPI73/nOuGHDhtV9/vOfX9BcW9dff/2Q+++/f+Cee+656kMf+tD8XXbZpWb+/PmV55577pa33nrr0Pvuu2/gV7/61TFbbLFF3YUXXrjlAQccsOyUU05ZuNNOO617+umnq77//e9v9e9//3vgbbfdNuSHP/zhqM997nOv6Gv9+vVp6623XvvWt7516dSpU1ftsMMO66qqqvITTzzRd/r06UOuvPLKkUuXLq08/vjjx99///2zx40bt769f74XXXTRqPvuu2/glClTVn7gAx9YsMsuu9QsXry44ne/+92Iq6++esSSJUsqTznllO3/9a9/PdzePugcqTxRL4KUUlVEzI2IURGxICLG5pzb/WNtY99TomGH9YiIC3LOp3Vy+1tHxLMRETccEzFmYGe23rK3bTWt+zoDAACgWYMnfaHb+qpdXBtzztywofQ2re0d0ZpZs2b9v8rKyl2qq6uHTZgw4bGW6k7+1vQ9Fq1c96p+xHfEoL61s77y5v90VfunnXba1hdccMHoiIgvfOELr5hhuXbt2nTIIYeMv+OOO4Y0fvbwww/fP2HChHWN57fddtvd58+fXzVgwID66dOnP7zvvvu+bEPlRx55pO9+++03ccGCBVXV1dX1TzzxxP1bbbXVy3KYlNLkxvLhhx++ZNq0aU+Uz75cv3597L333hP//e9/Dxw4cGD9+vXr03ve854Fv/nNb54tb2fFihV9Jk6cuOu8efP67rzzzmvmzJlT/iRtRETMnj2736RJk9b26dP0qov33HNP/4MPPnji6tWr+3ziE594/ic/+cm8jetMnTp1wowZMwZNmTJl5cY7qs+ZM6fvxIkTd288Pv744xdeeumlT2/c3/HHH7/d5ZdfPjIi4vbbb3/wjW98Y1s3ot5szZkzZ3xNTc3S9evXPzh58uS3dUabRVyD863REG5GRPy+u8LNktPLyrd0Y78AAAAAG6xZsyZdccUVIyMidt555zXf+ta3XvH4eL9+/fLvfve7pyorK5uc3XbJJZcMmz9/flVExBlnnPH8xuFmqe113/jGN56LiKipqenz85///BWPhzeqrq6u/93vfvf0xo+WV1ZWximnnLIgImLVqlV9hg8fXvvzn//8FWH64MGD64877rhFERGPPPJI/0WLFlVsXGfXXXdtNtyMiJg6deqa448/fmFExDXXXDOs2YqbYNSoUbW//e1vn2mqvy9+8Ysb/rxvuummwR3ph44rYsBZ/nj6xZtyQUrppJRSLr2+3sT53VNK41tp4/SI+EDp8IWIuHoTxwsAAADQqW6//fYBy5cvr4iIOOGEExZVVLwiC4yIiJ122ql2v/32W97UuRtuuGFIRERKKT760Y8ubK6vk08+ecmgQYPqIiJuuummIc3Ve+Mb37h89OjRdU2d22uvvTaEp29961uX9uvXr8nQdc8991zdWJ4zZ07f5vpqtGDBgorZs2f3mzlzZvWMGTOqZ8yYUT1s2LD1ERGPP/54/7Vr17Z7ucG3ve1tS/r379/kOF/72teuHTBgQH1ExBNPPNGvvX3QOQq1BmdKaXhEHFE6fCDnfG8nNT05Ii5IKd0UEddExP0RsSga/nwmRsR7I+LNpbp1EXF6zrnDC9UCAAAAtMe//vWvDTubv+ENb2gxo5g8efKqm2++eejGnz/88MP9IyLGjh27rqW1Kqurq/Muu+yy+p577hn8yCOPNLuj+vjx49c2d26LLbbY0P7OO+/c7KY8w4cP3xCQNga4G7vnnnv6f//73x998803D1m4cGGzyxzU19fHwoULK9q7DufEiRNb3DxoyJAh61evXt135cqVRZxA+KpSqIAzIv47IhpT8U2avdkGFRFxaOnVnEUR8YGc8187uW8AAACATbZkyZINmc5WW21V21Ld0aNHN3l+6dKlFRERI0eObPH6iIgtt9yyNiJi+fLlzWZJjTMam1I+w7SleuWPg69fv/4Vsy9/9KMfjfzsZz+7bV1d3SbNzFy1alW7w8eWxhnx0lg3dSx0naIlzO8rvddFxKWd2O7/i4bHzy+IiFkR8VxErImImoiYFw2zOs+IiB1zzn/pxH4BAAAA2qx80+iUWs7Xcs4tVmjt+k1pozvcd9991Y3h5hZbbLH+q1/96nO33XbbQy+88MK/ampq7s05z8o5z/rRj370VOM1Rdtcm/Yp1AzOnPMb23ndRRFxUQvn50fEb0svAAAAgF6t/JHvefPmVe2xxx7NPh4+f/78JvOfYcOG1UVELFiwoNXd7BcsWFAZ0fBYdttH2zl+/etfj6irq0sVFRUxffr0OXvttVeTj5CXz25l81C0GZwAAAAAm70999xzw6Y9//znPwe2VPfee+9t8vzEiRPXRETMmzev79y5c5sNBdeuXZsefPDBARENO7a3b8Qd17hm6IQJE1Y3F25GRNx7770Dum9U9AYCTgAAAICC2W+//VYPGTKkLiLi8ssvH1Ff3/RykU8++WTV7bff3uTO54cccsjyiIbHuH/2s5+NbK6viy66aPjKlSsrIiIOPvjgJndk7w6Na3KuWbOm2TzrmWeeqbz++uuHddug6BUEnAAAAAAF079//3zcccctjGiY2fi1r31t9MZ1amtr46STTtqutra2yfUz3/e+9y0dNWpUbUTEueeeu9Vdd931ih3SH3vssaqvfvWrW0dEVFdX13/kIx9Z1LnfZNPtuOOONRERTz/9dPUNN9zwilmpK1as6HPcccftWFNTI+/azPg/OAAAAEABfec733m+cYf0b3/721sfeeSRO/zxj38ccvvttw84//zzh++1116Tbr311qG77bbb6qau79evXz733HOfTinFqlWr+hx66KETP/OZz2x13XXXDbzxxhsHfuMb39jy9a9//S6Na3R+/etff26rrbbqsTU4Tz755EUREfX19XH00Ue/5ktf+tKYa665ZtBNN9004Lvf/e6o3XfffZe777578F577bWyp8ZIz7DoKgAAAEABjRgxom7atGmPvPWtb9154cKFVdOmTdti2rRpW5TXOfbYYxftv//+K84444ztm2rj+OOPX7ZgwYKnPvOZz2y3evXqPuecc87Yc845Z2x5nYqKivjsZz879/Of//yCLvw6rTrwwANXf/rTn553zjnnjF2+fHnF2WefPe7ss89+WZ3TTjvtxd12223NvffeO6iHhkkPMIMTAAAAoKD23nvvmgceeGD2hz70oRe22267tX379s3Dhg1b//rXv37FL3/5yyevvPLKp1pr4+Mf//ii//znPw+cfPLJ83fcccea/v3711dXV9dvs802a48//viFd95554Nnn332C93wdVr1gx/84PnLLrvssTe+8Y3LhwwZUldVVZVHjx5de9hhhy296qqrHj3//POf6+kx0v1Szrmnx0BJSmnriHg2IuKGYyLGtLgHWud621bTuq8zAAAAmjV40he6ra/axbUx58w5jYfb5Jw7FA7NmjXr/1VWVu5SXV09bMKECY+1VHfyt6bvsWjluqqO9NfbjRjUt3bWV978n54eB/Qmc+bMGV9TU7N0/fr1D06ePPltndGmR9QBAACAbrfFgL61PT2GrrY5fEfoDQScAAAAQLebfuaBD/X0GIBXB2twAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAAAIUl4AQAAAAACkvACQAAAAAUloATAAAAACgsAScAAAAAUFgCTgAAAACgsAScAAAAAEBhCTgBAAAAgMIScAIAAAAAhSXgBAAAAAAKq7KnBwAAAABsfh7/0m6T1q9YUNXT4+hKlYNH1e70vw881FXtH3PMMdtfddVVIyIiHn744fsnTJiwrrVrxo0bt/u8efP6jh07dt3cuXPvLz+XUprc3HX9+vXLw4YNW7/LLrusPuaYYxaffvrpiysrm4+VGvtp6lxVVVUeOnTo+p133nnNUUcdtfSjH/3owkGDBuXWxg7NEXACAAAA3W79igVVdcvnv6oDzleTtWvXphdffLHqxRdfHHrTTTcN/cUvfjH6uuuue3Ts2LHr29pWbW1tWrhwYdXChQur7rzzziE///nPR0+bNu3R3XfffW1XjJ1XPwEnAAAAABvsuuuuqy+88MInyz9bvnx5xb///e/+559//pZz5szpP3v27AHveMc7dpoxY8acltoaNWpU7d///vdHyj9bvXp1n9mzZ1dfeOGFo2bOnDnomWee6XfkkUe+5qGHHprdv39/MzlpMwEnAAAAABsMGDCgfsqUKTUbf37IIYesOu200xa/9rWvnfTkk09Wz5w5c9CNN9448E1vetOq5tqqqqrKTbV14IEHrj799NMX77vvvjvfc889g59++ul+//d//zfstNNOW9LZ34dXP5sMAQAAALBJBg8eXH/aaafNbzy+8847B7a3rYqKivjUpz71YuPx3Xff3e622LwJOAEAAADYZDvssMOGzYxqampSR9oaP378hnU3a2pq5FS0ix8OAAAAAJvsySef3LA7+rbbbtvqzu0teeyxx/p1VltsvgScAAAAAGySlStXpt/85jdbRkRUV1fXH3HEESva21Z9fX385Cc/GR0RkVKKd73rXUs7aZhsZmwyBAAAAMAGq1ev7jNjxozq8s9WrlzZp3EX9ccff7w6pRRf+cpX5o4dO3Z9S23V1tamjdtas2ZNnwcffLD6oosuGnn33XcPjog49dRTX2xqMyLYFAJOAAAAADaYPXv2gKlTp+7a3Pl99913+Wc/+9kX3vnOd7Y6e3PBggVVLbW12267rT7zzDNfOPnkk+2eTrt5RB0AAACATXbPPfcM/uUvfznqySefrOpoWw8++OCA3/zmNyNnzpxZ3XptaJqAEwAAAIANpkyZsjLnPKv8VVNTc+/DDz98/9lnn/3MoEGD6q699trh++yzz6T//Oc//Vpqa+zYses2bmvdunWznnjiif/89Kc/fXLMmDHr7rjjjiFvetObJk6fPn1gd31HXl0EnAAAAAAFlFJq8zU553b11a9fvzxhwoR1X/jCFxZMnz59TmVlZX7xxRerTjnllO3b2lZVVVXssMMOtR/96EcX33nnnQ8PHTq0bsWKFRUnn3zyjrW1te0aH5s3AScAAABAAVVXV9c3lleuXLlJGc+aNWv6REQMGDCgvrW6zdl7771rDjzwwGUREbNmzRp0//33tziLsyXbbbdd7dFHH70oImLu3Ll9p02bNqS9bbH5EnACAAAAFNAWW2yxYQfzuXPntroe5po1a9KKFSsqIyKGDh3a4u7nrdl555037Hh+77339u9IWxMnTtzQ1r///e8OtcXmScAJAAAAUEB77LHHmsbyzJkzB7RW/5///Gf/urq6iIjYZZdd1rRSvUXr16/f8Hz8unXr2v6s/Mvb2lCura3tUFtsngScAAAAAAV02GGHraioqMgREX/605+2qK9v+anz3/3udyMay4ceeujyjvR93333bdgQaPvtt1/XkbZmzpy5oa1tttmmQ22xeRJwAgAAABTQtttuu/6tb33rkoiIBx98cMCXv/zlMc3V/etf/zr40ksvHRXRsLP5CSecsLS9/V522WVDZ86cOSgiYtiwYesPOuigVe1t6/bbbx/w97//fYuIiKqqqnzkkUd2KHhl81TZ0wMAAAAAoH1++tOfPnfnnXcOWbx4ceV3vvOdcbfddtvgE044YdGkSZPWVlVV5aeffrrv3/72t6F/+tOfRtTV1aU+ffrEL3/5y6eqqppfsnP16tV9ZsyYUV3+2bp169IzzzzTd9q0aUMvv/zykY2ff+UrX5nbUlu1tbVp47bWr1+fnn/++arrrrtuyO9+97tRjY+4f+hD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XXXVVY/ts88+a8rrHH744Ss/9alPLfz1r389/KMf/egO69atS6effvoOEyZMqNl3333XNN1y93r++eerIiK22WabdcLN1g0dOrRuypQpNT09jt6iCJsMAQAAALCRRx55pO83vvGNbSIiBgwYUD99+vRHNg43y5122mlLfvrTnz4ZEVFbW5tOOumkHerre8cEv3Xr1vWJiKisrMw9PRaKR8AJAAAAUEDf/e53R69duzZFRHz605+et9tuu7W68fIHP/jBJQcddNCyiIhHH320/2WXXTZ04zrjxo3bPaU0+Zhjjtm+pbaOOeaY7VNKk8eNG/eyjW8ar288/tGPfrRV4+7nja9jjjlm+zlz5vRtPJ4xY8agiIgZM2YMKq+3cdubYt68eZWf+MQnxk6aNGmXwYMH79mvX7+9xo0bt/s73/nOHa699tpBzV3T2Of3v//9kU3V+e///u/tGuuceOKJ2zRV56yzztoypTS5srJy8uLFi+Vu3cQfNAAAAEDB1NfXx5/+9KcRERHV1dX1Z5xxxsJNvfbjH//4/MbyRRdd1GSYV1RXXXXVkAkTJux23nnnbfXwww/3X7lyZcW6devSvHnz+v7lL3/Z4i1vecuE97///dvW1dW97LqxY8eu32mnnWoiIm655ZYhTbV91113DW4s33nnnU3WufXWWwdHREycOHH1FltssWF6bGPoWx780nksagAAAABQMLNmzapetmxZRUTE3nvvvXLEiBF1rV3T6KijjlpeXV1dX1NT02fmzJlNzmjsiGuuueaRtWvXpqlTp+4aEfGe97xnwRlnnDG/vM7IkSPrxo4du/6ee+6ZHRFx8skn7zB79uwBu+666+oLL7zwycZ6/fr12+RH1u+8887+xx9//Pja2tpUWVmZ3//+9y9417vetXTw4MF1M2bMGPDjH/94q7lz5/a95JJLRg0cOLDuF7/4xcs26XnDG96w4vHHH6++++67X/Fn8uSTT1Y9++yz/RqPH3/88ep58+ZVjh07dsMO7/X19TFz5szBERH77rvvik0dNx0n4AQAAAAomJkzZw5oLL/2ta9d3ZZrKysrY+LEiWv+9a9/DVyyZEnlU089VbX99tvXdtbY9thjj5c9Kr/llluub25DnMbPBwwYUN/43t7Nc04//fTta2trU0VFRVx++eWPHX300csbzx144IGrTzzxxCX77LPPxMcff7z6/PPPH/OBD3xg0d57772hr4MOOmjFpZdeOmrhwoVV9913X/XrXve6DeeuueaawRER48ePr6mpqUnPPfdcv2uvvXZw+U70//znP/s3hs4HHXRQlwacy5Ytq5gxY0Z1a/UmTJiwbsiQIb1jodUuJOAEAAAAKJiFCxduyHTGjBnT5nBy5MiRG66ZP39+ZWcGnD3hpptuGvDAAw8MiIg47rjjFpSHm41GjRpV9/Of//ypww8/fGJ9fX385Cc/2fKSSy55pvH84YcfviGUnD59+uDygLPx0fN99tlnRU1NTbryyiv73XTTTS8LOG+44YbBERF9+vSJww47bGXXfNMNfQ2bOnXqsNbq/e1vf3vkiCOOeNXPJrUGJwAAAEDBrFixoqKxPHDgwDbP0GucMRkRsXTp0sLnQ9dee+2GNTFPP/30ZtcjPeyww1btuOOONRERt91228vW0dxmm23W77DDDjURLwWajRrX3zz44INXHHjggSvKP2vUeM2ECRNWjxw58mVLBsydO/f+nPOsnPOs9nw/WmYGJwAAAEDBDB48eEOAtnLlyjYHlKtWrdpwzbBhwwr/CPPs2bP7R0RUVVXlfffdt8VH9l/3uteteuKJJ6qfeeaZfjU1Nam6unrDOp9veMMbVjz55JMvW4fzqaeeqnrmmWf6pZTi8MMPX7FmzZoU8fJ1OEvrbw6K6J71N48++uhFf/rTn57q6n6KovAJPQAAAMDmZsSIERs2t3nhhReq2nr9woULN1yz5ZZbrm+pbhEsXbq0MiJi6NCh66uqWv7jGD16dG1ERM45FixYUFF+rnHtzMZ1OCNeWn9zp512qinttl679dZbr805x7XXXjs4IuLuu+/u3ziGgw46qEsfT+eVBJwAAAAABbP33nuvaSz/5z//GdBS3Y2tX78+5syZ0z8iYvjw4euLvv5muZRSq3Vybn5j9sMPP3xDODl9+vTBES9ff7PxXGP5pptuGhzx0vqbjbM82zd62kvACQAAAFAwe++995qhQ4fWRUTMnDlz0KJFiypau6bRX/7ylyE1NTV9Su28YrZhY0hYX9/yk+urV6/uNbnSsGHD1kc0zOSsrW05r50/f35VRMP3HDVq1MvWytxuu+1qt9tuu7URLwWb5etvNtbbeB3Oxro777zzmo3bpOv1mh8iAAAAAJumT58+cfTRRy+KiKipqenzk5/8ZOSmXvvTn/50y8byiSee+IoNeQYOHFgXEbFs2bIW9255/PHHqzd9xF1r1113XRMRUVtbm+68884WZ7T+61//GhgRse22264tX3+zUePszLvvvnvQU089VfX000/323hm5lve8pYVEQ1/BnPnzq2cMWNGt62/ySsJOAEAAAAK6HOf+9yLffv2zRER55xzztgHHnigX2vXnH/++cNvvvnmoRENa0oef/zxyzaus80226yNiHjggQcGNDeLc8aMGdWPPvpo/5b66tevX46IWLt2bevPjXfQ4Ycfvryx/Ktf/arZsPf6668f2BjM7r///subqtM4O3PhwoVVP/7xj0dFvLT+ZmOd8nU4v//9729Ztv6mgLMHCDgBAAAACmjixInrvvrVrz4X0fC4+GGHHbbzXXfd1WzoeMEFFwz/2Mc+tkNEw27jF1100ZMVFa98sn3//fdfERGxYMGCqvPPP3+Ljc8vWbKkzymnnLJDa+MbOXJkbUTEk08+2Wrw2lEHH3zw6t122211RMQVV1wx6uqrrx6ycZ1FixZVfOQjH9kuomEG7Cc+8Yn5TbXVODszIuI3v/nNlhEvX3+zUeNnjXVSSnHYYYc1GXCOGzdu95TS5JTS5LZ/O1rT4lRjAAAAAHqvr3zlK/OfeOKJfhdeeOGWzz//fN/9999/0pFHHrn4qKOOWrbjjjuuXbduXZo9e3b1FVdcMaJxvciqqqr8s5/97Mn99ttvdVNtnnbaaYt/8IMfjF25cmXFJz/5ye0fe+yxfm9729uWp5Ty3XffPfDnP//56Pnz5/edNGnS6oceeqjZx8EnT568cu7cuVvccMMNw77//e+PPOigg1b2798/R0QMHz68bty4cZ26e/uvfvWrpw466KBJtbW16bjjjht/0kknzX/HO96xbMiQIXUzZswY8OMf/3jMc8891y8i4oMf/OALU6ZMqWmqne2337522223XfvMM8/0W7lyZUXEy9ffbHTggQeuuPLKK0c21hk/fvyaMWPGdMv6m8uWLauYMWNGq0sEVFRUxF577dXk93w1EXACAAAAFNhvf/vbZydOnFjzv//7v+OWLVtW8ec//3nEn//85xFN1d1hhx1qzjvvvKff/va3v2JzoUZjx45d/5Of/OTpD37wgzuuXbs2nXPOOWPPOeecsY3n+/Xrl3/+858/+fe//31oSwHn5z//+Rf+8Y9/DF+3bl363Oc+t135uaOPPnrRn/70p6fa8XWbte+++6657LLLHjvxxBN3XLlyZcUFF1ww+oILLhi9cb33ve99C37605/ObamtN7zhDSueeeaZfhHN74xePtOz1H+3PZ5+ww03DJs6deqw1uoNGjSobsWKFf/q+hH1LI+oAwAAABTc5z73uQWPPfbY/d/+9ref2X///ZePGTNmXb9+/fKAAQPqt9lmm7VHHHHE4l/96ldPzJkzZ3ZL4WajU045Zcn06dMfevOb37x0+PDh66uqqvKYMWPWHX300Ytuv/32B0855ZQlrbWx7777rrnxxhsfOuKIIxZvtdVW6xrXC+1KRx999PI5c+Y88LGPfeyFiRMnrhk0aFBd375981ZbbbXuqKOOWvyPf/xjzsUXX/xMU4/ml2tchzPiletvln1e27heaYT1N3tSyrnLf1tsopTS1hHxbETEDcdEjBnYfX2/batp3dcZAAAAzRo86Qvd1lft4tqYc+acxsNtcs7PdaS9WbNm/b/Kyspdqqurh02YMOGxluq+8y/vnLSkZklVR/rr7YZXD6/98zv+/FBPjwN6kzlz5oyvqalZun79+gcnT578ts5o0yPqAAAAQLcT/AGdxSPqAAAAAEBhCTgBAAAAgMIScAIAAAAAhSXgBAAAAAAKS8AJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAA0KmOOeaY7VNKk8eNG7d7U+fHjRu3e0pp8jHHHLN9Nw+NV6HKnh4AAAAAsPl5/IgjJ9UtWVLV0+PoShXDh9fuNO1vD/X0OODVTsAJAAAAdLu6JUuq6hYtelUHnED38Ig6AAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAArmoIMOGp9SmrznnntObOr8tddeOyilNDmlNHnw4MF7rl+//hV1FixYUNGnT5/JKaXJZ5999qjGz+vq6uKvf/3r4A9+8INb77XXXhOHDx/+2srKyr0GDx6858SJE3f54Ac/uPWjjz7atwu/HrSJgBMAAACgYPbff/8VEREPPPDAgGXLlr0i37nhhhsGN5ZXrlxZceeddw7YuM4//vGPwTnniIg49NBDVzR+/tnPfnbsO97xjp1//etfj77vvvsGLl26tLKuri6tXLmyYs6cOf1//etfj95jjz12vfjii4d1xXeDthJwAgAAABTMm970phUREXV1dWn69OmDNj5/++23Dy4/vv766wdvXOemm24aHBExbNiw9ZMnT65p/Hz9+vUxatSo2ve+970Lfvaznz153XXXPXzbbbc9dMkllzz+oQ996IUBAwbU19TU9PngBz+447333lvd+d8O2kbACQAAAFAw+++//+qBAwfWR0TceOONLwsv165dm+67776BERFvetOblkZE3Hbbba8IOO+8887BERFTp05d2afPSxHRRz/60YXPPvvs/ZdccskzH/nIRxa/+c1vXrXffvutfu9737v0F7/4xdz//Oc/D2y55Za1a9euTWedddZWXfctYdMIOAEAAAAKprKyMvbaa6+VERF33HHHy8LLW265ZUBNTU2fQYMG1X3qU5+aHxExc+bMQeXrcC5YsKDi0Ucf7R8RccABB6wov37ChAnr+vXrl5vre6eddqr92Mc+9kJExA033DC0vr6+074XtIeAEwAAAKCAGtfhnD179svW4Wxcf3Pvvfdeeeihh66srq6u33gdzmuvvXZwYzBZvv5mUxYvXtzn4Ycf7jtz5szqGTNmVM+YMaN6wIAB9REN63s+/PDDNhyiRwk4AQAAAAqouXU4Gx9H33///VdUV1fnPffcc1XEy9fhbFx/c+jQoXVTpkxZs3HbjzzySN8TTzxxm3Hjxu0+YsSI102aNGn3KVOm7Dp16tRdp06duutnPvOZ7Rrrvvjii5Vd9y2hdYUIOFNKe6WUvpRSuial9GxKaW1KaWVK6ZGU0kUppf07qZ+vp5TyJr4O6ow+AQAAANrjgAMOWNU4k7JxHc7S+puDIl6ambnffvutiHj5OpyN629OmTJlRfn6mxERV1xxxZDXvva1u1588cVbzps3r9XZmatXry5EvsSrV6//AaaUbomIWRHx7Yh4S0RsHRF9I2JgRLwmIk6MiFtTShenlEyJBgAAADYLVVVV8brXve5l63DeeuutG9bf3HfffVdHRBxyyCErIl5ah3PhwoUVjzzySJPrb77wwgsVp5566o41NTV9BgwYUH/mmWfOu/766x+eO3fuv9esWXNvznlWznnWX/7yl0car8k5p+76ztCU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Rwbai1100UVbfvnLX35x3Lhx63t6LJtKwAkAAABQcO95z3sWnHHGGfNbqrPDDju8qmcrPvDAA/2OOuqonVeuXFkREfGmN71p6dFHH71k0qRJa/v161c/f/78qvvuu6//jTfeOOTuu+8e3N5+cs6zOm/Uvc+aNWv6/M///M+YCy644LmeHsumEnACAAAAFNyWW265fsqUKTU9PY6e9PnPf35cY7j54x//+Kkzzjhj48fx17zrXe9aftZZZ704b968yt/97nfDe2CYvdqwYcPWL126tPL//u//tvzqV7/6YlEe4bfJEAAAAACFtn79+rjxxhuHRkTsuuuuq5sIN19m7Nix67/4xS8u6J7RFcfHPvaxFyIi1q5dm772ta+N6enxbCoBJwAAAMBm5MwzzxzbuBN4RMSiRYsqPvvZz241adKkXQYPHrxnSmnyueeeO2Lj666++uoh73jHO3YYN27c7tXV1XsNGjTodRMmTNjlQx/60NZPP/30Jq2netNNNw04/vjjt9t+++13GzBgwOv69+//uh122GHX973vfdvef//9/dr7nebNm1dZU1PTJyJihx126NKZrC3ton7uueeOaDw/Z86cvmvWrElf+9rXRu+yyy6TBg8evOegQYNet8cee0w8++yzR61f3/uWuHz961+/+uCDD14WEfGHP/xh1GOPPVaIdXI9og4AAACwmbr//vv7veUtb9m5iU15Nli+fHmfY489dofp06cPK/987dq16ZFHHun/yCOP9L/kkktGXXDBBU+ccMIJy5pqo7a2Nk4++eRtL7300lEbn3vqqaeqn3rqqerLLrts5He+851nPv3pTy9s6/fo169fbiw/+uij/dt6fVdYuHBhxTHHHLPT7NmzB5R/fv/99w+8//77B/7xj3/c4vrrr390+PDh9e1pf86cOX0nTpy4e0TElClTVt5zzz1zOmPc3/rWt+but99+Q2tra9PXvva1sb///e+f7ox2u5IZnAAAAACbqWOPPXan+fPnV5144onzr7766kduvfXWh371q189scsuu9RENDz6fdhhh42fPn36sJRSHHHEEYt/+9vfPnHrrbc+dP311z/8zW9+89mtttpq3erVq/uceOKJO912220Dmurnv//7v7dvDDcPOOCAZT//+c+fvPnmmx+65ZZbHjrnnHOeHj9+fM369evTZz7zme1+//vfD23r9xg9enTd2LFj10VEzJkzp/+Xv/zlMXV1dR35o+mwD33oQ9vPnj17wNvf/vYll19++aO33nrrQ7/85S+f3G233VZHRNx7772DjjnmmB17dJBN2Hfffde8+c1vXhoRceWVV454+OGHmw2/ewszOAEAAAAKbv78+ZUzZsyobu782LFj148bN+4Vz0Q/9thj/f/4xz8++q53vWt542f777//6sbyN7/5zdF333334MrKynzppZc+dtxxxy0vv/6QQw5Zdfrppy/ad999Jz722GPVn/zkJ7eZNWvWy2YSXnTRRcOuvvrqERER55xzztNnnnnmy2ZoHnDAAas/9KEPLTrkkENe889//nPwZz/72W3/67/+6/6qqrY9HX3qqafOP+uss7aOiPjf//3fcRdddNGoQw89dOk+++yzav/991+16667rm1Tgx30wAMPDPjCF74w9+yzz36h8bP9999/9SmnnLL4TW9602tuv/32ITfddNPQyy67bOjxxx/f5MzXnvKtb31r7vXXXz9s/fr16atf/erYK6+88qmeHlNLzOAEAAAAKLhLL7101NSpU3dt7nXOOeds2dR1xxxzzMLycLPc2rVr0y9+8YvREREnnnji/I3DzUajRo2q+/a3v/1sRMOsxAceeOBla2n+4Ac/2Coi4s1vfvPSjcPNRgMGDMg/+9nPnomImDdvXt+///3vgzf1uzf62te+9uJ//dd/bWh/3rx5fS+++OItP/zhD++w22677TZy5MjXHnHEETv+/ve/H1pf366nwttk5513XvOtb33rhY0/r6qqiosuuuipysrKHBHxy1/+8hWP7fe0KVOm1Lz1rW9dEhFx9dVXj+jI+qjdQcAJAAAAsJl673vfu7i5c7fccsuABQsWVEVEnHDCCUtaauctb3nLyrLrBjaWn3zyyarGNSiPPfbYZvuKiNhrr71qhg0btj4i4o477hi0ad/gJRUVFXHFFVc8feWVVz667777Lu/T5+Wx16JFiyr//ve/D3/Pe94zfo899pg0e/bsLg3tTjjhhEUVFRVNnttpp51q99tvv+UREXfffffg9mw4NGHChHU551k551mdtf5muW9+85vzKioqoq6uLr7yla+8YkOl3sQj6gAAAAAF96lPfer5H/7wh/Paet2UKVPWNHfu7rvv3hBUHnrooRM3tc0XXnhhw7Pld9xxx4Y2Tj/99B1PP/30NrfRVscee+zyY489dvmCBQsqrr/++kEzZswY+K9//WvAjBkzBq1cubIiImL27NkDDj744AkzZsx4aLvttqttb18tecMb3rCqpfOTJ09edfPNNw+tqanp89BDD/Xbfffdu/UR+ta87nWvqznyyCMX/fnPfx4xbdq0Le69997n99prry7dob69zOAEAAAA2EyNGjWq2amD8+fPb1fIuHr16g1504svvtiuyXVr1qzpcGY1atSouhNOOGHZD3/4w3k33njjY/Pnz//3j3/846eGDBlSFxGxYMGCqs997nNdNjNxq622ajE4HT169IbzCxYs6JWTEL/1rW89X1FRkevr6+OrX/1qr53F2Sv/8AAAAADoepWVzUdD5buQT5s2bc6WW265Sc9Rjx07dkO9urq61Fj+xS9+8eTkyZNXN33Vy40cObLTt0Dv379/PuOMMxZtvfXWtccee+xrIiL+8Y9/DK+rq3u6uUfJOyKl1OL5nHPLFXqBXXfdde3RRx+96Morrxx5zTXXDL/77rv7v/71r2921m9PEXACAAAA8AojRozYEFT269cvT5kypc2PJ48cOXJDGymlaE8bne2YY45ZPmbMmHUvvPBC3+XLl1e8+OKLleWhbGeZN29e1R577NHsY+fz58/fkMu1NJO2p33zm998/uqrrx6xfv369JWvfGXs9OnTH+/pMW3MI+oAAAAAvEL5bMtrrrlmSHvamDp16oY2pk+f3q42usKWW2654fHwPn365K7o45///OfAls7fe++9AyMiqqur6ydNmtSr1t8sN2HChHXHHXfcwoiI66+/ftjtt98+oKfHtDEBJwAAAACvcNhhh60cOnRoXUTExRdfPGrx4sVtzpF22223tTvttFNNRMS0adO2ePTRR/t29jjbasWKFX0ef/zx/hERgwYNqttyyy07/XH4iIjLL798RH19fZPnnnzyyarbb799SETE61//+hUtLRXQG5x11lnP9+3bN0dEr1yLU8AJAAAAwCsMGDAgf/jDH34hImLhwoVV73rXu3Zcvnx5s1nSkiVL+vzv//7vqI0//+xnP/t8RMTatWvTu971rp3mzZvXbJq3Zs2a9J3vfGfU6tWr27Q+5bJly/rsscceE//whz8MLV87dGN1dXXxgQ98YJtVq1b1iYg45JBDlvXp0zXx2MMPP9z/a1/72uiNP6+trY2TTjppu9ra2hQRcfrppy9oT/tz5szpm1KanFKaPHXq1AkdHW9Ldtppp9oTTjhhQUTEzTffPPTRRx+t7sr+2qp3x8MAAAAA9JhvfvObL9xyyy1D7rrrrsG33nrr0IkTJ+564oknLnjjG9+4aosttli/fPnyigcffLD6lltuGTx9+vRh/fr1q//Sl770ssDu9NNPX3zdddcNueqqq0bMnj17wK677rrr+973vgUHH3zwytGjR9euXLmyzyOPPFJ9++23D/rHP/4xfNmyZRUf/vCHF0VEmx4dv//++we++93vHv/JT36y9vDDD1+6zz77rNxxxx3XDRkypG7x4sUVs2bNGvB///d/Ix999NENsze/+93vzu3EP66X2XXXXVd/+9vf3vrf//73gBNPPHHRmDFj1j/00EP9zjvvvNH333//wIiIgw8+eNkJJ5ywrKvG0JnOOuus5y+//PKRNTU1fZYuXdqrMsVeNRgAAAAAeo/Kysq47rrrHn3/+9+/3dVXXz3i+eef7/ud73xnXHP1t9hiiyY3y7n88suf+vjHP17761//eszSpUsrzzvvvK3OO++8Jtvo379/fUVFRZvCzaqqqjxy5MjahQsXVs2fP7/qkksuGXXJJZe8YjZpo+22227tJZdc8sSECRPWtaWftvjVr3711Gmnnbb9tGnTtpg2bdoWG5/fa6+9Vv7pT396oqv672zbbrvt+ve9730Lfv3rX79iVmpP84g6AAAAAM0aNGhQvuqqq5669dZbH3rPe96zYPz48TWDBg2qq6ioyIMHD66bOHHimuOOO27hhRde+Pijjz76QFNtVFZWxi9+8Yu599577wOnnXbai5MmTVo9ZMiQuoqKihg4cGD9+PHja4466qjF55133lNz587996BBg9oUcA4YMCC/8MIL/7nuuuse/vSnPz3vgAMOWLb11luvLYWlMWjQoLoddtih5u1vf/uSX/7yl08+/PDDs/fff//VrbfcfiNHjqybOXPmw1/84hfnTpw4cc3AgQPrBwwYUL/bbrut/va3v/3M3XffPWf48OFNL9LZS339619/oX///r1uzCnnLtkoinZIKW0dEc9GRNxwTMSYFvfa6lxv22pa93UGAABAswZP+kK39VW7uDbmnDmn8XCbnPNzHWlv1qxZ/6+ysnKX6urqYRMmTHispbp/+Mbdk9asXFfV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\n", + "image/png": "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8l9yzst7czAAAAAAwLqzIQScnygrd/nxdAAAAIANyfnnnz8ipTQ5pTR55syZfXt7PL1typQpE1NKk6dMmTKxt8dC91jv1+BsTUppUET8v9LhCxFxaze1e31EvC0ihkXEooh4IiL+ERG/zDm/1oV2N2+jyujOtg0AAABFcvC5t22/cPnqqt4eR0/bZEDf2htO3+/J3h4HbMgKHXBGxFHx+g7rf8g5d9c28weXlUdFxH6l11kppeNyzld3st2XujwyAAAA2AAsXL66akHNhh9wAj2v6AFndz+e/mhE/C0i7o+I2RFRFRETo3ETo0OicUbnlSmlw3PO13ZDfwAAAACsQ/fff//M3h4D3auwAWfpce/9S4f35pyf6mKTP8k5f6OZz++LiEtTSidHxIURURERv04pbZ1zXtnBPsa3cX50REzrYJsAAAAAsNEqbMAZER+L1zdJ+l1XG8s5L2rj/C9TSntExAkRMTYaH4+/rIN9vNza+ZRSR5oDAAAAgI1ekXdR/3jpfVVEXLGO+vxlWXm/ddQnAAAAQIvmzZtXceqpp47bcsstd6yurt5tk0022WWvvfba7re//e3w9rYxc+bMvieccML4bbbZZseBAwfu2r9//1232GKLt370ox/d4v777+/f2rVNO7SffvrpYyMi/v73vw8+6KCDtt500013rq6u3m2rrbba8cwzzxyzZMmSN+RQV1xxxdD99ttvm6Z6W2+99Y7//u//PnrlypUtzgBbuXJl+uMf/zj0E5/4xFve+ta3bj9kyJC3VVZW7jZs2LC37bzzzpNOP/30sa+88kqrE/pa20V95syZfZu+z/nnnz8iIuKvf/3rkHe9613bjBw5cpe+ffvuNm7cuJ2OOeaYtzzzzDPWkF1PFHIGZ0pp94jYoXQ4tSs7m3fQE2XlceuoTwAAAIBmPfjgg9Xvfve7t5s3b96asG3VqlWV99xzz+B77rln8LXXXrtgn332WdpaGz/72c9GnHHGGVusXr36DcHiiy++2O/FF1/s96c//WnkmWeeOeu73/3uq22N5z/+4z9Gf+973xtXvg/0c889V/2jH/1o7E033TT01ltvfWrQoEENJ5xwwvhLLrlk0/Jrn3322ervfe974+66667BN998878qK98cWx1zzDFbXHXVVSPW/nzx4sUVjz766MBHH3104MUXXzzqiiuuePqQQw5Z1tZ42/KZz3xm3AUXXDC6/LPZs2f3/eMf/zjq2muvHX7jjTfO3G233Tq6hCHdrJABZ7xxc6EuP57eAd21SzsAAABAlyxcuLDP+973vm2bws33ve99r33iE5+YP2bMmLonnnii+qc//elmf/nLX0bMmDGjxRmYl19++dDTTjttQs45BgwY0HDyySfPOfTQQ5dUVlbmO+64Y9B55503etGiRZXf+973xg0bNqz+rLPOmtdSWzfeeOOQRx99dODb3va2ZaeccsrcHXbYYeXcuXMrzz///E1vv/32oQ899NDAr371q6M32WST+ksuuWTTfffdd/EnP/nJ+VtvvfXqF154oeqHP/zhmEceeWTgHXfcMeTcc88d9eUvf/lNfdXV1aXNN9981Xve855FU6ZMWbbllluurqqqys8++2zfG264Ycif//znkYsWLao8+uijt3n00UcfHzduXF1n/3wvueSSUQ899NDAPfbYo+aEE06Yt8MOO6xcuHBhxe9+97sRf/3rX0e89tprlZ/85CcnPPzwwzM62wfdI5Un6kWQUqqKiFkRMSoi5kXE2Jxzp3+sHex793h9E6Bf55w/1c3tbx4RL0VE3HRUxOiB3dl66947Zuq66wwAAIAWDd7+7HXWV+3C2ph5+poNpce3tXdEW6ZPn/5/lZWVO1RXVw+bOHHi063VnfztG3ZeULN6g3/Ed8SgvrXTv3rwP3ui7ZNPPnnziy66aLOIiLPPPvtNMyxXrVqVDjzwwG3uuuuuIU2fzZgx49GJEyeubjo/fvz4nebNm1c1YMCAhhtuuGHGXnvttaK8jaeeeqrv3nvvPWnevHlV1dXVDc8+++yjY8aMeUMOk1Ka3FQ+9NBDX5s6deqz5bMv6+rqYvfdd5/0yCOPDBw4cGBDXV1dOuaYY+b95je/eam8naVLl/aZNGnSjrNnz+673XbbrZg5c2b5k7QREfH444/323777Vf16dP8qov3339//wMOOGDS8uXL+5x22mmvnHfeebPXrjNlypSJ06ZNG7THHnvUrL2j+syZM/tOmjRpp6bjo48+ev5ll132wtr9HX300VtcccUVIyMi7rzzzife+c53vuHPjZbNnDlzm5UrVy6qq6t7YvLkye/tjjaLuAbne6Ix3IyI+OO6CjdLTi4r37YO+wUAAABYY+XKlenyyy8fGRGx3XbbrfjOd77zpsfH+/Xrl3/3u989X1lZ2ezstt///vfDmmZ/fuELX3hl7XCz1Pbqb37zmy+X+uxzwQUXvOnx8CbV1dUNv/vd715Y+9HyysrKOP744+dFRCxbtqzP8OHDay+44II3hemDBw9u+NCHPrQgIuKpp57qv2DBgoq16+y4444thpsREVOmTFlx9NFHz4+IuPbaa4e1WLEdRo0aVfvb3/72xeb6+/d///c1f9633HLL4K70Q9cVMeAsfzz90vZckFI6LqWUS69vNHN+p5TSNm20cVJEnFg6fDUi/trO8QIAAAB0qzvvvHPAkiVLKiIiPvKRjyxoKfTbeuuta/fee+8lzZ276aabhkREpJTiM5/5zPyW+jr++ONfGzRoUH1ExC233DKkpXrvfOc7l2y22Wb1zZ2bPHnymvD0Pe95z6J+/fo1G7q+7W1vW95UnjlzZt+W+moyb968iscff7zfAw88UD1t2rTqadOmVQ8bNqwuIuKZZ57pv2rVqhY3LGrLe9/73tf69+/f7Dh32WWXVQMGDGiIiHj22Wf7dbYPukeh1uBMKQ2PiMNKh4/lnB/spqYnR8SvU0q3RMS1EfFoRCyIxj+fSRFxTEQcUqpbHxEn5Zy7vFAtAAAAQGc8/PDDa9bVfMc73tFqRjF58uRlt95669C1P29am3PcuHGrxo4d2+ITstXV1XmHHXZYfv/99w9+6qmnWlzPc5tttlnV0rlNNtlkTfvbbbddi5vyDB8+fE1A2hTgru3+++/v/8Mf/nCzW2+9dcj8+fNbXOagoaEh5s+fX9HZdTgnTZrU6uZBQ4YMqVu+fHnfmpqaIk4g3KAUKuCMiA9HRFMq3q7Zmx1QEREHlV4tWRARJ+Sc/97NfQMAAAC028KFC9dkOmPGjKltre5mm23W7PlFixZVRESMGDGizQBw0003rY2IWLJkSYtZUtOMxuZUVFS0q175TNS6uro3zb788Y9/PPLMM898S319fbtmZi5btqzT4WNr44x4faztHQs9p2gJ88dL7/URcVk3tvt/EXFCRPw6IqZHxMsRsSIiVkbE7Gic1fn5iNgq53x1N/YLAAAA0CUpdS1f6+r168pDDz1U3RRubrLJJnVf+9rXXr7jjjuefPXVVx9euXLlgznn6Tnn6T/+8Y+fb7qmaJtr0zmFmsGZc35nJ6+7JCIuaeX83Ij4bekFAAAAsF4bPnz4mlmXs2fPrtp5551bfDx8zpw5zT7GPWzYsPqIiPnz57eZD82dO7cqovGx7I6Ptnv86le/GlFfX58qKirixhtvnLnrrrs2+wh5+exWNg5Fm8EJAAAAsNF729vetmbTnnvvvXdga3UffPDBZs9PmjRpRUTErFmz+s2ePbvFUHDVqlXpiSeeGBDRuGN750bcdU1rhk6cOHF5S+FmRMvflw2XgBMAAACgYPbee+/lQ4YMqY+IuOKKK0Y0NDS/XORzzz1Xdeeddza78/mBBx64JKLxMe4LLrhgREt9XXLJJcNramoqIiIOOOCAZndkXxea1uRcvnx5i3nWCy+8UHXTTTe9aUMlNmwCTgAAAICC6d+/f/7Qhz40P6JxZuPXv/71zdauU1tbG8cdd9wWtbW1zS6y+bGPfWzRqFGjaiMizjvvvDH333//m3ZIf/rpp6u+9rWvbR4RUV1d3XDqqacu6N5v0n5bbbXVyoiIF198sfqGG2540yzNpUuX9vnQhz605cqVK+VdGxn/wAEAAAAK6Hvf+94rTTukf+c739n88MMP3/Ivf/nLkDvvvHPARRddNHy33Xbb/vbbbx+64447Lm/u+urq6nz++ee/kFKKmpqaine9612TzjzzzDE33HDDwJtvvnngN7/5zU3f/va37zBv3ryqiIhvfOMbL48ZM6bX1uA8/vjjF0RENDQ0xFFHHbXt2WefPfraa68ddMsttwz4/ve/P2qnnXba4f777x+822671fTWGOkdFl0FAAAAKKARI0bUT5069an3vOc9282fP79q6tSpm0ydOnWT8jpHHXXUgn333Xfp5z//+QnNtXH00Ucvnjdv3vNf+tKXtli2bFmfH/3oR2N/9KMfjS2vU1FREWeeeeass846a14Pfp027bfffsvPOOOM2eecc87YpUuXVnz/+98f9/3vf/8NdT71qU/Neetb37riwQcfHNRLw6QXmMEJAAAAUFC77777yscee+zxU0455dUttthiVd++ffOwYcPq3v72ty+98MILn/vLX/7yfFttfO5zn1vwz3/+87Hjjz9+7lZbbbWyf//+DdXV1Q3jx49fdfTRR8+/++67n/jud7/76jr4Om360Y9+9Mrll1/+9Dvf+c4lQ4YMqa+qqsqbbbZZ7SGHHLLoqquu+tdFF130cm+PkXUv5Zx7ewyUpJQ2j4iXIiJuOipi9Drc8+u9Y6auu84AAABo0eDtz15nfdUurI2Zp89sOhyfc+5SODR9+vT/q6ys3KG6unrYxIkTn26t7uRv37DzgprVVV3prwhGDOpbO/2rB/+zt8cB64uZM2dus3LlykV1dXVPTJ48+b3d0aZH1AEAAIB1bpMBfWt7ewzrwsbyPaE3CTgBAACAde6G0/d7srfHAGwYrMEJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAAAIUl4AQAAAAACkvACQAAAAAUloATAAAAACisyt4eAAAAALDxeeY/3rp93dJ5Vb09jp5WOXhU7db//diTPdH2UUcdNeGqq64aERExY8aMRydOnLi6rWvGjRu30+zZs/uOHTt29axZsx4tP5dSmtzSdf369cvDhg2r22GHHZYfeeSRr5188skLqqpa/sfX1E9z56qqqvLQoUPrtt122xWHH374os9+9rMLBg8e3NDW2KElAk4AAABgnatbOq+qfsncDT7g3FCsWrUqzZkzp2rOnDlDb7nllqG/+MUvNv3HP/7xr/Hjx9d1tK3a2to0f/78qvnz51fdc889Qy644ILNpk6d+q9ddtllVU+MnQ2fgBMAAACANXbcccflF1988XPlny1ZsqTikUce6X/RRRdtOnPmzP5PPPHEgCOOOGLr6dOnz2ytrVGjRtX+7//+71Plny1fvrzP448/Xn3xxRePeuCBBwa9/PLL/Q4//PBtZ86c+Xj//v1zT3wnNmwCTgAAAADWGDBgQMMee+yxcu3PDzzwwGUnnXTSgp133nmH5557rvrBBx8cdOONNw486KCDlrXUVlVVVW6urf3222/5ySefvHCvvfba7v777x/80ksv9bv00kuHn3zyyQu7+/uw4bPJEAAAAADtMmjQoHziiSfObTq+9957B3a2rYqKivjCF74wp+l42rRpA7o6PjZOAk4AAAAA2m2rrbZas5nRqlWrUlfa2nbbbdesu7lq1So5FZ3ihwMAAABAuz3//PNrdkd/y1ve0ubO7a155pln+nVXW2y8BJwAAAAAtEtNTU369a9/vWlERP/+/RsOP/zwJZ1tq6GhIc4777zNIiJSSnHkkUcu6qZhspGxyRAAAAAAayxfvrzPtGnTqss/q6mp6fPwww8P+NWvfjXqmWeeqU4pxde//vWXR48eXd9aW7W1tWnttlasWNHniSeeqL7kkktG3nfffYMjIk455ZRXJ0+e/KbNiKA9BJwAAAAArPH4448PmDJlyo4tnX/nO9+55Kyzznr18MMPX9pWW/Pmzatqra2ddtpp2Ze+9KVXP/GJTyzq5HDBI+oAAAAAtN999903+Kc//emmTz/9dFVX23r88ccHXnjhhaPuv//+/t0xNjZOAk4AAAAA1thjjz1qcs7Ty18rV658cMaMGY9+97vffXHQoEH1N9xww7C99tpr+4ceeqi6tbbGjh27eu22Vq9ePf3ZZ5/9589+9rPnRo8evfqee+4ZcuCBB0687rrrBq2r78iGRcAJAAAAUEAppTXlnHO7rmlvvbX169cvT5w4cfXZZ58974YbbphZWVmZ582bV3XiiSdu0dG2qqqqYsstt6z9zGc+s/Duu++eMXTo0PqampqKT37yk1vW1tZ2anxs3AScAAAAAAVUXV3d0FRetmxZuzKeFStW9ImIGDBgQENbdVuy++67r9xvv/0WR0Q8+OCDg/75z3/262xbW2yxRe2RRx65ICJi9uzZff/+978P6WxbbLwEnAAAAAAFtMkmm9Q1lWfNmtXmepgrVqxIS5curYyIGDp0aF1b9Vuz3Xbbrdnx/MEHH+zS+pmTJk1a09YjjzxiLU46TMAJAAAAUEA777zziqbytGnTBrRV/9577+1fX18fERE77LDDijaqt6qurm7N8/G1tbWptbrtaKvZdqG9BJwAAAAABXTooYcuraioyBERV1111SYNDa0/df673/1uRFP5oIMOWtKVvh9++OGBTeUJEyas7kpb06dPX9PW+PHju9QWGycBJwAAAEABjR8/vu4973nPaxERTzzxxICvfOUro1uqe8011wy+7LLLRkU07mz+0Y9+dFFn+7388suHTps2bVBExLBhw+r233//ZZ1t68477xwwderUTSIiqqqq8uGHH96l4JWNU2VvDwAAAACAzvnZz3728t133z1k4cKFld/73vfG3XHHHYM/8pGPLNh+++1XVVVV5RdeeKHv3//+96FXXnnliPr6+tSnT5+48MILn6+sbDkSWr58eZ9p06ZVl3+2evXq9OKLL/adOnXq0CuuuGJk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OXJk7eWXX/78+jjLdH1y4IEHLvrud7/b5ibbw4YNa1gX4+ltfi0AAAAABfW9731vVFO4udlmm9VeddVV/9prr71WlNc59NBDa774xS/Ov/DCCzc57bTTJqxevTqdcsopW06cOHHl2nV7yyuvvFIVETF+/PjVws22DR06tH6PPfZY2dvjWF8UYZMhAAAAANby1FNP9f3GN74xPiKif//+Dddff/3M1gLLU045ZeF55533fETE6tWr03HHHbdlQ8P6McFv9erVfSIiKisrc2+PheIRcAIAAAAU0Pe///3NVq1alSIiTj/99Nk777xzmxsvf/rTn164zz77LImI+Ne//tX/8ssvH7p2nXHjxu2UUpp81FFHTWitraOOOmpCSmnyuHHj3rDxTdP1Tcc//vGPxzTtft70OuqooybMnDmzb9PxtGnTBkVETJs2bVB5vbXbbo/Zs2dXnnbaaWO33377HQYPHvy2fv367TZu3LidjjjiiC2vu+66QS1d09TnD37wg1Gtfd/ynd3X9h//8R+jU0qTKysrd1u8eLHcbR3xBw0AAABQMA0NDXHllVeOiIiorq5u+OIXvzi/vdd+/vOfn9NUvuSSS0b2xPh6y1VXXTVk4sSJb/3pT386ZsaMGf1ramoqVq9enWbPnt336quv3uTd7373xE984hNvqa+vf8N1Y8eOrdt6661XRkTcfvvtg5tr+957713z+d13391snTvvvHNwRMSOO+64fOjQoWumxzaFvuXBL93HogYAAAAABTN9+vTqxYsXV0RETJ48uWbEiBH1bV3T5AMf+MCS6urqhpUrV/Z54IEHmp3R2BXXXnvtU6tWrUpTpkzZMSLimGOOmff5z39+bnmdkSNH1o8dO7bu/vvvfzwi4vjjj9/y8ccfH7Djjjsuv/jii59rqtevX792P7J+99139z/66KO3qa2tTZWVlfnYY4+de8QRRywePHhw/bRp0wb85Cc/GTNr1qy+v//970cNHDiw/he/+MUbNunZc889lz7zzDPV991335v+TJ566qm+s2fP7lt23H/OnDkVm2222Zo/99ra2njwwQcHRUTstddeS9s7brpOwAkAAABQMA888MCApvIuu+yyvCPXVlZWxsSJE1c88sgjA1977bXK559/vmrChAm13TW2tR+V33TTTeta2hCn6fMBAwY0NL13dvOck08+eUJtbW2qqKiIK6644ukjjzxySdO5/fbbb/mxxx772p577jnpmWeeqb7oootGn3DCCQt23333lWV1lv7hD38YNX/+/KqHHnqoetddd11z7vrrrx8cEbHNNtusXLFiRZ9Zs2b1vf766wd//OMfX9RU58477xywbNmyPhERBxxwQI8GnIsXL66YNm1adVv1Jk6cuHrIkCHrx0KrPUjACQAAAFAw8+fPX5PpjB49usPh5MiRI9dcM3fu3MruDDh7wy233DLgscceGxAR8eEPf3heebjZZNSoUfUXXHDB84ceeuikhoaGOO+88zb9/e9//2LT+UMPPXRNKHnDDTcMLg84b7vttsERjbM8V6xY0ecvf/nLiFtuueUNAedNN900OCKioqIiDj744Joe+aKv9zVsypQpw9qq9/e///2pww47bIOfTWoNTgAAAICCWbp0aUVTedCgQR2eoTdw4MA11yxatKjw+dB11103pKl88sknt7ge6SGHHLJsq622WhkRcccddwwpPzd+/Pi6Lbfcstl1OO+9995BEY0zM/fbb7+lEW9eh7Np/c3tt99++fDhw9/wz2TWrFmP5pyn55ynd+b70TozOAEAAAAKZvDgwWvWfqypqelwQNn0KHVExLBhwwr/CPPjjz/ePyKiqqoq77nnnq0+sr/rrrsue/bZZ6tffPHFfitXrkzV1dVr1vncc889lz733HNvWIfz6aefrnr55Zf7pZTi0EMPXdr0Z1e+DmddXV1Mnz59na2/eeSRRy648sorn+/pfoqi8Ak9AAAAwMZm5MiRdU3lV199taqj18+fP3/NNZtuumlda3WLYNGiRZUREUOHDq2rqmr9j2OzzTarjYjIOce8efMqys81zc5sWocz4vX1N7feeuuVY8eOrdt2221Xjxs3bnXOec25u+++e0BNTU1FRM+vv8mbCTgBAAAACmby5Mkrmsr//Oc/B7RWd211dXUxc+bM/hERw4cPryv6+pvlUkpduv7d7373G9bhjHj9cfU999xzzbl3vOMdSyMibrnllsER63b9Td5MwAkAAABQMLvvvvuKoUOH1kdEPPDAA4MWLFhQ0dY1Ta6++uohK1eu7BMRsccee7wpjGsKCRsaWn9yffny5etNrjRs2LC6iMaZnLW1ree1c+bMqYpo/J6jRo2qLz/3lre8pW6LLbZYFfF6sHnPPfcMjnjjzMy11+G84447BkdETJo0afmIESPe0CY9b735IQIAAADQPn369ImjjjpqQUTEypUr+5x33nkj23vtz372s02byscee+ybNuQZOHBgfUTE4sWLW9275dlnn61u/4h71o477rgiIqK2tjbdc889rc5offjhhwdGRLzlLW9ZVb7+ZpOmNTTvu+++Qc8991zViy++uGb9zaY6TeWnnnqq/yuvvFL5wAMPDIp44yxP1h0BJwAAAEABffnLX57Tt2/fHBFxzjnnjH3sscf6tXXNRRddNPzWW28dGhGx7bbbrjj66KMXr11n/PjxqyIiHnvssQEtzeJ84IEHqp966qn+rfXVr1+/HBGxatWqrj033g6HHnrokqbyRRdd1GLYe+ONNw585plnqiMi9tlnnyXN1dl3333XrMN53nnnjYp4ff3Npjrbbbfd6rFjx67OOcf3v//9TZt2tbf+Zu8QcAIAAAAU0MSJE1d//etffzmi8XHxQw45ZLt77rmnxdDx17/+9fDPfvazW0Y07jZ+ySWXPNenz5ujoX322WdpRMS8efOqLrrook3WPv/aa6/1OeGEEya0Nb6RI0fWRkQ899xzbQavXXXAAQcs33HHHZdHRFx++eUjr7766sFr11mwYEHFqaeeukVE4wzY0047bW5zbZWvw/mb3/xm04jmZ2Y2rcPZVKdPnz5xyCGHNLv+5rhx43ZKKU1OKU3u+LejLa1ONQYAAABg/fWVr3xl7jPPPNPv4osv3vSVV17pu88++2x/+OGHL3z/+9+/eKuttlq1evXq9Pjjj1f/6U9/GtG0lmTfvn3zhRde+Nxee+21ork2P/WpTy380Y9+NLampqbiC1/4woSnn36633vf+94lKaV8//33D7zgggs2mzNnTt/tt99++ZNPPtni4+CTJ0+umTVr1iY33XTTsB/+8Icj999//5r+/fvniIjhw4fXjxs3rlt3b7/oooue33///bevra1N//Zv/7btcccdN/cDH/jAosGDBzdMmzZtwE9+8pPRL7/8cr+IiJNOOunVPfbYY2Vz7UyYMKH2LW95y6oXX3yxX2s7o++3335Lr7rqqhFNdSZOnLh85MiR62T9zcWLF1dMmzatzSUCKioqYrfddmv2e25IBJwAAAAABfbb3/72pUmTJq387//+73GLFy+u+Nvf/jbib3/724jm6m611VYrf/7zn7/w7ne/u8WdvseOHVt33nnnvXDSSSdttWrVqnTOOeeMPeecc8Y2na+urm74xS9+8dzUqVOHthZwnnXWWa/+4x//GL569er05S9/eYvyc0ceeeSCK6+88vlOfN0W7bXXXisuv/zyp4899titampqKn71q19t9qtf/Wqztet9/OMfn/ezn/1sVmtt7bnnnktffPHFfhGNmxGVr7/ZZO3P9txzz3W2e/pNN900bMqUKcPaqjdo0KD6pUuXPtzzI+pdHlEHAAAAKLgvf/nL855++ulHv/Od77y4zz77LBk9evTqfv365QEDBjSMHz9+1WGHHbbwl7/85bMzZ858vLVws8knP/nJ12644YYnDz744EXDhw+vq6qqyqNHj1595JFHLrjjjjuePP74419rq4299tprxc033/zkYYcdtnDMmDGrm9YL7UlHHnnkkpkzZz722c9+9tVJkyatGDRoUH3fvn3zmDFjVr///e9f+I9//GPmpZde+mJFReubzjetwxnx5vU3m0ycOHH12LFjVzcdW3+z96Sce/y3RTullDaPiJciIm46KmL0wHXX93vHTF13nQEAANCiwdufvc76ql1YGzNPn9l0OD7n/HJX2ps+ffr/VVZW7lBdXT1s4sSJT7dW94irj9j+tZWvVXWlvyIYXj289m8f+NuTvT0OWF/MnDlzm5UrVy6qq6t7YvLkye/tjjY9og4AAACsc0I/oLt4RB0AAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAAAIUl4AQAAAAACkvACQAAAAAUloATAAAAACgsAScAAAAAUFgCTgAAAAC61VFHHTUhpTR53LhxOzV3fty4cTullCYfddRRE9bx0NgAVfb2AAAAAICNzzOHHb59/WuvVfX2OHpaxfDhtVtP/fuTvT0O2JAJOAEAAIB1rv6116rqFyzY4ANOoOd5RB0AAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAABXPAAQdsk1KavMsuu0xq7vzUqVMHp5Qmp5QmDx069G319fVvqvPiiy9WNtX5wQ9+MKrp8/r6+rjmmmsGn3TSSZvvtttuk4YPH75LZWXlboMHD37bpEmTdjjppJM2/9e//tW3B78edIiAEwAAAKBg9t5776UREY8//viAxYsXvynfueWWWwY1lZcsWVJx33339V+7znXXXTe4qXzwwQcvbSqfeeaZYz/wgQ9s96tf/Wqzhx56aOCiRYsq6+vrU01NTcXMmTP7/+pXv9ps55133vHSSy8d1u1fDDpBwAkAAABQMAcddNDSiIj6+vp0ww03DFr7/J133jm4/PjGG28cvHadW2+9dXBExIgRI+p23XXXlU2f19XVxahRo2o/9rGPzfv5z3/+3PXXXz/jjjvuePL3v//9M6eccsqrAwYMaFi5cmWfk046aasHH3ywuvu/HXSMgBMAAACgYN75zncuHzhwYENExM033/yG8HLFihXpkUceGRQRccABByyOiLj99tvfFHDee++9gyMi3v72ty8t//wzn/nM/JdeeunR3//+9y+eeuqpCw8++OBle++99/KPfexji37xi1/M+uc///nYpptuWrtq1ar0rW99a0xPfUdoLwEnAAAAQMFUVlbG5MmTl0ZE3HXXXW8IL2+99daBq1atSoMGDar/4he/OCciYtq0aYPL1+GcNWtW5bPPPlsdEbHPPvu8IeCcOHHi6n79+uWW+t56661rP/vZz74aEXHTTTcNbWho6LbvBZ0h4AQAAAAooL333rsm4s3rcDbN6Nx9991rDjrooJrq6uqGtdfhbGn9zeYsXLiwz4wZM/o+8MAD1dOmTaueNm1a9YABAxoiImpqaipmzJhhwyF6lYATAAAAoIAOPPDAZtfhbFp/c5999lnav3//vMsuuyyLeOM6nLfccsvgiIjhw4fXTZ48eWWs5amnnup77LHHjh83btxOI0aM2HX77bffaY899thxypQpO06ZMmXHL33pS1s01Z0zZ05lz31LaFshAs6U0u4ppa+nlK5PKb2cUlqVUqpJKT2VUro4pbR3N/XzjZRSbudr/+7oEwAAAKAz9tlnn2VNMymbZm2uXLkyPfzwwwMjXt+IqGnH9fJ1OFtafzMi4k9/+tOQXXbZZcdLL71009mzZ7c5O3P58uWFyJfYcK33P8CU0u0RMS0ivhkRB0fEuIjoGxEDI2LbiDguIu5IKf0upWRKNAAAALBRqKqqit12260m4vV1OG+//fYBK1eu7DNo0KD6vfbaa3lExAEHHLA04vV1OF955ZXKZ555ptn1N1955ZXKE088cauVK1f2GTBgQMPpp58++8Ybb5wxa9asR1asWPFgznl6znn61Vdf/VTTNTnntK6+MzSnCFOIx5beZ0fEnyPijoh4MSIqImLPiDgjGkPPT0REVUR8tJv63amN8891Uz8AAAAAnbL33nsvvfPOO4c0rcN50003rVl/s7KyMfZ517vetaxfv365aR3Op556ql/OjXsIrb3+5u9///vhS5curYiIuOyyy54+4ogjml2fc8GCBUXIlNhIrPczOCNiRkR8OCLeknP+Qs75ypzztJzzvTnnH0fE2yKi6W8NPpJS2rc7Os05P9bGa1l39AMAAADQWWuvw1m+/mZTndI6nDURjetw3nrrrYMjIoYNG/am9Tcff/zx6oiIoUOH1rcUbkZETJs2bUD3fxvonPU+4Mw5H5Zz/lPOub6F8/OjcRZnkw+um5EBAAAA9K599tlnef/+/RsiIq677rohDz300KCI19ffbFK+Dufdd989OCJiypQpNX36vDEaqqurSxERq1atSvX1zUYxsXTp0j5/+ctfRnT3d4HOWu8Dzna6pay8da+NAgAAAGAd6tevX951111rIiIuv/zykStWrHjD+ptNDjjggJqIiHvvvXfI008/3T/izetvRkRsu+22qyIiVq5c2ec3v/nN8LXP19XVxUc/+tEt5s2bV9UT3wc6Y0MJOPuVlZv/6wUAAACADVDT7MyampqKiDeuv9nkXe96V03fvn3zsmXL+rS0/mZExMc//vGFffv2zRERp5122pannnrquKuvvnrw7bffPuCnP/3piLe97W3bT506dZOmzY1gfbChBJz7lZWf7I4GU0rXp5TmppRWl95vTSmdnVJ6099edKDNzVt7RcTo7hg7AAAAsPFoWoezSXMzMwcMGJB32WWXNfuJDB06tH6PPfZYsXa9rbfeuvYHP/jBC3369IlVq1alX/ziF6OPOOKI7fbbb7/tTzvttAmPP/74gPe9732vff3rX5/dM98GOq7wAWdKqU9EnF320Z+6qemDI2JUNO7MPioaQ9TvRsSzKaUPdLLNl9p4TevimAEAAICNzL777ru8urq6oel47fU3mzTN9IyI2GOPPZauvf5mk89//vML/vGPf8w46KCDFg0fPryusrIyjxo1qnafffZZ8qtf/erZqVOnPltRUdHt3wM6q7LtKuu9L0bElFL5qpzz9C6292hE/C0i7o+I2dEYcE6MiGMi4pCIGBYRV6aUDs85X9vFvgAAAGCjVDF8eG1vj2FdWBffs7q6Oq9YseKhtuqde+65s88999x2zbw8+OCDlx188MHPtHT+sMMOW9paBnPllVc+HxHPt3R+1qxZj7ZnHNAehQ44U0r7RcT3SodzI+LTXWzyJznnbzTz+X0RcWlK6eSIuDAiKiLi1ymlrXPOKzvQ/vg2zo8OszgBAADYCGw99e/dssQcQGEDzpTSjhHx12j8Disj4t9yznO70mbOeVEb53+ZUtojIk6IiLERcVREXNaB9l9u7XxKqb1NAQAAAABR0DU4U0pbRsT1ETE8GndNPzrnfPs66v6XZeX9WqwFAAAAAPS4wgWcKaWxEXFjNM6gzBHxyZzz1etwCE+Ulcetw34BAAAAgLUUKuBMKY2MiBsiYqvSR5/LOV+6joeR13F/AAAAAEALChNwppSGRsR1EbFD6aOzc84/74Wh7FBWbtfOYwAAAABAzyhEwJlSGhAR/xsRu5U++k7O+fu9NJyTy8q39dIYAAAAAIAoQMCZUuobjbulv7P00Xk55692op3jUkq59PpGM+d3Silt00YbJ0XEiaXDV0vjAgAAAAB6SWVvD6Ad/iciDimVb46I36SU3tpK/dU556c60c/kiPh1SumWiLg2Ih6NiAXR+Gc0KSKOKRtHfUSclHNe1ol+AAAAAIBuUoSA88iy8rsi4p9t1H8hIiZ0sq+KiDio9GrJgog4Ief89072AQAAAAB0kyIEnOvK/0XECRGxZ0TsGhGbRcSIiEgRsTAiHomIf0TEJTnnJb01SAAAAADgdet9wJlzTt3UziURcUkr5+dGxG9LLwAAAACgANb7TYYAAAAAAFoi4AQAAAAACkvACQAAAAAUloATAAAAACgsAScAAAAAUFgCTgAAAACgsAScAAAAAEBhCTgBAAAAoCSlNDmlNPn0008fu/a5qVOnDm46P3Xq1MG9MT7erLK3BwAAAABsfP7nm/dtv6JmdVVvj6On9R/Ut/Yj//n2J3ui7alTpw4+/PDDt2tv/fPOO+/50047bUFPjGV98swzz1T9/Oc/H3XbbbcNfvbZZ6uXLl1aUVlZGUOHDq0bP378qp122mn5vvvuW/P+979/yYgRI+p7e7y97aijjppw1VVXjWg6vuKKK/71oQ99aElr16SUJkdEHHnkkQuuvPLK53t4iG0ScAIAAADr3Iqa1VUrltZu8AEn69Y555wz8qtf/er4lStXvuGp5fr6+pg7d27V3Llzq6ZPnz7okksu2fR973vfa1OnTn22t8a6vvqv//qvcW0FnOsbAScAAABAwR1zzDHzPv/5z89trc6WW25Zu67G0xt++ctfbvKlL31pi4iIfv365Q9+8IPz3/3udy/ZYostVuec46WXXqqaNm3awOuvv37ok08+OaAzfRx22GFLc87Tu3fk65fHHntswGWXXTb0mGOOWdzbY2kvAScAAABAwW266aZ1e+yxx8reHkdvqauri69+9aubR0QMHDiw4aabbprx9re/fcXa9Uqh3ewHH3yw+sEHH+y/zge6nhs2bFjdokWLKr/97W+P+8hHPrK4T59ibN9TjFECAAAAQAtuueWWgfPnz6+KaJzN2ly4WW633XZbeeKJJ762bkZXHJ/97GdfjYiYMWNG/0svvXRYLw+n3QScAAAAABuR008/fWzTTuAREQsWLKg488wzx2y//fY7DB48+G0ppcnnn3/+iLWv+/3vfz/sPe95z1ZjxozZqV+/frsNHjz4bW9961u3P+OMM8bMmzevoj19d0cbzXnuuef6NpW32WabHpvJ2tYu6kcdddSElNLkcePG7VQaV9WJJ564+YQJE97av3//XYcPH77L/vvvv81f/vKXIT01xq748pe/PG/EiBF1ERHf+c53xtXXF2MPJgEnAAAAwEbq0Ucf7bfzzjvv8KMf/WjsjBkz+tfU1LwpZJw3b17Fnnvuud0nPvGJrf/xj38Mf/XVV/uuXr061dTUVDz++OMDzj333LGTJk1660033TSwpX66o43W9OvXLzeVn3zyyfXi0fPbb799wO67777Db37zm81eeOGFfitXruyzaNGiyttuu23ov/3bv237qU99avOutH/++eePaApbTz/99LHdMebBgwc3nHbaaa9ERDz99NPVv/71rzfpjnZ7moATAAAAYCP1wQ9+cOu5c+dWHXvssXP/+te/PnX77bc/+ctf/vLZHXbYYWVExIoVK9L++++/3b333ju4oqIijjjiiAW//OUvn73ppptm/OMf/5h51llnzRo2bFjdwoULK4888shtn3rqqb5r99EdbbTl7W9/+/Km8h//+MdR11xzzZtmV65LK1as6PORj3xk65qamopTTz311WuvvXbmzTff/OS3v/3tl0aNGlUbEfHrX/96s//6r//atDfH2ZwvfelL85rG+L3vfW9MXV1dbw+pTTYZAgAAACi4uXPnVk6bNq26pfNjx46tGzdu3JuSqqeffrr/n//8538deeSRS5o+22effdaEhV/+8pfHPvHEEwMGDx5c/7//+79PlZ+LiDj00ENrPvnJTy7ce++9J82bN6/qS1/60rhrrrnmufI63dFGWyZNmrT6gAMOWHzLLbcMXbVqVfrABz6w3Vvf+tblBx100OI999yzZp999lk+ZsyYdZbUvfbaa5VLly7N11xzzVPvec97apo+P+CAA5Yfc8wxr73jHe/Yfs6cOVXf/e53x51wwgkLx44du96kiAMGDMinn376K//+7//+lueff776wgsvHPHZz352QW+PqzVmcAIAAAAU3GWXXTZqypQpO7b0Ouecc5qdKXjUUUfNLw83yy1evLjPJZdcMioi4uyzz561djDZZLvttlt9xhlnvBIRce211w5fsmRJn+5so70uu+yy59/61reuaf+xxx4b8JOf/GTMhz/84W3Hjh27y4QJE9567LHHjr/zzjsHdLTtzvjoRz86rzzcbDJhwoTab3/72y9FNM70vPDCC9+03mlv+8IXvjB/zJgxqyMifvCDH4ypra3t7SG1SsAJAAAAsJH62Mc+trClc9dee+3gpjU5P/axj7W64/iBBx64NCKirq4u3XXXXWsCxO5oo73GjBlT98ADD8z40Y9+9MIOO+zwpiD1hRde6HfppZduus8++2x/xBFHbNmZELUjPvWpT7U46/HjH//4osGDB9dHRNxyyy2d2nDotNNOW5Bznp5znn7uuefO7uw4m1NdXZ2bAueXXnqp309/+tOR3dl+d/OIOgAAAEDBffGLX3ylMyHXHnvssaKlc9OmTVsTMm6xxRa7tLfNWbNmVXVnGx3Rr1+/fMYZZ8w/44wz5j///PNVN9xww6AHHnhg4PTp0wc+8sgjA+vq6lJExNVXX73JoYceWnXHHXc8VVnZ/fFYVVVVfsc73tHsbNWmce6www7L77vvvsEzZ85cLzZFWttpp502/yc/+cnol19+ud8555wz5tRTT11QXV2d275y3TODEwAAAGAjNWrUqBbXfpw7d26nQsbly5evyZu6o43OmjBhQu2nPvWp1375y1++/MADD8x8+eWXH/nMZz7zap8+jU3fe++9gy+66KIe2SV86NChdW0Fp00b+SxZsmS9nIBYVVUVX/7yl1+JiJg9e3bf8847b72dxble/gECAAAA0PNaC+Hq6+vXlO+8884n+vbt267Ze1tuueWaBRu7o43ustlmm9X/7Gc/m5VzjgsuuGB0RMSVV145/NRTT23xMf3OSil1d5O94tOf/vSCc845Z8wLL7zQ79xzzx1z2mmnze/fv/96N4tTwAkAAADAm4wYMWJNOjl69Oi6rbfeusOhY3e00d0+85nPzGsKOF944YUWd57vikWLFlXW1dW1GiDPmzevKiJiyJAh680O6murrKyMs88+e/anP/3pLefOnVv1ox/9aNTXvva1ub09rrV5RB0AAACAN9ltt93WrCF58803D+qtNrrbhAkT1oSsPTXTsra2Nt17770tbpRUW1sbTz755ICIiO22267FdVDXB5/61KcWbr311isjIs4///zRNTU16930VAEnAAAAAG9y+OGHL6murm6IiPjFL36xWUNDQ6+00R4dafeOO+4Y2FQeP378qh4ZUET85je/GdHSud///vfDlyxZUhERccABByzpqTF0h4qKivjKV74yOyJi/vz5VT/4wQ827e0xrU3ACQAAAMCbjBw5sv64446bGxHx0EMPDTzxxBPHl6+pubaXXnqp8txzz33DRjTd0UZ7/PnPfx763ve+d6u77rqr1R3J58yZU/HFL35xfNPx4YcfvqijfbXXH/7wh1HXXXfdm2atvvjii5Vf/epXN4+IqK6ubjjllFMWdKb9888/f0RKaXJKafLpp58+tqvjbc2xxx772sSJE1dERPz0pz8d3ZN9dYY1OAEAAABo1rnnnjv77rvvHvzPf/5z4MUXX7zp3XffPfjYY4+dN3ny5OWDBg1qWLBgQeWjjz5affPNNw+5/fbbh2633XYrTj/99Pnd3UZbGhoa4tprrx1+7bXXDp84ceKKgw8+ePGUKVOWjRs3rrZfv34Nr776atXtt98+6A9/+MOohQsXVkZE7Ljjjss/+9nPdqif9ho+fHhd//79Gz7wgQ9sd+KJJ845/PDDF1dXVzfcfffdA3/84x+PaVp/86yzzpo9bty49XYNziZ9+vSJr371q7M//vGPb71o0aL1Lk9c7wYEAAAAwPqhf//++dZbb33q6KOP3vL6668fNnPmzP7/8R//8ZaW6g8aNOhN0zO7o422jBgxoq5///4NK1as6DNz5sz+M2fObHUm51577bXkyiuvfLaqqqqjXbVL//79G/7nf/7nmQ984APb/vznPx/985///E2zHo877ri53/jGN+b0yAB6wMc+9rFF3/ve95Y//vjjLa4t2lsEnAAAAAC0aPjw4Q3XXXfdM9ddd92giy++eMR99903aN68eX1XrlyZBg0a1DB+/PhVu+6667LDDjts0ZFHHtnsepLd0UZrDjnkkGVz5859+Jprrhlyyy23DH7kkUcGPv/88/0WL15cWV9fH4MGDWoYN27cql122WXZRz/60dcOO+ywpV3/k2ndvvvuu3zatGlPfOc73xl90003DZ07d27f/v371++0007LP/vZz8750Ic+tF6vvdmcr3/967M+/OEPb9vb41hbyjn39hgoSSltHhEvRUTcdFTE6IFtXNCN3jtm6rrrDAAAgBYN3v7sddZX7cLamHn6zKbD8Tnnl7vS3vTp0/+vsrJyh+rq6mETJ058urW6//PN+7ZfUbO6Z6bPrUf6D+pb+5H/fPuTvT0O1o2jjjpqwlVXXTVi7Nixq2fNmvVob49nfTRz5sxtVq5cuaiuru6JyZMnv7c72jSDEwAAAFjnhH5Ad7GLOgAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwrLJEAAAAAB0gyuvvPL5iHi+l4ex0TGDEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAgO6SIyJyzqm3BwKsn3ri/iDgBAAAALrLkpxzXX19fWVdXZ3MAXiDhoaG1NDQUBER9RFR013tutkAAAAA3eWh+vr6pRGRFy5cOLy3BwOsXxYvXjw455zq6+uXRcSj3dWugBMAAADoLldFRH19ff2iefPmbfrKK69sunz58n45594eF9CLGhoa0muvvTZkzpw5oxsaGpblnFdHxI3d1X5ldzUEAAAAbNwmT5789PTp06fW1tYelnOuW7hw4YiFCxeO6NOnT0NKqSGlJOmEjUzOOTU0NFSU3petXr365Yh4OCKmdVcfAk4AAACgO30zIl6uq6s7pa6ubkGfPn369+nTpzo8RQobs/r6+vqmmZsPR8RpkydPruuuxpNp4uuPlNLmEfFSRMTNW20do6uqenlEAAAAbMhera2Ndz37TNPh+Jzzy93V9vTp08dHxJ6l1+YRMbC72gYKpyYa19y8MSKmdWe4GWEGJwAAANADJk+e/FI0TuL5U2+PBdiwmR4OAAAAABSWgBMAAAAAKCwBJwAAAABQWIULOFNKW6SUzkkpzUgpLUspLUwpTUspnZlSGtCN/bwnpfTXlNLLKaVVpfe/ppTe0119AAAAAABdU6hNhlJKh0fEHyJiSNnHAyJi99LrxJTS+3LOT3ehjz4RcVFEnLDWqXGl1xEppV9HxMk554bO9gMAAAAAdF1hZnCmlHaNiCuiMdysiYivRMReEXFgRPyqVG27iPjflNLgLnT1nXg93HwoIj4SEVNK7w+VPj8xIr7dhT4AAAAAgG5QpBmc50VE/4ioi4hDcs73lJ27OaX0r4j4QTSGnGdExDc62kFKabuI+FLp8IGI2DfnvKJ0PC2ldE1E3BaNs0XPTCn9tiuzRQEAAACArinEDM6U0pSI2Kd0+Ju1ws0m50TEk6Xy51NKVZ3o6gvxeuj7ubJwMyIics7LI+JzpcPKiPhiJ/oAAAAAALpJIQLOiDiirHxxcxVK62FeWjocFhEHdKSDlFKKiA+UDmfknO9toZ97I2Jm6fADpesAAAAAgF5QlIBz79L7soiY3kq928rK7+xgH1tGxNhm2mmtn3ERMaGD/QAAAAAA3aQoa3BuX3p/Oudc10q9Gc1c0147tNBOe/p5rj0dpJQ2b6PK6Pa0AwAAAAA0Wu8DzpRSdUSMLB2+3FrdnPNrKaVlETEwIsZ3sKvy8LHVfiLipbJyR/p5qe0qAAAAAEB7FeER9cFl5Zp21F9Weh/Ug/0sKyt3tB8AAAAAoJus9zM4I6K6rLy6HfVXld7792A/q8rKHemnrdmeoyNiWgfaAwAAAICNWhECzpVl5b7tqN+v9L6iB/vpV1Zudz8551YffbchOwAAAAB0TBEeUV9aVm7P4+ADS+/teZy9s/0MLCt3tB8AAAAAoJus9wFnznllRCwoHba6C3lKaXi8Hj52dEOf8tmVbe12Xv6ouY2DAAAAAKCXrPcBZ8kTpfdtUkqtPVY/qaz8ZCf7WLud7u4HAAAAAOgmRQk47yy9D4yIya3U26+sfFcH+3guImY3005z9i29z4qI5zvYDwAAAADQTYoScP6trHx8cxVSSn0i4hOlw0URcUtHOsg554i4unQ4KaX0jhb6eUe8PoPz6tJ1AAAAAEAvKETAmXO+PyLuKB2ekFLas5lqZ0TE9qXyeTnn2vKTKaX9U0q59Lqkha5+EhH1pfJPU0r912qjf0T8tHRYV6oPAAAAAPSSQgScJZ+PiBURURkR16eU/j2l9I6U0gEppV9GxA9K9Z6KiHM600HO+amI+GHpcPeIuCul9OGU0u4ppQ9H42Pvu5fO/zDn/K/OfhkAAAAAoOta27BnvZJzfqgUMv4hIoZExH83U+2piHhfznlpF7r6SkRsGhGfjIhdI+LyZur8JiK+2oU+AAAAAIBuUKQZnJFz/ntE7BwRP47GMHN5NK63+UBEnBURu+acn+5iHw055xMi4n3RuCbn7IhYXXq/OiLem3M+Mefc0JV+AAAAAICuS/bIWX+klDaPiJciIm7eausYXVXVyyMCAABgQ/ZqbW2869lnmg7H55xf7s3xAHRGoWZwAgAAAACUE3ACAAAAAIVVmE2GNjbb3nZrbL755r09DAAAADZgg19+OWL8+N4eBkCXmMEJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAAAIUl4AQAAAAACkvACQAAAAAUloATAAAAACgsAScAAAAAUFgCTgAAAACgsAScAAAAAEBhCTgBAAAAgMIScAIAAAAAhSXgBAAAAAAKS8AJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYAk4AAAAAoLAEnAAAAABAYQk4AQAAAIDCEnACAAAAAIUl4AQAAAAACkvACQAAAAAUloATAAAAACgsAScAAAAAUFgCTgAAAACgsAScAAAAAEBhCTgBAAAAgMIScAIAAAAAhSXgBAAAAAAKS8AJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwKnt7ALxBRVPhlVde6c1xAAAAsBFY6/89K1qqB7A+Sznn3h4DJSml3SNiWm+PAwAAgI3SHjnnB3p7EAAd5RF1AAAAAKCwzOBcj6SU+kXETqXDeRFR34HLR8frsz/3iIhXu3FobBz8hugOfkd0ld8QXeU3RHfwO6KrivQbqoiIUaXyoznnVb05GIDOsAbneqT0L5JOPQ6QUio/fDXn/HK3DIqNht8Q3cHviK7yG6Kr/IboDn5HdFUBf0Mv9PYAALrCI+oAAAAAQGEJOAEAAACAwhJwAgAAAACFJeAEAAAAAApLwAkAAAAAFJaAEwAAAAAoLAEnAAAAAFBYKefc22MAAAAAAOgUMzgBAAAAgMIScAIAAAAAhSXgBAAAAAAKS8AJAAAAABSWgBMAAAAAKCwBJwAAAABQWAJOAAAAAKCwBJwAAAAAQGEJOAEAAACAwhJwbgBSSluklM5JKc1IKS1LKS1MKU1LKZ2ZUhrQ2+Nj/ZVSyu183drbY2XdSyltmlI6LKX0rZTStSml+WW/iUs60d57Ukp/TSm9nFJaVXr/a0rpPT0wfNYD3fEbSikd14F71XE9+43oDSml3VNKX08pXV92/6hJKT2VUro4pbR3B9tzL9rIdMdvyL1o45VSGpJSOrr0/1u3pZSeTiktTimtTinNTSndmlL6ckppRDvb2yul9IeU0gsppZUppVdTStellD7S098FYENW2dsDoGtSSodHxB8iYkjZxwMiYvfS68SU0vtyzk/3xviAQpvTHY2klPpExEURccJap8aVXkeklH4dESfnnBu6o0/WG93yG2LjlVK6PSL2aeZU34jYtvQ6LqV0aUR8Kue8upW23Is2Qt35G2KjNSUi/qeFc6MiYr/S68yU0sdyzte11FBK6RsR8bV440SjzSLikIg4JKV0TER8MOe8sjsGDrAxEXAWWEpp14i4IiL6R0RNRHw3Im4pHR8dEZ+KiO0i4n9TSrvnnJf21lhZ7/0iIi5o5fyydTUQ1lsvRsSMaPwP8I76TrweKDwUET+IiGciYuuI+HJE7BoRJ0bEvIj4jy6PlPVVV35DTQ6NiNmtnH+5C22zfhpbep8dEX+OiDui8bdUERF7RsQZ0RhOfiIiqiLio6205V60cerO31AT96KNz0vR+P9Z00vlV6IxpNw8Ij4YEUdGxMiIuCalNCXn/MjaDaSUTo6I/ywdPhMR/x0Rj0bjb/TzEXFARLwvIn4b7fsdAlAm5Zx7ewx0UtnfSNdFxL4553vWOn9mNP7He0TEN3PO31i3I2R9l1JqugH4ffAmKaVvRsS0iJiWc56TUpoQEc+VTv8u53xcO9rYLiIej8a/UHsgGu9VK8rOD4iI26JxxnldRGxvxvmGo5t+Q8dFxMWlwy1zzs93/0hZX6WUpkbEpRFxZc65vpnzIyPirmj8C92IiP1yzrc3U8+9aCPVjb+h48K9aKOUUqpo7rezVp0jIuKvpcO/5pyPXOv8JhHxbEQMjcaAfXLOeX55H6XrDy99dEDO+dZu+QIAGwlrcBZUSmlKvP64zW/WDjdLzomIJ0vlz6eUqtbJ4IANQs75P3POU3POXXnM+Avx+tMCnysPFEp9LI+Iz5UOKyPii13oi/VMN/2G2IjlnA/LOf+ppXChFBCcUfbRB1to6gvhXrRR6sbfEBuptsLNUp2/RcTM0mFzSyKcGI3hZkTEWeXhZlkfp0ZEU19ndmqwABsxAWdxHVFWvri5CqX1oy4tHQ6LxsceANaJlFKKiA+UDmfknO9trl7p86b/KfhA6TqA9rqlrLz12ifdi2iHVn9D0E5Ny4FVN3PuiNL7koi4qrmLc84vR8SNpcMDU0qDu3V0ABs4AWdxNe32uCwa14JpyW1l5Xf23HAA3mTLeH3ts9taq1h2flxETOipAQEbpH5l5eZmWrkX0Za2fkPQqpTSxIh4W+lwxlrn+kbjRkUREfe0sZFV0z2oXzQumQFAOwk4i2v70vvTOee6VuqV/wt2+xZrsbH7t5TSEyml5SmlpSmlf6WUfpdSMuuXrtihrDyjxVpvPu9eRUsuTinNTimtTinNTyndm1L6dkppXG8PjF61X1n5yWbOuxfRlrZ+Q2tzLyJSSgNSStumlE6PxmCyaRmMn6xVdbto3NQqwj0IoMcIOAsopVQdjbv0RbSxS2PO+bV4fQfs8T05Lgpth2j8j6j+ETEoIraJxt1Eb04p/TWlNLS1i6EFm5eV29pR9qWysnsVLdk/IsZE407HIyLi7RHxlYh4urQ7LRuZlFKfiDi77KM/NVPNvYgWtfM3tLb9w71oo5RSOi6llEsbdS6LiKeicd+DzUpVvhcRf1zrMvcggHWgsu0qrIfK12OpaUf9ZRExMBqDKyi3PCKuiYibovFvjGsiYlQ0zmQ4JRr/o/2IiLg6pXRwzrm2l8ZJMXXkXrWsrOxexdqejcY1y+6J1//nb6uIOCoaNwSpjogLU0o553xR7wyRXvLFeP3Rz6tyzs0t2+NeRGva8xtq4l5ESx6OiJNyztOaOeceBLAOCDiLqXzh6tbWcGmyqvTevwfGQrGNyzkvaubzG1JKP42IayNi12gMPD8dEeevw7FRfB25V60qK7tXUe6vEfG7nHNe6/NpEXFFSumwaAwcqiLixymla3LOr67rQbLupZT2i8bZUhERc6Px31PNcS+iWR34DUW4F9HobxHxQKncPxo3pfpQRPy/iPiflNIXcs5T17rGPQhgHfCIejGtLCv3bUf9poXTV/TAWCiwFsLNpnNzonE2QtOszc+tizGxQenIvap8gwf3KtbIOS9uJlAoPz81Ir5VOhwQESesk4HRq1JKO0Zj4FQZjfeaf8s5z22hunsRb9LB35B7ERHR+N/OOefHSq9pOefLc85HRuPSTltF41NPx611mXsQwDog4CympWXl9jy6MLD03p7H2WGNnPOzEXFD6XCblNLY1urDWjpyrxpYVnavoqMuioim4GG/1ipSfCmlLSPi+ogYHo07Xh+dc769lUvci3iDTvyG2su9aCOVc/59RPw5Gv//+mcppU3KTrsHAawDAs4CyjmvjIgFpcPNW6ubUhoer/+L8qXW6kILnigr2x2UjihfSL/Ve1W8cSF99yo6pDTrqunfi+5TG7DSX7TdGBFjozFI+mTO+eo2LnMvYo1O/obaxb1oo9f0OxoYEe8u+9w9CGAdEHAWV1PotE1KqbW1VCeVlZ/swfGw4WrxcSxoQ3k4PqnFWm8+715FZ7hXbeBSSiOj8amCrUoffS7nfGk7LnUvIiK69BvqCPeijde8svIWZeWnonGmcIR7EECPEXAW152l94ERMbmVeuWPx9zVc8NhA7ZDWXl2r42CInouXv/NtPWo3r6l91kR8XxPDYgNU0ppVESMLB26T22AUkpDI+K6eP3fSWfnnH/ezsvdi+jqb6i9fbgXbdzKZ+2uebw857w6Iu4vHe6ZUmptHc6me9SqeH0zIwDaQcBZXH8rKx/fXIWUUp9oXPA6ImJRRNzSs0NiQ1Nao+rg0uEzOedZvTkeiqW0GUPT41qTUkrvaK5e6fOmGQtXt7aJA7TgpIhIpfJtvTkQul9KaUBE/G9E7Fb66Ds55++393r3Irr6G+oA96KN27+VlR9d69zfSu9DIuLI5i5OKW0e/7+9+wmxqorjAP49WJCLVgpSBEoF0aJFYAuzyMCVZptaRC0Ki1y4KGlRRAUtyqKNYkR/DA0CoZAWRS3KNmlCLapFG1EqaiVBRqJl0a/FvTaDjI6jz5m58z4fGJhz332H8+Bw3rnfe859ydq+uK+q/pjqPACmJuAcqKr6KskXffHh1tqqKU57IsmN/f/bq+rvKc5hTLXWNpzr8QattWVJ9mbi1x5fm5WGsdBsy8S2rB2ttcWTX+zLO/riP/35kCRpra1ord08zTl3JXmuL55MsuuSN4xZ0690+iDJ6v7Q9qp65gKq2hZj0VgaRR8yFo231tpDrbUrpjlnS5J1ffGHTFynnbYzye/9/y+11pac8f5F6ebai/pDr1xUowHGUHNzerj6idaBJIvTbYN4Md0qzcVJ7kt3Fznpnvuy0l1AJmut/Zjk8nQh5sF0W/FOpttatSbJpkxss9qfZG1V/TXb7WTutNZuS3L9pENLMzHhPpBusv6/qtp9lnq2JnmqL36T5OUkR5Jcl+TJJKcvGrdW1dOjaDvzw8X2odbamnTfaweTfJjkuyRH+5evTXJv/3d6xdTmqnIzZgFpre3NxGqnz5M8nnM/4/BUVR06S13GojE0ij5kLBpv/Zz5ynRz5v3pxo3j/bGbkjyQiQD9VJL1VfXZFPVsSvJ6XzyS5IV0Kz2vTtcv7+xf21NV91+CjwKwoAk4B661tiHJu+m2O0zlULov2cOz1yqGoJ+sLZ/uvHSTuUeq6tglbRDzTmttd5IHz/f8qmpTHe8fl/FWko3nePvbSR6tqn9n0kbmt4vtQ5NChemcSLKlqt6cQfMYgNbaTCeqP1XVirPUZSwaQ6PoQ8ai8TaDOfMvSTZW1afnqOv5JM9mIgw/08dJ7qmqP2faToBxJ+BcAFpry5M8lmR9kmvS3Tk8nOT9JK9W1Yk5bB7zVGvtjnQPMl+VbvXB0nRB+fEkPyf5Msk7VXVwzhrJnBpVwDmpvnXpVpbfkq6//Zrk6yRvVNUnF95S5qsRBJxXJrk73Ti1MslV6frOZUl+S/J9kn1JdlbV0bDgjDLgnFSnsWiMjCjgNBaNsdbaDemus1an25WwLMmSdDufjib5NslHSd47n+uu1tqtSTYnub2v61i6VcG7qmrP6D8BwHgQcAIAAAAAg+VHhgAAAACAwRJwAgAAAACDJeAEAAAAAAZLwAkAAAAADJaAEwAAAAAYLAEnAAAAADBYAk4AAAAAYLAEnAAAAADAYAk4AQAAAIDBEnACAAAAAIMl4AQAAAAABkvACQAAAAAMloATAAAAABgsAScAAAAAMFgCTgAAAABgsAScAAAAAMBgCTgBAAAAgMEScAIAAAAAgyXgBAAAAAAGS8AJAAAAAAyWgBMAAAAAGCwBJwAAAAAwWAJOAAAAAGCwBJwAAAAAwGAJOAEAAACAwfoP5zIh3PcBOzMAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 1200x800 with 1 Axes>" ] @@ -210,7 +210,7 @@ "metadata": {}, "outputs": [], "source": [ - "timeloop(500)" + "timeloop(5000)" ] }, { @@ -230,7 +230,7 @@ { "data": { "text/plain": [ - "0.07442458175252653" + "0.07369491639715217" ] }, "execution_count": 13, @@ -250,7 +250,7 @@ { "data": { "text/plain": [ - "[<matplotlib.lines.Line2D at 0x12c65b790>]" + "[<matplotlib.lines.Line2D at 0x7f35955717f0>]" ] }, "execution_count": 14, @@ -259,7 +259,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -287,13 +287,20 @@ "metadata": {}, "outputs": [], "source": [ - "np.testing.assert_almost_equal(np.gradient(vel_profile)[-1], 0)" + "np.testing.assert_almost_equal(np.gradient(vel_profile)[-1], 0, decimal=3)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -307,7 +314,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/lbmpy_tests/test_lbstep.py b/lbmpy_tests/test_lbstep.py index e6a6bc633b331f69648cad81e2b98adcb3cc4135..86131385bf5942319182765fd64274bad3fda92b 100644 --- a/lbmpy_tests/test_lbstep.py +++ b/lbmpy_tests/test_lbstep.py @@ -50,40 +50,6 @@ def test_data_handling_3d(): np.testing.assert_almost_equal(results[0], arr) -def test_data_handling_2d_opencl(): - pytest.importorskip('pyopencl') - import pystencils.opencl.opencljit - pystencils.opencl.opencljit.init_globally() - print("--- LDC 2D test ---") - results = [] - - # Since waLBerla has no OpenCL Backend yet, it is not possible to use the - # parallel Datahandling with OpenCL at the moment - - # TODO: Activate parallel Datahandling if Backend is available - parallel = False - for gpu in [True, False] if gpu_available else [False]: - if parallel and gpu and not hasattr(wLB, 'cuda'): - continue - - print(f"Testing parallel: {parallel}\tgpu: {gpu}") - config = CreateKernelConfig(target=Target.GPU if gpu else Target.CPU, - gpu_indexing_params=MappingProxyType({'block_size': (8, 4, 2)})) - if parallel: - from pystencils.datahandling import ParallelDataHandling - blocks = wLB.createUniformBlockGrid(blocks=(2, 3, 1), cellsPerBlock=(5, 5, 1), - oneBlockPerProcess=False) - dh = ParallelDataHandling(blocks, dim=2) - rho = ldc_setup(data_handling=dh, config=config) - results.append(rho) - else: - rho = ldc_setup(domain_size=(10, 15), parallel=False, config=config) - results.append(rho) - for i, arr in enumerate(results[1:]): - print(f"Testing equivalence version 0 with version {i + 1}") - np.testing.assert_almost_equal(results[0], arr) - - def test_data_handling_2d(): print("--- LDC 2D test ---") results = [] diff --git a/lbmpy_tests/test_oldroydb.py b/lbmpy_tests/test_oldroydb.py new file mode 100755 index 0000000000000000000000000000000000000000..a4a5228682917e8446c9dcb17918f2381bacc89a --- /dev/null +++ b/lbmpy_tests/test_oldroydb.py @@ -0,0 +1,297 @@ +import pystencils as ps +from lbmpy.stencils import get_stencil +from lbmpy.updatekernels import create_stream_pull_with_output_kernel +from lbmpy import create_lb_update_rule, relaxation_rate_from_lattice_viscosity, ForceModel, Method, LBStencil +from lbmpy.macroscopic_value_kernels import macroscopic_values_setter +from pystencils.boundaries.boundaryhandling import BoundaryHandling +from pystencils.boundaries.boundaryconditions import Boundary, Neumann, Dirichlet +from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling +from lbmpy.boundaries import NoSlip + +from lbmpy.oldroydb import * +import pytest + + +# # Lattice Boltzmann with Finite-Volume Oldroyd-B +# # taken from the electronic supplement of https://doi.org/10.1140/epje/s10189-020-00005-6, +# # available at https://doi.org/10.24416/UU01-2AFZSW + +pytest.importorskip('scipy.optimize') +def test_oldroydb(): + import scipy.optimize + + # ## Definitions + + # In[2]: + + + L = (34, 34) + lambda_p = sp.Symbol("lambda_p") + eta_p = sp.Symbol("eta_p") + + lb_stencil = LBStencil("D2Q9") + fv_stencil = LBStencil("D2Q9") + eta = 1-eta_p + omega = relaxation_rate_from_lattice_viscosity(eta) + + f_pre = 0.00001 + + + # ## Data structures + + # In[3]: + + + dh = ps.create_data_handling(L, periodicity=(True, False), default_target=ps.Target.CPU) + + opts = {'cpu_openmp': True, + 'cpu_vectorize_info': None, + 'target': dh.default_target} + + src = dh.add_array('src', values_per_cell=len(lb_stencil), layout='c') + dst = dh.add_array_like('dst', 'src') + ρ = dh.add_array('rho', layout='c', latex_name='\\rho') + u = dh.add_array('u', values_per_cell=dh.dim, layout='c') + tauface = dh.add_array('tau_face', values_per_cell=(len(fv_stencil)//2, dh.dim, dh.dim), latex_name='\\tau_f', + field_type=ps.FieldType.STAGGERED, layout='c') + + tau = dh.add_array('tau', values_per_cell=(dh.dim, dh.dim), layout='c', latex_name='\\tau') + tauflux = dh.add_array('j_tau', values_per_cell=(len(fv_stencil)//2, dh.dim, dh.dim), latex_name='j_\\tau', + field_type=ps.FieldType.STAGGERED_FLUX, layout='c') + F = dh.add_array('F', values_per_cell=dh.dim, layout='c') + + fluxbh = BoundaryHandling(dh, tauflux.name, fv_stencil, name="flux_boundary_handling", + openmp=opts['cpu_openmp'], target=dh.default_target) + ubh = BoundaryHandling(dh, u.name, lb_stencil, name="velocity_boundary_handling", + openmp=opts['cpu_openmp'], target=dh.default_target) + taufacebh = BoundaryHandling(dh, tauface.name, fv_stencil, name="tauface_boundary_handling", + openmp=opts['cpu_openmp'], target=dh.default_target) + + + # ## Solver + + # In[4]: + + + collision = create_lb_update_rule(stencil=lb_stencil, + method=Method.TRT, + relaxation_rate=omega, + compressible=True, + force_model=ForceModel.GUO, + force=F.center_vector+sp.Matrix([f_pre,0]), + kernel_type='collide_only', + optimization={'symbolic_field': src}) + + stream = create_stream_pull_with_output_kernel(collision.method, src, dst, {'density': ρ, 'velocity': u}) + + lbbh = LatticeBoltzmannBoundaryHandling(collision.method, dh, src.name, + openmp=opts['cpu_openmp'], target=dh.default_target) + + stream_kernel = ps.create_kernel(stream, **opts).compile() + collision_kernel = ps.create_kernel(collision, **opts).compile() + + + # In[5]: + + + ob = OldroydB(dh.dim, u, tau, F, tauflux, tauface, lambda_p, eta_p) + flux_kernel = ps.create_staggered_kernel(ob.flux(), **opts).compile() + tauface_kernel = ps.create_staggered_kernel(ob.tauface(), **opts).compile() + continuity_kernel = ps.create_kernel(ob.continuity(), **opts).compile() + force_kernel = ps.create_kernel(ob.force(), **opts).compile() + + + # ## Set up the simulation + + # In[6]: + + + init = macroscopic_values_setter(collision.method, velocity=(0,)*dh.dim, + pdfs=src.center_vector, density=ρ.center) + init_kernel = ps.create_kernel(init, ghost_layers=0).compile() + + # no-slip for the fluid, no-flux for the stress + noslip = NoSlip() + noflux = Flux(fv_stencil) + nostressdiff = Flux(fv_stencil, tau.center_vector) + + # put some good values into the boundaries so we can take derivatives + noforce = Neumann() # put the same stress into the boundary cells that is in the nearest fluid cell + noflow = Dirichlet((0,)*dh.dim) # put zero velocity into the boundary cells + + lbbh.set_boundary(noslip, ps.make_slice[:, :4]) + lbbh.set_boundary(noslip, ps.make_slice[:, -4:]) + fluxbh.set_boundary(noflux, ps.make_slice[:, :4]) + fluxbh.set_boundary(noflux, ps.make_slice[:, -4:]) + ubh.set_boundary(noflow, ps.make_slice[:, :4]) + ubh.set_boundary(noflow, ps.make_slice[:, -4:]) + taufacebh.set_boundary(nostressdiff, ps.make_slice[:, :4]) + taufacebh.set_boundary(nostressdiff, ps.make_slice[:, -4:]) + + for bh in lbbh, fluxbh, ubh, taufacebh: + assert len(bh._boundary_object_to_boundary_info) == 1, "Restart kernel to clear boundaries" + + def init(): + dh.fill(ρ.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(ρ.name, 1) + dh.fill(u.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(u.name, 0) + dh.fill(tau.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(tau.name, 0) + dh.fill(tauflux.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(tauface.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(F.name, np.nan, ghost_layers=True, inner_ghost_layers=True) + dh.fill(F.name, 0) # needed for LB initialization + + sync_tau() # force calculation inside the initialization needs neighbor taus + dh.run_kernel(init_kernel) + dh.fill(F.name, np.nan) + + + # In[7]: + + + sync_pdfs = dh.synchronization_function([src.name]) # needed before stream, but after collision + sync_u = dh.synchronization_function([u.name]) # needed before continuity, but after stream + sync_tau = dh.synchronization_function([tau.name]) # needed before flux and tauface, but after continuity + + def time_loop(steps, lambda_p_val, eta_p_val): + dh.all_to_gpu() + vmid = np.empty((2,steps//10+1)) + sync_tau() + sync_u() + ubh() + i = -1 + for i in range(steps): + dh.run_kernel(flux_kernel) + fluxbh() # zero the fluxes into/out of boundaries + dh.run_kernel(continuity_kernel, **{lambda_p.name: lambda_p_val, eta_p.name: eta_p_val}) + + sync_tau() + dh.run_kernel(tauface_kernel) # needed for force + taufacebh() + dh.run_kernel(force_kernel) + + dh.run_kernel(collision_kernel, **{eta_p.name: eta_p_val}) + sync_pdfs() + lbbh() # bounce-back populations into boundaries + dh.run_kernel(stream_kernel) + sync_u() + ubh() # need neighboring us for flux and continuity + + dh.swap(src.name, dst.name) + + if i % 10 == 0: + if u.name in dh.gpu_arrays: + dh.to_cpu(u.name) + uu = dh.gather_array(u.name) + uu = uu[L[0]//2-1:L[0]//2+1, L[1]//2-1:L[1]//2+1, 0].mean() + if np.isnan(uu): + raise Exception(f"NaN encountered after {i} steps") + vmid[:, i//10] = [i, uu] + sync_u() + dh.all_to_cpu() + + return vmid[:,:i//10+1] + + + # ## Analytical solution + # + # comes from Waters and King, Unsteady flow of an elastico-viscous liquid, Rheologica Acta 9, 345–355 (1970). + + # In[9]: + + + def N(n): + return (2*n-1)*np.pi + + def Alpha_n(N, El, eta_p): + return 1+(1-eta_p)*El*N*N/4 + + def Beta_n(alpha_n,N, El): + return np.sqrt(np.abs(alpha_n*alpha_n - El*N*N)) + + def Gamma_n(N, El, eta_p): + return 1-(1+eta_p)*El*N*N/4 + + def G(alpha_n,beta_n,gamma_n,flag,T): + if(flag): + return ((1.0 - gamma_n/beta_n)*np.exp(-(alpha_n+beta_n)*T/2) + + (1.0 + gamma_n/beta_n)*np.exp((beta_n-alpha_n)*T/2)) + else: + return 2*np.exp(-alpha_n*T/2)*(np.cos(beta_n*T/2) + (gamma_n/beta_n)*np.sin(beta_n*T/2)) + + def W(T, El, eta_p): + W_ = 1.5 + for n in range(1,1000): + N_ = N(n) + alpha_n = Alpha_n(N_, El, eta_p) + + if(alpha_n*alpha_n - El*N_*N_ < 0): + flag_ = False + else: + flag_ = True + + beta_n = Beta_n(alpha_n,N_, El) + gamma_n = Gamma_n(N_, El, eta_p) + G_=G(alpha_n,beta_n,gamma_n,flag_,T) + + W_ -= 24*(np.sin(N_/2)/(N_*N_*N_))*G_ + + return W_ + + + # ## Run the simulation + + # In[11]: + + + lambda_p_val = 3000 + eta_p_val = 0.9 + + init() + vmid = time_loop(lambda_p_val*4, lambda_p_val, eta_p_val) + + actual_width = sum(dh.gather_array(lbbh.flag_array_name)[L[0]//2,:] == 1) + uref = float(f_pre*actual_width**2/(8*(eta+eta_p))) + + Wi = lambda_p_val*uref/(actual_width/2) + Re = uref*(actual_width/2)/(eta+eta_p) + El = float(Wi/Re) + + pref = 1/W(vmid[0,-1]/lambda_p_val, El, eta_p_val) + + El_measured, pref_measured = scipy.optimize.curve_fit(lambda a, b, c: W(a, b, eta_p_val)*c, + vmid[0,:]/lambda_p_val, vmid[1,:]/vmid[1,-1], + p0=(El, pref))[0] + measured_width = np.sqrt(4*lambda_p_val*float(eta+eta_p)/El_measured) + + print(f"El={El}, El_measured={El_measured}") + print(f"L={actual_width}, L_measured={measured_width}") + + assert abs(measured_width - actual_width) < 1, "effective channel width differs significantly from defined width" + + an = W(vmid[0,:]/lambda_p_val, El, eta_p_val)*pref + an_measured = W(vmid[0,:]/lambda_p_val, El_measured, eta_p_val)*pref_measured + + diff = abs(vmid[1,:]/vmid[1,-1]-an_measured)/an_measured + assert diff[lambda_p_val//5:].max() < 0.03, "maximum velocity deviation is too large" + +# from pystencils import plot as plt +# +# plt.xlabel("$t$") +# plt.ylabel(r"$u_{max}/u_{max}^{Newtonian}$") +# plt.plot(vmid[0,:], vmid[1,:]/vmid[1,-1] if vmid[1,-1] != 0 else 0, label='FVM') +# plt.plot(vmid[0,:], np.ones_like(vmid[0,:]), 'k--', label='Newtonian') +# +# plt.plot(vmid[0,:], an, label="analytic") +# plt.plot(vmid[0,:], an_measured, label="analytic, fit width") +# plt.legend() +# +# if eta_p_val == 0.1: +# plt.ylim(0.9, 1.15) +# elif lambda_p_val == 9000: +# plt.ylim(0.8, 1.5) +# elif eta_p_val == 0.3: +# plt.ylim(0.8, 1.4) +# plt.show() diff --git a/lbmpy_tests/test_poisuille_channel.py b/lbmpy_tests/test_poisuille_channel.py index d753d4de5f2315442e82be67ebaeaade5778acff..354b20579d537adb39d562343e07c7a2c2db7ea1 100644 --- a/lbmpy_tests/test_poisuille_channel.py +++ b/lbmpy_tests/test_poisuille_channel.py @@ -10,15 +10,11 @@ import pystencils as ps from poiseuille import poiseuille_channel -@pytest.mark.parametrize('target', (ps.Target.CPU, ps.Target.GPU, ps.Target.OPENCL)) +@pytest.mark.parametrize('target', (ps.Target.CPU, ps.Target.GPU)) @pytest.mark.parametrize('stencil_name', (Stencil.D2Q9, Stencil.D3Q19)) def test_poiseuille_channel(target, stencil_name): - # OpenCL and Cuda - if target == ps.Target.OPENCL: - import pytest - pytest.importorskip("pyopencl") - import pystencils.opencl.autoinit - elif target == ps.Target.GPU: + # Cuda + if target == ps.Target.GPU: import pytest pytest.importorskip("pycuda") diff --git a/lbmpy_tests/test_shear_flow.py b/lbmpy_tests/test_shear_flow.py index a7c4f24a8d5e43836cf6e7852aee8c46a9229e90..ccb7fc200b948c92c4f8b44162dacc2d68e88a16 100644 --- a/lbmpy_tests/test_shear_flow.py +++ b/lbmpy_tests/test_shear_flow.py @@ -60,14 +60,11 @@ shear_velocity = 0.2 # scale by width to keep stable t_max = 2000 -@pytest.mark.parametrize('target', (ps.Target.CPU, ps.Target.GPU, ps.Target.OPENCL)) +@pytest.mark.parametrize('target', (ps.Target.CPU, ps.Target.GPU)) @pytest.mark.parametrize('stencil_name', (Stencil.D2Q9, Stencil.D3Q19)) def test_shear_flow(target, stencil_name): - # OpenCL and Cuda - if target == ps.Target.OPENCL: - pytest.importorskip("pyopencl") - import pystencils.opencl.autoinit - elif target == ps.Target.GPU: + # Cuda + if target == ps.Target.GPU: pytest.importorskip("pycuda") # LB parameters