Commit 0330b3ca authored by Markus Holzer's avatar Markus Holzer Committed by Michael Kuron
Browse files

Bump minimum SymPy version and add Python 3.9 to CI

parent 6374f339
......@@ -36,6 +36,31 @@ tests-and-coverage:
cobertura: coverage.xml
junit: report.xml
# pipeline with latest python version
latest-python:
stage: test
except:
variables:
- $ENABLE_NIGHTLY_BUILDS
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/latest_python
before_script:
- pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils
script:
- env
- pip list
- export NUM_CORES=$(nproc --all)
- mkdir -p ~/.config/matplotlib
- echo "backend:template" > ~/.config/matplotlib/matplotlibrc
- mkdir public
- py.test -v -n $NUM_CORES -m "not longrun" --junitxml=report.xml
tags:
- docker
- AVX
artifacts:
when: always
reports:
junit: report.xml
# Nightly test - runs "long run" jobs only
test-longrun:
stage: test
......@@ -85,15 +110,18 @@ ubuntu:
variables:
- $ENABLE_NIGHTLY_BUILDS
image: i10git.cs.fau.de:5005/pycodegen/pycodegen/ubuntu
script:
before_script:
- apt-get -y remove python3-sympy
- ln -s /usr/include/locale.h /usr/include/xlocale.h
- pip3 install `grep -Eo 'sympy[>=]+[0-9\.]+' setup.py | sed 's/>/=/g'`
- pip3 install `grep -Eo 'numpy[>=]+[0-9\.]+' setup.py | sed 's/>/=/g'`
- pip3 install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils
script:
- export NUM_CORES=$(nproc --all)
- mkdir -p ~/.config/matplotlib
- echo "backend:template" > ~/.config/matplotlib/matplotlibrc
- pip3 install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils
- env
- pip3 list
- pytest-3 -v -m "not longrun" --junitxml=report.xml
- pytest-3 -v -n $NUM_CORES -m "not longrun" --junitxml=report.xml
tags:
- docker
- cuda11
......
%% Cell type:code id: tags:
``` python
import pytest
pytest.importorskip('pycuda')
```
%%%% Output: execute_result
<module 'pycuda' from '/home/markus/miniconda3/envs/pystencils/lib/python3.8/site-packages/pycuda/__init__.py'>
%% Cell type:code id: tags:
``` python
%load_ext autoreload
%autoreload 2
```
%% Cell type:code id: tags:
``` python
import sympy as sp
import numpy as np
from numpy.testing import assert_allclose
from pystencils.session import *
from lbmpy.session import *
from lbmpy.stencils import get_stencil
from lbmpy.methods.centeredcumulant import CenteredCumulantForceModel
from lbmpy.macroscopic_value_kernels import macroscopic_values_getter, macroscopic_values_setter
```
%% Cell type:markdown id: tags:
## Pipe Flow Scenario
%% Cell type:code id: tags:
``` python
class PeriodicPipeFlow:
def __init__(self, method_params, optimization=dict()):
wall_boundary = NoSlip()
self.stencil = method_params.get('stencil', get_stencil("D2Q9"))
self.streaming_pattern = method_params.get('streaming_pattern', 'pull')
self.target = optimization.get('target', 'cpu')
self.gpu = self.target in ['gpu', 'opencl']
# Stencil
self.q = len(self.stencil)
self.dim = len(self.stencil[0])
# Streaming
self.inplace = is_inplace(self.streaming_pattern)
self.timesteps = get_timesteps(self.streaming_pattern)
self.zeroth_timestep = self.timesteps[0]
# Domain, Data Handling and PDF fields
self.pipe_length = 60
self.pipe_radius = 15
self.domain_size = (self.pipe_length, ) + (2 * self.pipe_radius,) * (self.dim - 1)
self.periodicity = (True, ) + (False, ) * (self.dim - 1)
force = (0.0001, ) + (0.0,) * (self.dim - 1)
self.force = method_params.get('force', force)
self.dh = create_data_handling(domain_size=self.domain_size,
periodicity=self.periodicity, default_target=self.target)
self.pdfs = self.dh.add_array('pdfs', self.q)
if not self.inplace:
self.pdfs_tmp = self.dh.add_array_like('pdfs_tmp', self.pdfs.name)
method_params['force'] = self.force
optimization['symbolic_field'] = self.pdfs
if not self.inplace:
optimization['symbolic_temporary_field'] = self.pdfs_tmp
self.lb_collision = create_lb_collision_rule(optimization=optimization, **method_params)
self.lb_method = self.lb_collision.method
self.lb_kernels = []
for t in self.timesteps:
self.lb_kernels.append(create_lb_function(collision_rule=self.lb_collision,
optimization=optimization,
timestep=t,
**method_params))
# Macroscopic Values
self.density = 1.0
self.density_field = self.dh.add_array('rho', 1)
u_x = 0.0
self.velocity = (u_x,) * self.dim
self.velocity_field = self.dh.add_array('u', self.dim)
setter = macroscopic_values_setter(
self.lb_method, self.density, self.velocity, self.pdfs,
streaming_pattern=self.streaming_pattern, previous_timestep=self.zeroth_timestep)
self.init_kernel = create_kernel(setter, ghost_layers=1, target=self.target).compile()
self.getter_kernels = []
for t in self.timesteps:
getter = macroscopic_values_getter(
self.lb_method, self.density_field, self.velocity_field, self.pdfs,
streaming_pattern=self.streaming_pattern, previous_timestep=t)
self.getter_kernels.append(create_kernel(getter, ghost_layers=1, target=self.target).compile())
# Periodicity
self.periodicity_handler = LBMPeriodicityHandling(
self.stencil, self.dh, self.pdfs.name, streaming_pattern=self.streaming_pattern)
# Boundary Handling
self.wall = wall_boundary
self.bh = LatticeBoltzmannBoundaryHandling(
self.lb_method, self.dh, self.pdfs.name,
streaming_pattern=self.streaming_pattern, target=self.target)
self.bh.set_boundary(boundary_obj=self.wall, mask_callback=self.mask_callback)
self.current_timestep = self.zeroth_timestep
def mask_callback(self, x, y, z=None):
y = y - self.pipe_radius
z = z - self.pipe_radius if z is not None else 0
return np.sqrt(y**2 + z**2) >= self.pipe_radius
def init(self):
self.current_timestep = self.zeroth_timestep
self.dh.run_kernel(self.init_kernel)
def step(self):
# Order matters! First communicate, then boundaries, otherwise
# periodicity handling overwrites reflected populations
# Periodicty
self.periodicity_handler(self.current_timestep)
# Boundaries
self.bh(prev_timestep=self.current_timestep)
# Here, the next time step begins
self.current_timestep = self.current_timestep.next()
# LBM Step
self.dh.run_kernel(self.lb_kernels[self.current_timestep.idx])
# Field Swaps
if not self.inplace:
self.dh.swap(self.pdfs.name, self.pdfs_tmp.name)
# Macroscopic Values
self.dh.run_kernel(self.getter_kernels[self.current_timestep.idx])
def run(self, iterations):
for _ in range(iterations):
self.step()
@property
def velocity_array(self):
if self.gpu:
self.dh.to_cpu(self.velocity_field.name)
return self.dh.gather_array(self.velocity_field.name)
def get_trimmed_velocity_array(self):
if self.gpu:
self.dh.to_cpu(self.velocity_field.name)
u = np.copy(self.dh.gather_array(self.velocity_field.name))
mask = self.bh.get_mask(None, self.wall)
for idx in np.ndindex(u.shape[:-1]):
if mask[idx] != 0:
u[idx] = np.full((self.dim, ), np.nan)
return u
```
%% Cell type:markdown id: tags:
## General Setup
%% Cell type:code id: tags:
``` python
stencil = get_stencil('D3Q19')
dim = len(stencil[0])
target = 'gpu'
streaming_pattern = 'aa'
optimization = { 'target': target }
viscous_rr = 1.1
force = (0.0001, ) + (0.0,) * (dim - 1)
```
%% Cell type:markdown id: tags:
## 1. Reference: SRT Method
%% Cell type:code id: tags:
``` python
srt_params = {
'stencil': stencil,
'method': 'srt',
'relaxation_rate': viscous_rr,
'force_model': 'guo',
'force' : force,
'streaming_pattern': streaming_pattern
}
srt_flow = PeriodicPipeFlow(srt_params, optimization)
srt_flow.init()
srt_flow.run(400)
```
%% Cell type:code id: tags:
``` python
srt_u = srt_flow.get_trimmed_velocity_array()
ps.plot.vector_field_magnitude(srt_u[30,:,:,:])
ps.plot.colorbar()
```
%%%% Output: execute_result
<matplotlib.colorbar.Colorbar at 0x7f8678eccbe0>
<matplotlib.colorbar.Colorbar at 0x7f20b2f75bb0>
%%%% Output: display_data
![](data:image/png;base64,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)
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Created with matplotlib (https://matplotlib.org/) --> <svg height="360.337013pt" version="1.1" viewBox="0 0 844.941125 360.337013" width="844.941125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <metadata> <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2021-01-30T11:27:56.312291</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> </metadata> <defs> <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> </defs> <g id="figure_1"> <g id="patch_1"> <path d="M 0 360.337013 L 844.941125 360.337013 L 844.941125 0 L 0 0 z " style="fill:none;"/> </g> <g id="axes_1"> <g id="patch_2"> <path d="M 26.925 336.458888 L 741.165 336.458888 L 741.165 10.298888 L 26.925 10.298888 z " style="fill:#ffffff;"/> </g> <g clip-path="url(#p45058bb045)"> <image height="327" id="imagebfbeb8fdc1" transform="scale(1 -1)translate(0 -327)" width="327" x="220.965" xlink:href="data:image/png;base64, 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" y="-9.458888"/> </g> <g id="matplotlib.axis_1"> <g id="xtick_1"> <g id="line2d_1"> <defs> <path d="M 0 0 L 0 3.5 " id="m25408d715f" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="117.681" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_1"> <!-- −10 --> <g transform="translate(107.128656 351.057326)scale(0.1 -0.1)"> <defs> <path d="M 10.59375 35.5 L 73.1875 35.5 L 73.1875 27.203125 L 10.59375 27.203125 z " id="DejaVuSans-8722"/> <path d="M 12.40625 8.296875 L 28.515625 8.296875 L 28.515625 63.921875 L 10.984375 60.40625 L 10.984375 69.390625 L 28.421875 72.90625 L 38.28125 72.90625 L 38.28125 8.296875 L 54.390625 8.296875 L 54.390625 0 L 12.40625 0 z " id="DejaVuSans-49"/> <path d="M 31.78125 66.40625 Q 24.171875 66.40625 20.328125 58.90625 Q 16.5 51.421875 16.5 36.375 Q 16.5 21.390625 20.328125 13.890625 Q 24.171875 6.390625 31.78125 6.390625 Q 39.453125 6.390625 43.28125 13.890625 Q 47.125 21.390625 47.125 36.375 Q 47.125 51.421875 43.28125 58.90625 Q 39.453125 66.40625 31.78125 66.40625 z M 31.78125 74.21875 Q 44.046875 74.21875 50.515625 64.515625 Q 56.984375 54.828125 56.984375 36.375 Q 56.984375 17.96875 50.515625 8.265625 Q 44.046875 -1.421875 31.78125 -1.421875 Q 19.53125 -1.421875 13.0625 8.265625 Q 6.59375 17.96875 6.59375 36.375 Q 6.59375 54.828125 13.0625 64.515625 Q 19.53125 74.21875 31.78125 74.21875 z " id="DejaVuSans-48"/> </defs> <use xlink:href="#DejaVuSans-8722"/> <use x="83.789062" xlink:href="#DejaVuSans-49"/> <use x="147.412109" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_2"> <g id="line2d_2"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="226.401" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_2"> <!-- 0 --> <g transform="translate(223.21975 351.057326)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_3"> <g id="line2d_3"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="335.121" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_3"> <!-- 10 --> <g transform="translate(328.7585 351.057326)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_4"> <g id="line2d_4"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="443.841" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_4"> <!-- 20 --> <g transform="translate(437.4785 351.057326)scale(0.1 -0.1)"> <defs> <path d="M 19.1875 8.296875 L 53.609375 8.296875 L 53.609375 0 L 7.328125 0 L 7.328125 8.296875 Q 12.9375 14.109375 22.625 23.890625 Q 32.328125 33.6875 34.8125 36.53125 Q 39.546875 41.84375 41.421875 45.53125 Q 43.3125 49.21875 43.3125 52.78125 Q 43.3125 58.59375 39.234375 62.25 Q 35.15625 65.921875 28.609375 65.921875 Q 23.96875 65.921875 18.8125 64.3125 Q 13.671875 62.703125 7.8125 59.421875 L 7.8125 69.390625 Q 13.765625 71.78125 18.9375 73 Q 24.125 74.21875 28.421875 74.21875 Q 39.75 74.21875 46.484375 68.546875 Q 53.21875 62.890625 53.21875 53.421875 Q 53.21875 48.921875 51.53125 44.890625 Q 49.859375 40.875 45.40625 35.40625 Q 44.1875 33.984375 37.640625 27.21875 Q 31.109375 20.453125 19.1875 8.296875 z " id="DejaVuSans-50"/> </defs> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_5"> <g id="line2d_5"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="552.561" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_5"> <!-- 30 --> <g transform="translate(546.1985 351.057326)scale(0.1 -0.1)"> <defs> <path d="M 40.578125 39.3125 Q 47.65625 37.796875 51.625 33 Q 55.609375 28.21875 55.609375 21.1875 Q 55.609375 10.40625 48.1875 4.484375 Q 40.765625 -1.421875 27.09375 -1.421875 Q 22.515625 -1.421875 17.65625 -0.515625 Q 12.796875 0.390625 7.625 2.203125 L 7.625 11.71875 Q 11.71875 9.328125 16.59375 8.109375 Q 21.484375 6.890625 26.8125 6.890625 Q 36.078125 6.890625 40.9375 10.546875 Q 45.796875 14.203125 45.796875 21.1875 Q 45.796875 27.640625 41.28125 31.265625 Q 36.765625 34.90625 28.71875 34.90625 L 20.21875 34.90625 L 20.21875 43.015625 L 29.109375 43.015625 Q 36.375 43.015625 40.234375 45.921875 Q 44.09375 48.828125 44.09375 54.296875 Q 44.09375 59.90625 40.109375 62.90625 Q 36.140625 65.921875 28.71875 65.921875 Q 24.65625 65.921875 20.015625 65.03125 Q 15.375 64.15625 9.8125 62.3125 L 9.8125 71.09375 Q 15.4375 72.65625 20.34375 73.4375 Q 25.25 74.21875 29.59375 74.21875 Q 40.828125 74.21875 47.359375 69.109375 Q 53.90625 64.015625 53.90625 55.328125 Q 53.90625 49.265625 50.4375 45.09375 Q 46.96875 40.921875 40.578125 39.3125 z " id="DejaVuSans-51"/> </defs> <use xlink:href="#DejaVuSans-51"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_6"> <g id="line2d_6"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="661.281" xlink:href="#m25408d715f" y="336.458888"/> </g> </g> <g id="text_6"> <!-- 40 --> <g transform="translate(654.9185 351.057326)scale(0.1 -0.1)"> <defs> <path d="M 37.796875 64.3125 L 12.890625 25.390625 L 37.796875 25.390625 z M 35.203125 72.90625 L 47.609375 72.90625 L 47.609375 25.390625 L 58.015625 25.390625 L 58.015625 17.1875 L 47.609375 17.1875 L 47.609375 0 L 37.796875 0 L 37.796875 17.1875 L 4.890625 17.1875 L 4.890625 26.703125 z " id="DejaVuSans-52"/> </defs> <use xlink:href="#DejaVuSans-52"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="matplotlib.axis_2"> <g id="ytick_1"> <g id="line2d_7"> <defs> <path d="M 0 0 L -3.5 0 " id="m94c86c2012" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="331.022888"/> </g> </g> <g id="text_7"> <!-- 0 --> <g transform="translate(13.5625 334.822107)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_2"> <g id="line2d_8"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="276.662888"/> </g> </g> <g id="text_8"> <!-- 5 --> <g transform="translate(13.5625 280.462107)scale(0.1 -0.1)"> <defs> <path d="M 10.796875 72.90625 L 49.515625 72.90625 L 49.515625 64.59375 L 19.828125 64.59375 L 19.828125 46.734375 Q 21.96875 47.46875 24.109375 47.828125 Q 26.265625 48.1875 28.421875 48.1875 Q 40.625 48.1875 47.75 41.5 Q 54.890625 34.8125 54.890625 23.390625 Q 54.890625 11.625 47.5625 5.09375 Q 40.234375 -1.421875 26.90625 -1.421875 Q 22.3125 -1.421875 17.546875 -0.640625 Q 12.796875 0.140625 7.71875 1.703125 L 7.71875 11.625 Q 12.109375 9.234375 16.796875 8.0625 Q 21.484375 6.890625 26.703125 6.890625 Q 35.15625 6.890625 40.078125 11.328125 Q 45.015625 15.765625 45.015625 23.390625 Q 45.015625 31 40.078125 35.4375 Q 35.15625 39.890625 26.703125 39.890625 Q 22.75 39.890625 18.8125 39.015625 Q 14.890625 38.140625 10.796875 36.28125 z " id="DejaVuSans-53"/> </defs> <use xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_3"> <g id="line2d_9"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="222.302888"/> </g> </g> <g id="text_9"> <!-- 10 --> <g transform="translate(7.2 226.102107)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_4"> <g id="line2d_10"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="167.942888"/> </g> </g> <g id="text_10"> <!-- 15 --> <g transform="translate(7.2 171.742107)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_5"> <g id="line2d_11"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="113.582888"/> </g> </g> <g id="text_11"> <!-- 20 --> <g transform="translate(7.2 117.382107)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_6"> <g id="line2d_12"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m94c86c2012" y="59.222888"/> </g> </g> <g id="text_12"> <!-- 25 --> <g transform="translate(7.2 63.022107)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> </g> <g id="patch_3"> <path d="M 26.925 336.458888 L 26.925 10.298888 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_4"> <path d="M 741.165 336.458888 L 741.165 10.298888 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_5"> <path d="M 26.925 336.458888 L 741.165 336.458888 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_6"> <path d="M 26.925 10.298888 L 741.165 10.298888 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> <g id="axes_2"> <g id="patch_7"> <path clip-path="url(#pbfb9dab91d)" d="M 785.805 336.458888 L 785.805 335.184826 L 785.805 11.572951 L 785.805 10.298888 L 802.113 10.298888 L 802.113 11.572951 L 802.113 335.184826 L 802.113 336.458888 z " style="fill:#ffffff;stroke:#ffffff;stroke-linejoin:miter;stroke-width:0.01;"/> </g> <image height="326" id="imageb275fad3b3" transform="scale(1 -1)translate(0 -326)" width="16" x="786" xlink:href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAFGCAYAAABjUx8/AAABrklEQVR4nO2cwW3EMAwEKdmlpYT0X0qcIobArATe37r1aJYWDvCtn/X7Ffi8tTa5vt61F1tAT8C+vjpuoThEm8HalAG8hbfsBA0iUQ/WmDgitTDgEC8Qaco0IjVA/DgDmEDfxgAT9V0IYDAQIxiw6xPa+OkT6YMQA0TCHlzQRr9MVKSENvJboAvoP8L4DEakgVgZEPWxfr4HEQcMuECAiQMRJ5hDVgTE8xlMG0ekpgTs+gSI+i4EMPBF8tt4PoMxMUKkYTBtrGljS4IOBuyM4jMIgHg+A+yBD9GfBz4DXmfdRH8bAyAmdMFmAH+Lu4IBX6Dssd7ggb0LNEEERJzAZoA9wAx0ExMg2gkSGFCRNk8wEC+AuOHT2YcYIJLuQQDEBpHsXQiAaN8C3sYrGNgLBLSxgcGfm2AgdjB47IFyg0jP8QywBx1t1BnABAHPxgeLRFWmCTogQgZ+nWmCCIgXjHXKYNrIxzo+oTSYaENsMBEf83QG/kQ6v4380WbPxAQG+kRKOB9gBvYC8D3ZCBNxggAG8IWoBgY4gf2eawNEuEADRIah46SKGcB/qdIZ/AMyVI2OEN2MIAAAAABJRU5ErkJggg==" y="-10"/> <g id="matplotlib.axis_3"/> <g id="matplotlib.axis_4"> <g id="ytick_7"> <g id="line2d_13"> <defs> <path d="M 0 0 L 3.5 0 " id="m7591b74935" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="293.587667"/> </g> </g> <g id="text_13"> <!-- 0.005 --> <g transform="translate(809.113 297.386886)scale(0.1 -0.1)"> <defs> <path d="M 10.6875 12.40625 L 21 12.40625 L 21 0 L 10.6875 0 z " id="DejaVuSans-46"/> </defs> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-48"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_8"> <g id="line2d_14"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="237.069978"/> </g> </g> <g id="text_14"> <!-- 0.010 --> <g transform="translate(809.113 240.869196)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_9"> <g id="line2d_15"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="180.552288"/> </g> </g> <g id="text_15"> <!-- 0.015 --> <g transform="translate(809.113 184.351507)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_10"> <g id="line2d_16"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="124.034598"/> </g> </g> <g id="text_16"> <!-- 0.020 --> <g transform="translate(809.113 127.833817)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_11"> <g id="line2d_17"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="67.516908"/> </g> </g> <g id="text_17"> <!-- 0.025 --> <g transform="translate(809.113 71.316127)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_12"> <g id="line2d_18"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m7591b74935" y="10.999219"/> </g> </g> <g id="text_18"> <!-- 0.030 --> <g transform="translate(809.113 14.798438)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-51"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="patch_8"> <path d="M 785.805 336.458888 L 785.805 335.184826 L 785.805 11.572951 L 785.805 10.298888 L 802.113 10.298888 L 802.113 11.572951 L 802.113 335.184826 L 802.113 336.458888 z " style="fill:none;stroke:#000000;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> </g> <defs> <clipPath id="p45058bb045"> <rect height="326.16" width="714.24" x="26.925" y="10.298888"/> </clipPath> <clipPath id="pbfb9dab91d"> <rect height="326.16" width="16.308" x="785.805" y="10.298888"/> </clipPath> </defs> </svg>)
![](data:image/png;base64,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)
%% Cell type:markdown id: tags:
## 2. Centered Cumulant Method with Implicit Forcing
The default setup of the centered cumulant method does not use a force model to compute the force contributions on all populations, but instead applies the force in cumulant space simply by setting the momentum relaxation rate $\omega_1 = 2$. Due to the half-force shift of the equilibrium input velocity, the first central moments (which correspond to momentum relative to the moving frame of reference) are not zero, but equal to $-F/2$. The relaxation process causes the first central moments to simply change sign:
$$
\kappa_{100}^* = - \kappa_{100}.
$$
Thus, $\kappa_{100}^* = F_x /2$. In total, the entire acceleration given by the force is added onto the momentum.
%% Cell type:code id: tags:
``` python
cm_method_params = {
'method' : 'monomial_cumulant',
'stencil': stencil,
'relaxation_rate': viscous_rr, # Specify viscous relaxation rate only
'force_model': CenteredCumulantForceModel(force),
'force' : force,
'streaming_pattern' : streaming_pattern
}
optimization = {
'target': target,
'pre_simplification' : True
}
cm_impl_f_flow = PeriodicPipeFlow(cm_method_params, optimization)
```
%% Cell type:code id: tags:
``` python
lb_method = cm_impl_f_flow.lb_method
assert all(rr == 2 for rr in lb_method.relaxation_rates[1:4])
assert all(rr == viscous_rr for rr in lb_method.relaxation_rates[4:9])
```
%% Cell type:code id: tags:
``` python
cm_impl_f_flow.init()
cm_impl_f_flow.run(400)
```
%% Cell type:code id: tags:
``` python
cm_impl_f_u = cm_impl_f_flow.get_trimmed_velocity_array()
ps.plot.vector_field_magnitude(cm_impl_f_u[30,:,:,:])
ps.plot.colorbar()
```
%%%% Output: execute_result
<matplotlib.colorbar.Colorbar at 0x7f8678e35130>
<matplotlib.colorbar.Colorbar at 0x7f20aa846670>
%%%% Output: display_data
![](data:image/png;base64,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)
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Created with matplotlib (https://matplotlib.org/) --> <svg height="359.931212pt" version="1.1" viewBox="0 0 844.941125 359.931212" width="844.941125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <metadata> <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2021-01-30T11:28:03.341562</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> </metadata> <defs> <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> </defs> <g id="figure_1"> <g id="patch_1"> <path d="M 0 359.931212 L 844.941125 359.931212 L 844.941125 0 L 0 0 z " style="fill:none;"/> </g> <g id="axes_1"> <g id="patch_2"> <path d="M 26.925 336.053087 L 741.165 336.053087 L 741.165 9.893087 L 26.925 9.893087 z " style="fill:#ffffff;"/> </g> <g clip-path="url(#p812b30c217)"> <image height="327" id="imagefd5d84309a" transform="scale(1 -1)translate(0 -327)" width="327" x="220.965" xlink:href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAUcAAAFHCAYAAAAySY5rAAAPlUlEQVR4nO3dy45c53UF4L+uXX0hRVKhxSSSYRvIm4jwC2hg6AEC5MUED/QEkd7EQCxYRkKJ5q3Zl7p0VWXg6R6sjbghifm+8cZhdZ3/rDoDLuzJ4IP2+eSLYzo7PTvLLzybxaOTySS/buh4jP+sMfb7ePRwcxPPfnv8+h//h/GzMf2pPwDAz5FwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoqD/do1Z17/w8vu6kU/N7+jge3V+cxLOHZV4fHLN7OGb7vD443eb1wdnVJv8ML9/Eo8dGLfFwfR3PqjDeH2+OAAXhCFAQjgAF4QhQEI4ABeEIUBCOAAXhCFAQjgAF4QhQUD1qer78Mq8E/ubT+Lr7jy/i2d3FIp99MI9n707z47Bf5LPHRtMwNckbgWO2y6uG89t8dvH+Lp+92sWzs1dX8ezhu7/Gs99sv/K8N3hzBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAwgdbJ+ps/pt9/CS+7vGzZ/Hs+lm+UXD9OO/Y7S7y27Y7b1QC8+WD45A3GMfxHn6CJ4d8dpo398assXxwcd2oGl7ls6s3eTdy9SLfVDj5/kU8u3/1Opr7kLcfenMEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4DCL67683zxh6iHNf3tr+Nr7j55GM/efpJ37NZP8t+ezUf5rbjLFxWOu9O8tnY4yWePi8bsNJ9NTQ759zXZ5bPTTT47v23M5gsFx8m7RtXwdd6jPP0h70YufriM5g5//kt8zW92f/xF5Y03R4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAws/if6y3lmH92++iuc1nj+N//+ZZvi3q9uP892T7KB4d24d5K2J/kS9gGqt8dnaSz87n+ez0Hhoyh0ZD5u4uX1623+SzY53Pzq7y2eVl/rct38aj4/RV3qY5e5FtJTv5/k18zf2f/iue/Tks7vLmCFAQjgAF4QhQEI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4AhflP/QHGGGP28ZN4Nl2G1akE3vyqsQjrSV6F2z7K61rHB3fx7Mn5Np49WzVml1llbIwxThf57GySfw+p/TG/Z7e7xlnYNmbXy3h2s8pn1yf5Y3lY5N/DcdZ5F8q+h+k2X063eJ0/5+Nv+eh98eYIUBCOAAXhCFAQjgAF4QhQEI4ABeEIUBCOAAXhCFAQjgCFe6sPPl9+Gffsjp89i697+8lJNtfYEtiqBD7Jq3CTR3l178HFOp59fHYbzz46yWcfLvPZ01leH1zcQ31w16kP7vNK4OX2NJ59u8pn3yzz2avFKp7dTvNaYuddaLLPZmeb7HkcY4z5Vf6cP7/M8+Ob7Vf3sqnQmyNAQTgCFIQjQEE4AhSEI0BBOAIUhCNAQTgCFIQjQEE4AhRa9cHPJ1/ElZ7pbz6Nr3v77DyeXT/J8nz7KL5ka0tgpxL40cObePZXF1f57On7ePbpMr/uw3leYTybbeLZ1STfrJhaH/Oje7PPK26Xy7y693J5Ec+u5g/i2R+n+Xl8F0+OsT3kVcPpbhbNrdf5+9XiOn/OT6/z/Pj8T3kufXv8Oq4aenMEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4BCqz44Pc/rP/uP82rV+nFWVRpjjM1HWftn+zDfKHh8kNfbOlsCO5XAfz3Li2D/vMpn/2mRVw2fzPLPez7Na5SLe6gP7hr1wetGbe71PD+3P/UGxjHG2B/y95vLXT673YTbB2/zxX+Lq/w5XzbyY/rfeS6N/Ih7cwSoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgEKrPjg5O4tndxeLxmxeQboLW0X7i318zZPzvAr3+Ow2nu1sCexUAj9dvo5nn87zz/Bodh3Pnk869cH8XqR2x7yKdn3M64OdWuRqktcHO3bH/J1lfZc/Z5tt/rhv1tn3e3edX7PznHfyY9XIJfVBgP8j4QhQEI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4ABeEIUJh/PvkiX9P39HE8unvQqBWdN+qDp+HHXeWVtbNVXhl7dJLXB58u865SZ0tgpxL4dH4Zzz6a5psVHzQ2Ci7y2xvb5ad2vD92tgT+46uOY4yxPuZ1uNt9Pnt5cprPrk7i2c0qq1zeneY1zs5z3smPVSOXPn+Z5503R4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKMynjc1d+4u8fnR3mleF9vllx+Eka//MThr1wWVeL3u4zOuDD+d5He/JLK8adrYEdiqBT6Z5JfB8kv+uLhqzqd3xkP/7x/zvGiP/vnazxgbEQ74B8d08fyY75/FseR7PXobPT/o8jjHG/qRTE27kRyOXOnnnzRGgIBwBCsIRoCAcAQrCEaAgHAEKwhGgIBwBCsIRoCAcAQrz0ahAHZb57L6xcu6QL1sbx0VWV1rM8/rg6SKvD57O8tmz2SaePZ/mGxDPJ/lsZ0tgpxJ4Ns1v2nzk5ybV2hJ4yO/ZrvF93TTuQ+f+ds5N5zx2zvk8fH624fM4Ru85b+VHI5emjbzz5ghQEI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4ABeEIUBCOAIX5ZJLXdMYsnz02GmPHRkQfp1ldaRrOjTHGbNLYZNeYXTWqaIvWbF6da7SwWlsCO5XA2T1sHxz57W1+X52z0Llufn975yb/vJ1znj4/6fP499l4tJUfnVzq5J03R4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQozI/HxqaifT7b2D00Gnt/xuSQLcg5hHNjjLFvbP7ZNWbXx3njup3ZfPvQrnF7d8f7WS7VWYaVuhv5v9/5u3rfV+c+5Pe3d27y89g55+nzkz6Pf5+NR1v50cmlTt55cwQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgMJ87POeznSbz84aPazprlFBCmfv7vJq1+1ukc/u89mb/Uk8e31Y5rPHfPb9cRfPLo538ew4NK7b6oJlOpXA68bs+0Z1r3MfOve3c24657FzztPnJ30exxhjmh+ZXn40cqmVd/lVAf7/EI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4ABeEIUBCOAIX54eYmHp5dbfIL357l180vO6absD64yeuDN9u8VnW5Pc1nl6t49vX8Ip49n27j2V51bx1P7iZ51XDRWTuX/vuNLYGdSuDbQ37P3u7P49nX+/z+Xt7ln6FzHjvnfB8+P/PweRyj95zPb/Mb3MmlfSPvvDkCFIQjQEE4AhSEI0BBOAIUhCNAQTgCFIQjQEE4AhSEI0Bh/u3x67j/8/uX/xF3ehb/8iD+EIvrPKPnt2F9cN2oD67zzXBvV3ld6+Uyr4ydzvLVbKtJY41bw27W+M4m91VhzOyO+WftbAnsVAJf3uVn/G+7fPblNj83bzeN+mDjnI/w+UmfxzHGWFznlcDF+8YmzJdv4tFO3nlzBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAQr6WbYxxbGzuWlzlFbfFVb4VbX6VtX9m53m9bLPKa1VvlnldazVvVCjvYUPfGGOsj/l3e33Iv4feBsRGFSy0a2wU7PxdnS2BnUrg/6w/imd/vM2v++YmP4+b6/x7mF2F9cGr+JJjcdWoDzbyo5NLHd4cAQrCEaAgHAEKwhGgIBwBCsIRoCAcAQrCEaAgHAEKwhGg0KoPHq6v49nZq7xXtHp0Es/uLrL64P4034q2Psm/hqvFKp79cXo/lcDdMf9Nu93n9cF387N49my2iWdX91AfXDfqgzf7/Hxd3uX3t7MlsFMJ/PEqv+7VVf55J+/z72x5mT0/J+/ySuDqTb6FspMf+0YudXhzBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAQqs++O3x67iT9/y7L+Ne0eo8r0DtzrMa1t0q3z54WOS/EdtpvsHtXTw5xv6Qf4b1XV4JvDzJt9M9XN7Gs6ezxnbJe9iseF8Vystt/n293eSznS2BnUrg8W1+Hpdv8+9s+TabW73O7+3qRV7zO3z313i2k0sd3hwBCsIRoCAcAQrCEaAgHAEKwhGgIBwBCsIRoCAcAQrCEaDQqg92fLP9Kq70/P77f4+rhqcXWV1qf9KoYM06vxGNquEhr3Zd7vLrbrb5bbtc5Zv3zpbn8ezpIq8Pzu6hPrjv1Ad3eX3wZtuYXef3d3Odz7a2BDYqgSev85bd6avsnp3+kG+hnHz/Ip79z0Z+3BdvjgAF4QhQEI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4ABeEIULi3+mDH/tXreHbxw6No7myZbx8cI6+MTfb578l0l3+G7aZRH1zn192sGhXGk308O5/ns9Np3A6NHQ55u+zuLv++9pvGuWnch9lVPru8zP+2dEvgGHklcIwxzl5k9dDFD5fxNTvP+c+BN0eAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgMJPvsSm6/niD1HdYvrbX8fX3H3yMJ69/SRfWLV+0mi9fNRofFzEo+PuNG+nHE7y2eOiMXsPDZlJoyEz2eWz000+O79tzF7Fo+PkXf59rV7nrZfOMqy0+XL481/ia36z++MvKm+8OQIUhCNAQTgCFIQjQEE4AhSEI0BBOAIUhCNAQTgCFIQjQOEXVefp+HzyRdzBmn38JL7u8bNn8ez62Xk++zhfwLS7yG/b7jyf3efNyHHId5KN4z38BE/y1tyYZruixhhjzPKG3Vhc5zW/xVWjEvgmX162enEdz06+fxHPpsuwvj1+/cFmiDdHgIJwBCgIR4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQofLDVn/vyfPll3AOb/ubT+Lr7j/OVgruLvLu3ezCPZ+9OG1XDRT57zJuRsUnesBuzXV7dm982KoHv7/LZq7zDOHuVryo8fPfXePab7Vee9wZvjgAF4QhQEI4ABeEIUBCOAAXhCFAQjgAF4QhQEI4ABeEIUFAnukedDYjT83xT4eTsLP8QTx/Ho/uLfP3gYdnoBM7u4Zjt85rfdJt3DWdXjfWDL9/Eo8ebm3j2cJ1vFPyQt//91Lw5AhSEI0BBOAIUhCNAQTgCFIQjQEE4AhSEI0BBOAIUhCNAQfXoA9eqMHZqibO8PjiZ/OOP2fGY1wfHPq8PHho1P9W9D5s3R4CCcAQoCEeAgnAEKAhHgIJwBCgIR4CCcAQoCEeAgnAEKPwvwku6ltsGgQgAAAAASUVORK5CYII=" y="-9.053087"/> </g> <g id="matplotlib.axis_1"> <g id="xtick_1"> <g id="line2d_1"> <defs> <path d="M 0 0 L 0 3.5 " id="m6535274822" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="117.681" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_1"> <!-- −10 --> <g transform="translate(107.128656 350.651525)scale(0.1 -0.1)"> <defs> <path d="M 10.59375 35.5 L 73.1875 35.5 L 73.1875 27.203125 L 10.59375 27.203125 z " id="DejaVuSans-8722"/> <path d="M 12.40625 8.296875 L 28.515625 8.296875 L 28.515625 63.921875 L 10.984375 60.40625 L 10.984375 69.390625 L 28.421875 72.90625 L 38.28125 72.90625 L 38.28125 8.296875 L 54.390625 8.296875 L 54.390625 0 L 12.40625 0 z " id="DejaVuSans-49"/> <path d="M 31.78125 66.40625 Q 24.171875 66.40625 20.328125 58.90625 Q 16.5 51.421875 16.5 36.375 Q 16.5 21.390625 20.328125 13.890625 Q 24.171875 6.390625 31.78125 6.390625 Q 39.453125 6.390625 43.28125 13.890625 Q 47.125 21.390625 47.125 36.375 Q 47.125 51.421875 43.28125 58.90625 Q 39.453125 66.40625 31.78125 66.40625 z M 31.78125 74.21875 Q 44.046875 74.21875 50.515625 64.515625 Q 56.984375 54.828125 56.984375 36.375 Q 56.984375 17.96875 50.515625 8.265625 Q 44.046875 -1.421875 31.78125 -1.421875 Q 19.53125 -1.421875 13.0625 8.265625 Q 6.59375 17.96875 6.59375 36.375 Q 6.59375 54.828125 13.0625 64.515625 Q 19.53125 74.21875 31.78125 74.21875 z " id="DejaVuSans-48"/> </defs> <use xlink:href="#DejaVuSans-8722"/> <use x="83.789062" xlink:href="#DejaVuSans-49"/> <use x="147.412109" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_2"> <g id="line2d_2"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="226.401" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_2"> <!-- 0 --> <g transform="translate(223.21975 350.651525)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_3"> <g id="line2d_3"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="335.121" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_3"> <!-- 10 --> <g transform="translate(328.7585 350.651525)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_4"> <g id="line2d_4"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="443.841" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_4"> <!-- 20 --> <g transform="translate(437.4785 350.651525)scale(0.1 -0.1)"> <defs> <path d="M 19.1875 8.296875 L 53.609375 8.296875 L 53.609375 0 L 7.328125 0 L 7.328125 8.296875 Q 12.9375 14.109375 22.625 23.890625 Q 32.328125 33.6875 34.8125 36.53125 Q 39.546875 41.84375 41.421875 45.53125 Q 43.3125 49.21875 43.3125 52.78125 Q 43.3125 58.59375 39.234375 62.25 Q 35.15625 65.921875 28.609375 65.921875 Q 23.96875 65.921875 18.8125 64.3125 Q 13.671875 62.703125 7.8125 59.421875 L 7.8125 69.390625 Q 13.765625 71.78125 18.9375 73 Q 24.125 74.21875 28.421875 74.21875 Q 39.75 74.21875 46.484375 68.546875 Q 53.21875 62.890625 53.21875 53.421875 Q 53.21875 48.921875 51.53125 44.890625 Q 49.859375 40.875 45.40625 35.40625 Q 44.1875 33.984375 37.640625 27.21875 Q 31.109375 20.453125 19.1875 8.296875 z " id="DejaVuSans-50"/> </defs> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_5"> <g id="line2d_5"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="552.561" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_5"> <!-- 30 --> <g transform="translate(546.1985 350.651525)scale(0.1 -0.1)"> <defs> <path d="M 40.578125 39.3125 Q 47.65625 37.796875 51.625 33 Q 55.609375 28.21875 55.609375 21.1875 Q 55.609375 10.40625 48.1875 4.484375 Q 40.765625 -1.421875 27.09375 -1.421875 Q 22.515625 -1.421875 17.65625 -0.515625 Q 12.796875 0.390625 7.625 2.203125 L 7.625 11.71875 Q 11.71875 9.328125 16.59375 8.109375 Q 21.484375 6.890625 26.8125 6.890625 Q 36.078125 6.890625 40.9375 10.546875 Q 45.796875 14.203125 45.796875 21.1875 Q 45.796875 27.640625 41.28125 31.265625 Q 36.765625 34.90625 28.71875 34.90625 L 20.21875 34.90625 L 20.21875 43.015625 L 29.109375 43.015625 Q 36.375 43.015625 40.234375 45.921875 Q 44.09375 48.828125 44.09375 54.296875 Q 44.09375 59.90625 40.109375 62.90625 Q 36.140625 65.921875 28.71875 65.921875 Q 24.65625 65.921875 20.015625 65.03125 Q 15.375 64.15625 9.8125 62.3125 L 9.8125 71.09375 Q 15.4375 72.65625 20.34375 73.4375 Q 25.25 74.21875 29.59375 74.21875 Q 40.828125 74.21875 47.359375 69.109375 Q 53.90625 64.015625 53.90625 55.328125 Q 53.90625 49.265625 50.4375 45.09375 Q 46.96875 40.921875 40.578125 39.3125 z " id="DejaVuSans-51"/> </defs> <use xlink:href="#DejaVuSans-51"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_6"> <g id="line2d_6"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="661.281" xlink:href="#m6535274822" y="336.053087"/> </g> </g> <g id="text_6"> <!-- 40 --> <g transform="translate(654.9185 350.651525)scale(0.1 -0.1)"> <defs> <path d="M 37.796875 64.3125 L 12.890625 25.390625 L 37.796875 25.390625 z M 35.203125 72.90625 L 47.609375 72.90625 L 47.609375 25.390625 L 58.015625 25.390625 L 58.015625 17.1875 L 47.609375 17.1875 L 47.609375 0 L 37.796875 0 L 37.796875 17.1875 L 4.890625 17.1875 L 4.890625 26.703125 z " id="DejaVuSans-52"/> </defs> <use xlink:href="#DejaVuSans-52"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="matplotlib.axis_2"> <g id="ytick_1"> <g id="line2d_7"> <defs> <path d="M 0 0 L -3.5 0 " id="m1693fa70cc" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="330.617087"/> </g> </g> <g id="text_7"> <!-- 0 --> <g transform="translate(13.5625 334.416306)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_2"> <g id="line2d_8"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="276.257087"/> </g> </g> <g id="text_8"> <!-- 5 --> <g transform="translate(13.5625 280.056306)scale(0.1 -0.1)"> <defs> <path d="M 10.796875 72.90625 L 49.515625 72.90625 L 49.515625 64.59375 L 19.828125 64.59375 L 19.828125 46.734375 Q 21.96875 47.46875 24.109375 47.828125 Q 26.265625 48.1875 28.421875 48.1875 Q 40.625 48.1875 47.75 41.5 Q 54.890625 34.8125 54.890625 23.390625 Q 54.890625 11.625 47.5625 5.09375 Q 40.234375 -1.421875 26.90625 -1.421875 Q 22.3125 -1.421875 17.546875 -0.640625 Q 12.796875 0.140625 7.71875 1.703125 L 7.71875 11.625 Q 12.109375 9.234375 16.796875 8.0625 Q 21.484375 6.890625 26.703125 6.890625 Q 35.15625 6.890625 40.078125 11.328125 Q 45.015625 15.765625 45.015625 23.390625 Q 45.015625 31 40.078125 35.4375 Q 35.15625 39.890625 26.703125 39.890625 Q 22.75 39.890625 18.8125 39.015625 Q 14.890625 38.140625 10.796875 36.28125 z " id="DejaVuSans-53"/> </defs> <use xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_3"> <g id="line2d_9"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="221.897087"/> </g> </g> <g id="text_9"> <!-- 10 --> <g transform="translate(7.2 225.696306)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_4"> <g id="line2d_10"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="167.537087"/> </g> </g> <g id="text_10"> <!-- 15 --> <g transform="translate(7.2 171.336306)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_5"> <g id="line2d_11"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="113.177087"/> </g> </g> <g id="text_11"> <!-- 20 --> <g transform="translate(7.2 116.976306)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_6"> <g id="line2d_12"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m1693fa70cc" y="58.817087"/> </g> </g> <g id="text_12"> <!-- 25 --> <g transform="translate(7.2 62.616306)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> </g> <g id="patch_3"> <path d="M 26.925 336.053087 L 26.925 9.893087 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_4"> <path d="M 741.165 336.053087 L 741.165 9.893087 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_5"> <path d="M 26.925 336.053087 L 741.165 336.053087 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_6"> <path d="M 26.925 9.893087 L 741.165 9.893087 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> <g id="axes_2"> <g id="patch_7"> <path clip-path="url(#p286cf1b800)" d="M 785.805 336.053087 L 785.805 334.779025 L 785.805 11.16715 L 785.805 9.893087 L 802.113 9.893087 L 802.113 11.16715 L 802.113 334.779025 L 802.113 336.053087 z " style="fill:#ffffff;stroke:#ffffff;stroke-linejoin:miter;stroke-width:0.01;"/> </g> <image height="326" id="imagef51e0bf694" transform="scale(1 -1)translate(0 -326)" width="16" x="786" xlink:href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAFGCAYAAABjUx8/AAABrklEQVR4nO2cwW3EMAwEKdmlpYT0X0qcIobArATe37r1aJYWDvCtn/X7Ffi8tTa5vt61F1tAT8C+vjpuoThEm8HalAG8hbfsBA0iUQ/WmDgitTDgEC8Qaco0IjVA/DgDmEDfxgAT9V0IYDAQIxiw6xPa+OkT6YMQA0TCHlzQRr9MVKSENvJboAvoP8L4DEakgVgZEPWxfr4HEQcMuECAiQMRJ5hDVgTE8xlMG0ekpgTs+gSI+i4EMPBF8tt4PoMxMUKkYTBtrGljS4IOBuyM4jMIgHg+A+yBD9GfBz4DXmfdRH8bAyAmdMFmAH+Lu4IBX6Dssd7ggb0LNEEERJzAZoA9wAx0ExMg2gkSGFCRNk8wEC+AuOHT2YcYIJLuQQDEBpHsXQiAaN8C3sYrGNgLBLSxgcGfm2AgdjB47IFyg0jP8QywBx1t1BnABAHPxgeLRFWmCTogQgZ+nWmCCIgXjHXKYNrIxzo+oTSYaENsMBEf83QG/kQ6v4380WbPxAQG+kRKOB9gBvYC8D3ZCBNxggAG8IWoBgY4gf2eawNEuEADRIah46SKGcB/qdIZ/AMyVI2OEN2MIAAAAABJRU5ErkJggg==" y="-9"/> <g id="matplotlib.axis_3"/> <g id="matplotlib.axis_4"> <g id="ytick_7"> <g id="line2d_13"> <defs> <path d="M 0 0 L 3.5 0 " id="m0587f5ce72" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="293.867644"/> </g> </g> <g id="text_13"> <!-- 0.005 --> <g transform="translate(809.113 297.666863)scale(0.1 -0.1)"> <defs> <path d="M 10.6875 12.40625 L 21 12.40625 L 21 0 L 10.6875 0 z " id="DejaVuSans-46"/> </defs> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-48"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_8"> <g id="line2d_14"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="237.293959"/> </g> </g> <g id="text_14"> <!-- 0.010 --> <g transform="translate(809.113 241.093178)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_9"> <g id="line2d_15"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="180.720274"/> </g> </g> <g id="text_15"> <!-- 0.015 --> <g transform="translate(809.113 184.519493)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_10"> <g id="line2d_16"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="124.146589"/> </g> </g> <g id="text_16"> <!-- 0.020 --> <g transform="translate(809.113 127.945808)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_11"> <g id="line2d_17"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="67.572904"/> </g> </g> <g id="text_17"> <!-- 0.025 --> <g transform="translate(809.113 71.372123)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_12"> <g id="line2d_18"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#m0587f5ce72" y="10.999219"/> </g> </g> <g id="text_18"> <!-- 0.030 --> <g transform="translate(809.113 14.798437)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-51"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="patch_8"> <path d="M 785.805 336.053087 L 785.805 334.779025 L 785.805 11.16715 L 785.805 9.893087 L 802.113 9.893087 L 802.113 11.16715 L 802.113 334.779025 L 802.113 336.053087 z " style="fill:none;stroke:#000000;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> </g> <defs> <clipPath id="p812b30c217"> <rect height="326.16" width="714.24" x="26.925" y="9.893087"/> </clipPath> <clipPath id="p286cf1b800"> <rect height="326.16" width="16.308" x="785.805" y="9.893087"/> </clipPath> </defs> </svg>)
![](data:image/png;base64,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)
%% Cell type:code id: tags:
``` python
assert_allclose(cm_impl_f_u, srt_u, rtol=1, atol=1e-4)
```
%% Cell type:markdown id: tags:
## 3. Centered Cumulant Method with Explicit Forcing
%% Cell type:code id: tags:
``` python
from lbmpy.forcemodels import Schiller
cm_method_params_expl_force = {
'method' : 'cumulant',
'stencil': stencil,
'relaxation_rates': [viscous_rr], # Specify viscous relaxation rate only
'force_model': Schiller(force),
'force' : force,
'streaming_pattern' : streaming_pattern
}
optimization = {
'target': target,
'pre_simplification' : True
}
cm_expl_f_flow = PeriodicPipeFlow(cm_method_params_expl_force, optimization)
```
%% Cell type:code id: tags:
``` python
lb_method = cm_expl_f_flow.lb_method
assert all(rr == 0 for rr in lb_method.relaxation_rates[1:4])
assert all(rr == viscous_rr for rr in lb_method.relaxation_rates[4:9])
```
%% Cell type:code id: tags:
``` python
cm_expl_f_flow.init()
cm_expl_f_flow.run(400)
```
%% Cell type:code id: tags:
``` python
cm_expl_f_u = cm_expl_f_flow.get_trimmed_velocity_array()
ps.plot.vector_field_magnitude(cm_expl_f_u[30,:,:,:])
ps.plot.colorbar()
```
%%%% Output: execute_result
<matplotlib.colorbar.Colorbar at 0x7f8678b73c10>
<matplotlib.colorbar.Colorbar at 0x7f20aa641070>
%%%% Output: display_data
![](data:image/png;base64,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)
![](data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Created with matplotlib (https://matplotlib.org/) --> <svg height="360.273633pt" version="1.1" viewBox="0 0 844.941125 360.273633" width="844.941125pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <metadata> <rdf:RDF xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <cc:Work> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> <dc:date>2021-01-30T11:28:10.123089</dc:date> <dc:format>image/svg+xml</dc:format> <dc:creator> <cc:Agent> <dc:title>Matplotlib v3.3.3, https://matplotlib.org/</dc:title> </cc:Agent> </dc:creator> </cc:Work> </rdf:RDF> </metadata> <defs> <style type="text/css">*{stroke-linecap:butt;stroke-linejoin:round;}</style> </defs> <g id="figure_1"> <g id="patch_1"> <path d="M 0 360.273633 L 844.941125 360.273633 L 844.941125 0 L 0 0 z " style="fill:none;"/> </g> <g id="axes_1"> <g id="patch_2"> <path d="M 26.925 336.395508 L 741.165 336.395508 L 741.165 10.235508 L 26.925 10.235508 z " style="fill:#ffffff;"/> </g> <g clip-path="url(#p45be66aaef)"> <image height="327" id="image626063c3e3" transform="scale(1 -1)translate(0 -327)" width="327" x="220.965" xlink:href="data:image/png;base64, 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" y="-9.395508"/> </g> <g id="matplotlib.axis_1"> <g id="xtick_1"> <g id="line2d_1"> <defs> <path d="M 0 0 L 0 3.5 " id="mccb3b401ca" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="117.681" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_1"> <!-- −10 --> <g transform="translate(107.128656 350.993946)scale(0.1 -0.1)"> <defs> <path d="M 10.59375 35.5 L 73.1875 35.5 L 73.1875 27.203125 L 10.59375 27.203125 z " id="DejaVuSans-8722"/> <path d="M 12.40625 8.296875 L 28.515625 8.296875 L 28.515625 63.921875 L 10.984375 60.40625 L 10.984375 69.390625 L 28.421875 72.90625 L 38.28125 72.90625 L 38.28125 8.296875 L 54.390625 8.296875 L 54.390625 0 L 12.40625 0 z " id="DejaVuSans-49"/> <path d="M 31.78125 66.40625 Q 24.171875 66.40625 20.328125 58.90625 Q 16.5 51.421875 16.5 36.375 Q 16.5 21.390625 20.328125 13.890625 Q 24.171875 6.390625 31.78125 6.390625 Q 39.453125 6.390625 43.28125 13.890625 Q 47.125 21.390625 47.125 36.375 Q 47.125 51.421875 43.28125 58.90625 Q 39.453125 66.40625 31.78125 66.40625 z M 31.78125 74.21875 Q 44.046875 74.21875 50.515625 64.515625 Q 56.984375 54.828125 56.984375 36.375 Q 56.984375 17.96875 50.515625 8.265625 Q 44.046875 -1.421875 31.78125 -1.421875 Q 19.53125 -1.421875 13.0625 8.265625 Q 6.59375 17.96875 6.59375 36.375 Q 6.59375 54.828125 13.0625 64.515625 Q 19.53125 74.21875 31.78125 74.21875 z " id="DejaVuSans-48"/> </defs> <use xlink:href="#DejaVuSans-8722"/> <use x="83.789062" xlink:href="#DejaVuSans-49"/> <use x="147.412109" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_2"> <g id="line2d_2"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="226.401" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_2"> <!-- 0 --> <g transform="translate(223.21975 350.993946)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_3"> <g id="line2d_3"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="335.121" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_3"> <!-- 10 --> <g transform="translate(328.7585 350.993946)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_4"> <g id="line2d_4"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="443.841" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_4"> <!-- 20 --> <g transform="translate(437.4785 350.993946)scale(0.1 -0.1)"> <defs> <path d="M 19.1875 8.296875 L 53.609375 8.296875 L 53.609375 0 L 7.328125 0 L 7.328125 8.296875 Q 12.9375 14.109375 22.625 23.890625 Q 32.328125 33.6875 34.8125 36.53125 Q 39.546875 41.84375 41.421875 45.53125 Q 43.3125 49.21875 43.3125 52.78125 Q 43.3125 58.59375 39.234375 62.25 Q 35.15625 65.921875 28.609375 65.921875 Q 23.96875 65.921875 18.8125 64.3125 Q 13.671875 62.703125 7.8125 59.421875 L 7.8125 69.390625 Q 13.765625 71.78125 18.9375 73 Q 24.125 74.21875 28.421875 74.21875 Q 39.75 74.21875 46.484375 68.546875 Q 53.21875 62.890625 53.21875 53.421875 Q 53.21875 48.921875 51.53125 44.890625 Q 49.859375 40.875 45.40625 35.40625 Q 44.1875 33.984375 37.640625 27.21875 Q 31.109375 20.453125 19.1875 8.296875 z " id="DejaVuSans-50"/> </defs> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_5"> <g id="line2d_5"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="552.561" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_5"> <!-- 30 --> <g transform="translate(546.1985 350.993946)scale(0.1 -0.1)"> <defs> <path d="M 40.578125 39.3125 Q 47.65625 37.796875 51.625 33 Q 55.609375 28.21875 55.609375 21.1875 Q 55.609375 10.40625 48.1875 4.484375 Q 40.765625 -1.421875 27.09375 -1.421875 Q 22.515625 -1.421875 17.65625 -0.515625 Q 12.796875 0.390625 7.625 2.203125 L 7.625 11.71875 Q 11.71875 9.328125 16.59375 8.109375 Q 21.484375 6.890625 26.8125 6.890625 Q 36.078125 6.890625 40.9375 10.546875 Q 45.796875 14.203125 45.796875 21.1875 Q 45.796875 27.640625 41.28125 31.265625 Q 36.765625 34.90625 28.71875 34.90625 L 20.21875 34.90625 L 20.21875 43.015625 L 29.109375 43.015625 Q 36.375 43.015625 40.234375 45.921875 Q 44.09375 48.828125 44.09375 54.296875 Q 44.09375 59.90625 40.109375 62.90625 Q 36.140625 65.921875 28.71875 65.921875 Q 24.65625 65.921875 20.015625 65.03125 Q 15.375 64.15625 9.8125 62.3125 L 9.8125 71.09375 Q 15.4375 72.65625 20.34375 73.4375 Q 25.25 74.21875 29.59375 74.21875 Q 40.828125 74.21875 47.359375 69.109375 Q 53.90625 64.015625 53.90625 55.328125 Q 53.90625 49.265625 50.4375 45.09375 Q 46.96875 40.921875 40.578125 39.3125 z " id="DejaVuSans-51"/> </defs> <use xlink:href="#DejaVuSans-51"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="xtick_6"> <g id="line2d_6"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="661.281" xlink:href="#mccb3b401ca" y="336.395508"/> </g> </g> <g id="text_6"> <!-- 40 --> <g transform="translate(654.9185 350.993946)scale(0.1 -0.1)"> <defs> <path d="M 37.796875 64.3125 L 12.890625 25.390625 L 37.796875 25.390625 z M 35.203125 72.90625 L 47.609375 72.90625 L 47.609375 25.390625 L 58.015625 25.390625 L 58.015625 17.1875 L 47.609375 17.1875 L 47.609375 0 L 37.796875 0 L 37.796875 17.1875 L 4.890625 17.1875 L 4.890625 26.703125 z " id="DejaVuSans-52"/> </defs> <use xlink:href="#DejaVuSans-52"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="matplotlib.axis_2"> <g id="ytick_1"> <g id="line2d_7"> <defs> <path d="M 0 0 L -3.5 0 " id="m4a8d03b90a" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="330.959508"/> </g> </g> <g id="text_7"> <!-- 0 --> <g transform="translate(13.5625 334.758727)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_2"> <g id="line2d_8"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="276.599508"/> </g> </g> <g id="text_8"> <!-- 5 --> <g transform="translate(13.5625 280.398727)scale(0.1 -0.1)"> <defs> <path d="M 10.796875 72.90625 L 49.515625 72.90625 L 49.515625 64.59375 L 19.828125 64.59375 L 19.828125 46.734375 Q 21.96875 47.46875 24.109375 47.828125 Q 26.265625 48.1875 28.421875 48.1875 Q 40.625 48.1875 47.75 41.5 Q 54.890625 34.8125 54.890625 23.390625 Q 54.890625 11.625 47.5625 5.09375 Q 40.234375 -1.421875 26.90625 -1.421875 Q 22.3125 -1.421875 17.546875 -0.640625 Q 12.796875 0.140625 7.71875 1.703125 L 7.71875 11.625 Q 12.109375 9.234375 16.796875 8.0625 Q 21.484375 6.890625 26.703125 6.890625 Q 35.15625 6.890625 40.078125 11.328125 Q 45.015625 15.765625 45.015625 23.390625 Q 45.015625 31 40.078125 35.4375 Q 35.15625 39.890625 26.703125 39.890625 Q 22.75 39.890625 18.8125 39.015625 Q 14.890625 38.140625 10.796875 36.28125 z " id="DejaVuSans-53"/> </defs> <use xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_3"> <g id="line2d_9"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="222.239508"/> </g> </g> <g id="text_9"> <!-- 10 --> <g transform="translate(7.2 226.038727)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_4"> <g id="line2d_10"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="167.879508"/> </g> </g> <g id="text_10"> <!-- 15 --> <g transform="translate(7.2 171.678727)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-49"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_5"> <g id="line2d_11"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="113.519508"/> </g> </g> <g id="text_11"> <!-- 20 --> <g transform="translate(7.2 117.318727)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_6"> <g id="line2d_12"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="26.925" xlink:href="#m4a8d03b90a" y="59.159508"/> </g> </g> <g id="text_12"> <!-- 25 --> <g transform="translate(7.2 62.958727)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-50"/> <use x="63.623047" xlink:href="#DejaVuSans-53"/> </g> </g> </g> </g> <g id="patch_3"> <path d="M 26.925 336.395508 L 26.925 10.235508 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_4"> <path d="M 741.165 336.395508 L 741.165 10.235508 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_5"> <path d="M 26.925 336.395508 L 741.165 336.395508 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> <g id="patch_6"> <path d="M 26.925 10.235508 L 741.165 10.235508 " style="fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> <g id="axes_2"> <g id="patch_7"> <path clip-path="url(#pc6d116c209)" d="M 785.805 336.395508 L 785.805 335.121446 L 785.805 11.509571 L 785.805 10.235508 L 802.113 10.235508 L 802.113 11.509571 L 802.113 335.121446 L 802.113 336.395508 z " style="fill:#ffffff;stroke:#ffffff;stroke-linejoin:miter;stroke-width:0.01;"/> </g> <image height="326" id="image875b468d0c" transform="scale(1 -1)translate(0 -326)" width="16" x="786" xlink:href="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAABAAAAFGCAYAAABjUx8/AAABrklEQVR4nO2cwW3EMAwEKdmlpYT0X0qcIobArATe37r1aJYWDvCtn/X7Ffi8tTa5vt61F1tAT8C+vjpuoThEm8HalAG8hbfsBA0iUQ/WmDgitTDgEC8Qaco0IjVA/DgDmEDfxgAT9V0IYDAQIxiw6xPa+OkT6YMQA0TCHlzQRr9MVKSENvJboAvoP8L4DEakgVgZEPWxfr4HEQcMuECAiQMRJ5hDVgTE8xlMG0ekpgTs+gSI+i4EMPBF8tt4PoMxMUKkYTBtrGljS4IOBuyM4jMIgHg+A+yBD9GfBz4DXmfdRH8bAyAmdMFmAH+Lu4IBX6Dssd7ggb0LNEEERJzAZoA9wAx0ExMg2gkSGFCRNk8wEC+AuOHT2YcYIJLuQQDEBpHsXQiAaN8C3sYrGNgLBLSxgcGfm2AgdjB47IFyg0jP8QywBx1t1BnABAHPxgeLRFWmCTogQgZ+nWmCCIgXjHXKYNrIxzo+oTSYaENsMBEf83QG/kQ6v4380WbPxAQG+kRKOB9gBvYC8D3ZCBNxggAG8IWoBgY4gf2eawNEuEADRIah46SKGcB/qdIZ/AMyVI2OEN2MIAAAAABJRU5ErkJggg==" y="-10"/> <g id="matplotlib.axis_3"/> <g id="matplotlib.axis_4"> <g id="ytick_7"> <g id="line2d_13"> <defs> <path d="M 0 0 L 3.5 0 " id="mde26ccb965" style="stroke:#000000;stroke-width:0.8;"/> </defs> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="293.677608"/> </g> </g> <g id="text_13"> <!-- 0.005 --> <g transform="translate(809.113 297.476827)scale(0.1 -0.1)"> <defs> <path d="M 10.6875 12.40625 L 21 12.40625 L 21 0 L 10.6875 0 z " id="DejaVuSans-46"/> </defs> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-48"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_8"> <g id="line2d_14"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="237.14193"/> </g> </g> <g id="text_14"> <!-- 0.010 --> <g transform="translate(809.113 240.941149)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_9"> <g id="line2d_15"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="180.606252"/> </g> </g> <g id="text_15"> <!-- 0.015 --> <g transform="translate(809.113 184.405471)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-49"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_10"> <g id="line2d_16"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="124.070574"/> </g> </g> <g id="text_16"> <!-- 0.020 --> <g transform="translate(809.113 127.869793)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> <g id="ytick_11"> <g id="line2d_17"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="67.534897"/> </g> </g> <g id="text_17"> <!-- 0.025 --> <g transform="translate(809.113 71.334115)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-50"/> <use x="222.65625" xlink:href="#DejaVuSans-53"/> </g> </g> </g> <g id="ytick_12"> <g id="line2d_18"> <g> <use style="stroke:#000000;stroke-width:0.8;" x="802.113" xlink:href="#mde26ccb965" y="10.999219"/> </g> </g> <g id="text_18"> <!-- 0.030 --> <g transform="translate(809.113 14.798438)scale(0.1 -0.1)"> <use xlink:href="#DejaVuSans-48"/> <use x="63.623047" xlink:href="#DejaVuSans-46"/> <use x="95.410156" xlink:href="#DejaVuSans-48"/> <use x="159.033203" xlink:href="#DejaVuSans-51"/> <use x="222.65625" xlink:href="#DejaVuSans-48"/> </g> </g> </g> </g> <g id="patch_8"> <path d="M 785.805 336.395508 L 785.805 335.121446 L 785.805 11.509571 L 785.805 10.235508 L 802.113 10.235508 L 802.113 11.509571 L 802.113 335.121446 L 802.113 336.395508 z " style="fill:none;stroke:#000000;stroke-linejoin:miter;stroke-width:0.8;"/> </g> </g> </g> <defs> <clipPath id="p45be66aaef"> <rect height="326.16" width="714.24" x="26.925" y="10.235508"/> </clipPath> <clipPath id="pc6d116c209"> <rect height="326.16" width="16.308" x="785.805" y="10.235508"/> </clipPath> </defs> </svg>)
![](data:image/png;base64,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)
%% Cell type:code id: tags:
``` python
assert_allclose(cm_expl_f_u, srt_u, rtol=1, atol=1e-4)
assert_allclose(cm_expl_f_u, cm_impl_f_u, rtol=1, atol=1e-4)
```
......
This source diff could not be displayed because it is too large. You can view the blob instead.
from hashlib import sha256
from lbmpy.creationfunctions import create_lb_ast
from pystencils.llvm.llvmjit import generate_llvm
def test_hash_equivalence_llvm():
import pytest
pytest.importorskip("llvmlite")
from pystencils.llvm.llvmjit import generate_llvm
ref_value = "6db6ed9e2cbd05edae8fcaeb8168e3178dd578c2681133f3ae9228b23d2be432"
ast = create_lb_ast(stencil='D3Q19', method='srt', optimization={'target': 'llvm'})
code = generate_llvm(ast)
......
import pytest
from lbmpy.methods import create_srt
from lbmpy.stencils import get_stencil
from lbmpy.methods.creationfunctions import create_with_default_polynomial_cumulants
def test_weights():
for stencil_name in ('D2Q9', 'D3Q19', 'D3Q27'):
stencil = get_stencil(stencil_name)
cumulant_method = create_with_default_polynomial_cumulants(stencil, [1])
moment_method = create_srt(stencil, 1, cumulant=False, compressible=True, maxwellian_moments=True)
assert cumulant_method.weights == moment_method.weights
@pytest.mark.parametrize('stencil_name', ['D2Q9', 'D3Q19', 'D3Q27'])
def test_weights(stencil_name):
stencil = get_stencil(stencil_name)
cumulant_method = create_with_default_polynomial_cumulants(stencil, [1])
moment_method = create_srt(stencil, 1, cumulant=False, compressible=True, maxwellian_moments=True)
assert cumulant_method.weights == moment_method.weights
from lbmpy.creationfunctions import create_lb_ast
import pytest
def test_gpu_block_size_limiting():
pytest.importorskip("pycuda")
too_large = 2048*2048
opt = {'target': 'gpu', 'gpu_indexing_params': {'block_size': (too_large, too_large, too_large)}}
ast = create_lb_ast(stencil='D3Q19', cumulant=True, relaxation_rate=1.8, optimization=opt,
......
%% Cell type:code id: tags:
``` python
import pytest
pytest.importorskip('pycuda')
```
%%%% Output: execute_result
<module 'pycuda' from '/home/markus/miniconda3/envs/pystencils/lib/python3.8/site-packages/pycuda/__init__.py'>
%% Cell type:code id: tags:
``` python
from lbmpy.session import *
from lbmpy.sparse import *
from pystencils.field import FieldType
import pycuda.gpuarray as gpuarray
import pystencils as ps
```
%% Cell type:markdown id: tags:
# Sparse (list based) LBM
%% Cell type:code id: tags: