turbigen 2.0.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {turbigen-2.0.0 → turbigen-2.2.1}/.gitlab-ci.yml +1 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/PKG-INFO +11 -1
- turbigen-2.2.1/README.md +7 -0
- turbigen-2.2.1/bin/noquit.sh +5 -0
- turbigen-2.2.1/doc/changelog.rst +237 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/conf.py +13 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/generate_examples.py +1 -3
- turbigen-2.2.1/doc/generate_meanline.py +54 -0
- turbigen-2.2.1/doc/generate_solver.py +93 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/index.rst +5 -1
- turbigen-2.2.1/doc/license.rst +19 -0
- turbigen-2.2.1/doc/meanline.rst +264 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/quickstart.rst +2 -2
- turbigen-2.2.1/doc/solver.rst +153 -0
- turbigen-2.2.1/doc/usage.rst +9 -0
- turbigen-2.2.1/dspace.yaml +86 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/examples/axial_turbine.yaml +0 -2
- {turbigen-2.0.0 → turbigen-2.2.1}/examples/turbine_cascade.yaml +2 -2
- {turbigen-2.0.0 → turbigen-2.2.1}/matplotlibrc +1 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/meson.build +1 -0
- turbigen-2.2.1/plots/profile.txt +226 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/pyproject.toml +6 -2
- turbigen-2.2.1/scripts/plot_dspace.py +44 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/profile.sh +4 -1
- turbigen-2.2.1/scripts/test_dspace.py +63 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/smooth.f90 +0 -83
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/__init__.py +1 -1
- turbigen-2.2.1/src/turbigen/__main__.py +3 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/annulus.py +3 -3
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/base.py +17 -52
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/blade.py +11 -3
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/config2.py +159 -51
- turbigen-2.2.1/src/turbigen/dspace.py +469 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/flowfield.py +4 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/fluid.py +4 -4
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/grid.py +1 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/hmesh.py +0 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/inlet.py +2 -11
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/iterators.py +34 -5
- turbigen-2.2.1/src/turbigen/job.py +247 -0
- turbigen-2.2.1/src/turbigen/job_server.py +119 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/main.py +60 -120
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/meanline.py +305 -50
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/nblade.py +64 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post.py +4 -1
- turbigen-2.0.0/src/turbigen/solver.py → turbigen-2.2.1/src/turbigen/solvers/base.py +70 -23
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/solvers/emb.py +61 -55
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/solvers/ts3.py +50 -60
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/solvers/ts4.py +48 -20
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/thickness.py +0 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/util.py +1 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/yaml.py +0 -1
- turbigen-2.2.1/tests/gpu/submit.sh +16 -0
- turbigen-2.2.1/tests/gpu/ts3.yaml +40 -0
- turbigen-2.2.1/tests/gpu/ts4.yaml +40 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_nozzle.py +1 -1
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_smooth.py +10 -5
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_visc.py +1 -1
- turbigen-2.0.0/README.md +0 -7
- turbigen-2.0.0/bin/noquit.sh +0 -4
- turbigen-2.0.0/plots/profile.txt +0 -1
- turbigen-2.0.0/plug/repeat.py +0 -98
- turbigen-2.0.0/plug/test.py +0 -138
- turbigen-2.0.0/src/turbigen/config.py +0 -572
- turbigen-2.0.0/src/turbigen/post/blade_surf_dist.py +0 -153
- turbigen-2.0.0/src/turbigen/post/plot_annulus.py +0 -95
- turbigen-2.0.0/src/turbigen/post/plot_isen_mach.py +0 -148
- turbigen-2.0.0/src/turbigen/post/plot_pressure_distributions.py +0 -232
- turbigen-2.0.0/src/turbigen/run.py +0 -1443
- turbigen-2.0.0/src/turbigen/run2.py +0 -65
- turbigen-2.0.0/src/turbigen/slurm.py +0 -261
- turbigen-2.0.0/src/turbigen/solvers/base.py +0 -34
- turbigen-2.0.0/src/turbigen/vtri.py +0 -66
- turbigen-2.0.0/tests/conftest.py +0 -10
- {turbigen-2.0.0 → turbigen-2.2.1}/.flake8 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/.gitignore +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/.gitlab-ci-local/.gitignore +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/.pre-commit-config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/COPYING +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/MANIFEST.in +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/bin/get_ssh_agent.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/bin/setup.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/examples/index.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/nomenclature.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/turbigen-logo.svg +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc/tutorial.rst.not +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.buildinfo +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/changelog.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/config.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/environment.pickle +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/fluid.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/index.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/install.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/license.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/meanline.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/mesh.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/nomenclature.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/post.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/references.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/solver.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/tutorial.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/.doctrees/usage.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/index.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/base.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/fluid.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/hmesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/meanline/axial_turbine.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/meanline/radial_compressor.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/meanline/turbine_cascade.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/ohmesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/solvers/ts3.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_modules/turbigen/solvers/ts4.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/changelog.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/config.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/fluid.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/index.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/install.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/license.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/meanline.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/mesh.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/nomenclature.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/post.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/references.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/solver.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/tutorial.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_sources/usage.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/alabaster.css +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/basic.css +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/custom.css +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/doctools.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/documentation_options.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/file.png +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/language_data.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/minus.png +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/plot_directive.css +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/plus.png +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/pygments.css +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/searchtools.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/_static/sphinx_highlight.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/changelog.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/config.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/fluid.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/genindex.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/index.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/install.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/license.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/meanline.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/mesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/nomenclature.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/objects.inv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/post.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/py-modindex.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/references.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/search.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/searchindex.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/solver.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/tutorial.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_build/usage.html +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/changelog.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/conf.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/config.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/dummy_post.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/fluid.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/index.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/install.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/license.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/make.bat +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/meanline.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/mesh.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/method.md +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/nomenclature.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/post.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/references.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/refs.bib +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade_test/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade_test/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade_test/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade_test/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/runs/cascade_test/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/solver.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/tutorial.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/doc-old/usage.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/analysis.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/axial_compressor_rotor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/axial_turbine.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/axial_turbine_ts4.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_fit.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_iter.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_off_design.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_p3d.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_post.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/cascade_test.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/flat_plate.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/include1.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/include2.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/mixed_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/profile.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/pure_radial_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/quad_camber.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/radial_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/seminar_df.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/seminar_ds_025.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/seminar_ds_04.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/seminar_ds_055.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/seminar_xpeak.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/turbine_cascade.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/old-examples/turbine_include.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/plots/bench.dat +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/pytest.ini +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/benchmark.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/benchmark.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/eval_fitted_design_space.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/fit_eta_tt.json +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/plot_benchmark.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/plot_camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/plot_thickness.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/scripts/read_cuts.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/distribute.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/embsolve.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/embsolvec-f2pywrappers.f +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/embsolvec-f2pywrappers2.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/embsolvecmodule.c +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/fluxes.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/indexing.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/meson.build +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/multigrid.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/operators.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/embsolve/viscous.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/__init__.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/ag_server.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/autogrid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/reader.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/script_ag.py2 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/script_igg.py2 +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/script_sh +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/autogrid/server.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/average.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/__init__.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/check.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/double.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/exceptions.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/plot.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/single.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/symmetric.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/clusterfunc/util.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/compflow_native.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/exceptions.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/geometry.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/marching_cubes.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/mesh.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/ohmesh.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/polynomial.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/calc_surf_dissipation.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/check_phase.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/contour.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/find_extrema.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_blade.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_convergence.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_incidence.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_nose.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_section.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/plot_thickness.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/spanwise.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/write_annulus.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/write_cuts.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/write_ibl.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/post/write_stl.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/solvers/convert_ts3_to_ts4_native.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/solvers/plot3d.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/tables.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/src/turbigen/util_post.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/post/contour_Cp_spf_0.51.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3/post/pressure_distributions_raw.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/compressor/ts3.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/stage.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/plot.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/run/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/run/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/run/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/ts3/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/ts3/post/contour_Ys_m_2.05.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/ts3/post/pressure_distributions_raw.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine/ts3.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/back-to-back/turbine_oh/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/data/cascade_splitter.tar.gz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/data/cascade_splitter.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/data/cfd_cut.json +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/data/sections.dat +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/not_test_body.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/not_test_examples.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/not_test_periodic.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/not_test_rotor.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/not_test_splitter.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/pdist_ts3.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/pipe.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/plate.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/reformat_sections.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_average.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_bcond.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_cells.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_distribute.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_fluid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_operators.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_periodic_step.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_tables.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/test_wall.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/turning_duct.py +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcd_yp5_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcd_yp5_turb.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcf_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcf_turb_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcf_yp5_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tests/xcf_yp5_turb.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.2.1}/tutorial/config.yaml +0 -0
- /turbigen-2.0.0/tutorial/fan.py → /turbigen-2.2.1/tutorial/fan.notpy +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: turbigen
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.1
|
|
4
|
+
Summary: Framework for turbomachinery design and computational fluid dynamics simulation
|
|
4
5
|
Keywords: turbomachinery,computational fluid dynamics,compressor,turbine
|
|
5
6
|
Author-Email: James Brind <jb753@cam.ac.uk>
|
|
6
7
|
License: GPL-3.0-or-later
|
|
@@ -8,6 +9,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
8
9
|
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
9
10
|
Classifier: Operating System :: POSIX :: Linux
|
|
10
11
|
Project-URL: Homepage, https://turbigen.org
|
|
12
|
+
Project-URL: Repository, https://gitlab.developers.cam.ac.uk/jb753/turbigen
|
|
11
13
|
Requires-Python: >=3.11
|
|
12
14
|
Requires-Dist: CoolProp~=6.7.0
|
|
13
15
|
Requires-Dist: matplotlib~=3.10.0
|
|
@@ -31,4 +33,12 @@ Requires-Dist: twine; extra == "dev"
|
|
|
31
33
|
Requires-Dist: bump-my-version; extra == "dev"
|
|
32
34
|
Provides-Extra: parallel
|
|
33
35
|
Requires-Dist: mpi4py~=3.1.6; extra == "parallel"
|
|
36
|
+
Description-Content-Type: text/markdown
|
|
34
37
|
|
|
38
|
+
# turbigen
|
|
39
|
+
|
|
40
|
+
**James Brind, Whittle Laboratory, University of Cambridge**
|
|
41
|
+
|
|
42
|
+
turbigen is a general turbomachinery design system based on automated computational fluid dynamics simulations. See the user manual at:
|
|
43
|
+
|
|
44
|
+
[User Manual](https://turbigen.org)
|
turbigen-2.2.1/README.md
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
Changelog
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
v2.2.0
|
|
5
|
+
^^^^^^
|
|
6
|
+
|
|
7
|
+
* Allow partial configuration files, exiting at first blank required key
|
|
8
|
+
* Faster compiler flags for Fortran
|
|
9
|
+
* Turbostream solvers with new base class
|
|
10
|
+
* Generate meanline documentation from the docstrings
|
|
11
|
+
* Catch post-processing errors and continue
|
|
12
|
+
* Submit jobs to a local queue, implement worker script
|
|
13
|
+
* Check for nans in ember
|
|
14
|
+
* Allow invocation with `python -m turbigen`
|
|
15
|
+
* Implement design space sampling
|
|
16
|
+
* Bug fix for repeating stage iterator if spanwise points unequal
|
|
17
|
+
* General tidying up
|
|
18
|
+
|
|
19
|
+
v2.1.0
|
|
20
|
+
^^^^^^
|
|
21
|
+
|
|
22
|
+
* Add generic job configuration, and implement SLURM submission
|
|
23
|
+
* Add description and README to PyPI
|
|
24
|
+
* Add changelog, license, command-line options to docs
|
|
25
|
+
* Clean up some dead code and unused imports
|
|
26
|
+
|
|
27
|
+
v2.0.0
|
|
28
|
+
^^^^^^
|
|
29
|
+
|
|
30
|
+
* Comprehensive internal refactoring of the code for better maintainability
|
|
31
|
+
* Finish the built-in CFD solver
|
|
32
|
+
* Plugin system now uses abstract base classes and reads all modules from a directory, rather than importing a single file by path
|
|
33
|
+
* AutoGrid server supports parallel workers, more settings, better robustnees checks
|
|
34
|
+
* Automate running examples to include results in docs
|
|
35
|
+
* Numerous bug fixes, improved error messages, etc.
|
|
36
|
+
* Use meson to compile the Fortran during installation, upload built linux
|
|
37
|
+
wheels to PyPI -- allows pip install
|
|
38
|
+
|
|
39
|
+
v1.10.1
|
|
40
|
+
^^^^^^^
|
|
41
|
+
|
|
42
|
+
* Bugfix for AutoGrid server not reading the delete switch
|
|
43
|
+
* Bugfix for scalar mean-line iterate variables
|
|
44
|
+
|
|
45
|
+
v1.10.0
|
|
46
|
+
^^^^^^^
|
|
47
|
+
|
|
48
|
+
* Use rotation-corrected static pressure to find stagnation points
|
|
49
|
+
* Add mixed-flow mean-line with mixed and pure radial examples
|
|
50
|
+
* Script to read polynomial coefficients and evaluate a previously-fitted design space
|
|
51
|
+
* Allow unbladed first row in H-mesh
|
|
52
|
+
* Add a syntax check for TS4 body force template
|
|
53
|
+
* Generalise to multi-stage machines
|
|
54
|
+
* Wrap the incidence angle with respect to camber angle
|
|
55
|
+
* Bugfix for TS4 throttle config
|
|
56
|
+
* Add -m command-line switch to debug the mean-line
|
|
57
|
+
* Take CFD inlet pitch angle from the mesh, not mean-line design
|
|
58
|
+
* Implement command-line options for AutoGrid server
|
|
59
|
+
* Bugfix to allow incidence correction on only one section
|
|
60
|
+
* Reduce LE recamber when incidence is close to tolerance
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
v1.9.1
|
|
64
|
+
^^^^^^
|
|
65
|
+
|
|
66
|
+
* Add retry for AutoGrid connections
|
|
67
|
+
* Use unstructured spanwise cuts to calculate incidence
|
|
68
|
+
* More robust tip H-meshing
|
|
69
|
+
* Incidence correction bugfix for unbladed cases
|
|
70
|
+
* Only reduce proportional part of PID controller gain on restart
|
|
71
|
+
* Clean up the hypercube running code
|
|
72
|
+
* Turbostream 3 SA helicity correction
|
|
73
|
+
* Better Turbostream 4 application variable defaults
|
|
74
|
+
* Use turbulent viscosity from old solution on restart
|
|
75
|
+
* Fix error in docs iterate config
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
v1.9.0
|
|
79
|
+
^^^^^^
|
|
80
|
+
|
|
81
|
+
* Add post-processing functions for unstructured cuts at constant span fraction
|
|
82
|
+
* Put rotational speeds in AutoGrid geomTurbo file when OH meshing
|
|
83
|
+
* Support TS3 cooling patches
|
|
84
|
+
* Method to allow trimming of grid blocks in pre-processing
|
|
85
|
+
* Compatability fixes for numpy 2 and pin dependency versions
|
|
86
|
+
* Add TS4 halo_implementation setting
|
|
87
|
+
* Fix bug with zero wall distance on non-matching patches
|
|
88
|
+
* Check patch indices are consistent with block size before writing TS3 input
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
v1.8.0
|
|
92
|
+
^^^^^^
|
|
93
|
+
|
|
94
|
+
* Fit blade sections to coordinates read from a file
|
|
95
|
+
* Overhaul post processing with separate functions for all plots
|
|
96
|
+
* Rewrite LE incidence calculation to work generally for axial and radial
|
|
97
|
+
* Allow off-design operation with rpm_adjust and mass_adjust settings
|
|
98
|
+
* Setting for inviscid boudary condition on zero-radius rod
|
|
99
|
+
* When running installed turbomachine, reuse installed initial guess
|
|
100
|
+
* Allow install function to return inverse design variables to mean line
|
|
101
|
+
* Add rounded trailing edge and fillet options to autogrid meshing
|
|
102
|
+
* Check for membership of the turbostream group before running TS3
|
|
103
|
+
* Error if we cannot locate the specified TS4 throttle tag
|
|
104
|
+
* Allow arbitrary setting of perfect gas internal energy datum
|
|
105
|
+
* Handle errors in cluster jobs and hold the node for debugging
|
|
106
|
+
* Allow unbladed rows in OH meshes
|
|
107
|
+
* Close off the tip of unshrouded rotor blades in STL export
|
|
108
|
+
* Make the coordinate check optional for debugging
|
|
109
|
+
* Fix bounds error on annulus interpolation due to floating point error
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
v1.7.0
|
|
113
|
+
^^^^^^
|
|
114
|
+
|
|
115
|
+
* Fix bug with noisy TS4 console logging
|
|
116
|
+
* Allow labels on TS4 point probes with different file names
|
|
117
|
+
* Implement unsteady boundary conditions into pre-processing framework
|
|
118
|
+
* Add tutorial to documentation
|
|
119
|
+
|
|
120
|
+
v1.6.1
|
|
121
|
+
^^^^^^
|
|
122
|
+
|
|
123
|
+
* Fix bug where zero-valued configuration options are not written out
|
|
124
|
+
|
|
125
|
+
v1.6.0
|
|
126
|
+
^^^^^^
|
|
127
|
+
|
|
128
|
+
* General grid refinement by subdivision of cells
|
|
129
|
+
* Allow halting iterations by creating a stopit file in working directory
|
|
130
|
+
* Check for two-phase flow at the end of the calculation
|
|
131
|
+
* Incidence correction for splitters
|
|
132
|
+
* Improve robustness and simplify AutoGrid meshing script
|
|
133
|
+
* Use improved clustering functions for H-meshing
|
|
134
|
+
* Plot pressure distributions
|
|
135
|
+
* Implement loading mean-line, annulus, and installation modules from file
|
|
136
|
+
* Allow arbitrary external monitoring scripts in TS4 simulations (e.g. to change body force)
|
|
137
|
+
* Configuration option for maximum H-mesh free stream skew
|
|
138
|
+
* Fix AutoGrid patch matching bug
|
|
139
|
+
* Fix bug with TS4 cfl_ramp_en not set
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
v1.5.1
|
|
143
|
+
^^^^^^
|
|
144
|
+
|
|
145
|
+
* Minor corrections for open release
|
|
146
|
+
|
|
147
|
+
v1.5.0
|
|
148
|
+
^^^^^^
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
* General tidying up of the code
|
|
152
|
+
* Incidence correction only when mass flow is on target
|
|
153
|
+
* Rework configuration and command-line options
|
|
154
|
+
* Improve documentation
|
|
155
|
+
* Automatic numbering of working directories
|
|
156
|
+
|
|
157
|
+
v1.4.0
|
|
158
|
+
^^^^^^
|
|
159
|
+
|
|
160
|
+
* Implement sweep by changing meridional locations of LE/TE
|
|
161
|
+
* Add splitter capability
|
|
162
|
+
* Allow preconditioning in TS4
|
|
163
|
+
* Yet more AutoGrid meshing options
|
|
164
|
+
* Record Exceptions in the turbigen log file, in addition to STDERR.
|
|
165
|
+
|
|
166
|
+
v1.3.4
|
|
167
|
+
^^^^^^
|
|
168
|
+
|
|
169
|
+
* More robust unstructured cutting by Marching Cubes algorithm.
|
|
170
|
+
* Allow prescribing body force in TS 4.2.82
|
|
171
|
+
* Find stagnation point by sign change of surface velocity
|
|
172
|
+
* Implement NaN check for TS4
|
|
173
|
+
* Write out a design space fit to json for web interface
|
|
174
|
+
* More AutoGrid options including untwist outlet
|
|
175
|
+
|
|
176
|
+
v1.3.3
|
|
177
|
+
^^^^^^
|
|
178
|
+
|
|
179
|
+
* Update radial turbine to set stator LE diameter ratio
|
|
180
|
+
|
|
181
|
+
v1.3.2
|
|
182
|
+
^^^^^^
|
|
183
|
+
|
|
184
|
+
* Allow custom TS3->TS4 conversion pipelines
|
|
185
|
+
* True Taylor camberline (quartic in chi, not tan chi)
|
|
186
|
+
* Generalise incidence correction to radial inflows and outflows
|
|
187
|
+
|
|
188
|
+
v1.3.1
|
|
189
|
+
^^^^^^
|
|
190
|
+
|
|
191
|
+
* Add rotor-only fan mean line
|
|
192
|
+
|
|
193
|
+
v1.3.0
|
|
194
|
+
^^^^^^
|
|
195
|
+
|
|
196
|
+
* Improved H-mesh tip-gap grid
|
|
197
|
+
* Add installation effects module
|
|
198
|
+
* Add write coordinates solver
|
|
199
|
+
* Allow running in parallel
|
|
200
|
+
|
|
201
|
+
v1.2.0
|
|
202
|
+
^^^^^^
|
|
203
|
+
|
|
204
|
+
* Implement polynomial design-space fitting.
|
|
205
|
+
* Add option to run a hypercube of designs.
|
|
206
|
+
* Improve characteristic running.
|
|
207
|
+
* Fix bugs with mixing of supersonic flows and area signage.
|
|
208
|
+
* Fix bug with setting shroud rpm.
|
|
209
|
+
* Generalise to select a type of thickness distribution.
|
|
210
|
+
* Clean up the log file outputs.
|
|
211
|
+
* Skew H-mesh in flow direction outside of blade rows.
|
|
212
|
+
* Added unstructured cutting for post-processing the mixed-out flow.
|
|
213
|
+
* Added throttling options to target mass flow for TS3 and TS4.
|
|
214
|
+
* Added radial turbine mean-line design functions and example.
|
|
215
|
+
* Internal rewrite of data structures to be CFD-solver agnostic.
|
|
216
|
+
* ... plus other miscellaneous enhancements and tidying.
|
|
217
|
+
|
|
218
|
+
v1.1.0
|
|
219
|
+
^^^^^^
|
|
220
|
+
|
|
221
|
+
* Added H-meshing option, with pinched tips.
|
|
222
|
+
* `Config` object for programmatic creation and validation of input files.
|
|
223
|
+
* Automated post processing to get a `MeanLine` object from mixed-out CFD cuts.
|
|
224
|
+
* Use inlet velocity as reference for compressor circulation coefficient.
|
|
225
|
+
* Mixed-out averaging generalised for any meridional cut (not just constant axial coordinate).
|
|
226
|
+
* Iteration to correct for incidence, deviation, and mean-line guesses.
|
|
227
|
+
* Options to set blade number directly or Lieblein diffusion factor.
|
|
228
|
+
* Running characteristics for compressor designs.
|
|
229
|
+
* Generate real gas tables for TS4 on demand.
|
|
230
|
+
* Let TS3 grid object use arbitrary equation of state for post-processing.
|
|
231
|
+
* Post-processing TS4 simulations by reading the flow field into a structured TS3 grid.
|
|
232
|
+
* Config file options to submit a job to the SLURM queue.
|
|
233
|
+
|
|
234
|
+
v1.0.0
|
|
235
|
+
^^^^^^
|
|
236
|
+
|
|
237
|
+
* First Whittle Laboratory internal release.
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import os
|
|
14
14
|
import sys
|
|
15
15
|
import turbigen
|
|
16
|
+
import datetime
|
|
16
17
|
|
|
17
18
|
sys.path.insert(0, os.path.abspath(".."))
|
|
18
19
|
|
|
@@ -103,6 +104,18 @@ mathjax3_config = {
|
|
|
103
104
|
bibtex_bibfiles = ["refs.bib"]
|
|
104
105
|
bibtex_reference_style = "author_year"
|
|
105
106
|
|
|
107
|
+
# Update copyright year
|
|
108
|
+
current_year = datetime.datetime.now().year
|
|
109
|
+
|
|
110
|
+
# Optional: if you want to support a range like 2020–2025
|
|
111
|
+
start_year = 2023
|
|
112
|
+
if current_year == start_year:
|
|
113
|
+
copyright_year = str(start_year)
|
|
114
|
+
else:
|
|
115
|
+
copyright_year = f"{start_year}–{current_year}"
|
|
116
|
+
|
|
117
|
+
# Define the replacement
|
|
106
118
|
rst_epilog = f"""
|
|
107
119
|
.. |ProjectVersion| replace:: {release}
|
|
120
|
+
.. |copyright_year| replace:: {copyright_year}
|
|
108
121
|
"""
|
|
@@ -5,8 +5,6 @@ import re
|
|
|
5
5
|
import shutil
|
|
6
6
|
import subprocess
|
|
7
7
|
from pathlib import Path
|
|
8
|
-
import logging
|
|
9
|
-
import sys
|
|
10
8
|
import yaml
|
|
11
9
|
|
|
12
10
|
INPUT_DIR = "examples"
|
|
@@ -40,7 +38,7 @@ def run_example(input_yaml):
|
|
|
40
38
|
# Attempt to parse the title
|
|
41
39
|
try:
|
|
42
40
|
title = comments[0].split("#")[-1].strip()
|
|
43
|
-
except:
|
|
41
|
+
except Exception:
|
|
44
42
|
title = "Example"
|
|
45
43
|
|
|
46
44
|
# Parse workdir from the log
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Make documentation for an abstract base class and subclasses."""
|
|
2
|
+
|
|
3
|
+
import turbigen.meanline
|
|
4
|
+
from turbigen import util
|
|
5
|
+
import inspect
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def generate_subclass(cls, fname):
|
|
9
|
+
rst_str = ""
|
|
10
|
+
|
|
11
|
+
# Base class first
|
|
12
|
+
doc = inspect.getdoc(cls).split("xxx")
|
|
13
|
+
rst_str += doc[0]
|
|
14
|
+
|
|
15
|
+
# Now subclasses
|
|
16
|
+
for subclass in cls.__subclasses__():
|
|
17
|
+
rst_str += "\n\n"
|
|
18
|
+
rst_str += inspect.getdoc(subclass)
|
|
19
|
+
rst_str += "\n\n"
|
|
20
|
+
|
|
21
|
+
cls_name = util.camel_to_snake(subclass.__name__)
|
|
22
|
+
try:
|
|
23
|
+
rst_str += format_yaml_snippet(subclass._design_vars, cls_name)
|
|
24
|
+
except AttributeError:
|
|
25
|
+
pass
|
|
26
|
+
|
|
27
|
+
if len(doc) > 1:
|
|
28
|
+
rst_str += doc[1]
|
|
29
|
+
|
|
30
|
+
# Write the rst string to a file
|
|
31
|
+
with open(f"doc/{fname}.rst", "w") as f:
|
|
32
|
+
f.write(rst_str)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def format_yaml_snippet(data_dict, title):
|
|
36
|
+
lines = ["mean_line:"]
|
|
37
|
+
lines.append(f" type: {title}")
|
|
38
|
+
for name, (desc, shape, default) in data_dict.items():
|
|
39
|
+
shape_str = ", " + str(shape) + " vector" if shape else ""
|
|
40
|
+
default_str = "" if default is None else str(default)
|
|
41
|
+
lines.append(f" # {desc}{shape_str}")
|
|
42
|
+
lines.append(f" {name}: {default_str}")
|
|
43
|
+
|
|
44
|
+
# Apply rst indentation
|
|
45
|
+
lines = [" " + line for line in lines]
|
|
46
|
+
lines.insert(0, ".. code-block:: yaml\n")
|
|
47
|
+
|
|
48
|
+
blurb = "To use this architecture, add the following snippet in your configuration file:\n\n"
|
|
49
|
+
|
|
50
|
+
return blurb + "\n".join(lines)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
if __name__ == "__main__":
|
|
54
|
+
print(generate_subclass(turbigen.meanline.MeanLineDesigner, "meanline"))
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"""Make documentation for an abstract base class and subclasses."""
|
|
2
|
+
|
|
3
|
+
import turbigen.solvers.base
|
|
4
|
+
import turbigen.solvers.emb
|
|
5
|
+
from turbigen import util
|
|
6
|
+
import inspect
|
|
7
|
+
import dataclasses
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def generate_subclass(cls, fname):
|
|
11
|
+
rst_str = ""
|
|
12
|
+
|
|
13
|
+
# Base class first
|
|
14
|
+
doc = inspect.getdoc(cls).split("xxx")
|
|
15
|
+
rst_str += doc[0]
|
|
16
|
+
|
|
17
|
+
# Now subclasses
|
|
18
|
+
for subclass in cls.__subclasses__():
|
|
19
|
+
print(subclass)
|
|
20
|
+
rst_str += "\n\n"
|
|
21
|
+
rst_str += inspect.getdoc(subclass)
|
|
22
|
+
rst_str += "\n\n"
|
|
23
|
+
|
|
24
|
+
cls_name = util.camel_to_snake(subclass.__name__)
|
|
25
|
+
rst_str += generate_rst_table(subclass)
|
|
26
|
+
|
|
27
|
+
if len(doc) > 1:
|
|
28
|
+
rst_str += doc[1]
|
|
29
|
+
|
|
30
|
+
# Write the rst string to a file
|
|
31
|
+
with open(f"doc/{fname}.rst", "w") as f:
|
|
32
|
+
f.write(rst_str)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def generate_rst_table(cls):
|
|
36
|
+
# Extract all dataclass fields
|
|
37
|
+
fields = dataclasses.fields(cls)
|
|
38
|
+
names = [f.name for f in fields]
|
|
39
|
+
|
|
40
|
+
# Extract docstrings from the class source
|
|
41
|
+
source_lines = inspect.getsourcelines(cls)[0]
|
|
42
|
+
doc_map = {}
|
|
43
|
+
current_field = None
|
|
44
|
+
|
|
45
|
+
for line in source_lines:
|
|
46
|
+
line = line.strip()
|
|
47
|
+
if line.startswith("#") or not line:
|
|
48
|
+
continue
|
|
49
|
+
elif ":" in line and "=" in line:
|
|
50
|
+
name = line.split(":")[0].strip()
|
|
51
|
+
if name in names:
|
|
52
|
+
current_field = name
|
|
53
|
+
print(f"Found field: {name}")
|
|
54
|
+
elif '"""' in line or "'''" in line:
|
|
55
|
+
doc = line.strip(' """\'')
|
|
56
|
+
if current_field:
|
|
57
|
+
print(f"Found docstring: {doc}")
|
|
58
|
+
doc_map[current_field] = doc
|
|
59
|
+
current_field = None
|
|
60
|
+
|
|
61
|
+
# RST table header
|
|
62
|
+
lines = [
|
|
63
|
+
".. list-table:: Parameters",
|
|
64
|
+
" :widths: 20 15 15 50",
|
|
65
|
+
" :header-rows: 1",
|
|
66
|
+
"",
|
|
67
|
+
" * - Name",
|
|
68
|
+
" - Type",
|
|
69
|
+
" - Default",
|
|
70
|
+
" - Description",
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
for f in fields:
|
|
74
|
+
name = f.name
|
|
75
|
+
type_ = f.type.__name__ if hasattr(f.type, "__name__") else str(f.type)
|
|
76
|
+
default = f.default if f.default != dataclasses.MISSING else "Required"
|
|
77
|
+
doc = doc_map.get(name, "")
|
|
78
|
+
try:
|
|
79
|
+
getattr(turbigen.solvers.base.BaseSolver, name)
|
|
80
|
+
print(f"Skipping field: {name}")
|
|
81
|
+
continue
|
|
82
|
+
except AttributeError:
|
|
83
|
+
pass
|
|
84
|
+
lines.append(f" * - ``{name}``")
|
|
85
|
+
lines.append(f" - ``{type_}``")
|
|
86
|
+
lines.append(f" - ``{default}``")
|
|
87
|
+
lines.append(f" - {doc}")
|
|
88
|
+
|
|
89
|
+
return "\n".join(lines)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == "__main__":
|
|
93
|
+
generate_subclass(turbigen.solvers.base.BaseSolver, "solver")
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
License
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
Copyright (c) |copyright_year| James Brind
|
|
5
|
+
|
|
6
|
+
:program:`turbigen` is free software: you can redistribute it and/or modify it under
|
|
7
|
+
the terms of the GNU General Public License as published by the Free Software
|
|
8
|
+
Foundation, either version 3 of the License, or (at your option) any later
|
|
9
|
+
version.
|
|
10
|
+
|
|
11
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
12
|
+
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
13
|
+
PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU General Public License along with
|
|
16
|
+
this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
.. program-output:: cat ../COPYING
|