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

Implement v1 file format [WIP] #299

Draft
wants to merge 212 commits into
base: master
Choose a base branch
from
Draft

Implement v1 file format [WIP] #299

wants to merge 212 commits into from

Conversation

t7phy
Copy link
Member

@t7phy t7phy commented Jul 12, 2024

Feature TODOs:

  • Generalize Channel to support arbitrarily many PIDs. This is implemented with commits f32902a, 2417c92 and 03f2dc6.
  • The structure Order should support a fragmentation scale. Started with commits 5e281ae and 02e48e9.
  • The CLI should support varying this new fragmentation scale. We need the following point variations: 1 (no scale variation), 3 (vary all scales with the same factor), 7 and 9 (assuming that there's no fragmentation scale), and 17 and 27 (assuming there's a fragmentation scale)
  • Extend the evolution code to take care of (at least) one, two and three convolutions with possibly one, two and three different EKOs
  • Finally, we need new subgrid types that support possibly arbitrarily many scales and momentum fractions and which support filling or are optimized for space. We should use the PackedArray struct that we wrote some time ago.
  • To fix the tests, we need import v0 PineAPPL grids and convert the subgrids into the new subgrid types.
  • Adjust CAPI

Code TODOs:

  • Fill in all the TODO comments.
  • Change types of members of Order to u8
  • Generalize channel! to arbitrarily many PIDs
  • Support arbitrarily many scales and fix import of flexible-scale fastNLO tables
  • Test evolution for flexible-scale fastNLO tables
  • Simplify bin treatment: remove BinInfo, and have instead fill limits (1d limits that only concern Grid::fill) and bin limits (n-dimensional limits)
  • Add fragmentation scales to Grid::evolve_info
  • Make it possible to have different initial factorization and fragmentation scales in an FK-table
  • Rename lagrange_subgrid
  • Add support for static scale detection in previous subgrid type
  • Rename PackedQ1X2SubgridV1
  • Remove NodeValues
  • Remove Mu2

Python API:

  • update to pyo3-0.22.5, this possible now since numpy-0.22.0 was released. Figure out what new features we can leverage from 0.22.x (see its CHANGELOG):
    • numpy-2 support
    • declarative modules and submodules
    • Python 3.13
    • recheck whether we still need #![allow(unsafe_op_in_unsafe_fn)]
  • raise minimum required Python version to 3.7 in pyproject.toml

@t7phy t7phy linked an issue Jul 12, 2024 that may be closed by this pull request
15 tasks
@cschwan
Copy link
Contributor

cschwan commented Jul 31, 2024

I believe the list shown in #118 is probably a bit too ambitious for this pull request. Realistically, we should implement all the items listed in #172.

@Radonirinaunimi
Copy link
Member

For some reasons I did not receive notifications from github that some changes were/are happening, so I got a bit of conflicts when pulling last night (due the Python files being modified at the same time).

@cschwan These points have been addressed in some parts now (I believe your comments also happened before we had a chat? xd). I am still polishing a bit the interface and fixing/improving the tests and at the same time fixing the docs as well. I will push everything once done (hopefully very soon).

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

Successfully merging this pull request may close these issues.

Generalize convolutions for both initial and final states
5 participants