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": 8,
"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
}