{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from lbmpy.session import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tutorial 04: The Cumulant Lattice Boltzmann Method in lbmpy\n",
"\n",
"## A) Principles of the centered cumulant collision operator\n",
"\n",
"Recently, an advanced Lattice Boltzmann collision operator based on relaxation in cumulant space has gained popularity. Similar to moments, cumulants are statistical quantities inherent to a probability distribution. A significant advantage of the cumulants is that they are statistically independent by construction. Moments can be defined by using the so-called moment generating function, which for the discrete particle distribution of the LB equation is stated as\n",
"$$\n",
" M( \\vec{X} ) = \n",
" \\sum_i f_i \n",
" \\exp \\left(\n",
" \\vec{c}_i \\cdot \\vec{X}\n",
" \\right)\n",
"$$\n",
"The raw moments $m_{\\alpha \\beta \\gamma}$ can be expressed as its derivatives, evaluated at zero:\n",
"$$\n",
" m_{\\alpha \\beta \\gamma} \n",
" = \n",
" \\left.\n",
" \\frac{\\partial^{\\alpha}}{\\partial X^{\\alpha}}\n",
" \\frac{\\partial^{\\beta}}{\\partial Y^{\\beta}}\n",
" \\frac{\\partial^{\\gamma}}{\\partial Z^{\\gamma}}\n",
" M(X, Y, Z) \n",
" \\right\\vert_{\\vec{X}=0}\n",
"$$\n",
"The cumulant-generating function is defined as the natural logarithm of this moment-generating function, and the cumulants $c_{\\alpha \\beta \\gamma}$ are defined as its derivatives evaluated at zero:\n",
"$$\n",
" C(\\vec{X}) := \\log ( M(\\vec{X}) ) \\\\\n",
" c_{\\alpha \\beta \\gamma} \n",
" = \n",
" \\left.\n",
" \\frac{\\partial^{\\alpha}}{\\partial X^{\\alpha}}\n",
" \\frac{\\partial^{\\beta}}{\\partial Y^{\\beta}}\n",
" \\frac{\\partial^{\\gamma}}{\\partial Z^{\\gamma}}\n",
" C(X, Y, Z) \n",
" \\right\\vert_{\\vec{X}=0}\n",
"$$\n",
"Other than with moments, there is no straightforward way to express cumulants in terms of the populations. However, their generating functions can be related to allowing the computation of cumulants from both raw and central moments, computed from populations. In lbmpy, the transformations from populations to cumulants and back are implemented using central moments as intermediaries. This is done for two primary reasons:\n",
" * All cumulants of orders 2 and 3 are equal to their corresponding central moments, up to the density $\\rho$ as a proportionality factor.\n",
" * The conserved modes of the first order, which correspond to momentum, are relaxed in central moment space to allow for a more efficient implicit forcing scheme.\n",
"\n",
"The central moment-generating function $K$ can be related to the moment-generating function through $K(\\vec{X}) = \\exp( - \\vec{X} \\cdot \\vec{u} ) M(\\vec{X})$. It is possible to recombine the equation with the definition of the cumulant-generating function\n",
"$$\n",
" C( \\vec{X} ) = \\vec{X} \\cdot \\vec{u} + \\log( K( \\vec{X} ) ).\n",
"$$\n",
"Derivatives of $C$ can thus be expressed in terms of derivatives of $K$, directly yielding equations of the cumulants in terms of central moments.\n",
"\n",
"Applying a force in cumulant space is straightforward since all LB forcing term cumulants are zero, except for those related to momentum. The first-order central moments of the force are equal to the force vector. When the velocity entering the collision equilibria is shifted by $F/2$, the first central moments trail behind their frame of reference by exactly this shift. When a force is applied, only the momentum moments are affected:\n",
"$$\n",
" \\kappa_{100} = - \\frac{F_x}{2}, \\quad \n",
" \\kappa^{\\ast}_{100} = \\kappa_{100} + F_x = \\frac{F_x}{2}\n",
"$$\n",
"Basically, the first central moments change sign. This is equivalent to relaxation with a relaxation rate $\\omega = 2$. For this reason, lbmpy's implementation of the cumulant LBM calculates the collision of the momentum modes in central moment space, and the default force model overrides their relaxation rate by setting it to 2."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## B) Method Creation\n",
"\n",
"Using the `create_lb_method` interface, creation of a cumulant-based lattice Boltzmann method in lbmpy is straightforward. Cumulants can either be relaxed in their raw (monomial forms) or in polynomial combinations. Both variants are available as predefined setups.\n",
"\n",
"### Relaxation of Monomial Cumulants\n",
"\n",
"Monomial cumulant relaxation is available through the `method=\"monomial_cumulant\"` parameter setting. This variant requires fewer transformation steps and is a little faster than polynomial relaxation, but it does not allow separation of bulk and shear viscosity. Default monomial cumulant sets are available for the D2Q9, D3Q19 and D3Q27 stencils. It is also possible to define a custom set of monomial cumulants.\n",
"\n",
"When creating a monomial cumulant method, one option is to specify only a single relaxation rate which will then be assigned to all cumulants related to the shear viscosity. In this case, all other non-conserved cumulants will be relaxed to equilibrium. Alternatively, individual relaxation rates for all non-conserved cumulants can be specified. The conserved cumulants are set to zero by default to save computational cost. They can be adjusted with `set_zeroth_moment_relaxation_rate`, `set_first_moment_relaxation_rate` and `set_conserved_moments_relaxation_rate`."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" Central Moment / Cumulant \n",
" Eq. Value \n",
" Relaxation Rate \n",
" \n",
" \n",
" $1$ (central moment) \n",
" $\\rho$ \n",
" $0$ \n",
" \n",
"\n",
" $x$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $y$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $x^{2}$ \n",
" $\\frac{\\rho}{3}$ \n",
" $\\omega_{v}$ \n",
" \n",
"\n",
" $y^{2}$ \n",
" $\\frac{\\rho}{3}$ \n",
" $\\omega_{v}$ \n",
" \n",
"\n",
" $x y$ \n",
" $0$ \n",
" $\\omega_{v}$ \n",
" \n",
"\n",
" $x^{2} y$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x^{2} y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
"
\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"method_monomial = create_lb_method(method='monomial_cumulant', relaxation_rate=sp.Symbol('omega_v'))\n",
"method_monomial"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Relaxation of Polynomial Cumulants\n",
"\n",
"By setting `method=\"cumulant\"`, a set of default polynomial cumulants is chosen to be relaxed. Those cumulants are taken from literature and assembled into groups selected to enforce rotational invariance (see: `lbmpy.methods.centeredcumulant.centered_cumulants`). Default polynomial groups are available for the D2Q9, D3Q19 and D3Q27 stencils. As before it is possible to specify only a single relaxation rate assigned to the moments governing the shear viscosity. All other relaxation rates are then automatically set to one."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Central Moment / Cumulant \n",
" Eq. Value \n",
" Relaxation Rate \n",
" \n",
" \n",
" $1$ (central moment) \n",
" $\\rho$ \n",
" $0$ \n",
" \n",
"\n",
" $x$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $y$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $x y$ \n",
" $0$ \n",
" $\\omega_{v}$ \n",
" \n",
"\n",
" $x^{2} - y^{2}$ \n",
" $0$ \n",
" $\\omega_{v}$ \n",
" \n",
"\n",
" $x^{2} + y^{2}$ \n",
" $\\frac{2 \\rho}{3}$ \n",
" $1$ \n",
" \n",
"\n",
" $x^{2} y$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x^{2} y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
"
\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"method_polynomial = create_lb_method(method='cumulant', relaxation_rate=sp.Symbol('omega_v'))\n",
"method_polynomial"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Central Moments and Forcing\n",
"\n",
"The conserved modes are marked with the note *(central moment)* in the table above. It highlights the fact that these modes are relaxed in central moment space, other than cumulant space. As described in section A, this is done to enable the implicit forcing scheme. When a force is specified, the momentum modes' relaxation rates are overridden by the force model. In the following cell, a symbolic force is specified. Further, a full list of relaxation rates is passed to allow the specification of bulk viscosity."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Central Moment / Cumulant \n",
" Eq. Value \n",
" Relaxation Rate \n",
" \n",
" \n",
" $1$ (central moment) \n",
" $\\rho$ \n",
" $0$ \n",
" \n",
"\n",
" $x$ (central moment) \n",
" $0$ \n",
" $2$ (overridden by force model) \n",
" \n",
"\n",
" $y$ (central moment) \n",
" $0$ \n",
" $2$ (overridden by force model) \n",
" \n",
"\n",
" $x y$ \n",
" $0$ \n",
" $\\omega_{shear}$ \n",
" \n",
"\n",
" $x^{2} - y^{2}$ \n",
" $0$ \n",
" $\\omega_{shear}$ \n",
" \n",
"\n",
" $x^{2} + y^{2}$ \n",
" $\\frac{2 \\rho}{3}$ \n",
" $\\omega_{bulk}$ \n",
" \n",
"\n",
" $x^{2} y$ \n",
" $0$ \n",
" $\\omega_{4}$ \n",
" \n",
"\n",
" $x y^{2}$ \n",
" $0$ \n",
" $\\omega_{4}$ \n",
" \n",
"\n",
" $x^{2} y^{2}$ \n",
" $0$ \n",
" $\\omega_{5}$ \n",
" \n",
"\n",
"
\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"method_params = {\n",
" 'method' : 'cumulant',\n",
" 'force' : sp.symbols('F_:3'),\n",
" 'relaxation_rates' : [sp.Symbol('omega_shear'),\n",
" sp.Symbol('omega_bulk'),\n",
" sp.Symbol('omega_4'),\n",
" sp.Symbol('omega_5')]\n",
"}\n",
"method_with_force = create_lb_method(**method_params)\n",
"method_with_force"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## C) Exemplary simulation: flow around sphere\n",
"\n",
"To end this tutorial, we show an example simulation of a channel flow with a spherical obstacle. This example is shown in 2D with the D2Q9 stencil but can be adapted easily for a 3D simulation."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"from lbmpy.relaxationrates import relaxation_rate_from_lattice_viscosity\n",
"from lbmpy.macroscopic_value_kernels import pdf_initialization_assignments"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To define the channel flow with dimensionless parameters, we first define the reference length in lattice cells. The reference length will be the diameter of the spherical obstacle. Furthermore, we define a maximal velocity which will be set for the inflow later. The Reynolds number is set relatively high to 100000, which will cause a turbulent flow in the channel.\n",
"\n",
"From these definitions, we can calculate the relaxation rate `omega` for the lattice Boltzmann method."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"reference_length = 30\n",
"maximal_velocity = 0.05\n",
"reynolds_number = 100000\n",
"kinematic_vicosity = (reference_length * maximal_velocity) / reynolds_number\n",
"initial_velocity=(maximal_velocity, 0)\n",
"\n",
"omega = relaxation_rate_from_lattice_viscosity(kinematic_vicosity)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As a next step, we define the domain size of our set up."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"stencil = get_stencil('D2Q9')\n",
"domain_size = (reference_length * 12, reference_length * 4)\n",
"dim = len(domain_size)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the data for the simulation is allocated. We allocate a field `src` for the PDFs and field `dst` used as a temporary field to implement the two grid pull pattern. Additionally, we allocate a velocity field `velField`"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"dh = ps.create_data_handling(domain_size=domain_size, periodicity=(False, False))\n",
"\n",
"src = dh.add_array('src', values_per_cell=len(stencil), alignment=32)\n",
"dh.fill('src', 0.0, ghost_layers=True)\n",
"dst = dh.add_array('dst', values_per_cell=len(stencil), alignment=32)\n",
"dh.fill('dst', 0.0, ghost_layers=True)\n",
"\n",
"velField = dh.add_array('velField', values_per_cell=dh.dim, alignment=32)\n",
"dh.fill('velField', 0.0, ghost_layers=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We choose a cumulant lattice Boltzmann method, as described above. Here the second-order cumulants are relaxed with the relaxation rate calculated above. All higher-order cumulants are relaxed with one, which means we set them to the equilibrium."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" Central Moment / Cumulant \n",
" Eq. Value \n",
" Relaxation Rate \n",
" \n",
" \n",
" $1$ (central moment) \n",
" $\\rho$ \n",
" $0$ \n",
" \n",
"\n",
" $x$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $y$ (central moment) \n",
" $0$ \n",
" $0$ \n",
" \n",
"\n",
" $x y$ \n",
" $0$ \n",
" $1.99982001619854$ \n",
" \n",
"\n",
" $x^{2} - y^{2}$ \n",
" $0$ \n",
" $1.99982001619854$ \n",
" \n",
"\n",
" $x^{2} + y^{2}$ \n",
" $\\frac{2 \\rho}{3}$ \n",
" $1$ \n",
" \n",
"\n",
" $x^{2} y$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
" $x^{2} y^{2}$ \n",
" $0$ \n",
" $1$ \n",
" \n",
"\n",
"
\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"method = create_lb_method(stencil='D2Q9', method='cumulant', relaxation_rate=omega)\n",
"method"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Initialisation with equilibrium"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"init = pdf_initialization_assignments(method, 1.0, initial_velocity, src.center_vector)\n",
"\n",
"ast_init = ps.create_kernel(init, target=dh.default_target)\n",
"kernel_init = ast_init.compile()\n",
"\n",
"dh.run_kernel(kernel_init)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Definition of the update rule"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"update = create_lb_update_rule(lb_method=method,\n",
" output={'velocity': velField},\n",
" optimization={\"symbolic_field\": src,\n",
" \"symbolic_temporary_field\": dst},\n",
" kernel_type='stream_pull_collide')\n",
"\n",
"ast_kernel = ps.create_kernel(update, target=dh.default_target, cpu_openmp=True)\n",
"kernel = ast_kernel.compile()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Definition of the boundary set up"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def set_sphere(x, y):\n",
" mid = (domain_size[0] // 3, domain_size[1] // 2)\n",
" radius = reference_length // 2\n",
" return (x-mid[0])**2 + (y-mid[1])**2 < radius**2"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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EoYGAAAAAAAAAAAAAIokDA0AAAAAAAAAAAAAFEkYGgAAAAAAAAAAAAAokjA0AAAAAAAAAAAAAFAkYWgAAAAAAAAAAAAAoEjC0AAAAAAAAAAAAABAkYShAQAAAAAAAAAAAIAiCUMDAAAAAAAAAAAAAEUShgYAAAAAAAAAAAAAiiQMDQAAAAAAAAAAAAAUSRgaAAAAAAAAAAAAACiSMDQAAAAAAAAAAAAAUCRhaAAAAAAAAAAAAACgSMLQAAAAAAAAAAAAAECRhKEBAAAAAAAAAAAAgCIJQwMAAAAAAAAAAAAARRKGBgAAAAAAAAAAAACKJAwNAAAAAAAAAAAAABRJGBoAAAAAAAAAAAAAKJIwNAAAAAAAAAAAAABQJGFoAAAAAAAAAAAAAKBIwtAAAAAAAAAAAAAAQJGEoQEAAAAAAAAAAACAIglDAwAAAAAAAAAAAABFEoYGAAAAAAAAAAAAAIokDA0AAAAAAAAAAAAAFEkYGgAAAAAAAAAAAAAokjA0AAAAAAAAAAAAAFAkYWgAAAAAAAAAAAAAoEjC0AAAAAAAAAAAAABAkYShAQAAAAAAAAAAAIAiCUMDAAAAAAAAAAAAAEUShgYAAAAAAAAAAAAAiiQMDQAAAAAAAAAAAAAUSRgaAAAAAAAAAAAAACiSMDQAAAAAAAAAAAAAUCRhaAAAAAAAAAAAAACgSMLQAAAAAAAAAAAAAECRhKEBAAAAAAAAAAAAgCIJQwMAAAAAAAAAAAAARRKGBgAAAAAAAAAAAACKJAwNAAAAAAAAAAAAABRJGBoAAAAAAAAAAAAAKJIwNAAAAAAAAAAAAABQJGFoAAAAAAAAAAAAAKBIwtAAAAAAAAAAAAAAQJGEoQEAAAAAAAAAAACAIglDAwAAAAAAAAAAAABFEoYGAAAAAAAAAAAAAIokDA0AAAAAAAAAAAAAFEkYGgAAAAAAAAAAAAAokjA0AAAAAAAAAAAAAFAkYWgAAAAAAAAAAAAAoEjC0AAAAAAAAAAAAABAkYShAQAAAAAAAAAAAIAiCUMDAAAAAAAAAAAAAEUShgYAAAAAAAAAAAAAiiQMDQAAAAAAAAAAAAAUSRgaAAAAAAAAAAAAACiSMDQAAAAAAAAAAAAAUCRhaAAAAAAAAAAAAACgSMLQAAAAAAAAAAAAAECRhKEBAAAAAAAAAAAAgCIJQwMAAAAAAAAA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V5+pPLPuyiuvHNddT01NTe1XX331k9VB6IiIhoaGOO2001oiItatW1e3yy67tF555ZVbhf5HjhzZ/qEPfWhFRMTDDz/cvGLFivrOew488MBug9AREbNmzdpwyimnLI+IuOmmm8Z0u3EbjB8/vvUHP/jBU1097/Of//yrP+9bb7115M485/VMGBoAAAAAAAAAAACArdxxxx3DVq9eXR8R8ZGPfGRFdwHhfffdt/Xoo49e3dXaLbfcMioiIqUU55xzzvLunnXaaae9NGLEiC0REbfeeuuo7vYdddRRq3ffffctXa3NnDnz1aD18ccfv2ro0KFdBrQPOeSQ9R3jpUuXDunuWR1aWlrqH3rooaH33HNP08KFC5sWLlzYNGbMmLaIiEcffbR506ZNqbca3Xnf+973UnNzc5d9vuUtb9k0bNiw9oiIxx57bOiOPuP1rqH3LQAAAAAAAAAAAAC80dx///3NHeO3ve1t63raO3PmzHW33Xbb6M7XlyxZ0hwRMWnSpE177LFHW3f3NzU15RkzZqxfsGDByIcffri5u3377bffpu7Wxo4d+2r9qVOnbuxu3y677PJqmLoj7N3ZggULmufMmbP7bbfdNmr58uWN3dVqb2+P5cuX10+aNKnbd+vJ9OnTu+0zImLUqFFt69evH7J27VoHIHdDGBoAAAAAAAAAAACAraxcufLVnOnEiRNbe9q7++67d7m+atWq+oiIcePG9RoW3m233VojIlavXt1tvrXjpOSu1NfXb9O+6hOu29ratjrV+Zvf/Oaus2fPftOWLVu26cTndevW7XBQuac+I17rdVt7eSOSEgcAAAAAAAAAAACgRyntXBZ3Z+8fKPfdd19TRxB67NixbRdeeOEzt99++x+ef/75+zdu3HhvznlRznnRN7/5zSc67sk517BjnAwNAAAUac6YDd2uzV7V7f9jErzu9fRvAwAAAAAAALbHLrvs8uppzsuWLWs8+OCDN3W394UXXmjs6vqYMWO2REQsX76818zqiy++2BgRMWrUqF5Pke4v3/3ud8dt2bIl1dfXx80337z00EMP3djVvupTs6ktJ0MDAAAAAAAAAAAAsJVDDjnk1ZN47r777uE97b333nu7XJ8+ffqGiIhnn3126LJly7oNEG/atCktXrx4WETE1KlTa3YC0JIlS5ojIqZNm7a+uyB0RPfvy8AThgYAAAAAAAAAAABgK0cfffT6UaNGbYmIuPbaa8e1t7d3ue/xxx9vvOOOO0Z1tXbcccetjojIOceVV145rrtnzZ07d5e1a9fWR0S8853vXL3Tze+gtra2FBGxfv36bjO2Tz75ZOMtt9wyeuC6oifC0AAAAAAAAAAAAABspbm5OX/oQx9aHvHKiclf/vKXd++8p7W1NU499dQ9W1tbU1c1/uqv/mrV+PHjWyMiLrvssokLFixo7rznkUceabzwwgsnR0Q0NTW1f/KTn1zRt2+y7fbZZ5+NERFPPfVU0/z587c6/XnNmjV1H/rQh/beuHGjDO4g4RcBAAAAAAAAAAAAQJcuvvji53bffffWiIivf/3rk0888cS9f/rTn4664447hl111VW7HHbYYQf85je/GX3ggQeu7+r+pqamfPnllz+ZUoq1a9fWv+td75o+e/bsifPnzx/+q1/9avhXv/rV3d761rfOaGlpaYyI+MpXvvLMxIkT2wbyHauddtppKyIi2tvb4+STT97/ggsumHDTTTeNuPXWW4ddcskl4w866KAZCxYsGHnYYYetrVWP/KmGWjcAAAAAAAAAAAAAwOA0bty4LfPmzXv4+OOPn7p8+fLGefPmjZ03b97Y6j0nn3zyimOOOWbN3/3d3+3VVY1TTjnl5ZaWlic++9nP7rlu3bq6Sy+9dI9LL710j+o99fX1MXv27GfPP//8ln58nV4de+yx6z/zmc8s+6d/+qc91qxZU3/JJZdMuuSSS/5kz9/8zd+88OY3v3nDvffeO6JGbVLFydAAAAAAAAAAAAAAdOvwww/f+D//8z8PnX322c/vueeem4YMGZLHjBnT9ta3vnXNd77zncd/+tOfPtFbjU996lMrfv/73//Paaed9uI+++yzsbm5ub2pqal9ypQpm0455ZTlv/3tbxdfdNFFzw/A6/Tq0ksvfe6aa6555Kijjlo9atSoLY2NjXn33Xdvfc973rPquuuu++NVV131TK175DUp51zrHt4wUkqTI+LpiIhbTo6YMHzrPe+bOG+AuwIAgNef2auaa90C1MycMRtq3QIAAAAAAFBjIw+4YKtrrStbY+l5SzumU3LORYY5Fy1adGNDQ8OMpqamMdOmTXukp70z/3H+wSvWbm4cqN5qZdyIIa2LvvTnv691H7Ctli5dut/GjRtXtbW1LZ45c+b7drZeQ180BQAAAAAAAAAAADCYjB02pLXWPQyEN8p7QneEoQEAAAAAAAAAAIDXnfnnHfuHWvcA9L+6WjcAAAAAAAAAAAAAALAjhKEBAAAAAAAAAAAAgCIJQwMAAAAAAAAAAAAARRKGBgAAAAAAAAAAAACKJAwNAAAAAAAAAAAAABRJGBoAAAAAAAAAAAAAKJIwNAAAAAAAAAAAAABQJGFoAAAAAAAAAAAAAKBIwtAAAAAAAAAAAAAAQJGEoQEAAAAAAAAAAACAIglDAwAAAAAAAAAAAABFaqh1AwAAAH1tzpgN3a7NXtU8gJ1A/+jpbxwAAAAAAADgjcTJ0AAAAAAAAAAAAABAkYShAQAAAAAAAAAAAIAiCUMDAAAAAAAAAAAAAEUShgYAAAAAAAAAAAAAiiQMDQAAAAAAAAAAAAAUSRgaAAAAAAAAAAAAAChSQ60bAAAAGEhzxmzodm32quYB7AR61tPfKgAAAAAAAL179AtvPqBtTUtjrfvobw0jx7fu+3/+5w/9Ufvkk0/e67rrrhsXEbFkyZIHp02btrm3eyZNmnTQsmXLhuyxxx6bn3322Qer11JKM7u7b+jQoXnMmDFtM2bMWH/SSSe9dNZZZ61obOz+19fxnK7WGhsb8+jRo9v233//DSeeeOKqv/3bv10xcuTI9t56p0zC0AAAAAAAAAAAAMDrTtualsYtq1983YehXy82bdqUXnjhhcYXXnhh9K233jr629/+9m7/9V//9ccpU6a0bW+t1tbWtHz58sbly5c33nXXXaOuvPLK3efNm/fHt7zlLZv6o3dqSxgaAAAAAAAAAAAAgAFz4IEHrv/hD3/4ePW11atX1z/wwAPNV1111W5Lly5tXrx48bAPfOAD+y5atGhpT7XGjx/f+otf/OLh6mvr16+ve+ihh5p++MMfjr/nnntGPPPMM0NPPPHE/ZcuXfpQc3Nz7o93onaEoQEAAAAAAAAAAAAYMMOGDWs/4ogjNna+ftxxx637xCc+seLggw+e8fjjjzfde++9I26++ebh7373u9d1V6uxsTF3VevYY49df9ZZZ6088sgjpy5YsGDk008/PfTf/u3fdjnrrLNW9vX7UFt1tW4AAAAAAAAAAAAAACIiRowYkc8888wXO+Z333338B2tVV9fH+eee+4LHfOFCxcO29n+GHyEoQEAAAAAAAAAAAAYNPbZZ5/NHeNNmzalnam1//77b6qqJTf7OuSXCgAAAAAAAAAAAMCg8cQTTwzpGL/pTW/a3NPe3jz66KND+6oWg5MwNAAAAAAAAAAAAACDwtq1a9P3vve93SIimpub20888cTVO1qrvb09Lrvsst0jIlJKcdJJJ63qozYZRBpq3QAAAAAAAAAAAAAAbxzr16+vW7hwYVP1tbVr19bdf//9w7773e+Of/TRR5tSSvHlL3/5mQkTJmzpqVZra2vqXGvDhg11ixcvbpo7d+6uv/vd70ZGRJx99tnPz5w5c2Pfvw21JgwNAAAAAAAAAAAAwIB56KGHhs2aNevA7taPOuqo1eeff/7zJ5544prearW0tDT2VOuggw5a99nPfvb5j3/846t2sF0GubpaNwAAAAAAAAAAAAAAHX73u9+NvOKKK3Z75JFHGne21kMPPTT8O9/5zvgFCxY090VvDD7C0AAAAAAAAAAAAAAMmCOOOGJtznlR9Wfjxo33Llmy5MGLLrroqREjRmyZP3/+mCOPPPKA++67r6mnWnvsscfmzrU2b9686LHHHvv9t771rccnTJiw+a677hp13HHHTfvv//7vEQP1jgwcYWgAAAAAAAAAAAAAtpJSenWcc96me7Z1X2dDhw7N06ZN23zBBRe0zJ8/f2lDQ0NuaWlpPPPMM/fc3lqNjY2x9957t55zzjkrf/vb3y4ZPXr0lrVr19affvrpe7e2tu5QfwxewtAAAAAAAAAAAAAAbKWpqam9Y7xu3bptypxu2LChLiJi2LBh7b3t7c7hhx++8dhjj305IuLee+8d8fvf/37ojtbac889W0866aQVERHLli0b8vOf/3zUjtZicGqodQMAAACDxZwxG7pdm72qeQA74Y2ip785AAAAAAAAqLWxY8e2dYyfffbZxpkzZ27saf+GDRvSmjVrGiIiRo8e3dbT3t5MnTp14y233BIREffee2/zwQcfvGlHa02fPv3Vvh944IHmk046afXO9Mbg4mRoAAAAAAAAAAAAALZy8MEHv3q6z8KFC4f1tv/uu+9u3rJlS0REzJgxY6dOBmpra0sd49bW1tTT3m2o1WVdXh+EoQEAAAAAAAAAAADYynvf+9419fX1OSLiuuuuG9ve3t7j/quvvnpcx/jd7373Tp2+fP/99w/vGO+1116bd6bWokWLXq01ZcqUnarF4CMMDQAAAAAAAAAA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ypiU0oRRo0bt09r5zcc/+MEPdkgpTSj+OuWUU8bMnDmzX/Px9OnTqyIipk+fXlU8ruXcnTF//vzy8847b+See+65V3V19bv69++//6hRo/Y56aSTdrnrrruq2jqn+TUvvfTS4e2935TShI9//OOjWxvzla98ZfuU0oTy8vL9ly1bJgccEfb5BgAA2Ap8b/Bm8clTAAAAAAAAQIlobGyM2267bWhEREVFReMFF1ywsLPnnn/++W889NBD20RE3HDDDcM+9rGPLdtUdfa0X//619ucccYZu9bW1vYpfn7+/Pn97rjjjm3vuOOObU8//fQF119//dw+fdYNGTlyZP3YsWPr5syZUzF16tTqiy66aEHLuR999NHq5va0adOqW/ZHRDz88MPVERF77733ykGDBr217faoUaP2mT9/fr+IiJzzkxv9RkuIMDQAAAAAAAAAAAAA63nyyScrli1b1iciYsKECbVDhw5t6Oy5J5544vKKiorGurq6sieeeKLVnZI3xh/+8IdZq1evTgcddNDeERGnnXbagvPPP//N4jHDhg1rGDlyZP3jjz8+IyLirLPO2mXGjBkD9t5775XXX3/9i83j+vfvnzv7utOmTas89dRTd1u7dm0qLy/PZ5xxxpsnnXTSsurq6obp06cP+OEPf7jDvHnz+t10003DBw4c2HDllVfOKz7/kEMOqZkzZ07FY4899rbvyaxZs/o1h5kLx5VvvPFGnxEjRrz1fV+7dm089dRTVREREydOrOls3Vs6YWgAAAAAAAAAAAAA1vPEE08MaG7vu+++K7tybnl5eYwfP37VX//614FLliwpf+mll/qOGTNmbXfV9s53vnN18fF2221Xf+CBB9a1Nrb5+QEDBjQ2P7Y1tiOf/OQnx6xduzb16dMnfvnLX84++eSTlzf3HX744SvPOOOMJYcccsgec+bMqbj66qu3P/vssxcdcMABdUVjan7+858PX7hwYd+nn366Yr/99nur7+67766OiNhtt93qVq1aVTZv3rx+d999d/Xpp5++tHnMww8/PGDFihVlERFHHnnkJg1DL1u2rM/06dMrOho3fvz4Ndtss01jR+M2JWFoAAAAAAAAAAAAANazcOHCtzKm22+/fZeDzMOGDXvrnDfffLO8O8PQveH+++8f8I9//GNARMRHPvKRBcVB6GbDhw9v+MlPfvLSMcccs0djY2Ncfvnl2910001zm/uPOeaYtwLM99xzT3VxGPrBBx+sjmjaPXrVqlVlt95669D7779/vTD0fffdVx0R0adPnzj66KNrN8kbXfdagw866KDBHY377W9/O+u4447r1V2qy3rzxQEAAAAAAAAAAADY/NTU1PRpbldVVXV559+BAwe+dc7SpUtLPq961113bdPc/uQnP7mwrXHve9/7Vuy66651EREPPfTQNsV9o0ePrt9ll13qIiKmTp1aXdz36KOPVkU07fh8+OGH10RETJs2bb0xDz/8cHVExJ577rlyyJAh6/2ZzJs37+855ydzzk9uyPsrZXaGBgAAAAAAAAAAAGA91dXVDc3t2traLoeZV6xY8dY5gwcP7nKYenMzY8aMyoiIvn375kMOOWRle2P322+/FS+88ELF3Llz+9fV1aWKiorc3HfIIYfUvPjiixWPPfZYVfNzs2fP7vvqq6/2TynFMcccU9P8vZs1a1blG2+80WfEiBEN9fX18eSTT1ZFREycOHGT78R88sknL7rtttte2tSv0x1KPmkPAAAAAAAAAAAAQPcaNmxYfXP79ddf79vV8xcuXPjWOdttt119e2NLwdKlS8sjIgYNGlTft2/7344RI0asjYjIOceCBQv6FPc17/q8cOHCvk8//XRFRMTdd99dHRExduzYupEjR9bvvvvua0aNGrUm5/xW37Rp0wbU1tb2iWjaPbqb315JE4YGAAAAAAAAAAAAYD0TJkxY1dz+29/+NqAr59bX18fMmTMrIyKGDBlSP2bMmLXdXV9vSSlt1Pnvf//73woy33PPPdUREVOnTq2OaNo1urnv4IMPromIuP/++6sjIu67777qiIg+ffrE0UcfXbtRRWxhhKEBAAAAAAAAAAAAWM8BBxywatCgQQ0REU888UTVokWL+nR0TrM77rhjm7q6urKIiAMPPPBtwd3mQHFjY2O786xcuXKzybkOHjy4PqJph+i1a9vPdr/xxht9I5re5/DhwxuK+3baaaf6nXfeeXXEuhD0I488Uh2x/o7PzTtIT5s2rToi4qGHHqqOiNhjjz1WDh06dL05t3abzX8kAAAAAAAAAAAAAGweysrK4pRTTlkUEVFXV1d2+eWXD+vsuf/93/+9XXP7jDPOWNiyf+DAgQ0REcuWLStvb54XXnihovMVb1p77733qoiItWvXpkceeaTdnbL/8pe/DIyI2GmnnVZXVFTklv0TJ06siYh47LHHql588cW+c+fO7Z9SimOOOeatMHRze9asWZWvvfZa+RNPPFEVsf7u0TQRhgYAAAAAAAAAAADgbS666KI3+vXrlyMiLrvsspH/+Mc/+nd0ztVXXz3kgQceGBQRsfvuu6869dRTl7UcM3r06NUREf/4xz8GtLU79BNPPFExa9asyvZeq3///jkiYvXq1anDN7ORjjnmmOXN7auvvrrNYPi99947cM6cORUREZMmTVre2pjDDjusJiJi4cKFfS+//PLhERFjx46tGzlyZH3zmHHjxq0ZOXLkmpxzfPe7392upqamT8T6u0fTRBgaAAAAAAAAAAAAgLcZP378mq997WuvRkSsXLmy7H3ve9+4Rx55pM2A8rXXXjvks5/97C4REX379s033HDDi2Vlb4+qTpo0qSYiYsGCBX2vvvrqbVv2L1mypOzss88e01F9w4YNWxsR8eKLL3YY0t5YRx555Mq99957ZUTELbfcMuyOO+6objlm0aJFfT7zmc/sHNG0s/Z55533Zmtzvf/9738r0HzddddtF9H6js8HH3xwTfGYsrKyeN/73lfb2pyjRo3aJ6U0IaU0oevvrrS1u704AAAAAAAAAAAAAFuvr371q2/OmTOn//XXX7/da6+91m/SpEl7Hn/88YtPOOGEZbvuuuvqNWvWpBkzZlT86le/GvrII49UR0T069cvX3XVVS9OnDhxVWtzfuITn1j8f//v/x1ZW1vb5/Of//yY2bNn9//ABz6wPKWUH3/88YE/+clPRrzxxhv99txzz5XPPvvsgLZqmzBhQu28efO2ve+++wZ/73vfG3bEEUfUVlZW5oiIIUOGNIwaNaq+rXM3xNVXX/3SEUccsefatWvTP/3TP+1+5plnvnniiScura6ubpw+ffqAH/7wh9u/+uqr/SMizj333NcPPPDAutbmGTNmzNqddtpp9dy5c/vX1ta2uePz4YcfXvPrX/96aPOY8ePHrxw2bFhDd76ntixbtqzP9OnTKzoa16dPn9h///1bfZ89RRgaAAAAAAAAAAAAgDb97Gc/e2WPPfao+/a3vz1q2bJlfW6//faht99++9DWxu666651V1xxxcvvf//7W93BOCJi5MiR9ZdffvnL55577q6rV69Ol1122cjLLrtsZHN/RUVF45VXXvnilClTBrUXhv7yl7/8+h//+Mcha9asSRdddNHOxX0nn3zyottuu+2lDXi7bZo4ceKqW265ZfYZZ5yxa21tbZ9rrrlmxDXXXDOi5bjTTz99wX//93/Pa2+uQw45pGbu3Ln9IyJSSnHMMce8LQzd8rlDDjmkze9pd7vvvvsGH3TQQYM7GldVVdVQU1Pzl01fUdvevvc4AAAAAAAAAAAAABS56KKLFsyePfvvl1xyydxJkyYt33777df0798/DxgwoHH06NGrjzvuuMU//elPX5g5c+aM9oLQzT7+8Y8vueeee549+uijlw4ZMqS+b9++efvtt19z8sknL3rooYeePeuss5Z0NMfEiRNX/elPf3r2uOOOW7zDDjus6devX+6ed9u2k08+efnMmTP/8dnPfvb1PfbYY1VVVVVDv3798g477LDmhBNOWPzHP/5x5o033ji3T58+7c5z2GGHvRV0Hjt2bN3IkSPftov1+PHj14wcOXJN83Fru0cTkXLe5H/uFKSUdoyIVyIi7jslYvuBbx/zgR2m9HBVAAAAAAAAAAAAbEmq97z4bc+tXbw2Zl44s/lwdM751R4tqps8+eSTvy8vL9+roqJi8Pjx42e3N/akO07ac0ndkr49VVtvGVIxZO3tJ97+bG/XAZ01c+bM3erq6pbW19c/M2HChA9s7Hzl3VEUAAAAAAAAAAAAwOZEQBi2DmW9XQAAAAAAAAAAAAAAwIYQhgYAAAAAAAAAAAAASpIwNAAAAAAAAAAAAABQkoShAQAAAAAAAAAAAICSJAwNAAAAAAAAAAAAAJQkYWgAAAAAAAAAAAAAoCQJQwMAAAAAAAAAAAAAJUkYGgAAAAAAAAAAAAAoScLQAAAAAAAAAAAAAEBJEoYGAAAAAAAAAAAAAEqSMDQAAAAAAAAAAAAAUJJKOgydUvpuSikXfR3RiXOOTSn9JqX0akppdeHxNymlYzd9xQAAAAAAAAAAAABAdynv7QI2VErpXRFxYRfGl0XE1RFxdouuUYWvk1JK10bEJ3POjd1VJwAAAAAAAAAAAACwaZTkztBFwebyiHizk6ddEuuC0E9HxEcj4qDC49OF58+JiG91X6UAAAAAAAAAAAAAwKZSkmHoiDgvIg6MiOci4rqOBqeUxkXEFwuHT0TEe3LOt+Scp+ecb4mIQwvPR0R8KaW02yaoGQAAAAAAAAAAAADoRiUXhk4p7RQR/6dw+KmIWNOJ0z4fTbtIR0R8Lue8qrgz57wyIj5XOCyPiAs2vlIAAAAAAAAAAAAAYFMquTB0RFwREVUR8T855wc7GpxSShFxYuHwuZzzo62NKzw/s3B4YuE8AAAAAAAAAAAAAGAzVVJh6JTSP0fEcRGxOCK+2MnTdomIkYV2R+Hp5v5RETGmq/UBAAAAAAAAAAAAAD2nZMLQKaXBEXF54fDLOeeFnTx1r6L2cx2MLe7fs5PzAwAAAAAAAAAAANCDTjnllDEppQmjRo3ap7X+UaNG7ZNSmnDKKaeM6eHS6GHlvV1AF1waEdtHxJ8j4rounLdjUfvVDsa+UtQe3YXXiIiIlNKOHQzZvqtzAgAAAAAAAAAAAF0357jj92xYsqRvb9exqfUZMmTt2Cm/fba364DeUhJh6JTSpIg4JyLqI+JTOefchdOri9q1HYxdUdSu6sJrNHul4yEAAAAAAAAAAADAptawZEnfhkWLtvgwNGztynq7gI6klPpFxNURkSLiBznnf3Rxioqi9poOxq4uald28XUAAAAAAAAAAAAAgB5UCjtDfyUi9oiIuRHxjQ04v66o3a+Dsf2L2qs24LVGd9C/fURM34B5AQAAAAAAAAAAAIAWNuswdEppj4j4/wqHn8s5r9iAaWqK2lUdjB1Y1K7t6gvlnF9trz+l1NUpAQAAAAAAAAAAAIA2lPV2AR24IJp2c34hIgaklE5t+RUR7yga/96ivuZgc3FAeccOXq94Z+dXNrp6AAAAAAAAAAAAgBJ05JFH7pZSmrDvvvvu0Vr/lClTqlNKE1JKEwYNGvSuhoaGt42ZO3duefOYSy+9dHjz8w0NDXHnnXdWn3vuuTvuv//+ewwZMmTf8vLy/aurq9+1xx577HXuuefu+Pzzz/fbhG+PLchmvTN0RPQvPO4aETd3Yvx/FLV3iYgVEfFM0XOt/g/ZRv+znXg9AAAAAAAAAAAAgC3OoYceWvPAAw8MmjFjxoBly5aVDRo0qLG4//77769qbi9fvrzPY489Vjlx4sRVxWPuuuuu6ub20UcfXdPc/tKXvjTyBz/4wQ4tX7O2trbPzJkzK2fOnFl50003Df/pT3/64r/+678u7dY3xhZnc98Zuju8GBHzC+3DOxh7WOFxXkS8tKkKAgAAAAAAAAAAANicTZ48uSYioqGhId1zzz1VLfsffvjh6uLje++9t7rlmAceeKA6ImLo0KH1++23X13z8/X19TF8+PC1//Iv/7LgiiuuePHuu+9+7qGHHnr2pptumvOpT33q9QEDBjTW1dWVnXvuubs+9dRTFd3/7tiSbNZh6JzzmTnn1N5XRHyj6JQji/peKsyRI+KOQv8eKaWDW3utwvPNO0PfUTgPAAAAAAAAAAAAYKvznve8Z+XAgQMbIyL+9Kc/rRd0XrVqVfrrX/9aFRFx5JFHLouImDp16tvC0I8++mh1RMS73/3umuLn/+3f/m3hK6+88vebbrpp7mc+85nFRx999IpDDz105b/8y78svfLKK+f97W9/+8d22223dvXq1emb3/zm23aQhmKbdRi6G/0wIhoK7R+nlCqLOwvHPy4c1hfGAwAAAAAAAAAAAGyVysvLY8KECTUREX/+85/XCzo/8MADA1evXp2qqqoaLrjggjciIqZPn17d0NDw1ph58+aVv/DCCxUREZMmTVovDD1+/Pg1/fv3b3PT2rFjx6797Gc/+3pExH333TeosbGx294XW56tIgydc54VEd8rHB4QEX9OKX0kpXRASukjEfHnwvMREd/LOT/fG3UCAAAAAAAAAAAAbC4OPfTQ2oiIGTNmDFi2bNlbmdPmnaIPOOCA2smTJ9dWVFQ0Ll++vM9jjz321ma1d91111sB6qOPPnq9MHRLixcvLnvuuef6PfHEExXTp0+vmD59esWAAQMaIyJqa2v7PPfcc/26+72x5Sjv7QJ60FcjYruI+HhE7BcRt7Qy5rqI+PeeLAoAAAAAAAAAAABgc3TUUUfVfPvb346GhoZ0zz33VH34wx9eHhHx8MMPV0c07fhcWVmZ99133xWPPfZY9b333ls9ceLEVRER999/f3VExJAhQ+onTJhQ13LuWbNm9bvkkktG3HvvvYPnz5/fbtj5jTfeKN9rr73WdP87ZEuwVewMHRGRc27MOZ8dER+MiDsiYn5ErCk83hERH8g5n5Nztpc6AAAAAAAAAAAAsNWbNGnSiuYdmpt3g66rq0t/+ctfBkZETJ48uSYi4tBDD62JiJg6depbu0E/+uij1RER7373u9+2K/SvfvWrbfbdd9+9b7zxxu06CkJHRKxcuXKrybvSdSX/H0fO+es551T4eqAT43+fcz4p5zwq59y/8HhSzvkPPVAuAAAAAAAAAAAAQEno27dv7L///rUREX/+85+rIyKmTp06oK6urqyqqqph4sSJKyMijjzyyJqIiOnTp1c3NDTEa6+9Vj5nzpyKiKbdo4vnfO2118rPOeecXevq6soGDBjQeOGFF86/9957n5s3b95fV61a9VTO+cmc85N33HHHrOZzcs6pp94zpae8twsAAAAAAAAAAAAAYPN06KGH1jz88MPbzJgxY8CyZcvK7rvvvuqIiAMOOKC2vLwphvre9753Rf/+/fPy5cv7PPbYY5WzZs3qn3OOiIijjz56vTD0TTfdNKSmpqZPRMQvfvGL2SeddNLbdo6OiFi0aJGMK51S8jtDAwAAAAAAAAAAALBpHHXUUTUREQ0NDemee+6pevjhh6sj1t/xubKyMu+77761ERH33ntv9QMPPFAdETF48OD6CRMm1BXPN2PGjIqIiEGDBjW0FYSOiJg+ffqA7n83bImEoQEAAAAAAAAAAABo1aRJk1ZWVlY2RkTcdddd2zz99NNVERGTJ09eL8h86KGH1kRETJ06tXratGnVEREHHXRQbVnZ+lHV+vr6FBGxevXq1NDQ0Opr1tTUlN16661Du/u9sGUShgYAAAAAAAAAAACgVf3798/77bdfbUTELbfcMmzVqlVlVVVVDRMnTlxZPO7II4+sjYh49NFHt5k9e3ZlxPq7RzfbfffdV0dE1NXVlV133XVDWvbX19fHxz72sZ0XLFjQd1O8H7Y8wtAAAAAAAAAAAAAAtKl51+fa2to+EREHHHBAbXl5+Xpj3vve99b269cvr1ixoiznHBERRx999NvC0Keffvrifv365YiI8847b5fPfOYzo+64447qqVOnDvjxj3889F3veteeU6ZM2Xb//fev3dTviy2DMDQAAAAAAAAAAAAAbTrqqKPWCzW3tuPzgAED8r777rui+XjQoEENBx544KqW48aOHbv20ksvfbmsrCxWr16drrzyyu1POumkcYcffvie55133pgZM2YM+OAHP7jka1/72vxN827Y0ghDAwAAAAAAAAAAANCmww47bGVFRUVj8/HkyZPfFoaOWLeDdETEgQceWFNW1npM9fzzz1/0xz/+8bnJkycvHTJkSH15eXkePnz42kmTJi2/5pprXpgyZcoLffr06fb3wZapvOMhAAAAAAAAAAAAAKWlz5Aha3u7hp7QE++zoqIir1q16umOxn3/+9+f//3vf79TOzofffTRK44++ug5bfUfd9xxNTnnJ9vqv+22216KiJfa6p83b97fO1MHpU8YGgAAAAAAAAAAANjijJ3y22d7uwZg02t9/3EAAAAAAAAAAAAAgM2cMDQAAAAAAAAAAAAAUJKEoQEAAAAAAAAAAACAkiQMDQAAAAAAAAAAAACUJGFoAAAAAAAAAAAAAKAkCUMDAAAAAAAAAAAAACVJGBoAAAAAAAAAAAAAKEnC0AAAAAAAAAAAAABASRKGBgAAAAAAAAAAAABKkjA0AAAAAAAAAAAAAFCShKEBAAAAAAAAAAAAgJIkDA0AAAAAAAAAAAAAlCRhaAAAAAAAAAAAAACgJAlDAwAAAAAAAAAAAAAlSRgaAAAAAAAAAAAAAChJwtAAAAAAAAAAAAAAQEkShgYAAAAAAAAAAAAASpIwNAAAAAAAAAAAAABQkoShAQAAAAAAAAAAANgkTjnllDEppQmjRo3ap7dr2dxNmTKlOqU0IaU0YcqUKdW9XU+pKO/tAgAAAAAAAAAAAAC6283feGzPVbVr+vZ2HZtaZVW/tR/9z3c/29t1QG8RhgYAAAAAAAAAAAC2OKtq1/RdVbN2iw9D074f/ehHQ88///wxERHPPffc38ePH7+ml0uim5X1dgEAAAAAAAAAAAAAABtCGBoAAAAAAAAAAAAAKEnC0AAAAAAAAAAAAABASRKGBgAAAAAAAAAAAKBddXV16Tvf+c7wd7/73eOGDBmyb9++ffcfNmzYvocffvhuP/nJT7ZtaGjo1Dwvvvhi33POOWfHMWPGvKOysnK/IUOG7HvEEUfsduutt27T0bk33njj4MmTJ48dMWLEO/v167f/wIED99txxx33mTBhwvjzzz9/5P333z+geeyUKVOqU0oTzj///DHNz+2xxx77pJQmFH9NmTKluvg17rvvvoHnnXfeyIMOOmj8sGHD9u3bt+/+VVVV+40dO3bv0047bacnn3yyorPfs1/+8peDTjzxxF123HHHfSorK/fr37///qNGjdrnmGOOGfujH/1oaE1NzQbneG+66abBxx577K477LDDPv3799+/urr6Xe94xzv2/MIXvrDDggUL+mzovKWovLcLAAAAAAAAAAAAAGDzNXPmzH7HHnvs7i+++OJ6QeBFixaVT506ddDUqVMHXXfddcN///vfzx4xYkSbqeipU6cO+NCHPrT74sWL38qv1tXVlT344IODHnzwwUHnnHPOG9dcc82rLc+rr6+PE044Ydc//OEPQ4qfX7t2bVq5cmW/efPm9Xvqqaeq7rvvvkH/+Mc/nt3Q9/mjH/1oaHF4uuj10wsvvFDxwgsvVPzyl78c/q1vfWvuxRdfvKCteV5//fU+J5988thHHnmkumXf/Pnz+82fP7/f3XffPTgi4rzzzlvUlRoXLFjQ54QTThj76KOPrjf3mjVr+syYMWPAjBkzBtxwww3b/epXv5p91FFHrejK3KVKGBoAAAAAAAAAAACAVi1btqxs8uTJ41599dX+ERGTJ09eetZZZy0cPXr02tmzZ/e/8sort5s+fXrVU089VXXsscfu/vjjjz9XXv72eOqqVavKPvrRj46tra3t85nPfOb1448/fln//v0bp02bVnX55Zdvv2DBgr7XXnvtiJ122mnNf/zHf7xZfO6ll146vDkIvf/++9eeeeaZC8eNG7e6qqqqYcGCBeV/+ctfBtxzzz3b1NTUvLUj8mGHHbbi8ccfn3HrrbcOvvTSS0dFRNx2223Pjx49ek3x3OPHj3/ruL6+Pm2zzTYNRx999NJJkybV7LHHHqurqqoaXnnllX5PPvnkgGuvvXa7pUuXln/lK1/Zaa+99qo74YQTalq+z5qamrLDDjts/PPPP18ZEbH33nuvPPPMMxfsu+++qyoqKvJLL73U78EHH6y68847t+3qn8WqVavSEUccMe6ZZ54Z0KdPnzj++OMXHXvssct22223NWvXrk33339/1U9/+tMRixcvLj/55JN3nz59+jPjxo1b0/HMpU0YGgAAAAAAAAAAAIBWXXTRRSObg9DnnXfea5dffvn85r5JkyatPOOMM5Z86EMf2uXOO+/c9umnnx542WWXDf/yl7/8tl2TlyxZUl5TU5PvvPPOWccee2xt8/NHHnnkytNOO23JwQcfvOcbb7zR97/+679GnX322YtHjhxZ3zzm17/+9bYREe985ztXPProozP79u273twnnXRSzde//vU33njjjbfC0Ntss03jgQceWPfII4+sbX5u7733risOP7f0oQ99aNknPvGJxdXV1Y0tuladeuqpyy6++OI3J06cOH7WrFmV3/jGN0aecMIJM1vOccEFF4xsDkKffvrpC2644Ya5ZWVlb/VPmjRp5emnn760rq5u3oIFC/q0PL89F1100chnnnlmQHV1dcPvfve7WZMmTVpZ3H/MMcfUfvzjH1986KGH7rFgwYK+X/ziF0fdeeedL3blNUpRWcdDAAAAAAAAAAAAANjarFq1Kt18883DIiJ22223ussuu2x+yzFlZWVx/fXXvzx48OD6iIhrrrlmu7bm+9jHPragOAjdbMyYMWu/9a1vvVJ4zbKrrrpqaHH/woUL+0ZEHHjggbUtg9DFRowY0dDJt9aqXXbZZW0rQei3DB06tOE//uM/5kdEPPXUU1Wvv/76emHmhQsX9vnFL34xPKJpR+if/exn6wWhi1VUVOTRo0fXt9rZimXLlpXdcMMNwyMiLr744nktg9DNxo0bt+YLX/jCaxERf/jDH4YsX758i88Kb/FvEAAAAAAAAAAAAICue/jhhwfU1NT0iYj46Ec/urC8vLzVcdtuu23jBz/4wSUREXPmzKl4+eWXW00sf+ITn1jU1mudfvrpS6urqxsiIu6///5tivuGDx++NiLinnvuGfzaa6+1XsQmsHz58rKZM2f2e+KJJyqmT59eMX369Iq+ffvm5v7HH398QPH43/3ud9V1dXVlERGf+tSn3mzr+7Uh/vCHP1TX1tb2iYj4l3/5lyXtjT3qqKNqIiLq6+vTn//85wHtjd0S9Nh/EAAAAAAAAAAAAACUjr/+9a+Vze2JEyeuaG/su9/97hXNuyI/9dRTlTvvvPPa4v6+ffvmgw8+uNXdjCMi+vfvn/faa6+Vjz32WPXMmTMri/tOO+20hU888UTV3Llz+48bN+4d73//+5dOnjx5+eTJk2vGjh27tq05N8Rrr71Wfskll4yYMmXKkLlz5/bPObc59s0331wvh/vUU0+9FTyePHlyTXfWNX369Lfm3nnnnfft7Hnz5s1reyvtLYQwNAAAAAAAAAAAAABvs3jx4rdypjvssEO7oeORI0e+1b9w4cI+LfsHDRpU39FOyc07QC9fvny9gZ///OcXzZkzp+LKK68cUVtb2+fWW28deuuttw6NiBg9evTqY445ZukFF1zw5l577bWmU2+sDQ899NCAE044YfelS5d2Kl+7atWqsuLjhQsXvnXeTjvt1K0h7TfffHODQs0rV64s63hUaROGBgAAAAAAAAAAAKBdKaVePf/HP/7xvM997nMLfvazn2374IMPbvOXv/xlYF1dXdkrr7zS/9prrx1xww03bHfJJZe8ctFFFy3YkPnr6urSxz72sV2XLl1aXl5ens8888w3Tz755KV777133fDhwxsqKytzRMQzzzzTb++9994nIqK9XaO7W0NDw1vthx9++Jl+/fp16sV32WWXbg1lb46EoQEAAAAAAAAAAAB4m2233ba+uT1//vy+73znO1e3NXb+/Plv7Vw8bNiwhpb9S5cuLa+vr4/2dodesGBB34iIbbbZpr61/nHjxq35zne+83pEvL569eo0derUATfffPO2//u//zt89erV6eKLL97pPe95T+173vOeVZ17h+tMmTKl+tVXX+0fEfHd73537oUXXriwtXHFuz+3NGzYsLfqnjt3bt899thjo3aqLjZ06NC3vqfbb799/dixY7f4kHNnbfFbXwMAAAAAAAAAAADQdfvuu+9boeJp06YNbG/s448//lb//vvv/7Yw8tq1a9Ojjz46oK3z165dG88+++yAiIhx48Z1GGbu379/Pvroo1f87Gc/e+Xqq69+IaJpp+Zbbrll2+Jxnd2R+u9//3tlc/uss85a3Na4Rx99tM3vw4QJE1Y2t++5557qTr1wJ+2///5vzf2nP/2pqjvnLnXC0AAAAAAAAAAAAAC8zaGHHrqyurq6ISLilltuGdrQ8LYNnyMiYsmSJWVTpkwZEhExduzYup133rnVXYuvu+66oW291k033TRk+fLlfSIijjzyyOVdqfO44457a/yiRYvW27m5oqKisbldV1fXZjK6vr7+rb6amppW87UNDQ3xP//zP8PamuMDH/hATWVlZWNExE9/+tPt6utb3eB6gxx//PHLm9/LlVdeOaKxsbGjU7YawtAAAAAAAAAAAAAAvE1lZWX+6Ec/ujAi4vnnn6+86KKLdmg5prGxMc4+++ydli5dWh4R8YlPfOLNtub7+c9/Pvyuu+56267Gc+fOLf/3f//3HSOawsuf+tSnFhX3/+QnP9l27dpW89UREXHHHXcMam6PGTNmdXHfjjvu+NaJzz33XEVbc4wbN66uuX3VVVe1Gnj+7Gc/O+qZZ55pc3frYcOGNZx22mkLIiJmzJgx4Oyzzx7dVmh59erVad68eeWtdrYx95lnnvlmRMTTTz898JxzzhndVjg9IuKVV14p//73v99mcHtL0ulvIgAAAAAAAAAAAABbl+985zvzf//73w9+9dVX+3//+98fOWPGjMozzzxz0Y477rh29uzZ/a688srtHn/88eqIiHe9610rvvCFLyxobZ4hQ4bUV1ZWNp544onjzjnnnDeOP/74ZRUVFY3Tpk0b+IMf/GCHBQsW9I2I+PKXvzx/1KhR622p/G//9m+7fO1rXxv9/ve/f8nEiRNrx40bt7qysrLxtdde63vXXXdt8/Of/3x4RMSAAQMaP/7xj68XpD744INX9u/fP69evTp985vfHNmvX788duzY1WVlTfsJjxkzZk1VVVX+0Ic+tPzCCy+sX7x4cfmll1466qWXXup3yimnLN1uu+3qn3vuuf7XX3/98EceeaR6//33r33qqafeFuhu9v3vf3/+gw8+uM3zzz9feeONN2735JNPVp111lkL3vWud63q379/fvnll/tOnTq1+vbbb9/2q1/96rzzzjtvUVtztTb3tGnTqv/2t78NvP7667ebNm1a9RlnnLFgwoQJK6uqqhoXLVpU/ve//73iT3/60zZTp04dNG7cuFUXXnjhws7OX6qEoQEAAAAAAAAAAABo1ZAhQxrvvffeWccee+zuL774YsVdd9015K677hrSctz+++9f+/vf/352eXnr0dTKysrGm2++ec6JJ564+xVXXLH9FVdcsX3LMWeeeeabX//6199o7fxFixaV/+IXvxj+i1/8Ynhr/VVVVQ3XX3/9C7vtttt6W0gPGTKk8ayzznrjqquu2v6ZZ54ZcPLJJ+9e3P/b3/521nHHHVezzTbbNF599dUvnnbaabutXr063XzzzcNvvvnm9V7roIMOqrniiivmHnjggXu3+iYjorq6uvHBBx+cdcIJJ4x94oknqmbMmDHgi1/84s5tje+KysrK/MADD8w69dRTd7n77rsHz5w5s/IrX/nKTm2Nr6qqanvr6C2IMDQAAAAAAAAAAAAAbRo/fvyaZ5555pkf/OAHw37zm99s+/zzz1fU1tb2GTRoUMNee+218tRTT130yU9+cnGfPn3aneewww5bOX369GcuueSS7e+7775Bb775Zr/KysqGffbZZ+VnP/vZN/75n/95eWvnTZ8+fcbtt98+aNq0adVz587tv2jRovKampryAQMGNOy66651733ve5dfcMEFb44ePbq+tfOvuOKKebvvvvvq//3f/x06e/bsytra2j4NDW/PCZ9yyinLd95552e+9a1v7TBt2rTqJUuWlFdX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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"bh = LatticeBoltzmannBoundaryHandling(method, dh, 'src', name=\"bh\")\n",
"\n",
"inflow = UBB(initial_velocity)\n",
"outflow = ExtrapolationOutflow(stencil[4], method)\n",
"wall = NoSlip(\"wall\")\n",
"\n",
"bh.set_boundary(inflow, slice_from_direction('W', dim))\n",
"bh.set_boundary(outflow, slice_from_direction('E', dim))\n",
"for direction in ('N', 'S'):\n",
" bh.set_boundary(wall, slice_from_direction(direction, dim))\n",
"\n",
"bh.set_boundary(NoSlip(\"obstacle\"), mask_callback=set_sphere)\n",
"\n",
"plt.figure(dpi=200)\n",
"plt.boundary_handling(bh)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"def timeloop(timeSteps):\n",
" for i in range(timeSteps):\n",
" bh()\n",
" dh.run_kernel(kernel)\n",
" dh.swap(\"src\", \"dst\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Run the simulation"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"