openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
695 stars 36 forks source link

[REVIEW]: NLMech: Implementation of finite difference/meshfreediscretization of nonlocal fracture models #3020

Closed whedon closed 2 years ago

whedon commented 3 years ago

Submitting author: @diehlpk (Patrick Diehl) Repository: https://github.com/nonlocalmodels/NLMech Version: v0.1.0 Editor: @Kevin-Mattheus-Moerman Reviewer: @vijaysm, @chennachaos Archive: 10.6084/m9.figshare.16688695.v1

:warning: JOSS reduced service mode :warning:

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

Status

status

Status badge code:

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

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

@vijaysm & @chennachaos, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @Kevin-Mattheus-Moerman 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

Review checklist for @vijaysm

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

Review checklist for @chennachaos

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

whedon commented 3 years ago

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @vijaysm, @chennachaos it looks like you're currently assigned to review this paper :tada:.

:warning: JOSS reduced service mode :warning:

Due to the challenges of the COVID-19 pandemic, JOSS is currently operating in a "reduced service mode". You can read more about what that means in our blog post.

:star: Important :star:

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

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

@whedon commands

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

@whedon generate pdf
whedon commented 3 years ago

PDF failed to compile for issue #3020 with the following error:

Can't find any papers to compile :-(

whedon commented 3 years ago
Software report (experimental):

github.com/AlDanial/cloc v 1.88  T=0.58 s (358.4 files/s, 60016.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                             56           2882           2883          11671
C/C++ Header                    74           2279           7950           4523
YAML                            31             16            257           1076
CMake                           24            133            202            320
Markdown                        11            114              0            186
XML                              5              0              0            147
GLSL                             1              0              0             47
Bourne Shell                     4             24             30             37
MATLAB                           1              6              7             24
Dockerfile                       1              5              4              4
-------------------------------------------------------------------------------
SUM:                           208           5459          11333          18035
-------------------------------------------------------------------------------

Statistical information for the repository '8350e4b6909c7ec26f580d63' was
gathered on 2021/02/08.
The following historical commit information, by author, was found:

Author                     Commits    Insertions      Deletions    % of changes
Patrick                         47          4404           2861            0.53
Patrick Diehl                   27          8794         638854           46.99
Prashant K. Jha                 46         18323           9250            2.00
Prashant Kumar Jha              56        675356          20302           50.48

Below are the number of rows from each author that have survived and are still
intact in the current revision:

Author                     Rows      Stability          Age       % in comments
Patrick                    2212           50.2          7.9               22.92
Patrick Diehl              5177           58.9         11.9               36.10
Prashant K. Jha           10779           58.8         12.4               32.80
Prashant Kumar Jha        14020            2.1         21.3               35.19
Kevin-Mattheus-Moerman commented 3 years ago

@whedon generate pdf from branch joss

whedon commented 3 years ago
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
Kevin-Mattheus-Moerman commented 3 years ago

@vijaysm, @chennachaos thanks again for your help. This is where this review will take place. Please post any questions comments for the author @diehlpk here.

whedon commented 3 years ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

vijaysm commented 3 years ago

@Kevin-Mattheus-Moerman I can't seem to edit the review checkbox items. Perhaps some permission issues ?

Kevin-Mattheus-Moerman commented 3 years ago

@whedon re-invite @vijaysm as reviewer

whedon commented 3 years ago

OK, the reviewer has been re-invited.

@vijaysm please accept the invite by clicking this link: https://github.com/openjournals/joss-reviews/invitations

Kevin-Mattheus-Moerman commented 3 years ago

@vijaysm this should work now, can you check?

vijaysm commented 3 years ago

Thanks for the re-invite @Kevin-Mattheus-Moerman I now have the permissions

whedon commented 3 years ago

:wave: @vijaysm, please update us on how your review is going (this is an automated reminder).

whedon commented 3 years ago

:wave: @chennachaos, please update us on how your review is going (this is an automated reminder).

Kevin-Mattheus-Moerman commented 3 years ago

@chennachaos @vijaysm I hope you are well. When you get a chance it would be great if you could update us on progress with this review. Thanks again for your help.

vijaysm commented 3 years ago

@Kevin-Mattheus-Moerman Got caught up with some things. I should be able to finish the review in the next two weeks.

chennachaos commented 3 years ago

Hi @Kevin-Mattheus-Moerman, I have started my review. Hope to complete it in a couple of weeks.

Kevin-Mattheus-Moerman commented 3 years ago

@vijaysm @chennachaos could you provide another update on review progress? I am just checking in, let me know if you need more time. Thanks

vijaysm commented 3 years ago

@Kevin-Mattheus-Moerman I should be able to complete the rest of the review by Monday.

Kevin-Mattheus-Moerman commented 3 years ago

Thanks for the update @vijaysm. @chennachaos could you also provide an update on where things stand? Thanks again for your help!!

chennachaos commented 3 years ago

Hi @Kevin-Mattheus-Moerman. Apologies for the delay. Been busy with the preparations for the final exams. I am afraid that I won't be able to do anything this week. I will try to resume the review next week.

vijaysm commented 3 years ago

@Kevin-Mattheus-Moerman I am in the process of trying to build and run the examples in the repo. Unfortunately, I ran into some snags in getting the TPLs to build properly in my docker environment. I didn't get enough time to dig deeper to resolve the issue yet. But I should be able to get around to all of that this week.

chennachaos commented 3 years ago

@whedon generate pdf from branch joss

whedon commented 3 years ago
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
whedon commented 3 years ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

chennachaos commented 3 years ago

Hi @diehlpk The software paper reads nicely. It requires the following minor modifications in the bibliography section. 1.) Add a link to the DOI of the master's thesis (Ref #2). 2.) Update reference 3 with the latest title and other details. 3.) Remove the duplicate entries.

diehlpk commented 3 years ago

@whedon commands

diehlpk commented 3 years ago

@whedon check references

diehlpk commented 3 years ago

@chennachaos Thanks, we will fix it by the end of the week.

diehlpk commented 3 years ago

@whedon check references

arfon commented 3 years ago

@whedon commands

whedon commented 3 years ago

Here are some things you can ask me to do:

# List all of Whedon's capabilities
@whedon commands

# Assign a GitHub user as the sole reviewer of this submission
@whedon assign @username as reviewer

# Add a GitHub user to the reviewers of this submission
@whedon add @username as reviewer

# Re-invite a reviewer (if they can't update checklists)
@whedon re-invite @username as reviewer

# Remove a GitHub user from the reviewers of this submission
@whedon remove @username as reviewer

# List of editor GitHub usernames
@whedon list editors

# List of reviewers together with programming language preferences and domain expertise
@whedon list reviewers

# Change editorial assignment
@whedon assign @username as editor

# Set the software archive DOI at the top of the issue e.g.
@whedon set 10.0000/zenodo.00000 as archive

# Set the software version at the top of the issue e.g.
@whedon set v1.0.1 as version

# Open the review issue
@whedon start review

EDITORIAL TASKS

# All commands can be run on a non-default branch, to do this pass a custom 
# branch name by following the command with `from branch custom-branch-name`.
# For example:

# Compile the paper
@whedon generate pdf

# Compile the paper from alternative branch
@whedon generate pdf from branch custom-branch-name

# Remind an author or reviewer to return to a review after a
# certain period of time (supported units days and weeks)
@whedon remind @reviewer in 2 weeks

# Ask Whedon to do a dry run of accepting the paper and depositing with Crossref
@whedon accept

# Ask Whedon to check the references for missing DOIs
@whedon check references

# Ask Whedon to check repository statistics for the submitted software
@whedon check repository

EiC TASKS

# Invite an editor to edit a submission (sending them an email)
@whedon invite @editor as editor

# Reject a paper
@whedon reject

# Withdraw a paper
@whedon withdraw

# Ask Whedon to actually accept the paper and deposit with Crossref
@whedon accept deposit=true
arfon commented 3 years ago

@whedon check references from branch joss

whedon commented 3 years ago
Attempting to check references... from custom branch joss
whedon commented 3 years ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.18419/opus-2879 is OK
- 10.1007/978-3-319-22977-5_33-1 is OK
- 10.21105/joss.02352 is OK
- 10.6084/m9.figshare.12320726.v1 is OK

MISSING DOIs

- 10.1137/17m1112236 may be a valid DOI for title: Numerical analysis of nonlocal fracture models in Holder space
- 10.1002/nme.2579 may be a valid DOI for title: Gmsh: A 3-D finite element mesh generator with built-in pre-and post-processing facilities
- 10.1016/j.cma.2019.03.024 may be a valid DOI for title: Numerical convergence of finite difference approximations for state based peridynamic fracture models
- 10.1007/s42102-019-00010-0 may be a valid DOI for title: Complex fracture nucleation and evolution with nonlocal elastodynamics
- 10.1007/s10659-018-9672-7 may be a valid DOI for title: Free damage propagation with memory
- 10.1007/s10704-020-00480-0 may be a valid DOI for title: Kinetic relations and local energy balance for LEFM from a nonlocal peridynamic model
- 10.2172/1226115 may be a valid DOI for title: Roadmap for peridynamic software implementation
- 10.1016/j.cpc.2008.06.011 may be a valid DOI for title: Implementing peridynamics within a molecular dynamics code
- 10.1016/j.ijimpeng.2016.09.003 may be a valid DOI for title: A 3D discontinuous Galerkin finite element method with the bond-based peridynamics model for dynamic brittle failure analysis
- 10.1016/j.camwa.2017.06.045 may be a valid DOI for title: OpenCL implementation of a high performance 3D Peridynamic model on graphics accelerators
- 10.1007/978-3-319-06898-5_5 may be a valid DOI for title: Efficient neighbor search for particle methods on GPUs
- 10.1007/s10659-013-9463-0 may be a valid DOI for title: Dynamic brittle fracture as a small horizon limit of peridynamics
- 10.1016/j.compstruc.2004.11.026 may be a valid DOI for title: A meshfree method based on the peridynamic model of solid mechanics
- 10.1109/hpcsim.2012.6266939 may be a valid DOI for title: High performance smart expression template math libraries
- 10.1007/s42102-018-0004-x may be a valid DOI for title: A review of benchmark experiments for the validation of peridynamics models
- 10.1007/s42452-020-03784-x may be a valid DOI for title: An asynchronous and task-based implementation of peridynamics utilizing HPX—the C++ standard library for parallelism and concurrency

INVALID DOIs

- None
diehlpk commented 3 years ago

@whedon check references from branch joss

whedon commented 3 years ago
Attempting to check references... from custom branch joss
whedon commented 3 years ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1137/17m1112236 is OK
- 10.1002/nme.2579 is OK
- 10.1016/j.cma.2019.03.024 is OK
- 10.1007/s42102-019-00010-0 is OK
- 10.1007/s10659-018-9672-7 is OK
- 10.1007/s10704-020-00480-0 is OK
- 10.2172/1226115 is OK
- 10.1016/j.cpc.2008.06.011 is OK
- 10.1016/j.ijimpeng.2016.09.003 is OK
- 10.1016/j.camwa.2017.06.045 is OK
- 10.18419/opus-2879 is OK
- 10.1007/978-3-319-06898-5_5 is OK
- 10.1007/s10659-007-9125-1 is OK
- 10.1007/s10659-013-9463-0 is OK
- 10.1007/s10659-015-9564-z is OK
- 10.1016/j.compstruc.2004.11.026 is OK
- 10.1007/978-3-319-22977-5_33-1 is OK
- 10.21105/joss.02352 is OK
- 10.1109/hpcsim.2012.6266939 is OK
- 10.1007/s42102-018-0004-x is OK
- 10.1007/s42452-020-03784-x is OK
- 10.6084/m9.figshare.12320726.v1 is OK

MISSING DOIs

- None

INVALID DOIs

- None
diehlpk commented 3 years ago

@whedon generate pdf from branch joss

whedon commented 3 years ago
Attempting PDF compilation from custom branch joss. Reticulating splines etc...
whedon commented 3 years ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

diehlpk commented 3 years ago

@chennachaos The references are fixed and all DOIs were added.

chennachaos commented 3 years ago

Hi @diehlpk. Thanks for fixing the issues with references.

After a careful look at the documentation, I have the following comments.

1.) Although the important details seem to be there, the documentation is spanned over two different websites. Installation instructions are in the new documentation and the examples and other details are in the old site. Some details are on both sites. I recommend combining these two.

2.) One of the links under "Please cite following publications, if you use the code" is broken.

3.) The installation instructions are quite clear. However, the functionality documentation is severely lacking. You need to add a page or two describing the fundamental equations that the library solves, and a brief overview of the method(s) used.

4.) The documentation contains some good numerical examples. But the description of these numerical examples needs improvement. For each example, add the problem background, the objective, problem setup and the parameters to be studied etc. Also, describe different figures presented in the results section of examples provided.

5.) Add one or two additional numerical examples with some plots comparing the results with reference values so that the reader gets a sense of accuracy right away.

6.) The examples provided at the moment are too simple. Please add some examples with complex geometries. Add at least one 3D example.

7.) Add documentation on preparing the input files in the .yml format, together with the explanations of different blocks and the parameters used in each block in the input file.

8.) Explain/discuss the details needed to run the parallel versions of examples.

9.) Based on the results provided in the paper, it looks like the code has so far been tested only on a small number of CPUs, a maximum of 8. Moreover, the parallel framework used is multi-threading. Could you please elaborate on the parallel framework adapted for this library, HPX, especially its suitability and scalability for distributed computing for simulating large-scale 3D problems? How easy, or difficult, it is to switch from multithreading parallelism to full distributed parallelism across multiple nodes using HPX?

diehlpk commented 3 years ago

@chennachaos Thanks for the remarks. We will respond to them in several comments.

diehlpk commented 3 years ago

9.) Based on the results provided in the paper, it looks like the code has so far been tested only on a small number of CPUs, a maximum of 8. Moreover, the parallel framework used is multi-threading. Could you please elaborate on the parallel framework adapted for this library, HPX, especially its suitability and scalability for distributed computing for simulating large-scale 3D problems? How easy, or difficult, it is to switch from multithreading parallelism to full distributed parallelism across multiple nodes using HPX?

Sure, we had some Google Summer of Code intern last summer, and he implemented a distributed version of the non-local diffusion, in a separate repo

https://github.com/nonlocalmodels/nonlocalheatequation

However, this code hast not the advanced functionality as NLMech. This work will be published this year in a IDPDS workshop proceeding and the preprint is available here

https://arxiv.org/abs/2102.03819

So, having a distributed version of NLMech is possible based on this previous work. As usual the developers have no funding to extend this code to a distributed version. Currently, we only have funding to work on the crack and fracture simulations, develop new models, and run simulations to validate some numerical analysis.

Having a distributed implementation in HPX is on our todo list and will hopefully have some funding soon.

We have our astrophysics code, Octo-Tiger and this code was used on ORNL's Summit, NERSC's Cori, SCSC Piz Daint, and various super computers running large scale simulations. If you like, I can post some references here as well.

diehlpk commented 3 years ago

6.) The examples provided at the moment are too simple. Please add some examples with complex geometries. Add at least one 3D example.

With respect to the complex geometry, the code's logo

https://raw.githubusercontent.com/nonlocalmodels/NLMech/main/assets/logo/logo_sim.png

geometry was used in these examples

and colorized with the obtained damage. The user can use gmsh to design complex geometries and just the msh file as an input.

If this geometry is not complex enough, what kind of geometry you have in mind?

With respect to the 3D example, this is once challenge for peridynamics, I recently submitted a review paper with the tittle "A comparative review of peridynamics and phase field models for engineering fracture mechanics" and here we identified that for both models 3D simulations are missing due to the computational expense of both methods.

https://engrxiv.org/gty2b/

I think due to the enormous amount of nodes required to obtain accurate results, the simulation would take too long on a single node. On the other hand the benefit of the code is to have the bond-based and state-based softening model implemented which have some numerical analysis properties other models do not have.

diehlpk commented 3 years ago

5.) Add one or two additional numerical examples with some plots comparing the results with reference values so that the reader gets a sense of accuracy right away.

We have several papers which we will mention in the documentation and make more clear where to find the accuracy results.

diehlpk commented 3 years ago

2.) One of the links under "Please cite following publications, if you use the code" is broken.

@chennachaos Could you please be more specific, I could not find the broken link.

diehlpk commented 3 years ago

8.) Explain/discuss the details needed to run the parallel versions of examples.

I added some explanation of the command line options to run the code in parallel here

https://github.com/nonlocalmodels/NLMech#running-nlmech

vijaysm commented 3 years ago

@Kevin-Mattheus-Moerman @diehlpk I was unwell the past two weeks. I'll finish the rest of the review this coming week.