turbigen 2.0.0__tar.gz → 2.1.0__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.1.0}/PKG-INFO +11 -1
- turbigen-2.1.0/README.md +7 -0
- turbigen-2.1.0/bin/noquit.sh +4 -0
- turbigen-2.1.0/doc/changelog.rst +222 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/conf.py +13 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/index.rst +3 -0
- turbigen-2.1.0/doc/license.rst +19 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/quickstart.rst +2 -2
- turbigen-2.1.0/doc/usage.rst +9 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/examples/axial_turbine.yaml +0 -2
- {turbigen-2.0.0 → turbigen-2.1.0}/pyproject.toml +5 -2
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/base.py +0 -4
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/config2.py +47 -11
- turbigen-2.1.0/src/turbigen/job.py +203 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/main.py +26 -111
- turbigen-2.0.0/README.md +0 -7
- turbigen-2.0.0/bin/noquit.sh +0 -4
- turbigen-2.0.0/src/turbigen/config.py +0 -572
- 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/run2.py +0 -65
- turbigen-2.0.0/src/turbigen/slurm.py +0 -261
- {turbigen-2.0.0 → turbigen-2.1.0}/.flake8 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/.gitignore +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/.gitlab-ci-local/.gitignore +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/.gitlab-ci.yml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/.pre-commit-config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/COPYING +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/MANIFEST.in +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/bin/get_ssh_agent.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/bin/setup.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/examples/index.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/generate_examples.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/nomenclature.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/turbigen-logo.svg +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc/tutorial.rst.not +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/Makefile +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.buildinfo +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/changelog.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/config.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/environment.pickle +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/fluid.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/index.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/install.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/license.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/meanline.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/mesh.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/nomenclature.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/post.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/references.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/solver.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/tutorial.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/usage.doctree +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/index.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/base.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/fluid.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/hmesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/axial_turbine.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/radial_compressor.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/turbine_cascade.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/ohmesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/solvers/ts3.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/solvers/ts4.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/changelog.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/config.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/fluid.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/index.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/install.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/license.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/meanline.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/mesh.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/nomenclature.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/post.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/references.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/solver.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/tutorial.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/usage.rst.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/alabaster.css +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/basic.css +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/custom.css +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/doctools.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/documentation_options.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/file.png +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/language_data.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/minus.png +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/plot_directive.css +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/plus.png +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/pygments.css +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/searchtools.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/sphinx_highlight.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/changelog.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/config.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/fluid.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/genindex.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/index.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/install.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/license.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/meanline.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/mesh.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/nomenclature.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/objects.inv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/post.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/py-modindex.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/references.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/search.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/searchindex.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/solver.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/tutorial.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/usage.html +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_static/siunitx.js +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/changelog.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/conf.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/config.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/dummy_post.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/fluid.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/index.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/install.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/license.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/make.bat +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/meanline.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/mesh.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/method.md +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/nomenclature.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/post.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/references.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/refs.bib +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/solver.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/tutorial.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/usage.rst +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/examples/turbine_cascade.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/matplotlibrc +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/meson.build +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/analysis.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_compressor_rotor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_turbine.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_turbine_ts4.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_fit.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_iter.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_off_design.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_p3d.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_post.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_test.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/flat_plate.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/include1.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/include2.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/mixed_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/profile.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/pure_radial_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/quad_camber.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/radial_compressor.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_df.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_025.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_04.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_055.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_xpeak.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/turbine_cascade.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/turbine_include.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/plots/bench.dat +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/plots/profile.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/plug/repeat.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/plug/test.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/pytest.ini +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/benchmark.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/benchmark.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/eval_fitted_design_space.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/fit_eta_tt.json +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_benchmark.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_thickness.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/profile.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/scripts/read_cuts.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/distribute.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolve.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvec-f2pywrappers.f +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvec-f2pywrappers2.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvecmodule.c +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/fluxes.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/indexing.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/meson.build +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/multigrid.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/operators.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/smooth.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/viscous.f90 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/__init__.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/annulus.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/__init__.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/ag_server.sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/autogrid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/reader.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_ag.py2 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_igg.py2 +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_sh +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/server.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/average.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/blade.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/__init__.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/check.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/double.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/exceptions.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/plot.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/single.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/symmetric.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/util.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/compflow_native.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/exceptions.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/flowfield.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/fluid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/geometry.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/grid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/hmesh.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/inlet.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/iterators.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/marching_cubes.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/meanline.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/mesh.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/nblade.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/ohmesh.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/polynomial.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/blade_surf_dist.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/calc_surf_dissipation.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/check_phase.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/contour.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/find_extrema.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_annulus.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_blade.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_camber.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_convergence.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_incidence.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_nose.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_section.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_thickness.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/spanwise.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_annulus.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_cuts.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_ibl.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_stl.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/run.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solver.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/base.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/convert_ts3_to_ts4_native.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/emb.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/plot3d.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/ts3.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/ts4.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/tables.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/thickness.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/util.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/util_post.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/vtri.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/yaml.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/mean_line_actual.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/post/contour_Cp_spf_0.51.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/post/pressure_distributions_raw.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/stage.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/plot.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/log_turbigen.txt +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/mean_line_nominal.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/inverse.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/post/contour_Ys_m_2.05.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/post/pressure_distributions_raw.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine_oh/emb.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/conftest.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cascade_splitter.tar.gz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cascade_splitter.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cfd_cut.json +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/sections.dat +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_body.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_examples.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_periodic.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_rotor.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_splitter.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/pdist_ts3.npz +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/pipe.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/plate.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/reformat_sections.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_average.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_bcond.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_cells.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_distribute.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_fluid.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_nozzle.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_operators.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_periodic_step.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_smooth.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_tables.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_visc.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_wall.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/turning_duct.py +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcd_yp5_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcd_yp5_turb.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_turb_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_yp5_ts3.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_yp5_turb.csv +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tutorial/config.yaml +0 -0
- {turbigen-2.0.0 → turbigen-2.1.0}/tutorial/fan.py +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: turbigen
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.1.0
|
|
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.1.0/README.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
Changelog
|
|
2
|
+
=========
|
|
3
|
+
|
|
4
|
+
v2.1.0
|
|
5
|
+
^^^^^^
|
|
6
|
+
|
|
7
|
+
* Add generic job configuration, and implement SLURM submission
|
|
8
|
+
* Add description and README to PyPI
|
|
9
|
+
* Add changelog, license, command-line options to docs
|
|
10
|
+
* Clean up some dead code and unused imports
|
|
11
|
+
|
|
12
|
+
v2.0.0
|
|
13
|
+
^^^^^^
|
|
14
|
+
|
|
15
|
+
* Comprehensive internal refactoring of the code for better maintainability
|
|
16
|
+
* Finish the built-in CFD solver
|
|
17
|
+
* Plugin system now uses abstract base classes and reads all modules from a directory, rather than importing a single file by path
|
|
18
|
+
* AutoGrid server supports parallel workers, more settings, better robustnees checks
|
|
19
|
+
* Automate running examples to include results in docs
|
|
20
|
+
* Numerous bug fixes, improved error messages, etc.
|
|
21
|
+
* Use meson to compile the Fortran during installation, upload built linux
|
|
22
|
+
wheels to PyPI -- allows pip install
|
|
23
|
+
|
|
24
|
+
v1.10.1
|
|
25
|
+
^^^^^^^
|
|
26
|
+
|
|
27
|
+
* Bugfix for AutoGrid server not reading the delete switch
|
|
28
|
+
* Bugfix for scalar mean-line iterate variables
|
|
29
|
+
|
|
30
|
+
v1.10.0
|
|
31
|
+
^^^^^^^
|
|
32
|
+
|
|
33
|
+
* Use rotation-corrected static pressure to find stagnation points
|
|
34
|
+
* Add mixed-flow mean-line with mixed and pure radial examples
|
|
35
|
+
* Script to read polynomial coefficients and evaluate a previously-fitted design space
|
|
36
|
+
* Allow unbladed first row in H-mesh
|
|
37
|
+
* Add a syntax check for TS4 body force template
|
|
38
|
+
* Generalise to multi-stage machines
|
|
39
|
+
* Wrap the incidence angle with respect to camber angle
|
|
40
|
+
* Bugfix for TS4 throttle config
|
|
41
|
+
* Add -m command-line switch to debug the mean-line
|
|
42
|
+
* Take CFD inlet pitch angle from the mesh, not mean-line design
|
|
43
|
+
* Implement command-line options for AutoGrid server
|
|
44
|
+
* Bugfix to allow incidence correction on only one section
|
|
45
|
+
* Reduce LE recamber when incidence is close to tolerance
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
v1.9.1
|
|
49
|
+
^^^^^^
|
|
50
|
+
|
|
51
|
+
* Add retry for AutoGrid connections
|
|
52
|
+
* Use unstructured spanwise cuts to calculate incidence
|
|
53
|
+
* More robust tip H-meshing
|
|
54
|
+
* Incidence correction bugfix for unbladed cases
|
|
55
|
+
* Only reduce proportional part of PID controller gain on restart
|
|
56
|
+
* Clean up the hypercube running code
|
|
57
|
+
* Turbostream 3 SA helicity correction
|
|
58
|
+
* Better Turbostream 4 application variable defaults
|
|
59
|
+
* Use turbulent viscosity from old solution on restart
|
|
60
|
+
* Fix error in docs iterate config
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
v1.9.0
|
|
64
|
+
^^^^^^
|
|
65
|
+
|
|
66
|
+
* Add post-processing functions for unstructured cuts at constant span fraction
|
|
67
|
+
* Put rotational speeds in AutoGrid geomTurbo file when OH meshing
|
|
68
|
+
* Support TS3 cooling patches
|
|
69
|
+
* Method to allow trimming of grid blocks in pre-processing
|
|
70
|
+
* Compatability fixes for numpy 2 and pin dependency versions
|
|
71
|
+
* Add TS4 halo_implementation setting
|
|
72
|
+
* Fix bug with zero wall distance on non-matching patches
|
|
73
|
+
* Check patch indices are consistent with block size before writing TS3 input
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
v1.8.0
|
|
77
|
+
^^^^^^
|
|
78
|
+
|
|
79
|
+
* Fit blade sections to coordinates read from a file
|
|
80
|
+
* Overhaul post processing with separate functions for all plots
|
|
81
|
+
* Rewrite LE incidence calculation to work generally for axial and radial
|
|
82
|
+
* Allow off-design operation with rpm_adjust and mass_adjust settings
|
|
83
|
+
* Setting for inviscid boudary condition on zero-radius rod
|
|
84
|
+
* When running installed turbomachine, reuse installed initial guess
|
|
85
|
+
* Allow install function to return inverse design variables to mean line
|
|
86
|
+
* Add rounded trailing edge and fillet options to autogrid meshing
|
|
87
|
+
* Check for membership of the turbostream group before running TS3
|
|
88
|
+
* Error if we cannot locate the specified TS4 throttle tag
|
|
89
|
+
* Allow arbitrary setting of perfect gas internal energy datum
|
|
90
|
+
* Handle errors in cluster jobs and hold the node for debugging
|
|
91
|
+
* Allow unbladed rows in OH meshes
|
|
92
|
+
* Close off the tip of unshrouded rotor blades in STL export
|
|
93
|
+
* Make the coordinate check optional for debugging
|
|
94
|
+
* Fix bounds error on annulus interpolation due to floating point error
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
v1.7.0
|
|
98
|
+
^^^^^^
|
|
99
|
+
|
|
100
|
+
* Fix bug with noisy TS4 console logging
|
|
101
|
+
* Allow labels on TS4 point probes with different file names
|
|
102
|
+
* Implement unsteady boundary conditions into pre-processing framework
|
|
103
|
+
* Add tutorial to documentation
|
|
104
|
+
|
|
105
|
+
v1.6.1
|
|
106
|
+
^^^^^^
|
|
107
|
+
|
|
108
|
+
* Fix bug where zero-valued configuration options are not written out
|
|
109
|
+
|
|
110
|
+
v1.6.0
|
|
111
|
+
^^^^^^
|
|
112
|
+
|
|
113
|
+
* General grid refinement by subdivision of cells
|
|
114
|
+
* Allow halting iterations by creating a stopit file in working directory
|
|
115
|
+
* Check for two-phase flow at the end of the calculation
|
|
116
|
+
* Incidence correction for splitters
|
|
117
|
+
* Improve robustness and simplify AutoGrid meshing script
|
|
118
|
+
* Use improved clustering functions for H-meshing
|
|
119
|
+
* Plot pressure distributions
|
|
120
|
+
* Implement loading mean-line, annulus, and installation modules from file
|
|
121
|
+
* Allow arbitrary external monitoring scripts in TS4 simulations (e.g. to change body force)
|
|
122
|
+
* Configuration option for maximum H-mesh free stream skew
|
|
123
|
+
* Fix AutoGrid patch matching bug
|
|
124
|
+
* Fix bug with TS4 cfl_ramp_en not set
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
v1.5.1
|
|
128
|
+
^^^^^^
|
|
129
|
+
|
|
130
|
+
* Minor corrections for open release
|
|
131
|
+
|
|
132
|
+
v1.5.0
|
|
133
|
+
^^^^^^
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
* General tidying up of the code
|
|
137
|
+
* Incidence correction only when mass flow is on target
|
|
138
|
+
* Rework configuration and command-line options
|
|
139
|
+
* Improve documentation
|
|
140
|
+
* Automatic numbering of working directories
|
|
141
|
+
|
|
142
|
+
v1.4.0
|
|
143
|
+
^^^^^^
|
|
144
|
+
|
|
145
|
+
* Implement sweep by changing meridional locations of LE/TE
|
|
146
|
+
* Add splitter capability
|
|
147
|
+
* Allow preconditioning in TS4
|
|
148
|
+
* Yet more AutoGrid meshing options
|
|
149
|
+
* Record Exceptions in the turbigen log file, in addition to STDERR.
|
|
150
|
+
|
|
151
|
+
v1.3.4
|
|
152
|
+
^^^^^^
|
|
153
|
+
|
|
154
|
+
* More robust unstructured cutting by Marching Cubes algorithm.
|
|
155
|
+
* Allow prescribing body force in TS 4.2.82
|
|
156
|
+
* Find stagnation point by sign change of surface velocity
|
|
157
|
+
* Implement NaN check for TS4
|
|
158
|
+
* Write out a design space fit to json for web interface
|
|
159
|
+
* More AutoGrid options including untwist outlet
|
|
160
|
+
|
|
161
|
+
v1.3.3
|
|
162
|
+
^^^^^^
|
|
163
|
+
|
|
164
|
+
* Update radial turbine to set stator LE diameter ratio
|
|
165
|
+
|
|
166
|
+
v1.3.2
|
|
167
|
+
^^^^^^
|
|
168
|
+
|
|
169
|
+
* Allow custom TS3->TS4 conversion pipelines
|
|
170
|
+
* True Taylor camberline (quartic in chi, not tan chi)
|
|
171
|
+
* Generalise incidence correction to radial inflows and outflows
|
|
172
|
+
|
|
173
|
+
v1.3.1
|
|
174
|
+
^^^^^^
|
|
175
|
+
|
|
176
|
+
* Add rotor-only fan mean line
|
|
177
|
+
|
|
178
|
+
v1.3.0
|
|
179
|
+
^^^^^^
|
|
180
|
+
|
|
181
|
+
* Improved H-mesh tip-gap grid
|
|
182
|
+
* Add installation effects module
|
|
183
|
+
* Add write coordinates solver
|
|
184
|
+
* Allow running in parallel
|
|
185
|
+
|
|
186
|
+
v1.2.0
|
|
187
|
+
^^^^^^
|
|
188
|
+
|
|
189
|
+
* Implement polynomial design-space fitting.
|
|
190
|
+
* Add option to run a hypercube of designs.
|
|
191
|
+
* Improve characteristic running.
|
|
192
|
+
* Fix bugs with mixing of supersonic flows and area signage.
|
|
193
|
+
* Fix bug with setting shroud rpm.
|
|
194
|
+
* Generalise to select a type of thickness distribution.
|
|
195
|
+
* Clean up the log file outputs.
|
|
196
|
+
* Skew H-mesh in flow direction outside of blade rows.
|
|
197
|
+
* Added unstructured cutting for post-processing the mixed-out flow.
|
|
198
|
+
* Added throttling options to target mass flow for TS3 and TS4.
|
|
199
|
+
* Added radial turbine mean-line design functions and example.
|
|
200
|
+
* Internal rewrite of data structures to be CFD-solver agnostic.
|
|
201
|
+
* ... plus other miscellaneous enhancements and tidying.
|
|
202
|
+
|
|
203
|
+
v1.1.0
|
|
204
|
+
^^^^^^
|
|
205
|
+
|
|
206
|
+
* Added H-meshing option, with pinched tips.
|
|
207
|
+
* `Config` object for programmatic creation and validation of input files.
|
|
208
|
+
* Automated post processing to get a `MeanLine` object from mixed-out CFD cuts.
|
|
209
|
+
* Use inlet velocity as reference for compressor circulation coefficient.
|
|
210
|
+
* Mixed-out averaging generalised for any meridional cut (not just constant axial coordinate).
|
|
211
|
+
* Iteration to correct for incidence, deviation, and mean-line guesses.
|
|
212
|
+
* Options to set blade number directly or Lieblein diffusion factor.
|
|
213
|
+
* Running characteristics for compressor designs.
|
|
214
|
+
* Generate real gas tables for TS4 on demand.
|
|
215
|
+
* Let TS3 grid object use arbitrary equation of state for post-processing.
|
|
216
|
+
* Post-processing TS4 simulations by reading the flow field into a structured TS3 grid.
|
|
217
|
+
* Config file options to submit a job to the SLURM queue.
|
|
218
|
+
|
|
219
|
+
v1.0.0
|
|
220
|
+
^^^^^^
|
|
221
|
+
|
|
222
|
+
* 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
|
"""
|
|
@@ -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
|
|
@@ -18,6 +18,7 @@ avoid interference, we recommend the `uv` `package manager <https://docs.astral.
|
|
|
18
18
|
.. code-block:: console
|
|
19
19
|
|
|
20
20
|
$ curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
21
|
+
$ source $HOME/.local/bin/env
|
|
21
22
|
$ uv tool install turbigen
|
|
22
23
|
|
|
23
24
|
These commands will install `uv`, then use it to install :program:`turbigen` into an
|
|
@@ -41,7 +42,7 @@ To run a case, use,
|
|
|
41
42
|
$ turbigen INPUT_YAML
|
|
42
43
|
|
|
43
44
|
where `INPUT_YAML` is a yaml configuration file. Specimen configuration files
|
|
44
|
-
are provided in the :doc:`examples/index` directory.
|
|
45
|
+
are provided in the :doc:`examples/index` directory.
|
|
45
46
|
Results will be logged to the screen and saved to a file in the working
|
|
46
47
|
directory specified in the input file.
|
|
47
48
|
|
|
@@ -52,4 +53,3 @@ run:
|
|
|
52
53
|
.. code-block:: console
|
|
53
54
|
|
|
54
55
|
$ turbigen --help
|
|
55
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "turbigen"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.1.0"
|
|
4
4
|
requires-python = ">=3.11"
|
|
5
5
|
license = {text = "GPL-3.0-or-later"}
|
|
6
6
|
authors = [
|
|
@@ -21,6 +21,8 @@ dependencies = [
|
|
|
21
21
|
'numpy-stl~=3.2.0',
|
|
22
22
|
'metis~=0.2a5',
|
|
23
23
|
]
|
|
24
|
+
description = "Framework for turbomachinery design and computational fluid dynamics simulation"
|
|
25
|
+
readme = "README.md"
|
|
24
26
|
keywords = ["turbomachinery", "computational fluid dynamics", "compressor", "turbine"]
|
|
25
27
|
|
|
26
28
|
[project.optional-dependencies]
|
|
@@ -43,6 +45,7 @@ parallel = [
|
|
|
43
45
|
|
|
44
46
|
[project.urls]
|
|
45
47
|
Homepage = "https://turbigen.org"
|
|
48
|
+
Repository = "https://gitlab.developers.cam.ac.uk/jb753/turbigen"
|
|
46
49
|
|
|
47
50
|
[project.scripts]
|
|
48
51
|
turbigen = "turbigen.main:main"
|
|
@@ -62,7 +65,7 @@ archs = ["x86_64"]
|
|
|
62
65
|
managed = false
|
|
63
66
|
|
|
64
67
|
[tool.bumpversion]
|
|
65
|
-
current_version = "2.
|
|
68
|
+
current_version = "2.1.0"
|
|
66
69
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
|
67
70
|
serialize = ["{major}.{minor}.{patch}"]
|
|
68
71
|
search = "{current_version}"
|
|
@@ -811,10 +811,6 @@ class Kinematics:
|
|
|
811
811
|
# Interpolate the data
|
|
812
812
|
Cf = C.to_unstructured()
|
|
813
813
|
|
|
814
|
-
print(f"Theta pitch={pitch}")
|
|
815
|
-
print(f"Unstr theta lim = {np.max(Cf.t), np.min(Cf.t)}")
|
|
816
|
-
print(f"Struct theta lim = {np.max(Cs.t), np.min(Cs.t)}")
|
|
817
|
-
|
|
818
814
|
if np.ptp(Cf.x) > np.ptp(Cf.r):
|
|
819
815
|
xi = np.stack((Cf.x, Cf.t), axis=-1)
|
|
820
816
|
xo = np.stack((Cs.x, Cs.t), axis=-1)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Initial thoughts on an improved config class."""
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
|
+
from copy import deepcopy
|
|
4
5
|
import numpy as np
|
|
5
6
|
import pickle
|
|
6
7
|
import sys
|
|
@@ -16,12 +17,12 @@ import turbigen.grid
|
|
|
16
17
|
import turbigen.post
|
|
17
18
|
import turbigen.geometry
|
|
18
19
|
import turbigen.yaml
|
|
19
|
-
import importlib
|
|
20
20
|
import turbigen.annulus
|
|
21
21
|
import turbigen.inlet
|
|
22
22
|
import turbigen.mesh
|
|
23
23
|
import turbigen.blade
|
|
24
24
|
import turbigen.nblade
|
|
25
|
+
import turbigen.job
|
|
25
26
|
from turbigen import util
|
|
26
27
|
from typing import List
|
|
27
28
|
from matplotlib.backends.backend_pdf import PdfPages
|
|
@@ -75,8 +76,6 @@ class TurbigenConfig:
|
|
|
75
76
|
grid: turbigen.grid.Grid = None
|
|
76
77
|
guess: turbigen.grid.Grid = None
|
|
77
78
|
|
|
78
|
-
skip: bool = False
|
|
79
|
-
|
|
80
79
|
cut_offset: float = 0.02
|
|
81
80
|
"""Spacing of CFD solution cuts away from blade edges, as fraction of chord."""
|
|
82
81
|
|
|
@@ -84,6 +83,19 @@ class TurbigenConfig:
|
|
|
84
83
|
|
|
85
84
|
post_process: list = dataclasses.field(default_factory=list)
|
|
86
85
|
|
|
86
|
+
job: turbigen.job.BaseJob = None
|
|
87
|
+
"""Settings for queue job submission."""
|
|
88
|
+
|
|
89
|
+
_basename: str = "config.yaml"
|
|
90
|
+
|
|
91
|
+
def copy(self):
|
|
92
|
+
"""Return a copy of the configuration."""
|
|
93
|
+
return deepcopy(self)
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def fname(self):
|
|
97
|
+
return self.workdir / self._basename
|
|
98
|
+
|
|
87
99
|
Re_surf: float = None
|
|
88
100
|
"""Set viscosity using a Reynolds number."""
|
|
89
101
|
|
|
@@ -91,12 +103,15 @@ class TurbigenConfig:
|
|
|
91
103
|
def nrow(self):
|
|
92
104
|
return len(self.blades)
|
|
93
105
|
|
|
94
|
-
def save(self, fname
|
|
106
|
+
def save(self, fname=None):
|
|
95
107
|
"""Save the configuration to a YAML file inside workdir.
|
|
96
108
|
|
|
97
109
|
The working directory will be created if it does not exist.
|
|
98
110
|
"""
|
|
99
111
|
|
|
112
|
+
if fname is None:
|
|
113
|
+
fname = self.fname
|
|
114
|
+
|
|
100
115
|
if not self.workdir.exists():
|
|
101
116
|
self.workdir.mkdir(parents=True)
|
|
102
117
|
|
|
@@ -119,10 +134,10 @@ class TurbigenConfig:
|
|
|
119
134
|
logger.debug(f"Saving configuration to {conf_fname}")
|
|
120
135
|
try:
|
|
121
136
|
turbigen.yaml.write_yaml(data, conf_fname)
|
|
122
|
-
except Exception
|
|
137
|
+
except Exception:
|
|
123
138
|
logger.error(f"Failed to save configuration to {conf_fname}")
|
|
124
|
-
|
|
125
|
-
|
|
139
|
+
logger.error(data)
|
|
140
|
+
sys.exit(1)
|
|
126
141
|
|
|
127
142
|
return conf_fname
|
|
128
143
|
|
|
@@ -164,6 +179,13 @@ class TurbigenConfig:
|
|
|
164
179
|
if not self.mean_line_actual:
|
|
165
180
|
del data["mean_line_actual"]
|
|
166
181
|
|
|
182
|
+
# If no job, remove it
|
|
183
|
+
if not self.job:
|
|
184
|
+
del data["job"]
|
|
185
|
+
else:
|
|
186
|
+
# Add the job type to the dictionary
|
|
187
|
+
data["job"]["type"] = util.camel_to_snake(self.job.__class__.__name__)
|
|
188
|
+
|
|
167
189
|
# If no iterators, remove it
|
|
168
190
|
if not self.iterate:
|
|
169
191
|
del data["iterate"]
|
|
@@ -182,6 +204,12 @@ class TurbigenConfig:
|
|
|
182
204
|
post.__class__.__name__
|
|
183
205
|
)
|
|
184
206
|
|
|
207
|
+
# Remove keys starting with '_'
|
|
208
|
+
# These are not part of the configuration
|
|
209
|
+
for k in list(data.keys()):
|
|
210
|
+
if k.startswith("_"):
|
|
211
|
+
data.pop(k)
|
|
212
|
+
|
|
185
213
|
return data
|
|
186
214
|
|
|
187
215
|
def find_plugins(self):
|
|
@@ -311,6 +339,13 @@ class TurbigenConfig:
|
|
|
311
339
|
else:
|
|
312
340
|
self.post_process = []
|
|
313
341
|
|
|
342
|
+
# Configure job submission if present
|
|
343
|
+
if j := self.job:
|
|
344
|
+
if not (type := j.pop("type")):
|
|
345
|
+
raise Exception("Missing type key in job settings")
|
|
346
|
+
cls = util.get_subclass_by_name(turbigen.job.BaseJob, type)
|
|
347
|
+
self.job = cls(**j)
|
|
348
|
+
|
|
314
349
|
# Add some default post processors
|
|
315
350
|
defaults = [
|
|
316
351
|
turbigen.post.SurfaceDistribution(),
|
|
@@ -674,7 +709,8 @@ class TurbigenConfig:
|
|
|
674
709
|
|
|
675
710
|
# Add efficiency row
|
|
676
711
|
table_pad.append(
|
|
677
|
-
f"Efficiency/%: eta_tt={self.mean_line.actual.eta_tt * 100.0:.1f},
|
|
712
|
+
f"Efficiency/%: eta_tt={self.mean_line.actual.eta_tt * 100.0:.1f}, "
|
|
713
|
+
f"eta_ts={self.mean_line.actual.eta_ts * 100:.1f}"
|
|
678
714
|
)
|
|
679
715
|
|
|
680
716
|
# Join the lines
|
|
@@ -689,7 +725,7 @@ class TurbigenConfig:
|
|
|
689
725
|
self.inlet.mu = mu
|
|
690
726
|
self.mean_line.nominal.mu = mu
|
|
691
727
|
|
|
692
|
-
def design_and_run(self):
|
|
728
|
+
def design_and_run(self, skip):
|
|
693
729
|
"""Run a configuration file through the CFD solver.
|
|
694
730
|
|
|
695
731
|
This will do the following:
|
|
@@ -729,7 +765,7 @@ class TurbigenConfig:
|
|
|
729
765
|
# (3) Normal operation: mesh and run the CFD solver
|
|
730
766
|
|
|
731
767
|
# Generate mesh in cases (2) and (3)
|
|
732
|
-
if not (
|
|
768
|
+
if not (skip and self.grid):
|
|
733
769
|
logger.info("Generating mesh...")
|
|
734
770
|
self.setup_mesh() # Overwrite self.grid with a new mesh
|
|
735
771
|
self.apply_guess()
|
|
@@ -738,7 +774,7 @@ class TurbigenConfig:
|
|
|
738
774
|
logger.info("Skipping and already have a guess, not generating mesh...")
|
|
739
775
|
|
|
740
776
|
# In case (3), run the CFD solver
|
|
741
|
-
if not
|
|
777
|
+
if not skip:
|
|
742
778
|
self.run_solver()
|
|
743
779
|
# Case (1), load convergence history
|
|
744
780
|
# A no-op in Case (2)
|