-
Notifications
You must be signed in to change notification settings - Fork 3
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
base: master
Are you sure you want to change the base?
Conversation
Hi, I completed the Fortran interface. I made some (minor) design decisions that I would like your opinion on:
I also noticed two small bugs in the v1 C++ examples which I fixed in my first commit. Related to that: Is there a reason why |
Hi @janw20, thanks a lot for completing the Fortran interface!
I had a look at it and it looks good. I don't think there is a cleanest a more robust to approach this apart from what is being done now (actually, this was how I also envisioned how it'd look like).
Thanks for spotting and fixing this bug! I had this under my radar before but somehow forgot to fix it (maybe I remembered to only do so on the Python API).
I don't think there is a real reason why the kinematics have to be ordered in such a way. The restriction is coming from these lines: Lines 281 to 285 in 63dc010
which has a TODO , so likely this will change.
|
When leaving out the `_dp` in `pineappl_interp_tuples`, `applgrid::fx2` does not converge
Just for the record, the panicking of the Fortran v1 examples could be resolved by explicitly declaring the constants given to pineappl/examples/fortran/test_v1.f90 Lines 50 to 52 in f478e29
Without this, |
Thanks again @janw20 for fixing this issue! I still don't understand why this was only (?) happening on Arch, but I guess this doesn't matter anymore as the solution works perfectly. |
@Radonirinaunimi and @janw20: could one of you take care of the new item "check generated grids of new example programs"? I believe I once did that unsuccessfully, so possibly there's a bug somewhere. The easiest way would be to always use the v1 grid in the remaining C++ examples. I believe that right now the generated grid isn't checked anywhere. |
Feature TODOs:
Channel
to support arbitrarily many PIDs. This is implemented with commits f32902a, 2417c92 and 03f2dc6.Order
should support a fragmentation scale. Started with commits 5e281ae and 02e48e9.1
(no scale variation),3
(vary all scales with the same factor),7
and9
(assuming that there's no fragmentation scale), and17
and27
(assuming there's a fragmentation scale)PackedArray
struct that we wrote some time ago.v0
PineAPPL grids and convert the subgrids into the new subgrid types.Code TODOs:
Order
tou8
channel!
to arbitrarily many PIDsBinInfo
, and have instead fill limits (1d limits that only concernGrid::fill
) and bin limits (n-dimensional limits)Grid::evolve_info
lagrange_subgrid
PackedQ1X2SubgridV1
NodeValues
Mu2
D=3
forgeneral_tensor_mul
inevolution.rs
Grid::merge
check if grids are compatible with each other before mergingCAPI TODO:
GridOptFlags
(see commit 54a59f3)pineappl_channel_*
topineappl_channels_*
?-v1.cpp
suffix of example programs to.cpp
and rename the previous example programs from.cpp
to-deprecated.cpp
. This should clarify that the use ofv0
functions is deprecated (but still works!)Fortran module TODO:
Python API:
pyo3-0.22.5
, this possible now sincenumpy-0.22.0
was released. Figure out what new features we can leverage from0.22.x
(see its CHANGELOG):#![allow(unsafe_op_in_unsafe_fn)]
3.7
inpyproject.toml