gitextract_tttiteof/ ├── .codeclimate.yml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── BUG_REPORT.yml │ │ └── FEATURE_REQUEST.yml │ ├── pull_request_template.md │ └── workflows/ │ └── CI.yml ├── .gitignore ├── .readthedocs.yaml ├── AUTHORS.rst ├── LICENSE ├── README.rst ├── docs/ │ ├── README.md │ ├── authors.rst │ ├── conf.py │ ├── contributing.rst │ ├── history.rst │ ├── index.rst │ ├── installation.rst │ ├── make.bat │ ├── modules.rst │ ├── readme.rst │ └── usage.rst ├── examples/ │ ├── 00_simplest_TGV.py │ ├── 01a_first_example_TGV.ipynb │ ├── 01b_first_example_obstacle.py │ ├── 02_converging_obstacle_flow.py │ ├── 03_outputs_TGV.py │ ├── __init__.py │ ├── advanced_flows/ │ │ ├── FailingTGVandObstacle.py │ │ ├── LidDrivenCavity.ipynb │ │ ├── MixingLayer.ipynb │ │ ├── PartiallySaturatedObstacle.py │ │ └── PorousMedium.ipynb │ ├── advanced_projects/ │ │ ├── __init__.py │ │ └── efficient_bounce_back_obstacle/ │ │ ├── 00_run_parametrized_project.ipynb │ │ ├── 01_script_cylinder_simulation.py │ │ ├── __init__.py │ │ ├── auxiliary_code/ │ │ │ ├── __init__.py │ │ │ ├── data_processing_and_plotting.py │ │ │ └── helperCode.py │ │ ├── boundary/ │ │ │ ├── __init__.py │ │ │ ├── fullway_bounce_back_boundary.py │ │ │ ├── halfway_bounce_back_boundary.py │ │ │ ├── linear_interpolated_bounce_back_boundary.py │ │ │ └── solid_boundary_data.py │ │ ├── flow/ │ │ │ ├── __init__.py │ │ │ └── obstacle_cylinder.py │ │ ├── profile_reference_data/ │ │ │ ├── Fig09_ux_profile_pos1_DI2018.csv │ │ │ ├── Fig09_ux_profile_pos1_KM2000.csv │ │ │ ├── Fig09_ux_profile_pos1_LS1993.csv │ │ │ ├── Fig09_ux_profile_pos1_WR2008.csv │ │ │ ├── Fig09_ux_profile_pos2_DI2018.csv │ │ │ ├── Fig09_ux_profile_pos2_KM2000.csv │ │ │ ├── Fig09_ux_profile_pos2_LS1993.csv │ │ │ ├── Fig09_ux_profile_pos2_WR2008.csv │ │ │ ├── Fig09_ux_profile_pos3_DI2018.csv │ │ │ ├── Fig09_ux_profile_pos3_KM2000.csv │ │ │ ├── Fig09_ux_profile_pos3_LS1993.csv │ │ │ ├── Fig09_ux_profile_pos3_WR2008.csv │ │ │ ├── Fig10_uy_profile_pos1_DI2018.csv │ │ │ ├── Fig10_uy_profile_pos1_KM2000.csv │ │ │ ├── Fig10_uy_profile_pos1_LS1993.csv │ │ │ ├── Fig10_uy_profile_pos1_WR2008.csv │ │ │ ├── Fig10_uy_profile_pos2_DI2018.csv │ │ │ ├── Fig10_uy_profile_pos2_KM2000.csv │ │ │ ├── Fig10_uy_profile_pos2_LS1993.csv │ │ │ ├── Fig10_uy_profile_pos2_WR2008.csv │ │ │ ├── Fig10_uy_profile_pos3_DI2018.csv │ │ │ ├── Fig10_uy_profile_pos3_KM2000.csv │ │ │ ├── Fig10_uy_profile_pos3_LS1993.csv │ │ │ ├── Fig10_uy_profile_pos3_WR2008.csv │ │ │ ├── Fig11_uxux_profile_pos1_DI2018.csv │ │ │ ├── Fig11_uxux_profile_pos1_KM2000.csv │ │ │ ├── Fig11_uxux_profile_pos1_R2016.csv │ │ │ ├── Fig11_uxux_profile_pos2_BM1994.csv │ │ │ ├── Fig11_uxux_profile_pos2_DI2018.csv │ │ │ ├── Fig11_uxux_profile_pos2_KM2000.csv │ │ │ ├── Fig11_uxux_profile_pos2_LS1993.csv │ │ │ ├── Fig11_uxux_profile_pos2_R2016.csv │ │ │ ├── Fig11_uxux_profile_pos3_DI2018.csv │ │ │ ├── Fig11_uxux_profile_pos3_KM2000.csv │ │ │ ├── Fig11_uxux_profile_pos3_R2016.csv │ │ │ ├── Fig12_uyuy_profile_pos1_DI2018.csv │ │ │ ├── Fig12_uyuy_profile_pos1_R2016.csv │ │ │ ├── Fig12_uyuy_profile_pos2_BM1994.csv │ │ │ ├── Fig12_uyuy_profile_pos2_DI2018.csv │ │ │ ├── Fig12_uyuy_profile_pos2_LS1993.csv │ │ │ ├── Fig12_uyuy_profile_pos2_R2016.csv │ │ │ ├── Fig12_uyuy_profile_pos3_DI2018.csv │ │ │ ├── Fig12_uyuy_profile_pos3_R2016.csv │ │ │ ├── Fig13_uxuy_profile_pos1_BM1994.csv │ │ │ ├── Fig13_uxuy_profile_pos1_DI2018.csv │ │ │ ├── Fig13_uxuy_profile_pos1_R2016.csv │ │ │ ├── Fig13_uxuy_profile_pos2_BM1994.csv │ │ │ ├── Fig13_uxuy_profile_pos2_DI2018.csv │ │ │ ├── Fig13_uxuy_profile_pos2_LS1993.csv │ │ │ ├── Fig13_uxuy_profile_pos2_R2016.csv │ │ │ ├── Fig13_uxuy_profile_pos3_BM1994.csv │ │ │ ├── Fig13_uxuy_profile_pos3_DI2018.csv │ │ │ └── Fig13_uxuy_profile_pos3_R2016.csv │ │ ├── reporter/ │ │ │ ├── __init__.py │ │ │ ├── observables_force_coefficients.py │ │ │ ├── reporter_ProfileReporter.py │ │ │ └── reporter_advanced_vtk_reporter.py │ │ └── simulation/ │ │ ├── __init__.py │ │ └── ebb_simulation.py │ ├── development/ │ │ ├── .gitignore │ │ ├── example_progress_reporter_based_on_simplest_TGV.py │ │ └── manually_generate_cuda_native.py │ └── simple_flows/ │ ├── Couette.ipynb │ ├── DecayingTurbulence.ipynb │ ├── LambOseenVortex.py │ ├── Obstacle.ipynb │ └── Poiseuille.ipynb ├── lettuce/ │ ├── __init__.py │ ├── _context.py │ ├── _flow.py │ ├── _simulation.py │ ├── _stencil.py │ ├── _unit.py │ ├── _version.py │ ├── base.py │ ├── cli.py │ ├── cuda_native/ │ │ ├── __init__.py │ │ ├── _default_code_gen.py │ │ ├── _generator.py │ │ ├── _registry.py │ │ ├── _template.py │ │ ├── _transformer.py │ │ ├── _util.py │ │ └── ext/ │ │ ├── __init__.py │ │ ├── _boundary/ │ │ │ ├── __init__.py │ │ │ ├── bounce_back_boundary.py │ │ │ ├── equilibrium_pu.py │ │ │ └── no_boundary.py │ │ ├── _collision/ │ │ │ ├── __init__.py │ │ │ ├── bgk_collision.py │ │ │ └── no_collision.py │ │ ├── _equilibrium/ │ │ │ ├── __init__.py │ │ │ └── quadratic_equilibrium.py │ │ └── _force/ │ │ ├── __init__.py │ │ └── _force.py │ ├── ext/ │ │ ├── __init__.py │ │ ├── _boundary/ │ │ │ ├── __init__.py │ │ │ ├── anti_bounce_back_outlet.py │ │ │ ├── bounce_back_boundary.py │ │ │ ├── equilibrium_boundary_pu.py │ │ │ ├── equilibrium_outlet_p.py │ │ │ └── partially_saturated_boundary.py │ │ ├── _collision/ │ │ │ ├── __init__.py │ │ │ ├── bgk_collision.py │ │ │ ├── kbc_collision.py │ │ │ ├── mrt_collision.py │ │ │ ├── no_collision.py │ │ │ ├── regularized_collision.py │ │ │ ├── smagorinsky_collision.py │ │ │ └── trt_collision.py │ │ ├── _equilibrium/ │ │ │ ├── __init__.py │ │ │ ├── incompressible_quadratic_equilibrium.py │ │ │ ├── quadratic_equilibrium.py │ │ │ └── quadratic_equilibrium_less_memory.py │ │ ├── _flows/ │ │ │ ├── __init__.py │ │ │ ├── _ext_flow.py │ │ │ ├── _flow_by_name.py │ │ │ ├── couette.py │ │ │ ├── decayingturbulence.py │ │ │ ├── doublyshear.py │ │ │ ├── lamboseenvortex.py │ │ │ ├── liddrivencavity.py │ │ │ ├── obstacle.py │ │ │ ├── poiseuille.py │ │ │ └── taylorgreen.py │ │ ├── _force/ │ │ │ ├── __init__.py │ │ │ ├── _force.py │ │ │ ├── guo.py │ │ │ └── shan_chen.py │ │ ├── _reporter/ │ │ │ ├── __init__.py │ │ │ ├── error_reporter.py │ │ │ ├── failure_reporter.py │ │ │ ├── observable_reporter.py │ │ │ ├── progress_reporter.py │ │ │ ├── vtk_reporter.py │ │ │ └── write_image.py │ │ └── _stencil/ │ │ ├── __init__.py │ │ ├── d1q3.py │ │ ├── d2q9.py │ │ ├── d3q15.py │ │ ├── d3q19.py │ │ └── d3q27.py │ └── util/ │ ├── __init__.py │ ├── datautils.py │ ├── moments.py │ └── utility.py ├── native_cuda_synopsis.md ├── pyproject.toml ├── requirements.txt ├── tests/ │ ├── __init__.py │ ├── boundary/ │ │ ├── test_antibounceback_outlet_bc.py │ │ ├── test_bc_masks.py │ │ ├── test_bounceback_bc.py │ │ ├── test_equilibrium_bc_outlet_p.py │ │ ├── test_equilibrium_bc_pu.py │ │ ├── test_equilibrium_pressure_outlet.py │ │ └── test_partiallysaturated_bc.py │ ├── collision/ │ │ ├── test_collision_conserves_mass.py │ │ ├── test_collision_conserves_momentum.py │ │ ├── test_collision_fixpoint_2x.py │ │ ├── test_collision_fixpoint_2x_MRT.py │ │ ├── test_collision_optimizes_pseudo_entropy.py │ │ ├── test_collision_relaxes_shear_moments.py │ │ └── test_force.py │ ├── conftest.py │ ├── flow/ │ │ ├── test_divergence.py │ │ ├── test_einsum.py │ │ ├── test_flow.py │ │ ├── test_initialize_fneq.py │ │ ├── test_initialize_pressure.py │ │ ├── test_obstacle.py │ │ └── test_pressure_poisson.py │ ├── moments/ │ │ ├── test_conserved_moments_d2q9.py │ │ ├── test_getitem.py │ │ ├── test_inverse_transform.py │ │ ├── test_moment_equilibrium_D3Q27Hermite.py │ │ ├── test_moment_equilibrium_dellar.py │ │ ├── test_moment_equilibrium_lallemand.py │ │ ├── test_moments_density.py │ │ └── test_orthogonality.py │ ├── native/ │ │ ├── __init__.py │ │ ├── test_native_bgk_collision.py │ │ ├── test_native_bounce_back.py │ │ ├── test_native_equilibrium_pu.py │ │ ├── test_native_no_streaming_mask.py │ │ ├── test_native_streaming.py │ │ └── test_native_streaming_strategy.py │ ├── reporter/ │ │ ├── test_HDF5Reporter.py │ │ ├── test_energy_spectrum.py │ │ ├── test_generic_reporters.py │ │ ├── test_high_ma_reporter.py │ │ ├── test_nan_reporter.py │ │ ├── test_vtk_reporter_mask.py │ │ ├── test_vtk_reporter_no_mask.py │ │ ├── test_write_image.py │ │ └── test_write_vtk.py │ ├── stencil/ │ │ ├── test_first_zero.py │ │ ├── test_opposite.py │ │ ├── test_symmetry.py │ │ └── test_weights.py │ ├── test_checkpoint.py │ ├── test_cli.py │ ├── test_equilibrium.py │ ├── unit/ │ │ ├── __init__.py │ │ ├── test_consistency.py │ │ ├── test_conversion_reversible.py │ │ └── test_reynolds_number_consistent.py │ └── util/ │ ├── test_grid_fine_to_coarse.py │ └── test_torch_gradient.py └── versioneer.py