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