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

[PRE REVIEW]: MOLE: Mimetic Operators Library Enhanced #6005

Closed
editorialbot opened this issue Nov 1, 2023 · 42 comments
Closed

[PRE REVIEW]: MOLE: Mimetic Operators Library Enhanced #6005

editorialbot opened this issue Nov 1, 2023 · 42 comments
Assignees
Labels
Makefile Matlab pre-review TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Nov 1, 2023

Submitting author: @jcorbino (Johnny Corbino)
Repository: https://github.com/jcorbino/mole
Branch with paper.md (empty if default branch):
Version: v3.0
Editor: @jedbrown
Reviewers: @jakelangham, @victorapm
Managing EiC: Daniel S. Katz

Status

status

Status badge code:

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

Author instructions

Thanks for submitting your paper to JOSS @jcorbino. Currently, there isn't a JOSS editor assigned to your paper.

@jcorbino if you have any suggestions for potential reviewers then please mention them here in this thread (without tagging them with an @). You can search the list of people that have already agreed to review and may be suitable for this submission.

Editor instructions

The JOSS submission bot @editorialbot is here to help you find and assign reviewers and start the main review. To find out what @editorialbot can do for you type:

@editorialbot commands
@editorialbot editorialbot added pre-review Track: 7 (CSISM) Computer science, Information Science, and Mathematics labels Nov 1, 2023
@editorialbot
Copy link
Collaborator Author

Hello human, 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

Software report:

github.com/AlDanial/cloc v 1.88  T=0.13 s (1607.5 files/s, 90769.9 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
HTML                            52            378            145           3778
MATLAB                         115            845            866           3033
C++                             14            180            122            830
PHP                              1             14             26            289
Markdown                         7             98              0            183
TeX                              1             16              0            177
JSON                             1              0              0            174
C/C++ Header                     8             43             23            128
make                             4             44             32             95
CSS                              1             13              0             77
YAML                             3              9             29             60
ProGuard                         1              8              5             25
-------------------------------------------------------------------------------
SUM:                           208           1648           1248           8849
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1016/j.cam.2019.06.042 is OK
- 10.1080/21681163.2021.1914733 is OK
- 10.1016/j.procs.2013.05.210 is OK
- 10.1190/geo2013-0371.1 is OK
- 10.1111/j.1365-246X.2007.03651.x is OK
- 10.1201/b14575 is OK
- 10.1137/S0895479801398025 is OK
- 10.21105/joss.00026 is OK
- 10.1016/j.cam.2013.12.046 is OK
- 10.1590/S1807-03022011000300012 is OK
- 10.1016/j.compfluid.2020.104746 is OK
- 10.5206/mase/10874 is OK
- 10.1016/j.compfluid.2023.105817 is OK
- 10.13140/RG.2.2.31741.95204 is OK
- 10.13140/RG.2.2.19919.25767 is OK
- 10.13140/RG.2.2.26630.14400 is OK
- 10.13140/RG.2.2.28307.86561 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 1015

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

Five most similar historical JOSS papers:

libCEED: Fast algebra for high-order element-based discretizations
Submitting author: @jedbrown
Handling editor: @diehlpk (Active)
Reviewers: @thelfer, @FreddieWitherden,
Similarity score: 0.8237

KMC_Lattice v2.0: An Object-Oriented C\texttt{++} Library for Custom Kinetic Monte Carlo Simulations
Submitting author: @MikeHeiber
Handling editor: @katyhuff (Retired)
Reviewers: @myousefi2016, @mdoucet
Similarity score: 0.8144

MUQ: The MIT Uncertainty Quantification Library
Submitting author: @mparno
Handling editor: @pdebuyl (Active)
Reviewers: @martinmodrak, @georgiastuart
Similarity score: 0.8139

Castor: A C++ library to code "à la Matlab"
Submitting author: @matthieuaussal
Handling editor: @jbytecode (Active)
Reviewers: @mkitti, @pitsianis
Similarity score: 0.8135

Armadillo: a template-based C++ library for linear algebra
Submitting author: @conradsnicta
Handling editor: @arfon (Active)
Reviewers: @wrathematics
Similarity score: 0.8059

⚠️ Note to editors: If these papers look like they might be a good match, click through to the review issue for that paper and invite one or more of the authors before before considering asking the reviewers of these papers to review again for JOSS.

@danielskatz
Copy link

danielskatz commented Nov 1, 2023

@jcorbino - thanks for your submission. I see a couple of issues:

  1. Please follow the example paper and see how to better indicate multiple references at a given point: e.g., [@author1:2001; @author2:2001]

  2. the JOSS reference check that is part of starting a new pre-review didn't happen for some reason. I'm going to try to make it happen manually.

Commands that may be helpful to you going forward are:

  • @editorialbot check references to check references
  • @editorialbot generate pdf to make a new PDF

editorialbot commands need to be the first entry in a new comment.

@danielskatz
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/j.cam.2019.06.042 is OK
- 10.1080/21681163.2021.1914733 is OK
- 10.1016/j.procs.2013.05.210 is OK
- 10.1190/geo2013-0371.1 is OK
- 10.1111/j.1365-246X.2007.03651.x is OK
- 10.1201/b14575 is OK
- 10.1137/S0895479801398025 is OK
- 10.21105/joss.00026 is OK
- 10.1016/j.cam.2013.12.046 is OK
- 10.1590/S1807-03022011000300012 is OK
- 10.1016/j.compfluid.2020.104746 is OK
- 10.5206/mase/10874 is OK
- 10.1016/j.compfluid.2023.105817 is OK
- 10.13140/RG.2.2.31741.95204 is OK
- 10.13140/RG.2.2.19919.25767 is OK
- 10.13140/RG.2.2.26630.14400 is OK
- 10.13140/RG.2.2.28307.86561 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@danielskatz
Copy link

Ok, that time it worked, and there aren't any issues with the references. (Unless this is the delayed output from the automated one, and another will happen shortly based on my command.)

@danielskatz
Copy link

While you fix the multiple references in the .md file and generate a new PDF, I will start looking for an editor.

@danielskatz
Copy link

👋 @jedbrown - Would you be willing to edit this submission?

@danielskatz
Copy link

@editorialbot invite @jedbrown as editor

@editorialbot
Copy link
Collaborator Author

Invitation to edit this submission sent!

@jcorbino
Copy link

jcorbino commented Nov 1, 2023

@editorialbot check references

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1016/j.cam.2019.06.042 is OK
- 10.1080/21681163.2021.1914733 is OK
- 10.1016/j.procs.2013.05.210 is OK
- 10.1190/geo2013-0371.1 is OK
- 10.1111/j.1365-246X.2007.03651.x is OK
- 10.1201/b14575 is OK
- 10.1137/S0895479801398025 is OK
- 10.21105/joss.00026 is OK
- 10.1016/j.cam.2013.12.046 is OK
- 10.1590/S1807-03022011000300012 is OK
- 10.1016/j.compfluid.2020.104746 is OK
- 10.5206/mase/10874 is OK
- 10.1016/j.compfluid.2023.105817 is OK
- 10.13140/RG.2.2.31741.95204 is OK
- 10.13140/RG.2.2.19919.25767 is OK
- 10.13140/RG.2.2.26630.14400 is OK
- 10.13140/RG.2.2.28307.86561 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@jcorbino
Copy link

jcorbino commented Nov 1, 2023

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

Five most similar historical JOSS papers:

libCEED: Fast algebra for high-order element-based discretizations
Submitting author: @jedbrown
Handling editor: @diehlpk (Active)
Reviewers: @thelfer, @FreddieWitherden,
Similarity score: 0.8209

KMC_Lattice v2.0: An Object-Oriented C\texttt{++} Library for Custom Kinetic Monte Carlo Simulations
Submitting author: @MikeHeiber
Handling editor: @katyhuff (Retired)
Reviewers: @myousefi2016, @mdoucet
Similarity score: 0.8133

MUQ: The MIT Uncertainty Quantification Library
Submitting author: @mparno
Handling editor: @pdebuyl (Active)
Reviewers: @martinmodrak, @georgiastuart
Similarity score: 0.8128

Castor: A C++ library to code "à la Matlab"
Submitting author: @matthieuaussal
Handling editor: @jbytecode (Active)
Reviewers: @mkitti, @pitsianis
Similarity score: 0.8099

MatDL: A Lightweight Deep Learning Library in MATLAB
Submitting author: @haythamfayek
Handling editor: @cMadan (Active)
Reviewers: @nirum
Similarity score: 0.8044

⚠️ Note to editors: If these papers look like they might be a good match, click through to the review issue for that paper and invite one or more of the authors before before considering asking the reviewers of these papers to review again for JOSS.

@jcorbino
Copy link

jcorbino commented Nov 1, 2023

@editorialbot commands

@editorialbot
Copy link
Collaborator Author

Hello @jcorbino, here are the things you can ask me to do:


# List all available commands
@editorialbot commands

# Get a list of all editors's GitHub handles
@editorialbot list editors

# Check the references of the paper for missing DOIs
@editorialbot check references

# Perform checks on the repository
@editorialbot check repository

# Adds a checklist for the reviewer using this command
@editorialbot generate my checklist

# Set a value for branch
@editorialbot set joss-paper as branch

# Generates the pdf paper
@editorialbot generate pdf

# Generates a LaTeX preprint file
@editorialbot generate preprint

# Get a link to the complete list of reviewers
@editorialbot list reviewers

@jcorbino
Copy link

jcorbino commented Nov 1, 2023

@danielskatz

Potential reviewers: jhabriel, Akaawase, lucaferranti

@danielskatz
Copy link

Thanks @jcorbino - the editor will decide on reviewers.

@jcorbino
Copy link

jcorbino commented Nov 2, 2023

@mdumett here's where the reviewing process will take place.

@danielskatz
Copy link

👋 @jedbrown - a ping to see if you would be able to edit this, as previously invited

@jedbrown
Copy link
Member

jedbrown commented Nov 9, 2023

@editorialbot assign @jedbrown as editor

@editorialbot
Copy link
Collaborator Author

Assigned! @jedbrown is now the editor

@jedbrown
Copy link
Member

jedbrown commented Nov 9, 2023

Hi, @jcorbino! It looks like there have been a lot of improvements since this was previously reviewed. Before we get reviewers, I notice a few things in my pre-review scan. Addressing these now will give reviewers a much better experience and should lead to a faster review.

  1. Asking users to modify absolute paths in makefiles is pretty rough in 2023. There are currently five makefiles that hard-code a path for ARMA and they use three different paths on the author's computer. Meanwhile, many users will apt install libarmadillo-dev or similar and would prefer to use that. If you don't want a "configure" step, I would leave the variable empty and use $(if $(ARMA),-L$(ARMA)/lib) so the library flag is only added when specified by the user. This way make should work with no makefile modification when armadillo is installed to a system location and make ARMA=/path/to/armadillo can be used otherwise.
  2. The paper says the examples include Navier-Stokes, but no such example is in the repository.
  3. The paper should discuss related methods such as FEEC that also satisfy a discrete de Rham complex (and may be algebraically equivalent in some cases).
  4. The build also depends on OpenBLAS, but this is not documented. If you don't need the specific features of OpenBLAS, I would suggest linking -llapack -lblas. Flags for a different implementation can be chosen by a make variable passed on the command line.
  5. Amanzi-ATS is an example of a production open source solver based on MFD methods.
  6. I can't tell from the documentation whether MOLE supports a consistent discretization of tensor diffusivity on non-K-orthogonal grids. This is one of the unique value propositions of MFD, and the reason it is used in Amanzi-ATS (while most subsurface flow packages use two-point flux methods, despite their inconsistency).
  7. I haven't finished the install yet, but I recall last time noticing the disturbing property that elliptic1D produced a nonsymmetric indefinite matrix with complex eigenvalues. Is that still the case or has that been resolved?
  8. The advection examples seem to use forward Euler and leapfrog on a uniform grid with CFL exactly 1, which is sort of cheating because naive upwinding is exact. Could you use a non-uniform mesh or other slightly more discerning setup?
  9. Are there any convergence tests or examples that would demonstrate the advantage of MFD over standard discretizations?

@jcorbino
Copy link

Thank you @jedbrown for the quick feedback! Here are our answers to your questions:

  1. Suggestion was incorporated.

  2. As you pointed out, there’s no example with a filename “Navier-Stokes.m” or similar, yet Navier-Stokes equations are solved in lock_exchange.m, which solves a Lock-exchange problem for a Boussinesq fluid. In this article (referenced in the draft), MOLE is used to solve NS in various scenarios.

  3. This article focuses on the open-source library that implements mimetic operators as defined in the work of Corbino and Castillo (2020). The scope of this article is limited to the discussion of the mentioned library, and it does not delve into alternative methods or their efficacy.

Our paper deals with the implementation of a computational library for MD. From the current draft:

“The mathematics are based on the work of (Corbino & Castillo, 2020).”

“A previous library (Sanchez et al., 2014) was developed to implement the mimetic operators
presented in (J. E. Castillo & Grone, 2006). This library was only capable of handling dense matrices so it was limited to solving small problems hence its development was stopped. MOLE implements the operators presented in the Corbino and Castillo paper (Corbino & Castillo, 2020).”

“MOLE was designed to be an intuitive software package to construct mimetic operators based on (Corbino & Castillo, 2020) method.”

“For an overview of mimetic methods of different types, see the book by Castillo and Miranda and the references therein (José E. Castillo & Miranda, 2013).”

Furthermore, here is a link to a technical report where different mimetic methods are discussed.

  1. Suggestion was incorporated. We have updated our installation documentation to clarify that OpenBLAS is required.

  2. Indeed, the Amanzi-ATS library is based on MFD. However, MOLE is developed for MD. MOLE is a tool that accelerates the implementation of numerical solutions of PDEs with MD discrete analogs. This paper is not about comparing the different mimetic methods. It is about giving access to researchers to a library that implements MD operators.

  3. Currently, MOLE provides the user with mimetic operators designed for PDEs expressed through gradient, curl, divergence, and Laplacian operations. However, in an upcoming release, we will introduce a user-friendly mechanism for supplying a tensor, incorporating information such as anisotropy.

  4. From finite difference discretization of the Laplacian, one expects negative eigenvalues. For MD, the 1D Laplacian is computed at the cell centers and not at the nodes, like MFD. The MD 1D Laplacian (L), for m cells, is a product of the divergence (D) and the gradient (G). If one computes the eigenvalues of L by eig(full(lap(k,m >= 2k+1,1))), k = 2,4,6,8, one gets m negative eigenvalues together with two zero eigenvalues. The two zero eigenvalues come from the first and last zero rows of the divergence operator (since the divergence has a coordinate-free meaning that requires a neighborhood around a point, there is no sense in computing divergence at the boundaries), and since boundary points are not centers they should be discarded.

On the other hand, Laplace discretizations do not need to be symmetric. For example, consider the case of a Laplacian on a hexagonal mesh computed by Hirani's discrete exterior calculus. In that case the Laplacian of 0-form f at a vertex v0 is given by (1/h^2) (4/3 f(v1) + 4/3 f(v2) + 4/3 f(v3) - 4 f(v0)), where v1, v2, v3 are the simplicial complex formed from the "stencil" consisting of the Voronoi dual mesh associated to v0.

  1. The main point of the examples (particularly the 1D hyperbolic) is to show the user how to ask the library for the mimetic operators (as defined in Corbino & Castillo, 2020) and how to apply them to a field (scalar or vectorial).

  2. As mentioned in the introductory paragraphs, this work is not about MFD. One can find an example with theoretical and numerical convergence results in the case of MD in this report.

@mdumett here's where the reviewing process for JOSS takes place 👍

@editorialbot generate pdf

@jcorbino
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@editorialbot
Copy link
Collaborator Author

Five most similar historical JOSS papers:

libCEED: Fast algebra for high-order element-based discretizations
Submitting author: @jedbrown
Handling editor: @diehlpk (Active)
Reviewers: @thelfer, @FreddieWitherden,
Similarity score: 0.8216

MUQ: The MIT Uncertainty Quantification Library
Submitting author: @mparno
Handling editor: @pdebuyl (Active)
Reviewers: @martinmodrak, @georgiastuart
Similarity score: 0.8172

KMC_Lattice v2.0: An Object-Oriented C\texttt{++} Library for Custom Kinetic Monte Carlo Simulations
Submitting author: @MikeHeiber
Handling editor: @katyhuff (Retired)
Reviewers: @myousefi2016, @mdoucet
Similarity score: 0.8144

Castor: A C++ library to code "à la Matlab"
Submitting author: @matthieuaussal
Handling editor: @jbytecode (Active)
Reviewers: @mkitti, @pitsianis
Similarity score: 0.8123

CASTRO: A Massively Parallel Compressible Astrophysics Simulation Code
Submitting author: @zingale
Handling editor: @eloisabentivegna (Active)
Reviewers: @kegiljarhus, @bonh, @joshia5
Similarity score: 0.8105

⚠️ Note to editors: If these papers look like they might be a good match, click through to the review issue for that paper and invite one or more of the authors before considering asking the reviewers of these papers to review again for JOSS.

@jedbrown
Copy link
Member

👋 @victorapm @josemanuel22 @jakelangham 👋 Hi, would you be available to review this submission for JOSS?

@jakelangham
Copy link

@jedbrown I could probably contribute some useful comments, though it would be good to have another reviewer more specialised in numerical analysis on board too.

@victorapm
Copy link

I can review it, Jed. Thanks!

@jedbrown
Copy link
Member

Thank you!

@jedbrown
Copy link
Member

@editorialbot add @jakelangham as reviewer

@editorialbot
Copy link
Collaborator Author

@jakelangham added to the reviewers list!

@jedbrown
Copy link
Member

@editorialbot add @victorapm as reviewer

@editorialbot
Copy link
Collaborator Author

@victorapm added to the reviewers list!

@jedbrown
Copy link
Member

@editorialbot start review

@editorialbot
Copy link
Collaborator Author

OK, I've started the review over in #6288.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Makefile Matlab pre-review TeX Track: 7 (CSISM) Computer science, Information Science, and Mathematics
Projects
None yet
Development

No branches or pull requests

6 participants