{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Poiseuille Pipe (velocity-Neumann)\n", "\n", "As for the case of a Poiseuille channel flow, this simulation is used as test for the outlet boundary condition with a fixed pressure. A velocity Bounce-Back BC is used at inlet, to provide an increase of pressure at inlet. The fixed pressure at outlet is meant to avoid a constant increase of the domain average density." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from nassu.cfg.model import ConfigScheme\n", "\n", "filename = \"tests/validation/cases/03_poiseuille_pipe_flow.nassu.yaml\"\n", "\n", "sim_cfgs = ConfigScheme.sim_cfgs_from_file_dct(filename)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The simulation parameters are shown below" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Ntautime_steps
0320.5132000
\n", "
" ], "text/plain": [ " N tau time_steps\n", "0 32 0.51 32000" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from nassu.cfg.schemes.simul import SimulationConfigs\n", "import pandas as pd\n", "\n", "dct = {\"N\": [], \"tau\": [], \"time_steps\": []}\n", "\n", "\n", "def add_to_dict(sim_cfg: SimulationConfigs):\n", " dct[\"N\"].append(sim_cfg.domain.domain_size.y)\n", " dct[\"tau\"].append(sim_cfg.models.LBM.tau)\n", " dct[\"time_steps\"].append(sim_cfg.n_steps)\n", "\n", "\n", "sim_cfg = next(\n", " sim_cfg\n", " for (name, _), sim_cfg in sim_cfgs.items()\n", " if name.startswith(\"velocityNeumannPoiseuillePipeMultilevel\")\n", ")\n", "add_to_dict(sim_cfg)\n", "\n", "df = pd.DataFrame(dct, index=None)\n", "\n", "df" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "In this case, the IBM domain limits for the $x$-direction must be set such that the the body is sufficiently far from domain's boundaries. Otherwise, numerical instability may be found." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Functions to use for processing of poiseuille pipe." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from typing import Callable\n", "import numpy as np\n", "from lnas import LnasFormat\n", "from tests.validation.notebooks import common\n", "\n", "\n", "def get_poiseuille_pipe_analytical_func() -> Callable:\n", " \"\"\"Poiseuille analytical velocity function\n", "\n", " Returns:\n", " Callable[[float], float]: Analytical velocity function\n", " \"\"\"\n", " return lambda r: 2 * (1 - r * r)\n", "\n", "\n", "def get_poiseuille_pipe_numerical_avg_vel(ux_vals: np.ndarray) -> float:\n", " # Average velocity is ~half the maximun velocity.\n", " # Numerical integration gives worse results for average velocity\n", " return np.max(ux_vals) / 2\n", "\n", "\n", "def get_pos_values_inside_pipe(sim_cfg: SimulationConfigs) -> np.ndarray:\n", " lnas_filename = sim_cfg.output.bodies[\"cylinder\"].lnas_transformed\n", " lnas = LnasFormat.from_file(lnas_filename)\n", " vertices = lnas.geometry.vertices\n", "\n", " x_val = sim_cfg.domain.domain_size.x * 3 // 4 + 2\n", " z_val = sim_cfg.domain.domain_size.z / 2\n", " min_y, max_y = (vertices[:, 1].min(), vertices[:, 1].max())\n", " min_y, max_y = int(np.floor(min_y)), int(np.ceil(max_y))\n", "\n", " p1, p2 = (x_val, min_y, z_val), (x_val, max_y, z_val)\n", " line = np.linspace(p1, p2, num=max_y - min_y, endpoint=False)\n", " return line\n", "\n", "\n", "def get_pos_values_along_pipe(sim_cfg: SimulationConfigs) -> np.ndarray:\n", " min_x, max_x = 0, sim_cfg.domain.domain_size.x - 1\n", " y_val = sim_cfg.domain.domain_size.y / 2\n", " z_val = sim_cfg.domain.domain_size.z / 2\n", "\n", " p1, p2 = (min_x, y_val, z_val), (max_x, y_val, z_val)\n", " line = np.linspace(p1, p2, num=max_x - min_x, endpoint=False)\n", " return line\n", "\n", "\n", "def plot_analytical_poiseuille_pipe_vels(ax):\n", " x = np.arange(\n", " -1,\n", " 1.01,\n", " 0.01,\n", " )\n", " analytical_func = get_poiseuille_pipe_analytical_func()\n", " analytical_data = analytical_func(x)\n", " ax.plot(x, analytical_data, \"--k\", label=\"Analytical\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Results\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract the velocity profile from simulation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from vtk.util.numpy_support import vtk_to_numpy\n", "\n", "extracted_data = {}\n", "array_to_extract = \"ux\"\n", "\n", "export_instantaneous_cfg = sim_cfg.output.instantaneous\n", "macr_export = export_instantaneous_cfg[\"default\"]\n", "time_step = macr_export.time_steps(sim_cfg.n_steps)[-1]\n", "reader = macr_export.read_vtm_export(time_step)\n", "\n", "pos = get_pos_values_inside_pipe(sim_cfg)\n", "\n", "# Sum 0.5 because data is cell data, so it's in the center of the cell\n", "p1 = pos[0] + 0.5\n", "p2 = pos[-1] + 0.5\n", "\n", "line = common.create_line(p1, p2, len(pos) - 1)\n", "\n", "# Get the points from the vtkLineSource\n", "polyData = line.GetOutput()\n", "points = polyData.GetPoints()\n", "\n", "probe_filter = common.probe_over_line(line, reader.GetOutput())\n", "\n", "probed_data = vtk_to_numpy(probe_filter.GetOutput().GetPointData().GetArray(array_to_extract))\n", "extracted_data = {\"pos\": pos, \"data\": probed_data}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Extract velocity along the pipe" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "ux_along_pipe = {}\n", "\n", "pos = get_pos_values_along_pipe(sim_cfg)\n", "# Sum 0.5 because data is cell data, so it's in the center of the cell\n", "p1 = pos[0] + 0.5\n", "p2 = pos[-1] + 0.5\n", "\n", "line = common.create_line(p1, p2, len(pos) - 1)\n", "\n", "# Get the points from the vtkLineSource\n", "polyData = line.GetOutput()\n", "points = polyData.GetPoints()\n", "\n", "probe_filter = common.probe_over_line(line, reader.GetOutput())\n", "\n", "probed_data = vtk_to_numpy(probe_filter.GetOutput().GetPointData().GetArray(array_to_extract))\n", "ux_along_pipe = {\"pos\": pos, \"data\": probed_data}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The velocity profile at the end of simulation is compared with the steady state analytical solution below:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches(6, 5)\n", "\n", "\n", "def normalize_pos(pos):\n", " # Normalize between -1 and 1\n", " pos -= pos.min()\n", " pos /= pos.max()\n", " pos -= 0.5\n", " pos *= 2\n", "\n", "\n", "num_data = extracted_data\n", "num_avg_vel = get_poiseuille_pipe_numerical_avg_vel(extracted_data[\"data\"])\n", "pos_norm = extracted_data[\"pos\"][:, 1].copy()\n", "R = pos_norm.max() - pos_norm.min()\n", "normalize_pos(pos_norm)\n", "\n", "ax.plot(\n", " pos_norm,\n", " extracted_data[\"data\"] / num_avg_vel,\n", " \"o\",\n", " label=f\"R={R} (avg. {num_avg_vel:.2e})\",\n", " fillstyle=\"none\",\n", " c=\"k\",\n", ")\n", "\n", "plot_analytical_poiseuille_pipe_vels(ax)\n", "ax.set_title(f\"Poiseuille Pipe\\n({sim_cfg.models.LBM.vel_set} {sim_cfg.models.LBM.coll_oper})\")\n", "ax.legend()\n", "plt.show(fig)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Good agreement was also obtained for this case, with an coherent flow development." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAH0AlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqu19Zo5R7qBWBwQZACKT+0bH/AJ/Lf/v6v+NK6HZlmiq39o2P/P5b/wDf1f8AGj+0bH/n8t/+/q/40XQcrLNFVv7Rsf8An8t/+/q/40f2jY/8/lv/AN/V/wAaLoOVlmiq39o2P/P5b/8Af1f8aP7Rsf8An8t/+/q/40XQcrLNFVv7Rsf+fy3/AO/q/wCNH9o2X/P5b/8Af1f8aLoOVlmiq39oWX/P5b/9/V/xo/tCy/5/Lf8A7+r/AI0XQcrLNFVv7Qsv+fy3/wC/q/40f2hZf8/lv/39X/Gi6CzLNFVv7Qsv+fy3/wC/q/40f2hZf8/lv/39X/Gi6CzLNFVv7Qsv+fy3/wC/q/40f2hZf8/lv/39X/Gi6CzLNFVv7Qsv+fy3/wC/o/xo/tCy/wCfy3/7+D/Gi6CzLNFV/wC0LL/n7t/+/g/xo/tCy/5+7f8A7+D/ABougsyxRVf+0LL/AJ+7f/v4P8aT+0LL/n8t/wDv4P8AGi6CzLNFVv7Qsv8An8t/+/o/xo/tCy/5/Lf/AL+r/jRdBZlmiq39oWX/AD+W/wD39X/Gj+0LL/n8t/8Av6P8aLoLMs0VW/tCy/5/Lf8A7+r/AI0f2hZf8/lv/wB/R/jRdBZlmiq/9oWX/P3b/wDfwf40f2hZf8/dv/38H+NF0FmWKKr/ANoWX/P3b/8Afwf40n9oWX/P5b/9/B/jRdBZlmiq39oW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", "image/png": "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3/GOd2w8aNh4eG9K6fz58x/M7Ozs/MzP/Iw6xZd8yZe87nWvWxos+fznP7+0eeCBB/j2D37wg895znP+2l/7a6qGq8LWXnC2Gg93ecl3fMd3PPGJTzx37hyv+ad/+qe999/6rd963333vf3tb3/xi188mUze/e53c5trzdbecYaN5/P5l37pl77gBS/45V/+5be+9a233377t3/7t/PDB64+55d/+ZeXf33/67/+63z7NWW4a4qtxgM9HR6l62xKDN/U73jHO5xzL33pS3/xF3/xF37hF772a792d3f3Yx/7mBrtlC5rSsARgiEefvjhm2666Xu/93u50T333HPzzTefP3+eb0xpi/Ghqjp79qxyhHt7e865X/u1X1Mn3cinP/3pqqre9773bdx7JRyqF4cy7nd5yf333++ce/vb386b/Sd/8ie33HLLG9/4Rr7xta997e233/7www/zjdeOQ/Vuq/Ev/uIvnjlz5tFHH102+Od//ue99/v7+8viZV79c+fOPfnJT/62b/s2Y47OEW7tGmer8XBPB0bp+psSCn5TN03zpCc96dWvfvXaJsb4vOc972u/9mvXW5Zc5pSAIwRDvOc976mqav14WvJ//+//Nca85z3vUUcOGw/vVVX1vcL9999vjPnjP/5jZbmR173udV/2ZV+2cdcVcqheHMq43+WU6Pb+C3/hLzz/+c9XzX7b2962s7OzWCz49nPnznnv/+N//I9847XjUL3bavze97733nvvXbf2gQceMIb+uHC55TKv/mte85qnP/3py7/BP7JvhFu7xtlqPNzTgVG6/qaEgt/UH/jAB4wxf/AHf8Btfu7nfm42m3Vdxzde5pRArFEwxKc//enHP/7xN954Ize69dZbb7rppmXgD86wcdM0l19Vn4997GM33XTT7bff/qlPfcpa++QnP7lvs2Q+n/+H//Af3vjGN17K4EoY7qOq+VDGG/mxH/uxBx544Ld+67c+/vGPP/3pT1+H3HzwwQe/5Eu+ZDKZ8KNuuOGGpzzlKQ8++OA3fuM38u3XiEP1bqvx12fWTb3vvvtuueWWpz71qcstl3P1f/M3f/Mtb3nLr/zKr5w5c2ZdzxGwtWucrcbDPR0YpetvSnDUTV3X9Ytf/GL1EJjNZvP5/Pz58zfffPPy2MufEhDLgCHOnTt3ww039C1uuukmFRPLmC3Gh6qqz8c+9jFr7TOf+cynPOUpd9555x133LFWyije9ra3tW378pe/XG2/KhyqF4cy7vOFL3zhe77ne6y1f/7P//kv/dIvvfXWW9/85jenlIyh4Cz92GMhhM9+9rN33nlnv6prwaF6d5nG8/n8DW94wzd90zf983/+z9/61reuHf/Wqz+fz1/1qle94hWveP7zn38tOjvAZXZtyVbjrT01ZvMoXa9TYom6qb/qq77qXe96l3oRfM973vO0pz1t7QUPNSXgCMEW1g8jjnObZ86w8fDeYR588MGLFy/eddddn/zkJz/zmc/8g3/wD+66665+fldjzL/9t//2W7/1W8+ePTtc4WPmUL04lLHi7rvv3t/f//7v//5PfOITf/RHf/TGN77xDW94w7333muM+Ut/6S89+uij73jHO/ghb33rWxeLxXOf+1y+8ZpyqN5djnGM8aMf/egf/uEfGmM+/OEPrxu/9er/03/6Tx999NE3velN60OOksvp2pph4609NWbzKF2vU2LJ1pv6v/23//bjP/7j//gf/+P1OB9qSuCnUXA6+Cf/5J/cc88966f8d3/3d+/u7n73d3/3S1/60jvuuGPdh9/4jd/48Ic/rDzEaeR//a//9dM//dM/9VM/9bKXvWzZ/u/8zu+84YYbXv3qV//dv/t3n/WsZ73mNa951ate9dBDD734xS8OIfzcz/3c937v977qVa86sm+E14Ld3d377rvPGPPOd77zb//tv33LLbcsMxEOX/0HHnjgTW9609ve9rZbb731WrTqKBnu6bIlG0fpep0Sxmy/qe+///6XvOQlr8wsh+iwU2Lzez0YJ+fOnfsk4/z588vXz/5oxLhh41bjjUdt3NjnK7/yK9decMldd90VQvjv//2/c+N/9+/+3dd93dc94xnP4BuvLhsbvHHj1gEZ4P3vf/9NN9209oJLXv7yl9d1vezym9/85rszT3jCE5761Ke+7nWvu/HGG//Vv/pXA3VedTb2euPGww7FX//rf/3bv/3b//W//tfLNg9c/a7rXvWqV/3Vv/pX/+bf/JtXvYOXycYub9y4dRwGetpvjBql63VKDN/U999///Of//znPe95P/IjP7IcoscwJeAIQeFHfuRHnsp461vfeuONNz7yyCPFYsW5c+fWv8WvGTYe3ruuZCP/83/+z//0n/6T2lXX9R133PHJT35yvf3T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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[(165.42562584220408, 16.0, 16.0),\n", " (78.0, 16.0, 16.0),\n", " (0.0, 0.0, 1.0)]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pyvista as pv\n", "\n", "array_to_inspect = \"ux\"\n", "\n", "time_step = macr_export.time_steps(sim_cfg.n_steps)[-1]\n", "multiblock_file = macr_export.time_step_filename(time_step, \".vtm\")\n", "multi_block = pv.read(multiblock_file)\n", "\n", "sliced_blocks = multi_block.slice(\n", " normal=[1, 0, 0], origin=[3 * sim_cfg.domain.domain_size.x // 4, 0, 0]\n", ")\n", "\n", "plotter = pv.Plotter(window_size=(600, 500))\n", "sliced_blocks.set_active_scalars(array_to_inspect)\n", "plotter.add_mesh(sliced_blocks, cmap=\"coolwarm\")\n", "plotter.show(jupyter_backend=\"static\", cpos=\"yz\", return_cpos=True)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The sectional view of the flow profile shows a axissymmetric flow with a secundary flow ocurring between the IBM body and the boundaries." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "fig, ax = plt.subplots()\n", "fig.set_size_inches(6, 5)\n", "\n", "ax.plot(\n", " ux_along_pipe[\"pos\"][:, 0],\n", " ux_along_pipe[\"data\"],\n", " \"--\",\n", " label=\"Nassu\",\n", " fillstyle=\"none\",\n", " c=\"k\",\n", ")\n", "\n", "ax.set_ylabel(\"$u_x$\")\n", "ax.set_xlabel(\"$x$\")\n", "plt.show(fig)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "The centerline velocity is shown above. It presents asymptotic decay as for the turbulent channel. However, at the end of IBM domain limits, the flow suffers an expansion and the centerline velocity reduces." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Version" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Version: 1.6.33\n", "Commit hash: fbc0edb5260d2734f0a290e1806c26ac6d865ff4\n" ] } ], "source": [ "sim_info = sim_cfg.output.read_info()\n", "\n", "nassu_commit = sim_info[\"commit\"]\n", "nassu_version = sim_info[\"version\"]\n", "print(\"Version:\", nassu_version)\n", "print(\"Commit hash:\", nassu_commit)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Configuration" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
simulations:\n",
       "  - name: periodicPoiseuillePipeN16\n",
       "    save_path: ./tests/validation/results/03_poiseuille_pipe_flow/periodic\n",
       "    n_steps: 2000\n",
       "    report:\n",
       "      frequency: 1000\n",
       "\n",
       "    data:\n",
       "      divergence: { frequency: 50 }\n",
       "      instantaneous:\n",
       "        default: { interval: { frequency: 0 }, macrs: [rho, u, f_IBM, S] }\n",
       "\n",
       "    domain:\n",
       "      domain_size:\n",
       "        x: 24\n",
       "        y: 24\n",
       "        z: 24\n",
       "      block_size: 8\n",
       "\n",
       "      bodies:\n",
       "        cylinder:\n",
       "          lnas_path: fixture/lnas/basic/cylinder.lnas\n",
       "          small_triangles: add\n",
       "          transformation:\n",
       "            scale: [8, 8, 8]\n",
       "            translation: [-4, 4, 4]\n",
       "\n",
       "    models:\n",
       "      precision:\n",
       "        default: single\n",
       "\n",
       "      LBM:\n",
       "        tau: 0.8\n",
       "        F:\n",
       "          x: 6.25E-05\n",
       "          y: 0\n",
       "          z: 0\n",
       "        vel_set: D3Q27\n",
       "        coll_oper: RRBGK\n",
       "\n",
       "      engine:\n",
       "        name: CUDA\n",
       "\n",
       "      IBM:\n",
       "        forces_accomodate_time: 1000\n",
       "        body_cfgs:\n",
       "          default: {}\n",
       "\n",
       "      BC:\n",
       "        periodic_dims: [true, false, false]\n",
       "        BC_map:\n",
       "          - pos: N\n",
       "            BC: RegularizedHWBB\n",
       "            wall_normal: N\n",
       "            order: 1\n",
       "\n",
       "          - pos: S\n",
       "            BC: RegularizedHWBB\n",
       "            wall_normal: S\n",
       "            order: 1\n",
       "\n",
       "          - pos: F\n",
       "            BC: RegularizedHWBB\n",
       "            wall_normal: F\n",
       "            order: 2\n",
       "\n",
       "          - pos: B\n",
       "            BC: RegularizedHWBB\n",
       "            wall_normal: B\n",
       "            order: 2\n",
       "\n",
       "  - name: periodicPoiseuillePipeN32\n",
       "    parent: periodicPoiseuillePipeN16\n",
       "\n",
       "    n_steps: 8000\n",
       "\n",
       "    domain:\n",
       "      domain_size:\n",
       "        x: 40\n",
       "        y: 40\n",
       "        z: 40\n",
       "      block_size: 8\n",
       "      bodies: !not-inherit\n",
       "        cylinder:\n",
       "          lnas_path: fixture/lnas/basic/cylinder.lnas\n",
       "          small_triangles: add\n",
       "          transformation:\n",
       "            scale: [16, 16, 16]\n",
       "            translation: [-4, 4, 4]\n",
       "\n",
       "    models:\n",
       "      LBM:\n",
       "        F:\n",
       "          x: 7.8125E-06\n",
       "          y: 0\n",
       "          z: 0\n",
       "\n",
       "  - name: periodicPoiseuillePipeN64\n",
       "    parent: periodicPoiseuillePipeN16\n",
       "\n",
       "    n_steps: 32000\n",
       "\n",
       "    domain:\n",
       "      domain_size:\n",
       "        x: 72\n",
       "        y: 72\n",
       "        z: 72\n",
       "      block_size: 8\n",
       "      bodies: !not-inherit\n",
       "        cylinder:\n",
       "          lnas_path: fixture/lnas/basic/cylinder.lnas\n",
       "          small_triangles: add\n",
       "          transformation:\n",
       "            scale: [32, 32, 32]\n",
       "            translation: [-4, 4, 4]\n",
       "    models:\n",
       "      LBM:\n",
       "        F:\n",
       "          x: 9.76563E-07\n",
       "          y: 0\n",
       "          z: 0\n",
       "\n",
       "  - name: periodicPoiseuillePipeN128\n",
       "    parent: periodicPoiseuillePipeN16\n",
       "\n",
       "    n_steps: 128000\n",
       "\n",
       "    domain:\n",
       "      domain_size:\n",
       "        x: 136\n",
       "        y: 136\n",
       "        z: 136\n",
       "      block_size: 8\n",
       "      bodies: !not-inherit\n",
       "        cylinder:\n",
       "          lnas_path: fixture/lnas/basic/cylinder.lnas\n",
       "          small_triangles: add\n",
       "          transformation:\n",
       "            scale: [64, 64, 64]\n",
       "            translation: [-4, 4, 4]\n",
       "    models:\n",
       "      LBM:\n",
       "        F:\n",
       "          x: 1.22070E-07\n",
       "          y: 0\n",
       "          z: 0\n",
       "\n",
       "  - name: velocityNeumannPoiseuillePipeMultilevel\n",
       "    save_path: ./tests/validation/results/03_poiseuille_pipe_flow/velocity_neumann_multilevel\n",
       "\n",
       "    n_steps: 32000\n",
       "\n",
       "    report:\n",
       "      frequency: 1000\n",
       "\n",
       "    data:\n",
       "      divergence: { frequency: 1 }\n",
       "      instantaneous:\n",
       "        default: { interval: { frequency: 8000 }, macrs: [rho, u, f_IBM, S] }\n",
       "\n",
       "    domain:\n",
       "      domain_size:\n",
       "        x: 104\n",
       "        y: 32\n",
       "        z: 32\n",
       "\n",
       "      block_size: 8\n",
       "      bodies_domain_limits:\n",
       "        start: [4, 8, 8]\n",
       "        end: [88, 40, 40]\n",
       "        is_abs: true\n",
       "      bodies:\n",
       "        cylinder:\n",
       "          lnas_path: fixture/lnas/basic/cylinder.lnas\n",
       "          small_triangles: add\n",
       "          transformation:\n",
       "            scale: [8, 8, 8]\n",
       "            translation: [4, 8, 8]\n",
       "      refinement:\n",
       "        static:\n",
       "          default:\n",
       "            bodies:\n",
       "              - body_name: cylinder\n",
       "                lvl: 1\n",
       "                normal_offsets: [-2, 0, 2]\n",
       "\n",
       "    models:\n",
       "      precision:\n",
       "        default: single\n",
       "\n",
       "      LBM:\n",
       "        tau: 0.51\n",
       "        vel_set: D3Q27\n",
       "        coll_oper: RRBGK\n",
       "\n",
       "      engine:\n",
       "        name: CUDA\n",
       "\n",
       "      BC:\n",
       "        periodic_dims: [false, false, false]\n",
       "        BC_map:\n",
       "          - pos: W\n",
       "            BC: UniformFlow\n",
       "            wall_normal: W\n",
       "            rho: 1.0\n",
       "            ux: 0.05\n",
       "            uy: 0\n",
       "            uz: 0\n",
       "            order: 2\n",
       "\n",
       "          - pos: E\n",
       "            BC: RegularizedNeumannOutlet\n",
       "            rho: 1.0\n",
       "            wall_normal: E\n",
       "            order: 2\n",
       "\n",
       "          - pos: N\n",
       "            BC: Neumann\n",
       "            wall_normal: N\n",
       "            order: 1\n",
       "\n",
       "          - pos: S\n",
       "            BC: Neumann\n",
       "            wall_normal: S\n",
       "            order: 1\n",
       "\n",
       "          - pos: F\n",
       "            BC: Neumann\n",
       "            wall_normal: F\n",
       "            order: 0\n",
       "\n",
       "          - pos: B\n",
       "            BC: Neumann\n",
       "            wall_normal: B\n",
       "            order: 0\n",
       "\n",
       "      IBM:\n",
       "        forces_accomodate_time: 1000\n",
       "        body_cfgs:\n",
       "          default: {}\n",
       "
\n" ], "text/latex": [ "\\begin{Verbatim}[commandchars=\\\\\\{\\}]\n", "\\PY{n+nt}{simulations}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN16}\n", "\\PY{+w}{ }\\PY{n+nt}{save\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{./tests/validation/results/03\\PYZus{}poiseuille\\PYZus{}pipe\\PYZus{}flow/periodic}\n", "\\PY{+w}{ }\\PY{n+nt}{n\\PYZus{}steps}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{2000}\n", "\\PY{+w}{ }\\PY{n+nt}{report}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{data}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{divergence}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{n+nv}{50}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\n", "\\PY{+w}{ }\\PY{n+nt}{instantaneous}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ interval}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{n+nv}{0}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\\PY{p+pIndicator}{,}\\PY{n+nt}{ macrs}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{rho}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{u}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{f\\PYZus{}IBM}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{S}\\PY{p+pIndicator}{]}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{domain}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{domain\\PYZus{}size}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{24}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{24}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{24}\n", "\\PY{+w}{ }\\PY{n+nt}{block\\PYZus{}size}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{cylinder}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{lnas\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{fixture/lnas/basic/cylinder.lnas}\n", "\\PY{+w}{ }\\PY{n+nt}{small\\PYZus{}triangles}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{add}\n", "\\PY{+w}{ }\\PY{n+nt}{transformation}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{scale}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{translation}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{\\PYZhy{}4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{]}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{models}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{precision}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{single}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{LBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{tau}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0.8}\n", "\\PY{+w}{ }\\PY{n+nt}{F}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{6.25E\\PYZhy{}05}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{vel\\PYZus{}set}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{D3Q27}\n", "\\PY{+w}{ }\\PY{n+nt}{coll\\PYZus{}oper}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RRBGK}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{engine}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{CUDA}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{IBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{forces\\PYZus{}accomodate\\PYZus{}time}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1000}\n", "\\PY{+w}{ }\\PY{n+nt}{body\\PYZus{}cfgs}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{p+pIndicator}{\\PYZcb{}}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{periodic\\PYZus{}dims}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{true}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{false}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{false}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{BC\\PYZus{}map}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{N}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RegularizedHWBB}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{N}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{S}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RegularizedHWBB}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{S}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{F}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RegularizedHWBB}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{F}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{2}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{B}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RegularizedHWBB}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{B}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{2}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN32}\n", "\\PY{+w}{ }\\PY{n+nt}{parent}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN16}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{n\\PYZus{}steps}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{domain}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{domain\\PYZus{}size}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{40}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{40}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{40}\n", "\\PY{+w}{ }\\PY{n+nt}{block\\PYZus{}size}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\\PY{+w}{ }\\PY{k+kt}{!not\\PYZhy{}inherit}\n", "\\PY{+w}{ }\\PY{n+nt}{cylinder}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{lnas\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{fixture/lnas/basic/cylinder.lnas}\n", "\\PY{+w}{ }\\PY{n+nt}{small\\PYZus{}triangles}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{add}\n", "\\PY{+w}{ }\\PY{n+nt}{transformation}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{scale}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{16}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{16}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{16}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{translation}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{\\PYZhy{}4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{]}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{models}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{LBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{F}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{7.8125E\\PYZhy{}06}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN64}\n", "\\PY{+w}{ }\\PY{n+nt}{parent}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN16}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{n\\PYZus{}steps}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{32000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{domain}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{domain\\PYZus{}size}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{72}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{72}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{72}\n", "\\PY{+w}{ }\\PY{n+nt}{block\\PYZus{}size}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\\PY{+w}{ }\\PY{k+kt}{!not\\PYZhy{}inherit}\n", "\\PY{+w}{ }\\PY{n+nt}{cylinder}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{lnas\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{fixture/lnas/basic/cylinder.lnas}\n", "\\PY{+w}{ }\\PY{n+nt}{small\\PYZus{}triangles}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{add}\n", "\\PY{+w}{ }\\PY{n+nt}{transformation}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{scale}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{32}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{32}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{32}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{translation}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{\\PYZhy{}4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{models}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{LBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{F}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{9.76563E\\PYZhy{}07}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN128}\n", "\\PY{+w}{ }\\PY{n+nt}{parent}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{periodicPoiseuillePipeN16}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{n\\PYZus{}steps}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{128000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{domain}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{domain\\PYZus{}size}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{136}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{136}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{136}\n", "\\PY{+w}{ }\\PY{n+nt}{block\\PYZus{}size}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\\PY{+w}{ }\\PY{k+kt}{!not\\PYZhy{}inherit}\n", "\\PY{+w}{ }\\PY{n+nt}{cylinder}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{lnas\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{fixture/lnas/basic/cylinder.lnas}\n", "\\PY{+w}{ }\\PY{n+nt}{small\\PYZus{}triangles}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{add}\n", "\\PY{+w}{ }\\PY{n+nt}{transformation}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{scale}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{64}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{64}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{64}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{translation}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{\\PYZhy{}4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{4}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{models}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{LBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{F}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1.22070E\\PYZhy{}07}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{velocityNeumannPoiseuillePipeMultilevel}\n", "\\PY{+w}{ }\\PY{n+nt}{save\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{./tests/validation/results/03\\PYZus{}poiseuille\\PYZus{}pipe\\PYZus{}flow/velocity\\PYZus{}neumann\\PYZus{}multilevel}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{n\\PYZus{}steps}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{32000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{report}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1000}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{data}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{divergence}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{n+nv}{1}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\n", "\\PY{+w}{ }\\PY{n+nt}{instantaneous}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ interval}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{n+nt}{ frequency}\\PY{p}{:}\\PY{+w}{ }\\PY{n+nv}{8000}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\\PY{p+pIndicator}{,}\\PY{n+nt}{ macrs}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{rho}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{u}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{f\\PYZus{}IBM}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{S}\\PY{p+pIndicator}{]}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZcb{}}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{domain}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{domain\\PYZus{}size}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{x}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{104}\n", "\\PY{+w}{ }\\PY{n+nt}{y}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{32}\n", "\\PY{+w}{ }\\PY{n+nt}{z}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{32}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{block\\PYZus{}size}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{8}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies\\PYZus{}domain\\PYZus{}limits}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{start}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{end}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{88}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{40}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{40}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{is\\PYZus{}abs}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{true}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{cylinder}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{lnas\\PYZus{}path}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{fixture/lnas/basic/cylinder.lnas}\n", "\\PY{+w}{ }\\PY{n+nt}{small\\PYZus{}triangles}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{add}\n", "\\PY{+w}{ }\\PY{n+nt}{transformation}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{scale}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{translation}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{4}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{8}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{refinement}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{static}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{bodies}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{body\\PYZus{}name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{cylinder}\n", "\\PY{+w}{ }\\PY{n+nt}{lvl}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1}\n", "\\PY{+w}{ }\\PY{n+nt}{normal\\PYZus{}offsets}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{\\PYZhy{}2}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{0}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{2}\\PY{p+pIndicator}{]}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{models}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{precision}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{single}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{LBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{tau}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0.51}\n", "\\PY{+w}{ }\\PY{n+nt}{vel\\PYZus{}set}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{D3Q27}\n", "\\PY{+w}{ }\\PY{n+nt}{coll\\PYZus{}oper}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RRBGK}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{engine}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{name}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{CUDA}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{periodic\\PYZus{}dims}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{[}\\PY{n+nv}{false}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{false}\\PY{p+pIndicator}{,}\\PY{+w}{ }\\PY{n+nv}{false}\\PY{p+pIndicator}{]}\n", "\\PY{+w}{ }\\PY{n+nt}{BC\\PYZus{}map}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{W}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{UniformFlow}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{W}\n", "\\PY{+w}{ }\\PY{n+nt}{rho}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1.0}\n", "\\PY{+w}{ }\\PY{n+nt}{ux}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0.05}\n", "\\PY{+w}{ }\\PY{n+nt}{uy}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{uz}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{2}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{E}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{RegularizedNeumannOutlet}\n", "\\PY{+w}{ }\\PY{n+nt}{rho}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1.0}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{E}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{2}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{N}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{Neumann}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{N}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{S}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{Neumann}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{S}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{F}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{Neumann}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{F}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\n", "\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZhy{}}\\PY{+w}{ }\\PY{n+nt}{pos}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{B}\n", "\\PY{+w}{ }\\PY{n+nt}{BC}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{Neumann}\n", "\\PY{+w}{ }\\PY{n+nt}{wall\\PYZus{}normal}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{B}\n", "\\PY{+w}{ }\\PY{n+nt}{order}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{0}\n", "\n", "\\PY{+w}{ }\\PY{n+nt}{IBM}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{forces\\PYZus{}accomodate\\PYZus{}time}\\PY{p}{:}\\PY{+w}{ }\\PY{l+lScalar+lScalarPlain}{1000}\n", "\\PY{+w}{ }\\PY{n+nt}{body\\PYZus{}cfgs}\\PY{p}{:}\n", "\\PY{+w}{ }\\PY{n+nt}{default}\\PY{p}{:}\\PY{+w}{ }\\PY{p+pIndicator}{\\PYZob{}}\\PY{p+pIndicator}{\\PYZcb{}}\n", "\\end{Verbatim}\n" ], "text/plain": [ "simulations:\n", " - name: periodicPoiseuillePipeN16\n", " save_path: ./tests/validation/results/03_poiseuille_pipe_flow/periodic\n", " n_steps: 2000\n", " report:\n", " frequency: 1000\n", "\n", " data:\n", " divergence: { frequency: 50 }\n", " instantaneous:\n", " default: { interval: { frequency: 0 }, macrs: [rho, u, f_IBM, S] }\n", "\n", " domain:\n", " domain_size:\n", " x: 24\n", " y: 24\n", " z: 24\n", " block_size: 8\n", "\n", " bodies:\n", " cylinder:\n", " lnas_path: fixture/lnas/basic/cylinder.lnas\n", " small_triangles: add\n", " transformation:\n", " scale: [8, 8, 8]\n", " translation: [-4, 4, 4]\n", "\n", " models:\n", " precision:\n", " default: single\n", "\n", " LBM:\n", " tau: 0.8\n", " F:\n", " x: 6.25E-05\n", " y: 0\n", " z: 0\n", " vel_set: D3Q27\n", " coll_oper: RRBGK\n", "\n", " engine:\n", " name: CUDA\n", "\n", " IBM:\n", " forces_accomodate_time: 1000\n", " body_cfgs:\n", " default: {}\n", "\n", " BC:\n", " periodic_dims: [true, false, false]\n", " BC_map:\n", " - pos: N\n", " BC: RegularizedHWBB\n", " wall_normal: N\n", " order: 1\n", "\n", " - pos: S\n", " BC: RegularizedHWBB\n", " wall_normal: S\n", " order: 1\n", "\n", " - pos: F\n", " BC: RegularizedHWBB\n", " wall_normal: F\n", " order: 2\n", "\n", " - pos: B\n", " BC: RegularizedHWBB\n", " wall_normal: B\n", " order: 2\n", "\n", " - name: periodicPoiseuillePipeN32\n", " parent: periodicPoiseuillePipeN16\n", "\n", " n_steps: 8000\n", "\n", " domain:\n", " domain_size:\n", " x: 40\n", " y: 40\n", " z: 40\n", " block_size: 8\n", " bodies: !not-inherit\n", " cylinder:\n", " lnas_path: fixture/lnas/basic/cylinder.lnas\n", " small_triangles: add\n", " transformation:\n", " scale: [16, 16, 16]\n", " translation: [-4, 4, 4]\n", "\n", " models:\n", " LBM:\n", " F:\n", " x: 7.8125E-06\n", " y: 0\n", " z: 0\n", "\n", " - name: periodicPoiseuillePipeN64\n", " parent: periodicPoiseuillePipeN16\n", "\n", " n_steps: 32000\n", "\n", " domain:\n", " domain_size:\n", " x: 72\n", " y: 72\n", " z: 72\n", " block_size: 8\n", " bodies: !not-inherit\n", " cylinder:\n", " lnas_path: fixture/lnas/basic/cylinder.lnas\n", " small_triangles: add\n", " transformation:\n", " scale: [32, 32, 32]\n", " translation: [-4, 4, 4]\n", " models:\n", " LBM:\n", " F:\n", " x: 9.76563E-07\n", " y: 0\n", " z: 0\n", "\n", " - name: periodicPoiseuillePipeN128\n", " parent: periodicPoiseuillePipeN16\n", "\n", " n_steps: 128000\n", "\n", " domain:\n", " domain_size:\n", " x: 136\n", " y: 136\n", " z: 136\n", " block_size: 8\n", " bodies: !not-inherit\n", " cylinder:\n", " lnas_path: fixture/lnas/basic/cylinder.lnas\n", " small_triangles: add\n", " transformation:\n", " scale: [64, 64, 64]\n", " translation: [-4, 4, 4]\n", " models:\n", " LBM:\n", " F:\n", " x: 1.22070E-07\n", " y: 0\n", " z: 0\n", "\n", " - name: velocityNeumannPoiseuillePipeMultilevel\n", " save_path: ./tests/validation/results/03_poiseuille_pipe_flow/velocity_neumann_multilevel\n", "\n", " n_steps: 32000\n", "\n", " report:\n", " frequency: 1000\n", "\n", " data:\n", " divergence: { frequency: 1 }\n", " instantaneous:\n", " default: { interval: { frequency: 8000 }, macrs: [rho, u, f_IBM, S] }\n", "\n", " domain:\n", " domain_size:\n", " x: 104\n", " y: 32\n", " z: 32\n", "\n", " block_size: 8\n", " bodies_domain_limits:\n", " start: [4, 8, 8]\n", " end: [88, 40, 40]\n", " is_abs: true\n", " bodies:\n", " cylinder:\n", " lnas_path: fixture/lnas/basic/cylinder.lnas\n", " small_triangles: add\n", " transformation:\n", " scale: [8, 8, 8]\n", " translation: [4, 8, 8]\n", " refinement:\n", " static:\n", " default:\n", " bodies:\n", " - body_name: cylinder\n", " lvl: 1\n", " normal_offsets: [-2, 0, 2]\n", "\n", " models:\n", " precision:\n", " default: single\n", "\n", " LBM:\n", " tau: 0.51\n", " vel_set: D3Q27\n", " coll_oper: RRBGK\n", "\n", " engine:\n", " name: CUDA\n", "\n", " BC:\n", " periodic_dims: [false, false, false]\n", " BC_map:\n", " - pos: W\n", " BC: UniformFlow\n", " wall_normal: W\n", " rho: 1.0\n", " ux: 0.05\n", " uy: 0\n", " uz: 0\n", " order: 2\n", "\n", " - pos: E\n", " BC: RegularizedNeumannOutlet\n", " rho: 1.0\n", " wall_normal: E\n", " order: 2\n", "\n", " - pos: N\n", " BC: Neumann\n", " wall_normal: N\n", " order: 1\n", "\n", " - pos: S\n", " BC: Neumann\n", " wall_normal: S\n", " order: 1\n", "\n", " - pos: F\n", " BC: Neumann\n", " wall_normal: F\n", " order: 0\n", "\n", " - pos: B\n", " BC: Neumann\n", " wall_normal: B\n", " order: 0\n", "\n", " IBM:\n", " forces_accomodate_time: 1000\n", " body_cfgs:\n", " default: {}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Code\n", "\n", "Code(filename=filename)" ] } ], "metadata": { "kernelspec": { "display_name": "nassu", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.10" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }