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.
Files changed (321) hide show
  1. {turbigen-2.0.0 → turbigen-2.1.0}/PKG-INFO +11 -1
  2. turbigen-2.1.0/README.md +7 -0
  3. turbigen-2.1.0/bin/noquit.sh +4 -0
  4. turbigen-2.1.0/doc/changelog.rst +222 -0
  5. {turbigen-2.0.0 → turbigen-2.1.0}/doc/conf.py +13 -0
  6. {turbigen-2.0.0 → turbigen-2.1.0}/doc/index.rst +3 -0
  7. turbigen-2.1.0/doc/license.rst +19 -0
  8. {turbigen-2.0.0 → turbigen-2.1.0}/doc/quickstart.rst +2 -2
  9. turbigen-2.1.0/doc/usage.rst +9 -0
  10. {turbigen-2.0.0 → turbigen-2.1.0}/examples/axial_turbine.yaml +0 -2
  11. {turbigen-2.0.0 → turbigen-2.1.0}/pyproject.toml +5 -2
  12. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/base.py +0 -4
  13. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/config2.py +47 -11
  14. turbigen-2.1.0/src/turbigen/job.py +203 -0
  15. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/main.py +26 -111
  16. turbigen-2.0.0/README.md +0 -7
  17. turbigen-2.0.0/bin/noquit.sh +0 -4
  18. turbigen-2.0.0/src/turbigen/config.py +0 -572
  19. turbigen-2.0.0/src/turbigen/post/plot_isen_mach.py +0 -148
  20. turbigen-2.0.0/src/turbigen/post/plot_pressure_distributions.py +0 -232
  21. turbigen-2.0.0/src/turbigen/run2.py +0 -65
  22. turbigen-2.0.0/src/turbigen/slurm.py +0 -261
  23. {turbigen-2.0.0 → turbigen-2.1.0}/.flake8 +0 -0
  24. {turbigen-2.0.0 → turbigen-2.1.0}/.gitignore +0 -0
  25. {turbigen-2.0.0 → turbigen-2.1.0}/.gitlab-ci-local/.gitignore +0 -0
  26. {turbigen-2.0.0 → turbigen-2.1.0}/.gitlab-ci.yml +0 -0
  27. {turbigen-2.0.0 → turbigen-2.1.0}/.pre-commit-config.yaml +0 -0
  28. {turbigen-2.0.0 → turbigen-2.1.0}/COPYING +0 -0
  29. {turbigen-2.0.0 → turbigen-2.1.0}/MANIFEST.in +0 -0
  30. {turbigen-2.0.0 → turbigen-2.1.0}/Makefile +0 -0
  31. {turbigen-2.0.0 → turbigen-2.1.0}/bin/get_ssh_agent.sh +0 -0
  32. {turbigen-2.0.0 → turbigen-2.1.0}/bin/setup.sh +0 -0
  33. {turbigen-2.0.0 → turbigen-2.1.0}/doc/Makefile +0 -0
  34. {turbigen-2.0.0 → turbigen-2.1.0}/doc/_static/siunitx.js +0 -0
  35. {turbigen-2.0.0 → turbigen-2.1.0}/doc/examples/index.rst +0 -0
  36. {turbigen-2.0.0 → turbigen-2.1.0}/doc/generate_examples.py +0 -0
  37. {turbigen-2.0.0 → turbigen-2.1.0}/doc/nomenclature.rst +0 -0
  38. {turbigen-2.0.0 → turbigen-2.1.0}/doc/turbigen-logo.svg +0 -0
  39. {turbigen-2.0.0 → turbigen-2.1.0}/doc/tutorial.rst.not +0 -0
  40. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/Makefile +0 -0
  41. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.buildinfo +0 -0
  42. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/changelog.doctree +0 -0
  43. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/config.doctree +0 -0
  44. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/environment.pickle +0 -0
  45. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/fluid.doctree +0 -0
  46. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/index.doctree +0 -0
  47. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/install.doctree +0 -0
  48. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/license.doctree +0 -0
  49. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/meanline.doctree +0 -0
  50. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/mesh.doctree +0 -0
  51. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/nomenclature.doctree +0 -0
  52. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/post.doctree +0 -0
  53. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/references.doctree +0 -0
  54. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/solver.doctree +0 -0
  55. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/tutorial.doctree +0 -0
  56. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/.doctrees/usage.doctree +0 -0
  57. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/index.html +0 -0
  58. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/base.html +0 -0
  59. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/fluid.html +0 -0
  60. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/hmesh.html +0 -0
  61. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/axial_turbine.html +0 -0
  62. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/radial_compressor.html +0 -0
  63. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/meanline/turbine_cascade.html +0 -0
  64. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/ohmesh.html +0 -0
  65. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/solvers/ts3.html +0 -0
  66. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_modules/turbigen/solvers/ts4.html +0 -0
  67. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/changelog.rst.txt +0 -0
  68. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/config.rst.txt +0 -0
  69. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/fluid.rst.txt +0 -0
  70. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/index.rst.txt +0 -0
  71. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/install.rst.txt +0 -0
  72. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/license.rst.txt +0 -0
  73. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/meanline.rst.txt +0 -0
  74. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/mesh.rst.txt +0 -0
  75. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/nomenclature.rst.txt +0 -0
  76. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/post.rst.txt +0 -0
  77. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/references.rst.txt +0 -0
  78. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/solver.rst.txt +0 -0
  79. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/tutorial.rst.txt +0 -0
  80. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_sources/usage.rst.txt +0 -0
  81. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/alabaster.css +0 -0
  82. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/basic.css +0 -0
  83. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/custom.css +0 -0
  84. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/doctools.js +0 -0
  85. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/documentation_options.js +0 -0
  86. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/file.png +0 -0
  87. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/language_data.js +0 -0
  88. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/minus.png +0 -0
  89. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/plot_directive.css +0 -0
  90. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/plus.png +0 -0
  91. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/pygments.css +0 -0
  92. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/searchtools.js +0 -0
  93. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/siunitx.js +0 -0
  94. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/_static/sphinx_highlight.js +0 -0
  95. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/changelog.html +0 -0
  96. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/config.html +0 -0
  97. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/fluid.html +0 -0
  98. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/genindex.html +0 -0
  99. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/index.html +0 -0
  100. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/install.html +0 -0
  101. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/license.html +0 -0
  102. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/meanline.html +0 -0
  103. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/mesh.html +0 -0
  104. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/nomenclature.html +0 -0
  105. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/objects.inv +0 -0
  106. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/post.html +0 -0
  107. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/py-modindex.html +0 -0
  108. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/references.html +0 -0
  109. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/search.html +0 -0
  110. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/searchindex.js +0 -0
  111. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/solver.html +0 -0
  112. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/tutorial.html +0 -0
  113. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_build/usage.html +0 -0
  114. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/_static/siunitx.js +0 -0
  115. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/changelog.rst +0 -0
  116. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/conf.py +0 -0
  117. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/config.rst +0 -0
  118. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/dummy_post.py +0 -0
  119. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/fluid.rst +0 -0
  120. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/index.rst +0 -0
  121. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/install.rst +0 -0
  122. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/license.rst +0 -0
  123. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/make.bat +0 -0
  124. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/meanline.rst +0 -0
  125. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/mesh.rst +0 -0
  126. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/method.md +0 -0
  127. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/nomenclature.rst +0 -0
  128. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/post.rst +0 -0
  129. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/references.rst +0 -0
  130. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/refs.bib +0 -0
  131. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/config.yaml +0 -0
  132. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/inverse.yaml +0 -0
  133. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/log_turbigen.txt +0 -0
  134. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/mean_line_actual.yaml +0 -0
  135. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade/mean_line_nominal.yaml +0 -0
  136. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/config.yaml +0 -0
  137. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/inverse.yaml +0 -0
  138. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/log_turbigen.txt +0 -0
  139. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/mean_line_actual.yaml +0 -0
  140. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/runs/cascade_test/mean_line_nominal.yaml +0 -0
  141. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/solver.rst +0 -0
  142. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/tutorial.rst +0 -0
  143. {turbigen-2.0.0 → turbigen-2.1.0}/doc-old/usage.rst +0 -0
  144. {turbigen-2.0.0 → turbigen-2.1.0}/examples/turbine_cascade.yaml +0 -0
  145. {turbigen-2.0.0 → turbigen-2.1.0}/matplotlibrc +0 -0
  146. {turbigen-2.0.0 → turbigen-2.1.0}/meson.build +0 -0
  147. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/analysis.yaml +0 -0
  148. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_compressor_rotor.yaml +0 -0
  149. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_turbine.yaml +0 -0
  150. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/axial_turbine_ts4.yaml +0 -0
  151. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_fit.yaml +0 -0
  152. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_iter.yaml +0 -0
  153. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_off_design.yaml +0 -0
  154. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_p3d.yaml +0 -0
  155. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_post.yaml +0 -0
  156. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/cascade_test.yaml +0 -0
  157. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/flat_plate.yaml +0 -0
  158. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/include1.yaml +0 -0
  159. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/include2.yaml +0 -0
  160. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/mixed_compressor.yaml +0 -0
  161. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/profile.yaml +0 -0
  162. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/pure_radial_compressor.yaml +0 -0
  163. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/quad_camber.yaml +0 -0
  164. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/radial_compressor.yaml +0 -0
  165. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_df.yaml +0 -0
  166. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_025.yaml +0 -0
  167. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_04.yaml +0 -0
  168. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_ds_055.yaml +0 -0
  169. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/seminar_xpeak.yaml +0 -0
  170. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/turbine_cascade.yaml +0 -0
  171. {turbigen-2.0.0 → turbigen-2.1.0}/old-examples/turbine_include.yaml +0 -0
  172. {turbigen-2.0.0 → turbigen-2.1.0}/plots/bench.dat +0 -0
  173. {turbigen-2.0.0 → turbigen-2.1.0}/plots/profile.txt +0 -0
  174. {turbigen-2.0.0 → turbigen-2.1.0}/plug/repeat.py +0 -0
  175. {turbigen-2.0.0 → turbigen-2.1.0}/plug/test.py +0 -0
  176. {turbigen-2.0.0 → turbigen-2.1.0}/pytest.ini +0 -0
  177. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/benchmark.py +0 -0
  178. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/benchmark.sh +0 -0
  179. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/eval_fitted_design_space.py +0 -0
  180. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/fit_eta_tt.json +0 -0
  181. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_benchmark.py +0 -0
  182. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_camber.py +0 -0
  183. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/plot_thickness.py +0 -0
  184. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/profile.sh +0 -0
  185. {turbigen-2.0.0 → turbigen-2.1.0}/scripts/read_cuts.py +0 -0
  186. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/distribute.f90 +0 -0
  187. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolve.f90 +0 -0
  188. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvec-f2pywrappers.f +0 -0
  189. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvec-f2pywrappers2.f90 +0 -0
  190. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/embsolvecmodule.c +0 -0
  191. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/fluxes.f90 +0 -0
  192. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/indexing.f90 +0 -0
  193. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/meson.build +0 -0
  194. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/multigrid.f90 +0 -0
  195. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/operators.f90 +0 -0
  196. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/smooth.f90 +0 -0
  197. {turbigen-2.0.0 → turbigen-2.1.0}/src/embsolve/viscous.f90 +0 -0
  198. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/__init__.py +0 -0
  199. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/annulus.py +0 -0
  200. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/__init__.py +0 -0
  201. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/ag_server.sh +0 -0
  202. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/autogrid.py +0 -0
  203. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/reader.py +0 -0
  204. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_ag.py2 +0 -0
  205. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_igg.py2 +0 -0
  206. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/script_sh +0 -0
  207. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/autogrid/server.py +0 -0
  208. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/average.py +0 -0
  209. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/blade.py +0 -0
  210. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/camber.py +0 -0
  211. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/__init__.py +0 -0
  212. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/check.py +0 -0
  213. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/double.py +0 -0
  214. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/exceptions.py +0 -0
  215. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/plot.py +0 -0
  216. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/single.py +0 -0
  217. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/symmetric.py +0 -0
  218. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/clusterfunc/util.py +0 -0
  219. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/compflow_native.py +0 -0
  220. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/exceptions.py +0 -0
  221. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/flowfield.py +0 -0
  222. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/fluid.py +0 -0
  223. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/geometry.py +0 -0
  224. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/grid.py +0 -0
  225. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/hmesh.py +0 -0
  226. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/inlet.py +0 -0
  227. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/iterators.py +0 -0
  228. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/marching_cubes.py +0 -0
  229. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/meanline.py +0 -0
  230. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/mesh.py +0 -0
  231. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/nblade.py +0 -0
  232. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/ohmesh.py +0 -0
  233. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/polynomial.py +0 -0
  234. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/blade_surf_dist.py +0 -0
  235. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/calc_surf_dissipation.py +0 -0
  236. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/check_phase.py +0 -0
  237. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/contour.py +0 -0
  238. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/find_extrema.py +0 -0
  239. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_annulus.py +0 -0
  240. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_blade.py +0 -0
  241. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_camber.py +0 -0
  242. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_convergence.py +0 -0
  243. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_incidence.py +0 -0
  244. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_nose.py +0 -0
  245. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_section.py +0 -0
  246. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/plot_thickness.py +0 -0
  247. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/spanwise.py +0 -0
  248. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_annulus.py +0 -0
  249. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_cuts.py +0 -0
  250. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_ibl.py +0 -0
  251. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post/write_stl.py +0 -0
  252. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/post.py +0 -0
  253. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/run.py +0 -0
  254. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solver.py +0 -0
  255. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/base.py +0 -0
  256. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/convert_ts3_to_ts4_native.py +0 -0
  257. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/emb.py +0 -0
  258. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/plot3d.py +0 -0
  259. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/ts3.py +0 -0
  260. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/solvers/ts4.py +0 -0
  261. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/tables.py +0 -0
  262. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/thickness.py +0 -0
  263. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/util.py +0 -0
  264. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/util_post.py +0 -0
  265. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/vtri.py +0 -0
  266. {turbigen-2.0.0 → turbigen-2.1.0}/src/turbigen/yaml.py +0 -0
  267. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/emb.yaml +0 -0
  268. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/config.yaml +0 -0
  269. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/inverse.yaml +0 -0
  270. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/log_turbigen.txt +0 -0
  271. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/mean_line_actual.yaml +0 -0
  272. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/mean_line_nominal.yaml +0 -0
  273. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/post/contour_Cp_spf_0.51.npz +0 -0
  274. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3/post/pressure_distributions_raw.npz +0 -0
  275. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/compressor/ts3.yaml +0 -0
  276. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/stage.yaml +0 -0
  277. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/emb.yaml +0 -0
  278. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/plot.py +0 -0
  279. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/config.yaml +0 -0
  280. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/log_turbigen.txt +0 -0
  281. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/run/mean_line_nominal.yaml +0 -0
  282. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/inverse.yaml +0 -0
  283. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/post/contour_Ys_m_2.05.npz +0 -0
  284. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3/post/pressure_distributions_raw.npz +0 -0
  285. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine/ts3.yaml +0 -0
  286. {turbigen-2.0.0 → turbigen-2.1.0}/tests/back-to-back/turbine_oh/emb.yaml +0 -0
  287. {turbigen-2.0.0 → turbigen-2.1.0}/tests/conftest.py +0 -0
  288. {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cascade_splitter.tar.gz +0 -0
  289. {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cascade_splitter.yaml +0 -0
  290. {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/cfd_cut.json +0 -0
  291. {turbigen-2.0.0 → turbigen-2.1.0}/tests/data/sections.dat +0 -0
  292. {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_body.py +0 -0
  293. {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_examples.py +0 -0
  294. {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_periodic.py +0 -0
  295. {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_rotor.py +0 -0
  296. {turbigen-2.0.0 → turbigen-2.1.0}/tests/not_test_splitter.py +0 -0
  297. {turbigen-2.0.0 → turbigen-2.1.0}/tests/pdist_ts3.npz +0 -0
  298. {turbigen-2.0.0 → turbigen-2.1.0}/tests/pipe.py +0 -0
  299. {turbigen-2.0.0 → turbigen-2.1.0}/tests/plate.yaml +0 -0
  300. {turbigen-2.0.0 → turbigen-2.1.0}/tests/reformat_sections.py +0 -0
  301. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_average.py +0 -0
  302. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_bcond.py +0 -0
  303. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_cells.py +0 -0
  304. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_distribute.py +0 -0
  305. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_fluid.py +0 -0
  306. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_nozzle.py +0 -0
  307. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_operators.py +0 -0
  308. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_periodic_step.py +0 -0
  309. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_smooth.py +0 -0
  310. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_tables.py +0 -0
  311. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_visc.py +0 -0
  312. {turbigen-2.0.0 → turbigen-2.1.0}/tests/test_wall.py +0 -0
  313. {turbigen-2.0.0 → turbigen-2.1.0}/tests/turning_duct.py +0 -0
  314. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcd_yp5_ts3.csv +0 -0
  315. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcd_yp5_turb.csv +0 -0
  316. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_ts3.csv +0 -0
  317. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_turb_ts3.csv +0 -0
  318. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_yp5_ts3.csv +0 -0
  319. {turbigen-2.0.0 → turbigen-2.1.0}/tests/xcf_yp5_turb.csv +0 -0
  320. {turbigen-2.0.0 → turbigen-2.1.0}/tutorial/config.yaml +0 -0
  321. {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.0.0
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)
@@ -0,0 +1,7 @@
1
+ # turbigen
2
+
3
+ **James Brind, Whittle Laboratory, University of Cambridge**
4
+
5
+ turbigen is a general turbomachinery design system based on automated computational fluid dynamics simulations. See the user manual at:
6
+
7
+ [User Manual](https://turbigen.org)
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ # noquit DIR
3
+ # Exit 1 if any 'quit()' or print statements are found in any files under DIR
4
+ ! find src/turbigen -name '*.py' ! -name 'convert_ts3_to_ts4_native.py' -exec grep -nH '^ *quit()\|^ *print(\|^ *np.empty(' {} +
@@ -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
  """
@@ -16,5 +16,8 @@ User manual
16
16
 
17
17
  quickstart
18
18
  nomenclature
19
+ usage
19
20
  examples/index
21
+ changelog
22
+ license
20
23
 
@@ -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
-
@@ -0,0 +1,9 @@
1
+ .. _usage:
2
+
3
+ Command-line options
4
+ ====================
5
+
6
+ .. argparse::
7
+ :module: turbigen.main
8
+ :func: _make_argparser
9
+ :prog: turbigen
@@ -53,8 +53,6 @@ blades:
53
53
  tip: 0.01
54
54
 
55
55
  # Circulation coefficient to set blade loadings
56
- # Note an initial guess that is iteratively updated
57
- # to reach a target diffusing factor (configured below)
58
56
  nblade:
59
57
  - Co: 0.6
60
58
  - Co: 0.6
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "turbigen"
3
- version = "2.0.0"
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.0.0"
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: str = "config.yaml"):
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 as e:
137
+ except Exception:
123
138
  logger.error(f"Failed to save configuration to {conf_fname}")
124
- print(data)
125
- quit()
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}, eta_ts={self.mean_line.actual.eta_ts * 100:.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 (self.skip and self.grid):
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 self.skip:
777
+ if not skip:
742
778
  self.run_solver()
743
779
  # Case (1), load convergence history
744
780
  # A no-op in Case (2)