Skip to content
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

[REVIEW]: TSE: A triple stellar evolution code #7102

Closed
editorialbot opened this issue Aug 14, 2024 · 76 comments
Closed

[REVIEW]: TSE: A triple stellar evolution code #7102

editorialbot opened this issue Aug 14, 2024 · 76 comments
Assignees
Labels
accepted Fortran published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 1 (AASS) Astronomy, Astrophysics, and Space Sciences

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Aug 14, 2024

Submitting author: @stegmaja (Jakob Stegmann)
Repository: https://github.com/stegmaja/TSE
Branch with paper.md (empty if default branch):
Version: v2.0.1
Editor: @warrickball
Reviewers: @rieder, @katiebreivik
Archive: 10.5281/zenodo.13925676

Status

status

Status badge code:

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

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

@rieder & @katiebreivik, 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 @warrickball 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 @rieder

📝 Checklist for @katiebreivik

@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.48550/arXiv.2405.02912 is OK
- 10.1093/mnras/stac2192 is OK
- 10.1103/PhysRevD.106.023014 is OK
- 10.1093/mnras/stab287 is OK
- 10.3847/1538-4357/ab8461 is OK
- 10.1093/mnras/sty2848 is OK
- 10.1093/mnras/sty1999 is OK
- 10.3847/1538-4357/aacea4 is OK
- 10.3847/1538-4365/aa6fb6 is OK
- 10.1186/s40668-016-0019-0 is OK
- 10.1146/annurev-astro-081915-023315 is OK
- 10.1093/mnras/stu2396 is OK
- 10.1126/science.1223344 is OK
- 10.1046/j.1365-8711.2002.05038.x is OK
- 10.1046/j.1365-8711.2000.03426.x is OK

MISSING DOIs

- No DOI given, and none found for title: TRES: TRiple Evolution Simulation package
- No DOI given, and none found for title: MOBSE: Massive Objects in Binary Stellar Evolution

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.90  T=0.05 s (848.5 files/s, 262602.2 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Fortran 77                      21             22           2558           5473
Python                           7            585            742           1618
Markdown                         3             99              0            359
TeX                              1             17              0            278
C/C++ Header                     2              1              0            258
Bourne Shell                     3              4              3             19
make                             1              4              0             17
YAML                             1              0              0             13
-------------------------------------------------------------------------------
SUM:                            39            732           3303           8035
-------------------------------------------------------------------------------

Commit count by author:

    93	Jakob Stegmann
    56	stegmaja
     5	Jordan Barber

@editorialbot
Copy link
Collaborator Author

Paper file info:

📄 Wordcount for paper.md is 576

✅ 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)

@rieder
Copy link

rieder commented Aug 14, 2024

Review checklist for @rieder

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/stegmaja/TSE?
  • 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 (@stegmaja) 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?

@editorialbot
Copy link
Collaborator Author

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

@warrickball
Copy link

Hi @katiebreivik & @rieder, and thanks again for agreeing to review (and so quickly!). This is the review thread for the paper. All of our correspondence will now happen here.

Please read the "Reviewer instructions & questions" in the first comment above, and generate your checklists by commenting @editorialbot generate my checklist on this issue. As you go over the submission, please check off any items that you feel have been satisfied. There are also links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. We aim to work with the authors to help them meet our criteria instead of merely passing judgement on the submission. We also encourage reviewers to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#7102 so that the issue/PR is linked to this thread. Please also feel free to comment and ask questions on this thread. JOSS editors have found it better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for the review process to be completed within about 4-6 weeks but start whenever you can. JOSS reviews are iterative and the authors can start responding while you continue to review other parts of the submission.

If it suits your workflow, you're welcome to assign yourself to this issue in the GitHub UI.

Finally, don't hesitate to ask any questions you might have about the process.

@rieder
Copy link

rieder commented Aug 14, 2024

Hi @stegmaja, thanks for submitting!
I have a few early, small notes after reading the pre-review and doing an initial installation/run myself, more later.

  • I also find Conda is not needed for the prerequisites, pip and a virtualenv would do just fine. Conda is a bit heavy as a prerequisite, so I would recommend just adding a requirements.txt for the required python packages (which can then be installed with pip install -r requirements.txt). In the README you could write that either a conda environment or a Python virtualenv (python -m venv ENVIRONMENTNAME) would work.

  • Having to run main.py from the ./src dir isn't great. Maybe you could have a tse.py script in a ./bin directory, which calls the main function. This would help with command line history for example.

  • I agree with @warrickball that it would be better to just check out the original source of MOBSE and apply a patch to it, it's best to avoid duplication.

@stegmaja
Copy link

Hi @rieder,

thank you very much for reviewing my code! I hope the number of headaches will be minimised!

I have quickly implemented the first two comments like you suggested. Indeed, I agree with you that pip install is actually the easiest. I will do the MOBSE patch ASAP.

Cheers!

@katiebreivik
Copy link

katiebreivik commented Aug 20, 2024

Review checklist for @katiebreivik

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/stegmaja/TSE?
  • 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 (@stegmaja) 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?

@warrickball
Copy link

Hi everyone! I'm just checking in on our progress here.

@stegmaja Did you make any progress with @rieder's initial comments?

@katiebreivik If you have any comments from any parts of the code and paper you have reviewed, we find it's better to post them immediately so the author can start addressing them while you have a look at other parts. You can review a few items at a time; JOSS doesn't expect monolithic reviews like mainstream journals.

@stegmaja
Copy link

stegmaja commented Sep 6, 2024

Dear @warrickball,

I have just returned from my paternal leave and will complete the initial comments early next week.

Best

Jakob

@stegmaja
Copy link

stegmaja commented Sep 9, 2024

Hi @rieder and @warrickball,

I have now addressed all your initial comments, i.e., I now also removed MOBSE from the directory but added a patch which updates the few changes files once a fresh version of MOBSE has been cloned. @warrickball Thanks for providing the steps on how to do that! All installation instructions in the Readme file have been updated accordingly.

Please let me know if there is anything else I can do at the moment.

Thank you!

@katiebreivik
Copy link

Hi @warrickball and @stegmaja! I'm sorry for being slow to the jump here! I've got a time set aside to dig into the review this coming Thursday/Friday afternoon.

@stegmaja
Copy link

Hi @warrickball,

I have reviewed contributions from different people to the code according to the JOSS's guidelines. Thus, I think Fabio Antonini should be included into the author list as he has been very active in shaping the "project direction and other forms of non-code contributions" including the physical recipe behind the code (https://joss.readthedocs.io/en/latest/submitting.html#authorship). Therefore, I have updated paper.md and moved him from the Acknowledgements section to the list of authors.

Best regards

Jakob

@warrickball
Copy link

@stegmaja, that's fine. Thanks for explaining the change.

@rieder Have you add a chance to review whether the changes address your remarks?

@katiebreivik Did you manage to get started? Feel free to post any initial comments you have that @stegmaja can get started on and don't worry if you don't review everything in one sweep.

@rieder
Copy link

rieder commented Sep 16, 2024

@warrickball they largely do, with a few minor issues remaining. I will write these up soon.

@katiebreivik
Copy link

katiebreivik commented Sep 23, 2024

Hi @warrickball, @stegmaja; again, I apologize for my long delay.

I have managed to download and install TSE based on the instructions, as well as read through the paper and found no problems with either of these. I do have some suggestions to consider on the documentation and testing side:

  • As far as I'm aware, all of the documentation exists in the README. I appreciate that the README contains subheadings, though I didn't immediately find them, so I'd first recommend a pointer to the subheadings.

  • Ideally, it would be great to see a built out set of examples that cover the many possible use cases for triple-star systems that are available from a code like TSE! This could be completed with readthedocs without too much fuss. At minimum though, I do think the following suggested changes to the README above will do the trick:

    • The statement of need is currently a bit jumbled with the discussion about MOBSE and it's implementation. A non-pop-synth oriented person maybe get lost within the first few sentences so I'd suggest a clear statement of need subheading that gives a shortened version of what is already in the paper. Then a dependency subheading for the MOBSE inclusion could follow.

    • The Running subheading needs some more context for what is being run with the python tse.py command. What should the user expect when they run the command? What does the script do without any extra command line prompts? This will then naturally lead to the second example propmt.

    • The Integration variables subsection could use more context. How do I access the y vector? Where is it stored?

    • Finally, I think an extra subheading that describes the output in a bit more detail (both the plotting and the stored data) would be helpful to a user. If you want to build a user base, I have found that examples for how to use the outputs is far and away the easiest way to reduce email overhead!

  • For testing: when I run the tests, I do not get similar expected behavior as what is shown in the README. The initial conditions start out ok, but then the output starts to differ significantly:

 Seed=139,
 Z=0.000100,
 m1=34.868610,
 m2=31.640159,
 m3=24.505861,
 a_in=4.320278e+04,
 e_in=0.041194,
 a_out=1.726712e+06,
 e_out=0.759993,
 cos_i_in=-0.668036,
 omega_in=1.832684,
 Omega_in=3.141593,
 cos_i_out=-0.164133,
 omega_out=6.104407,
 Omega_out=0.000000

Evolve inner binary as if it was isolated


      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000   45.47890   40.52460  1  1     8671.56836  0.74   0.002   0.002  INITIAL 
     4.8249   45.35591   40.44860  2  1     8691.67285  0.74   0.005   0.005  KW_CHNGE
     4.8294   45.35521   40.44833  4  1     8691.77148  0.74   0.030   0.005  KW_CHNGE
     8.1946   44.53437   40.45044  4  2     8723.55273  0.74   0.388   0.005  KW_CHNGE
     5.2000   44.51826   40.45155  4  4     8720.58008  0.74   0.389   0.024  KW_CHNGE
     5.2809   44.27627   40.45718  5  4     8673.60156  0.74   0.398   0.025  KW_CHNGE
     5.2848   44.26444   40.45819  5  4     3639.10889  0.13   1.002   0.059  BEG_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   1.002   0.059  COMENV  
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  END_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  BEG_SYMB
     5.7805   18.57213   14.68473 14  8       14.99385  0.31   0.000   0.220  KW_CHNGE
     5.7890   18.57242   14.17974 14 14       15.14433  0.30   0.000   0.000  KW_CHNGE
   703.7903   18.57242   14.17974 14 14        0.00019  0.00   1.033   0.892  BEG_RCHE
   703.7903   19.05963   32.75216 15 14        0.00000  0.00   0.000  -1.000  COELESCE
 15000.0000    0.00000   32.75216 15 14        0.00000 -1.00  -1.000   0.000  MAX_TIME
 
Evolve triple system

Evolve single stars (ignore entries for dummy secondary)


      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000   45.47890   40.52460  1  1     8671.56836  0.74   0.002   0.002  INITIAL 
     4.8249   45.35591   40.44860  2  1     8691.67285  0.74   0.005   0.005  KW_CHNGE
     4.8294   45.35521   40.44833  4  1     8691.77148  0.74   0.030   0.005  KW_CHNGE
     5.1946   44.53437   40.45044  4  2     8723.55273  0.74   0.388   0.005  KW_CHNGE
     5.2000   44.51826   40.45155  4  4     8720.58008  0.74   0.389   0.024  KW_CHNGE
     5.2809   44.27627   40.45718  5  4     8673.60156  0.74   0.398   0.025  KW_CHNGE
     5.2848   44.26444   40.45819  5  4     3639.10889  0.13   1.002   0.059  BEG_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   1.002   0.059  COMENV  
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  END_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  BEG_SYMB
     5.7805   18.57213   14.68473 14  8       14.99385  0.31   0.000   0.220  KW_CHNGE
     5.7890   18.57242   14.17974 14 14       15.14433  0.30   0.000   0.000  KW_CHNGE
   703.7903   18.57242   14.17974 14 14        0.00019  0.00   1.033   0.892  BEG_RCHE
   703.7903   19.05963   32.75216 15 14        0.00000  0.00   0.000  -1.000  COELESCE
 15000.0000    0.00000   32.75216 15 14        0.00000 -1.00  -1.000   0.000  MAX_TIME

      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000   45.47890   40.52460  1  1     8671.56836  0.74   0.002   0.002  INITIAL 
     4.8249   45.35591   40.44860  2  1     8691.67285  0.74   0.005   0.005  KW_CHNGE
     4.8294   45.35521   40.44833  4  1     8691.77148  0.74   0.030   0.005  KW_CHNGE
     5.1946   44.53437   40.45044  4  2     8723.55273  0.74   0.388   0.005  KW_CHNGE
     5.2000   44.51826   40.45155  4  4     8720.58008  0.74   0.389   0.024  KW_CHNGE
     5.2809   44.27627   40.45718  5  4     8673.60156  0.74   0.398   0.025  KW_CHNGE
     5.2848   44.26444   40.45819  5  4     3639.10889  0.13   1.002   0.059  BEG_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   1.002   0.059  COMENV  
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  END_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  BEG_SYMB
     5.7805   18.57213   14.68473 14  8       14.99385  0.31   0.000   0.220  KW_CHNGE
     5.7890   18.57242   14.17974 14 14       15.14433  0.30   0.000   0.000  KW_CHNGE
   703.7903   18.57242   14.17974 14 14        0.00019  0.00   1.033   0.892  BEG_RCHE
   703.7903   19.05963   32.75216 15 14        0.00000  0.00   0.000  -1.000  COELESCE
 15000.0000    0.00000   32.75216 15 14        0.00000 -1.00  -1.000   0.000  MAX_TIME

      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000   45.47890   40.52460  1  1     8671.56836  0.74   0.002   0.002  INITIAL 
     4.8249   45.35591   40.44860  2  1     8691.67285  0.74   0.005   0.005  KW_CHNGE
     4.8294   45.35521   40.44833  4  1     8691.77148  0.74   0.030   0.005  KW_CHNGE
     5.1946   44.53437   40.45044  4  2     8723.55273  0.74   0.388   0.005  KW_CHNGE
     5.2000   44.51826   40.45155  4  4     8720.58008  0.74   0.389   0.024  KW_CHNGE
     5.2809   44.27627   40.45718  5  4     8673.60156  0.74   0.398   0.025  KW_CHNGE
     5.2848   44.26444   40.45819  5  4     3639.10889  0.13   1.002   0.059  BEG_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   1.002   0.059  COMENV  
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  END_RCHE
     5.2848   18.55963   14.89280 14  7       14.92970  0.31   0.000   0.223  BEG_SYMB
     5.7805   18.57213   14.68473 14  8       14.99385  0.31   0.000   0.220  KW_CHNGE
     5.7890   18.57242   14.17974 14 14       15.14433  0.30   0.000   0.000  KW_CHNGE
   703.7903   18.57242   14.17974 14 14        0.00019  0.00   1.033   0.892  BEG_RCHE
   703.7903   19.05963   32.75216 15 14        0.00000  0.00   0.000  -1.000  COELESCE
 15000.0000    0.00000   32.75216 15 14        0.00000 -1.00  -1.000   0.000  MAX_TIME
/Users/kbreivik/Documents/Github/TSE/bin/../src/main.py:982: RuntimeWarning: invalid value encountered in sqrt
  yp[7:10] += 3./4./tLK/np.sqrt(1-e**2)*L1/L2*(dot(jv,Jv/J)*cross(Ev,jv)-5.*dot(ev,Jv/J)*cross(Ev,ev)-(1/2-3*e**2+25/2*dot(ev,Jv/J)**2-5/2*dot(jv,Jv/J)**2)*cross(Jv/J,Ev))
/Users/kbreivik/Documents/Github/TSE/bin/../src/main.py:1009: RuntimeWarning: invalid value encountered in scalar power
  yp[0:3] += -304.*ev*G**3*m1*m2*m12*(1.+121.*e**2/304.)/15./c**5/a**4/(1.-e**2)**2.5
/Users/kbreivik/Documents/Github/TSE/bin/../src/main.py:1010: RuntimeWarning: invalid value encountered in scalar power
  yp[3:6] +=  304.*e *G**3*m1*m2*m12*(1.+121.*e**2/304.)/15./c**5/a**4/(1.-e**2)**2.5*e/np.sqrt(1-e**2)*jv/j
/Users/kbreivik/Documents/Github/TSE/bin/../src/main.py:1010: RuntimeWarning: invalid value encountered in sqrt
  yp[3:6] +=  304.*e *G**3*m1*m2*m12*(1.+121.*e**2/304.)/15./c**5/a**4/(1.-e**2)**2.5*e/np.sqrt(1-e**2)*jv/j
/Users/kbreivik/Documents/Github/TSE/bin/../src/main.py:1011: RuntimeWarning: invalid value encountered in scalar power
  yp[6]   += -64.*G**3*m1*m2*m12*(1.+73.*e**2/24.+37.*e**4/96.)/5./c**5/a**3/(1.-e**2)**3.5
/Users/kbreivik/Documents/Github/TSE/bin/../src/spinevolution.py:89: RuntimeWarning: invalid value encountered in sqrt
  h1 = mu1*np.sqrt(G*m12*a)*np.sqrt(1-e**2)
/Users/kbreivik/Documents/Github/TSE/bin/../src/common.py:13: RuntimeWarning: invalid value encountered in scalar power
  return (1-e**2)**(-13/2)*(1+15/4*e**2+15/8*e**4+5/64*e**6)
/Users/kbreivik/Documents/Github/TSE/bin/../src/common.py:22: RuntimeWarning: invalid value encountered in scalar power
  return (1-e**2)**(-13/2)*(1+15/2*e**2+45/8*e**4+5/16*e**6)
A termination event occured.

Primary supernova at 8.71782017
Plotting...
Plot saved as ./../plots/139_00001.png
Inner orbit gets unbound.

Is it expected that I should see the same binary output repeated three times? Should a user expect to see RuntimeWarning's every so often? If the answer to either of these is yes, then I think a discussion of those cases is necessary.

  • Is it possible to have tests that implement random seeds such that you can show a simple test case that the user can use to verify that the code is indeed working exactly as expected? This would fix the potential issues above.

  • Is there functionality that is not discussed in the README? Without combing through the code, I'm finding this difficult to determine whether the functionality description is checked off; this would be solved with a readthedocs automatic API generator (though I again acknowledge that this may not be possible to implement on short timescales).

  • Lastly: community guidelines are missing and should be implemented as described in the above checklist.

@stegmaja
Copy link

Hi @katiebreivik

thanks a lot for your thorough comments! I am about to address them shortly, but can you already tell me which python version you use? We had this issue you encountered when testing the code once when we did not use python3... so I just want to double-check that this is not the origin of the bug. I have tested on a couple of different machines now, and all yielded the output as in the Readme.md when using version 3.

Thanks!

@katiebreivik
Copy link

Hey @stegmaja; yes sorry for not adding in my Python setup before!

I've just done a git pull, a fresh install, and am running on:
Python=3.10.11
Numpy=2.1.1
gcc=Apple clang version 14.0.3

After running python tse.py, this is my new output:

 Seed=42,
 Z=0.020000,
 m1=1.000000,
 m2=1.000000,
 m3=1.000000,
 a_in=2.000000e+03,
 e_in=0.100000,
 a_out=2.000000e+05,
 e_out=0.500000,
 cos_i_in=1.000000,
 omega_in=0.000000,
 Omega_in=3.141593,
 cos_i_out=1.000000,
 omega_out=0.000000,
 Omega_out=0.000000

Evolve inner binary as if it was isolated


      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000    1.00000    1.00000  1  1     1999.29749  0.10   0.001   0.001  INITIAL 
 11003.1299    1.00000    1.00000  2  2     1999.29749  0.10   0.002   0.002  KW_CHNGE
 11582.7891    0.99950    0.99950  3  3     2000.30688  0.10   0.003   0.003  KW_CHNGE
 12326.2852    0.76762    0.76762  4  4     2554.03711  0.10   0.011   0.011  KW_CHNGE
 12458.6348    0.72896    0.72896  5  5     2689.27075  0.10   0.023   0.023  KW_CHNGE
 12463.2559    0.65241    0.65241  6  6     2978.98755  0.10   0.202   0.202  KW_CHNGE
 12463.5068    0.52097    0.52097 11 11     3636.76392  0.10   0.000   0.000  KW_CHNGE
 15000.0000    0.52097    0.52097 11 11     3636.76392  0.10   0.000   0.000  MAX_TIME
 Fallback:   0.0000000000000000     
 
Evolve triple system

Evolve single stars (ignore entries for dummy secondary)


      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000    1.00000    0.00100  1 14 19532744.00000  0.00   0.000   0.000  INITIAL 
 11003.1299    1.00000    0.00100  2 14 19532744.00000  0.00   0.000   0.000  KW_CHNGE
 11582.7891    0.99950    0.00100  3 14 19542596.00000  0.00   0.000   0.000  KW_CHNGE
 12326.2852    0.76329    0.00100  4 14 25582410.00000  0.00   0.000   0.000  KW_CHNGE
 12458.6924    0.72467    0.00100  5 14 26943640.00000  0.00   0.000   0.000  KW_CHNGE
 12463.3184    0.64646    0.00100  6 14 30198356.00000  0.00   0.000   0.000  KW_CHNGE
 12463.5664    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  KW_CHNGE
 15000.0000    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  MAX_TIME
 Fallback:   0.0000000000000000     

      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000    1.00000    0.00100  1 14 19532744.00000  0.00   0.000   0.000  INITIAL 
 11003.1299    1.00000    0.00100  2 14 19532744.00000  0.00   0.000   0.000  KW_CHNGE
 11582.7891    0.99950    0.00100  3 14 19542596.00000  0.00   0.000   0.000  KW_CHNGE
 12326.2852    0.76329    0.00100  4 14 25582410.00000  0.00   0.000   0.000  KW_CHNGE
 12458.6924    0.72467    0.00100  5 14 26943640.00000  0.00   0.000   0.000  KW_CHNGE
 12463.3184    0.64646    0.00100  6 14 30198356.00000  0.00   0.000   0.000  KW_CHNGE
 12463.5664    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  KW_CHNGE
 15000.0000    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  MAX_TIME
 Fallback:   0.0000000000000000     

      TIME      M1       M2   K1 K2        SEP    ECC  R1/ROL1 R2/ROL2  TYPE
     0.0000    1.00000    0.00100  1 14 19532744.00000  0.00   0.000   0.000  INITIAL 
 11003.1299    1.00000    0.00100  2 14 19532744.00000  0.00   0.000   0.000  KW_CHNGE
 11582.7891    0.99950    0.00100  3 14 19542596.00000  0.00   0.000   0.000  KW_CHNGE
 12326.2852    0.76329    0.00100  4 14 25582410.00000  0.00   0.000   0.000  KW_CHNGE
 12458.6924    0.72467    0.00100  5 14 26943640.00000  0.00   0.000   0.000  KW_CHNGE
 12463.3184    0.64646    0.00100  6 14 30198356.00000  0.00   0.000   0.000  KW_CHNGE
 12463.5664    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  KW_CHNGE
 15000.0000    0.52080    0.00100 11 14 37471244.00000  0.00   0.000   0.000  MAX_TIME
 Fallback:   0.0000000000000000     
The solver successfully reached the end of the integration interval.
Plotting...
Plot saved as ./../plots/42_002.png

I think this is correct; if I run with the commands from the newly updated README, I also now get the same output. I'm not sure how exactly this works since the git pull appeared to only update the README/paper text/images.

All that's to say, I think that we are in the clear now (and I'm a bit flummoxed as to why I was getting the previous errors :-/ ).

I will take a careful look at the updated text by the end of the week to wrap up any other suggestions/checks!

@stegmaja
Copy link

Hi @katiebreivik,

Although I am also slightly confused too why it works now since only README/paper and text/images seem to be updated, it is good that the code correctly recovers the example. Also thanks again for your comments. I hope I have addressed them by extending the Readme.md and paper/paper.md files. This should provide a more detailed explanation about the basic mechanism of the code, its data products, community guidelines, integration variables, and potential use cases. I do agree that having a full readthedocs documentation would be ideal and I will consider it in the future! Since I only had (very good) experiences with it as a user so far, I first have to look into its implementation though.

Let me know if you are happy with the latest changes and if there is anything else!

Thanks

Jakob

@katiebreivik
Copy link

Hi @stegmaja, @warrickball -- I've reviewed the updated text changes and am pleased to sign off on the review. All of my review boxes are now checked!

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

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

✅ OK DOIs

- 10.3847/2041-8213/ad70bb is OK
- 10.1093/mnras/stac2192 is OK
- 10.1103/PhysRevD.106.023014 is OK
- 10.1093/mnras/stab287 is OK
- 10.3847/1538-4357/ab8461 is OK
- 10.1093/mnras/stx2933 is OK
- 10.1093/mnras/sty1999 is OK
- 10.3847/1538-4357/aacea4 is OK
- 10.3847/1538-4365/aa6fb6 is OK
- 10.1186/s40668-016-0019-0 is OK
- 10.1146/annurev-astro-081915-023315 is OK
- 10.1093/mnras/stu2396 is OK
- 10.1126/science.1223344 is OK
- 10.1046/j.1365-8711.2002.05038.x is OK
- 10.1046/j.1365-8711.2000.03426.x is OK

🟡 SKIP DOIs

- None

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/aass-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#6030, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@editorialbot editorialbot added the recommend-accept Papers recommended for acceptance in JOSS. label Oct 21, 2024
@warrickball
Copy link

I've now put my AEiC hat on and am proceeding towards publication. I've ticked off a few things already but will give the paper a final closer check in the next day or two. Nearly there!

@warrickball
Copy link

I've opened one more pull request with some final changes. Once this is merged, we should be able to publish after a second dry run.

@stegmaja
Copy link

Hi @warrickball

This looks good to me and I just accepted the pull request.

Thanks!

@warrickball
Copy link

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

Checking the BibTeX entries failed with the following error:

Lexical or syntactical errors: 

@article{Hamers:2021author={{Hamers}, Adrian S. and {Rantala}, Antti and {Neunteufel}, Patrick and {Preece}, Holly and {Vynatheya}, Pavan},title={Multiple Stellar Evolution: a population synthesis algorithm to model the stellar, binary, and dynamical evolution of multiple-star systems}, journal = {Monthly Notices of the Royal Astronomical Society}, keywords = {gravitation, methods: statistical, planets and satellites: dynamical evolution and stability, binaries: general, stars: evolution, stars: kinematics and dynamics, Astrophysics - Solar and Stellar Astrophysics, Astrophysics - High Energy Astrophysical Phenomena}, year = 2021, month = apr, volume = {502}, number = {3}, pages = {4479-4512}, doi = {10.1093/mnras/stab287}, archivePrefix = {arXiv}, eprint = {2011.04513}, primaryClass = {astro-ph.SR}, adsurl = {https://ui.adsabs.harvard.edu/abs/2021MNRAS.502.4479H}, adsnote = {Provided by the SAO/NASA Astrophysics Data System} }

@editorialbot
Copy link
Collaborator Author

⚠️ Error preparing paper acceptance.

@warrickball
Copy link

Ah, @stegmaja, the line in the BibTeX file with that title (Multiple Stellar Evolution: ...) has a trailing quotation that should be removed. Do you want to go ahead and make that change?

I apologise for pushing with that error. I'm not sure why I didn't catch it locally...

@warrickball
Copy link

I went ahead and created a PR after I introduced the error above. I think I've correctly run it locally this time, too...

@stegmaja
Copy link

Done! Thank you @warrickball

@warrickball
Copy link

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

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

✅ OK DOIs

- 10.3847/2041-8213/ad70bb is OK
- 10.1093/mnras/stac2192 is OK
- 10.1103/PhysRevD.106.023014 is OK
- 10.1093/mnras/stab287 is OK
- 10.3847/1538-4357/ab8461 is OK
- 10.1093/mnras/stx2933 is OK
- 10.1093/mnras/sty1999 is OK
- 10.3847/1538-4357/aacea4 is OK
- 10.3847/1538-4365/aa6fb6 is OK
- 10.1186/s40668-016-0019-0 is OK
- 10.1146/annurev-astro-081915-023315 is OK
- 10.1093/mnras/stu2396 is OK
- 10.1126/science.1223344 is OK
- 10.1046/j.1365-8711.2002.05038.x is OK
- 10.1046/j.1365-8711.2000.03426.x is OK

🟡 SKIP DOIs

- None

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/aass-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#6053, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@warrickball
Copy link

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

Doing it live! Attempting automated processing of paper acceptance...

@editorialbot
Copy link
Collaborator Author

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

cff-version: "1.2.0"
authors:
- family-names: Stegmann
  given-names: Jakob
  orcid: "https://orcid.org/0000-0003-2340-8140"
- family-names: Antonini
  given-names: Fabio
  orcid: "https://orcid.org/0000-0003-3138-6199"
doi: 10.5281/zenodo.13925676
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Stegmann
    given-names: Jakob
    orcid: "https://orcid.org/0000-0003-2340-8140"
  - family-names: Antonini
    given-names: Fabio
    orcid: "https://orcid.org/0000-0003-3138-6199"
  date-published: 2024-10-24
  doi: 10.21105/joss.07102
  issn: 2475-9066
  issue: 102
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 7102
  title: "TSE: A triple stellar evolution code"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.07102"
  volume: 9
title: "TSE: A triple stellar evolution code"

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

@editorialbot
Copy link
Collaborator Author

🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘

@editorialbot
Copy link
Collaborator Author

🦋🦋🦋 👉 Bluesky post for this paper 👈 🦋🦋🦋

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 Creating pull request for 10.21105.joss.07102 joss-papers#6054
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.07102
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? Notify your editorial technical team...

@editorialbot editorialbot added accepted published Papers published in JOSS labels Oct 24, 2024
@warrickball
Copy link

Thanks once again to @rieder & @katiebreivik for reviewing this submission! JOSS simply wouldn't be possible without its community of volunteers.

Congratulations @stegmaja, your paper has been published in JOSS!

@editorialbot
Copy link
Collaborator Author

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following

code snippets

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.07102/status.svg)](https://doi.org/10.21105/joss.07102)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.07102">
  <img src="https://joss.theoj.org/papers/10.21105/joss.07102/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.07102/status.svg
   :target: https://doi.org/10.21105/joss.07102

This is how it will look in your documentation:

DOI

We need your help!

The Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Fortran published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 1 (AASS) Astronomy, Astrophysics, and Space Sciences
Projects
None yet
Development

No branches or pull requests

5 participants