Skip to content

[REVIEW]: TurboFlow: Meanline Modelling of Turbomachinery #7588

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
editorialbot opened this issue Dec 12, 2024 · 19 comments
Open

[REVIEW]: TurboFlow: Meanline Modelling of Turbomachinery #7588

editorialbot opened this issue Dec 12, 2024 · 19 comments
Assignees

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Dec 12, 2024

Submitting author: @lasseband (Lasse Borg Anderson)
Repository: https://github.com/turbo-sim/TurboFlow
Branch with paper.md (empty if default branch):
Version: v0.1.11
Editor: @philipcardiff
Reviewers: @salehisaeed, @aromei
Archive: Pending

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/012c28a652c451c61c7400c3a68787d2"><img src="https://joss.theoj.org/papers/012c28a652c451c61c7400c3a68787d2/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/012c28a652c451c61c7400c3a68787d2/status.svg)](https://joss.theoj.org/papers/012c28a652c451c61c7400c3a68787d2)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@salehisaeed & @aromei, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @philipcardiff know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @aromei

📝 Checklist for @salehisaeed

@editorialbot
Copy link
Collaborator Author

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1115/1.4023122 is OK
- 10.1115/1.4037819 is OK
- 10.1115/GT2005-68716 is OK
- 10.3390/ijtpp4030032 is OK
- 10.17863/CAM.106741 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: Organic rankine cycle (ORC) power systems : techno...
- No DOI given, and none found for title: Turboflow: Mean-Line Modelling of Axial Turbines
- No DOI given, and none found for title: CFturbo
- No DOI given, and none found for title: AxSTREAM
- No DOI given, and none found for title: TURBOdesign Suite
- No DOI given, and none found for title: Concepts NREC

❌ MISSING DOIs

- 10.1016/c2011-0-05059-7 may be a valid DOI for title: Fluid mechanics and thermodynamics of turbomachine...
- 10.2514/6.2016-0119 may be a valid DOI for title: Meanline Analysis of Turbines with Choked Flow in ...

❌ INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.90  T=0.62 s (629.9 files/s, 205776.9 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
SVG                             14              2            248          51399
Python                         133           6295          11099          18782
MATLAB                          92           1533           2473          10909
YAML                            60            428            568           7659
HTML                             3            596             84           5881
CSV                              9              0              0           1693
TeX                              2            138              0           1364
Markdown                        17            469              0           1335
reStructuredText                58           1489           2890            913
TOML                             1              4              0             39
JSON                             1              0              0             29
DOS Batch                        1              8              1             26
make                             1              4              7              9
CSS                              1              0              0              4
-------------------------------------------------------------------------------
SUM:                           393          10966          17370         100042
-------------------------------------------------------------------------------

Commit count by author:

   266	laboan
   178	roagr
    86	Lasse borg anderson
    33	Lasse Borg Anderson
     5	Roberto Agromayor
     2	Srinivas Prakash Diwanji
     1	Daniel S. Katz

@editorialbot
Copy link
Collaborator Author

Paper file info:

📄 Wordcount for paper.md is 1006

✅ The paper includes a Statement of need section

@editorialbot
Copy link
Collaborator Author

License info:

✅ License found: MIT License (Valid open source OSI approved license)

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@philipcardiff
Copy link

Hi @lasseband, please fix the missing DOIs above. Thanks.

@lasseband
Copy link

lasseband commented Jan 16, 2025

Hi @philipcardiff,

The missing DOIs should have been added now.

Thanks to the reviewers for agreeing to review this submission. I have recently gone through the code, so hopefully everything is in order, but it will be interesting if you find something that needs fixing and how it is to use for an external user. I would also like to mention that the version v0.1.11 is not aligned with the updated examples/tutorials in the documentation. The v0.1.15 is the updated version.

Best regards,
Lasse B. Anderson

@philipcardiff
Copy link

@editorialbot check references

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1016/C2011-0-05059-7 is OK
- 10.1115/1.4023122 is OK
- 10.2514/6.2016-0119 is OK
- 10.1115/1.4037819 is OK
- 10.1115/GT2005-68716 is OK
- 10.3390/ijtpp4030032 is OK
- 10.17863/CAM.106741 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: Organic rankine cycle (ORC) power systems : techno...
- No DOI given, and none found for title: Turboflow: Mean-Line Modelling of Axial Turbines
- No DOI given, and none found for title: CFturbo
- No DOI given, and none found for title: AxSTREAM
- No DOI given, and none found for title: TURBOdesign Suite
- No DOI given, and none found for title: Concepts NREC

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@aromei
Copy link

aromei commented Jan 22, 2025

Review checklist for @aromei

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/turbo-sim/TurboFlow?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@lasseband) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1. Contribute to the software 2. Report issues or problems with the software 3. Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@aromei
Copy link

aromei commented Jan 23, 2025

I’d like to give credit to the authors @lasseband, as the code appears to be highly efficient in the optimization process, effectively integrating the gradient-based solver in the meanline code. Specifically focusing on the axial turbine, the code is comprehensive, covering design, performance analysis, and optimization. Overall, the usage was quite intuitive, and I did not encounter any significant issues when running the code or making minor changes to test the model's capabilities.

General checks

  • License I am not entirely sure, but shouldn’t the copyright belong to all authors rather than being assigned only to the main author?

Documentation

  • Community guidelines @philipcardiff I am uncertain about this point in the reviewer’s checklist, as there are no clear guidelines provided. However, since the software is hosted on GitHub, I believe the community can use this platform to contribute to the code directly.
  • Installation instructions about dependencies, I needed to install pytest to run the test.
  • Functionality documentation It is unclear which types of turbomachinery the software can handle. Based on the documentation, it appears to be limited to axial turbines. But, the code also contains folders related to centrifugal compressors, which are not documented.
  • Contribution and authorship Two of the four listed authors have not made any commits to the project, while there are two contributors who do not appear on the author list. I just wanted to double-check that the author list accurately reflects the contributions made to the software.

Software paper

  • Summary The authors can spend a few sentences to clearly state what is a meanline code to help a non-specialist audience.
  • Summary The authors state that the software includes meanline modeling for turbomachinery. Since "turbomachinery" is a broad term, it raises the question of whether axial compressors and radial turbines are also supported. Overall, the summary lacks specificity and does not accurately reflect the software's capabilities.
  • Summary Link to ‘documentation pages’ is not working
  • Double-check the text with a grammar check, because I found spurious typos (e.g., line 14 strcuture).

General comment on the code

  • I would recommend excluding the dev_projects folder from the main repository, as it seems to contain untested or under-development features, which may create confusion.
  • The code architecture is somewhat unclear, as it lacks common coding conventions such as a src folder and a docs folder. Additionally, some folders and files, such as .vscode, could be excluded and added to the .gitignore file to reduce clutter.
  • Overall, it is unclear whether the software includes additional functionalities beyond the meanline code for axial turbines. The documentation focuses solely on axial turbines, yet the example folder contains a case for a centrifugal compressor. Additionally, the src folder (turboflow) includes directories related to cycle calculations, which differ from the scope of the software (meanline code for turbomachinery).
  • It seems that metastable properties are implemented in fluid_properties.py. How can the code be instructed to consider either metastable or equilibrium properties? It does not appear that there is a line in the configuration file to specify this. Moreover, if I attempt to run fluid_properties.py to execute the calculation example under name == "main", it returns an error, likely related to issues with relative or absolute paths.
  • The code does not generate a proper log file. While printing everything to the console is fine, it would be helpful to also have an option to save the output to a plain log file. This could be controlled via a flag in the input file to specify whether logging is desired. The same suggestion applies to the results.
  • I encountered issues running the Kofskey1974_stator validation test, which gave me two validation errors related to the config file.
  • Please organize the folders more systematically, as there are numerous scattered files. For example, some figures are not placed in the figure folder within the validation tests, and there are old or redundant folders within other directories.
  • While running the example for the two-stage turbine and plotting the results, I observed an unusual trend in the incidence loss, even though the plot matches the one provided in the repository. According to the log summary, the simulation was successful for all 40 points. Is this behavior (incidence loss going to zero for two distinct operating points) expected?
  • The code is intended to be general regarding thermodynamic modeling. However, in the calculation of the critical Mach number, it relies on an equation specific to perfect-gas modeling, as demonstrated by the use of the specific heat ratio. A similar dependency can be seen in the get_flow_capacity function.
  • Can you confirm whether the plotting utility plot_axial_radial_plane works only for optimization? I attempted to use it with the two-stage turbine example in performance analysis mode to plot the meridional channel, but it returned an error. It would be helpful if the meridional channel could be plotted regardless of the specific solver used.
  • I suggest expanding the examples available. Currently, the repository includes a single-stage and a two-stage turbine, both operating with air under ideal gas conditions. It would be valuable to include a case featuring a turbine operating with a fluid where non-ideal effects play a significant role.
  • Does the code handle supersonic cascades? Based on the documentation and the code itself, it seems that it does not, as there are no mentions of shock losses, supersonic deviation, or unique incidence. If this is the case, the software paper and documentation should explicitly report this limitation.

@lasseband
Copy link

Hi @aromei,

Thank you for taking the time to carefully review our code and for your thoughtful comments. We have done our best to address each of them, and you can find our replies below.

General checks

  • License: I am not entirely sure, but shouldn’t the copyright belong to all authors rather than being assigned only to the main author?
    • All authors added in the lisence file.

Documentation

  • Community guidelines: I am uncertain about this point in the reviewer’s checklist, as there are no clear guidelines provided. However, since the software is hosted on GitHub, I believe the community can use this platform to contribute to the code directly.
    • In the develop guidelines section in the documentation you can find the following information:
      • Installation instruction for developers.
      • Pull request guidelines.
      • How to add tests.
      • How to report an issue.
      • How to publish new versions to PyPI.
  • Installation instructions: about dependencies, I needed to install pytest to run the test.
    • pytest is installed through poetry in the developer installation guide.
    • Developer installation guide is updated to ensure that development dependencies are included.
  • Functionality documentation: It is unclear which types of turbomachinery the software can handle. Based on the documentation, it appears to be limited to axial turbines. But, the code also contains folders related to centrifugal compressors, which are not documented.
    • Within this submission, axial turbines are the only turbomachinery considered. The paper/documentation and README file is updated to clearly state this.
    • The authors have started incorporating new turbomachinery, e.g. centrifugal compressors. However, this will not be a part of this submission, but hopefully fully available in later versions.
  • Contribution and authorship: Two of the four listed authors have not made any commits to the project, while there are two contributors who do not appear on the author list. I just wanted to double-check that the author list accurately reflects the contributions made to the software.
    • Two of the authors are the supervisors for the main contributors to the code (Lasse B. Anderson and Roberto Agromayor). Srinivas Diwanji is contributing to the code in another project and is only working on a branch of the code. Daniel S. Katz is from JOSS.
    • Author contributions added in the documentation

Software paper

  • Summary: The authors can spend a few sentences to clearly state what is a meanline code to help a non-specialist audience.
    • Sentences added.
  • Summary: The authors state that the software includes meanline modeling for turbomachinery. Since "turbomachinery" is a broad term, it raises the question of whether axial compressors and radial turbines are also supported. Overall, the summary lacks specificity and does not accurately reflect the software's capabilities.
    • Paper changed to specify that the code is for meanline modelling of axial turbines, not turbomachinery in general.
    • The plotting, logging and export capabilities noted in the summary.
  • Summary: Link to ‘documentation pages’ is not working
    • Link fixed.
  • Double-check the text with a grammar check, because I found spurious typos (e.g., line 14 strcuture).
    • Checked.

General comments on code

  • I would recommend excluding the dev_projects folder from the main repository, as it seems to contain untested or under-development features, which may create confusion.
    • Dev project moved to separate branch named "feature-dev".
  • The code architecture is somewhat unclear, as it lacks common coding conventions such as a src folder and a docs folder. Additionally, some folders and files, such as .vscode, could be excluded and added to the .gitignore file to reduce clutter.
    • In Python projects, the convention is to name the main source code folder after the package name (i.e. turboflow) rather than using a generic src folder.
    • docs folder is implemented.
    • .vscode file added to .gitignore.
  • Overall, it is unclear whether the software includes additional functionalities beyond the meanline code for axial turbines. The documentation focuses solely on axial turbines, yet the example folder contains a case for a centrifugal compressor. Additionally, the src folder (turboflow) includes directories related to cycle calculations, which differ from the scope of the software (meanline code for turbomachinery).
    • See documentation answer. The scope of the code is limited to axial turbines, which should be clearly stated now.
    • Cycle functions removed.
  • It seems that metastable properties are implemented in fluid_properties.py. How can the code be instructed to consider either metastable or equilibrium properties? It does not appear that there is a line in the configuration file to specify this. Moreover, if I attempt to run fluid_properties.py to execute the calculation example under name == "main", it returns an error, likely related to issues with relative or absolute paths.
    • The code uses equilibrium states only for this version. However, we are exploring the options to offer metastable properties in future versions.
    • Example function removed.
  • The code does not generate a proper log file. While printing everything to the console is fine, it would be helpful to also have an option to save the output to a plain log file. This could be controlled via a flag in the input file to specify whether logging is desired. The same suggestion applies to the results.
    • A logging feature is implemented.
    • Example of logging added in example folder and tutorial in documentation.
  • I encountered issues running the Kofskey1974_stator validation test, which gave me two validation errors related to the config file.
    • Redundant script removed.
    • This was simply a test script for debugging during the model development, and does not longer have relevance to the code.
  • Please organize the folders more systematically, as there are numerous scattered files. For example, some figures are not placed in the figure folder within the validation tests, and there are old or redundant folders within other directories.
    • Repository cleaned. With dev_scripts, cycles and .vscode scripts removed, the repository is cleaner. The validation folder is also cleaned and updated.
  • While running the example for the two-stage turbine and plotting the results, I observed an unusual trend in the incidence loss, even though the plot matches the one provided in the repository. According to the log summary, the simulation was successful for all 40 points. Is this behavior (incidence loss going to zero for two distinct operating points) expected?
    • Great catch! There was a slight mistake in the incidence loss calculation, with an absolute sign causing issues for this particular case. This had no impact on the other examples/validation cases.
  • The code is intended to be general regarding thermodynamic modeling. However, in the calculation of the critical Mach number, it relies on an equation specific to perfect-gas modeling, as demonstrated by the use of the specific heat ratio. A similar dependency can be seen in the get_flow_capacity function.
    • The critical mach number choking criterion is only one criterion for choking. Two other criterions are implemented (see documentation), and the critical_mass_flow_rate criterion is general and does not rely on perfect-gas relations.
  • Can you confirm whether the plotting utility plot_axial_radial_plane works only for optimization? I attempted to use it with the two-stage turbine example in performance analysis mode to plot the meridional channel, but it returned an error. It would be helpful if the meridional channel could be plotted regardless of the specific solver used.
    • It works for performance analysis. Example of use is added in example and tutorial in docs.
  • I suggest expanding the examples available. Currently, the repository includes a single-stage and a two-stage turbine, both operating with air under ideal gas conditions. It would be valuable to include a case featuring a turbine operating with a fluid where non-ideal effects play a significant role.
    • New case added using R125 as working fluid. The case features expansion from supercritical conditions, exhibiting significant non-ideal gas effects.
  • Does the code handle supersonic cascades? Based on the documentation and the code itself, it seems that it does not, as there are no mentions of shock losses, supersonic deviation, or unique incidence. If this is the case, the software paper and documentation should explicitly report this limitation.
    • The code does not handle cascades where the inlet and exit is supersonic.
    • It is stated in the documentation that the code does not handle these cases.
    • The cascades can have supersonic exit, where shock losses are implemented through the loss model (see loss models in documentation).

@aromei
Copy link

aromei commented Feb 7, 2025

@lasseband, thank you for the comprehensive answers. Good job!

@philipcardiff, the work can be published from my side.

@philipcardiff
Copy link

Thanks @aromei!

Hi @salehisaeed, Just a reminder about your review. You can generate your review checklist with @editorialbot generate my checklist.

@salehisaeed
Copy link

salehisaeed commented Feb 21, 2025

Review checklist for @salehisaeed

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/turbo-sim/TurboFlow?
  • License: Does the repository contain a plain-text LICENSE or COPYING file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@lasseband) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1. Contribute to the software 2. Report issues or problems with the software 3. Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@salehisaeed
Copy link

salehisaeed commented Feb 21, 2025

First of all, I would like to acknowledge the authors' contribution to the field of turbomachinery. The package is well-structured, and I appreciate the effort in providing both open-source and proprietary references for context. The documentation is extensive, clear, and the provided examples cover a range of applications, which is very helpful for users looking to get started quickly.

That being said, I encountered some issues while testing the package, which I believe should be addressed to improve usability and ensure a smoother user experience.

I also want to acknowledge the review and comments provided by the other reviewer. Some of their points align with mine, and I will not repeat them here. Instead, I will focus on additional aspects that I encountered during my review.


Installation and Environment

  • Installed the package using pip on a virtual environment in Python 3.11. The installation went through without any issues.
  • Suggestion: Avoid using spaces in file and folder names (for example in validation_cases and examples).

Issues Encountered

Maybe I am missing something here, but for some reason, I was not able to run any of the provided tutorials in the examples. Here is a summary:

1. Compressor Example (compressor_main.py)

  • The YAML configuration file does not seem to be read correctly. Possible missing information in the configuration file? Error encountered:

    5 validation errors for CentrifugalCompressor
    geometry.impeller.length_axial
      Field required [type=missing]
    geometry.impeller.length_meridional
      Field required [type=missing]
    geometry.impeller.impeller_length
      Extra inputs are not permitted [type=extra_forbidden]
    geometry.vaneless_diffuser.width_out
      Field required [type=missing]
    geometry.vaneless_diffuser.wall_divergence
      Extra inputs are not permitted [type=extra_forbidden]
    
    • Likely, the schema expected by turboflow does not match the provided YAML file.

2. The rest of examples, namely, one-stage_main.py, R125_main.py, and two-stage_main.py gave the following error:

TypeError: create_logger() got an unexpected keyword argument 'to_console'
  • It seems to_console is no longer a valid argument in tf.create_logger().

3. Validation Case (Kofskey1972_one_stage)

  • The case ran smoothly, but the plotting script failed due to a misspelled filename.

    • Issue: The code references experimental_data_Kofskey1972_1stage_interpolated.xlsx, but the actual file name is spelled with lower case "k". It is possible that the authors are using Windows, but they should note that Unix-based systems are case-sensitive.
  • I did not run the rest of the validation cases.

Request: Kindly double-check all provided examples to ensure they run without issues.


General Feedback on the Paper

  • The paper is well-written and maintains a clear and logical flow. The acknowledgment of existing open-source and proprietary alternatives is well done. However, the explanation of how this package differs from other open-source meanline solvers is a bit too general. Specifically, the differences between this package and Brind (2024) are not explicitly explained. Brind (2024) also provides a Python-based open-source meanline simulation package using an equation-oriented approach with design capabilities. It would be beneficial to include a clearer comparison between the two. What are the gaps in the previous package that are filled with the current development?

Additional Features

  1. Meridional Flow Contours

    • In meanline (1D) simulation workflows, it is often possible to extract contours of meridional flow. Is that feature available in this package? It would be interesting for users to see such results.
  2. CFD Simulation Curves

    • Such meanline simulations and design processes can always be a solid step before a full 3D CFD analysis. So, I was wondering if it is possible to extract the designed geometrical curves by turboflow for input to CFD mesh software (like TurboGrid), i.e., hub curve, shroud curve, and a number of blade profiles?

Final Thoughts

Overall, this package is a valuable addition to the open-source turbomachinery community. Addressing the above issues will enhance usability and clarity for new users. I will come back to the examples once we have resolved the issues.

@lasseband
Copy link

Hi @salehisaeed,

Thank you for reviewing our code and for your helpful comments. We have finally managed to address the identified issues, and our responses are provided below.

  • Suggestion: Avoid using spaces in file and folder names (for example in validation_cases and examples).
    • Folders and files are renamed to avoid any spaces.
  • Compressor example: The YAML configuration file does not seem to be read correctly. Possible missing information in the configuration file?
    • This issue arose because the PyPI release was not updated after the previous revision. The release is now updated, and the examples should work correctly.
  • Rest of examples: It seems to_console is no longer a valid argument in tf.create_logger().
    • This error comes from that the PyPI release was not updated after the previous revision. It is now updated, and the examples should work properly.
  • Validation case (Kofskey1972_one_stage): The case ran smoothly, but the plotting script failed due to a misspelled filename.
    • The filename is corrected.
  • Request: Kindly double-check all provided examples to ensure they run without issues
    • All examples have been double-checked and should now run without issues.
  • General Feedback on the Paper: The explanation of how this package differs from other open-source meanline solvers is a bit too general. Specifically, the differences between this package and Brind (2024) are not explicitly explained. Brind (2024) also provides a Python-based open-source meanline simulation package using an equation-oriented approach with design capabilities. It would be beneficial to include a clearer comparison between the two. What are the gaps in the previous package that are filled with the current development?
    • The section comparing TurboFlow with existing open-source software has been revised to provide a clearer explanation of how TurboFlow differs from other alternatives:

      The use of diverse programming languages, such as MATLAB and FORTRAN77, presents accessibility and compatibility issues. MATLAB-based models, such as those by [@genrup_reduced-order_2005] and [@agromayor_preliminary_2019], are proprietary, which limit their accessibility to those with MATLAB licenses. While legacy languages like FORTRAN77, as used by [@denton_multallopen_2017], might be more accessible, they fall short in terms of modern features and extensive community support. Consequently, models developed with these languages are less efficient to develop and less attractive to potential contributors, hampering development and collaboration. Furthermore, models adopting a sequential model formulation, solve sets of model equations sequentially through multiple nested iterations. This approach can lead to unreliable convergence and prolonged execution times due to the high number of model equations evaluations required. In contrast, an equation-oriented model formulation solves a larger set of equations simultaneously, enhancing reliability and computational efficiency. Lastly, existing models vary in functionality. The model from [@genrup_reduced-order_2005] is dedicated to performance analysis, whereas [@agromayor_preliminary_2019] focuses on design optimization. On the other hand, [@brind_data-driven_2024] and [@denton_multallopen_2017] employ an inverse design methodology, where the geometry is derived from specified performance parameters (e.g., flow coefficient, loading coefficient, degree of reaction), rendering them unsuitable for performance prediction for a given geometry. Consequently, no single open-source model currently provides a comprehensive solution that integrates both performance analysis and design optimization.

  • Additional Features: Meridional Flow Contours
    • A function for plotting the blade profile has been added to the package. This function utilizes B-splines to visualize the blade profile based on the geometrical variables available from the meanline analysis.
    • The plotting functionality has also been included in the tutorial section of the documentation.
  • Additional Features: CFD Simulation Curves
    • We agree that the ability to extract coordinates at the hub and shroud for CFD input would be a valuable addition. While we hope to implement this in the future, it will not be included in the JOSS publication.

@philipcardiff
Copy link

Hi @salehisaeed, do you have any comments on @lasseband 's reply above? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants