trixi-framework / Trixi.jl

Trixi.jl: Adaptive high-order numerical simulations of conservation laws in Julia
https://trixi-framework.github.io/Trixi.jl
MIT License
527 stars 105 forks source link

Function returning references #625

Open ranocha opened 3 years ago

ranocha commented 3 years ago

That's something I had in mind for quite some time. Since Trixi's capabilities are expanding quite a lot, I think it would be really great to have some function, say references, that returns a list of papers you should cite when using some stuff. For example,

julia> references(Trixi)
@online{schlottkelakemper2020purely,
  title={A purely hyperbolic discontinuous {G}alerkin approach for
         self-gravitating gas dynamics},
  author={Schlottke-Lakemper, Michael and Winters, Andrew R and
          Ranocha, Hendrik and Gassner, Gregor J},
  year={2020},
  month={08},
  eprint={2008.10593},
  eprinttype={arXiv},
  eprintclass={math.NA}
}
@misc{schlottkelakemper2020trixi,
  title={{T}rixi.jl: A tree-based numerical simulation framework
         for hyperbolic {PDE}s written in {J}ulia},
  author={Schlottke-Lakemper, Michael and Gassner, Gregor J and
          Ranocha, Hendrik and Winters, Andrew R},
  year={2020},
  month={08},
  howpublished={\url{https://github.com/trixi-framework/Trixi.jl}},
  doi={10.5281/zenodo.3996439}
}

Then, I would like to see something along the lines of

julia> trixi_include(some_elixir)
...

julia> references(sol)
[references to Trixi as above]
[references to SummationByPartsOperators.jl if you use FD methods]
[references for numerical fluxes you're using]
[references for split forms if you're using them]
[...whatever...]
[reference to the ODE solver]
[reference to DifferentialEquations.jl if you're using it]
[reference to the Julia paper]

What do you think about this?

sloede commented 3 years ago

Great idea!!!

jlchan commented 3 years ago

There was a recent Slack discussion on this https://julialang.slack.com/archives/C6E4SU1D3/p1622467645067800, and they came up with https://github.com/SebastianM-C/Cite.jl. I think it recursively scrapes info in CITATION.bib files for the current activated environment. Would this be useful for this functionality?

ranocha commented 3 years ago

Thanks for the link! I would like to have a different functionality: We can't have a reasonable citation file listing all possible references for discretizations (ODE solvers, numerical fluxes etc.). In one simulation, only a subset of all possible references would be used.

ranocha commented 3 years ago

The most simple solution would be to implement a references function recursively. More advanced possibilities could make use of something like Cassette...

ranocha commented 3 years ago

We could make use of PkgCite.jl once the corresponding issue https://github.com/SebastianM-C/PkgCite.jl/issues/7 has been solved.

ranocha commented 3 years ago

GitHub recently announced a a feature using references in a file CITATION.cff, see https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files

sloede commented 3 years ago

GitHub recently announced a a feature using references in a file CITATION.cff, see https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files

I think this is a must-have, as it seems to have very high visibility in the GitHub web GUI. I propose to create a separate issue for it, though, if you agree.

ranocha commented 3 years ago

I think this is a must-have, as it seems to have very high visibility in the GitHub web GUI. I propose to create a separate issue for it, though, if you agree.

Done (#773)