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

Next runcards update #248

Closed
4 of 5 tasks
alecandido opened this issue Apr 21, 2023 · 0 comments · Fixed by #295
Closed
4 of 5 tasks

Next runcards update #248

alecandido opened this issue Apr 21, 2023 · 0 comments · Fixed by #295
Labels
output Output format and management refactor Refactor code

Comments

@alecandido
Copy link
Member

alecandido commented Apr 21, 2023

At the moment we want to keep compatibility with the runcard format defined by #220

However, while reworking the internals for numerical FONLL I just defined the concept of the "evolution point", that (apart from the name) is a clean abstraction suitable for the runcard as well.

For this reason, I start here a list of desiderata for the next runcard update, without any idea about its schedule.

And related:

Evolution points

Move num_flavs_init:

num_flavs_init: FlavorsNumber
r"""Number of active flavors at fitting scale.
I.e. :math:`n_{f,\text{ref}}(\mu^2_0)`, formerly called ``nf0``.
"""

to mu0:
mu0: float
"""Initial scale."""

Also the couplings reference should be an evolution point (scale, num_flavs_ref):

scale: LinearScale
max_num_flavs: FlavorsNumber
num_flavs_ref: Optional[FlavorsNumber]

Intrinsic range

Note
----
``intrinsic_range`` is a fully deprecated feature, here and anywhere else,
since a full range is already always used for backward evolution, and it is
not harmful to use it also for forward.
Indeed, the only feature of non-intrinsic evolution is to absorb a
non-trivial boundary condition when an intrinsic PDF is defined.
But to achieve this, is sufficient to not specify any intrinsic boundary
condition at all, while if something is there, it is intuitive enough that
it will be consistently evolved.
Moreover, since two different behavior are applied for the forward and
backward evolution, the intrinsic range is a "non-local" function, since it
does not depend only on the evolution segment, but also on the previous
evolution history (to determine if evolution is backward in flavor,
irrespectively of happening for an increasing or decreasing interval in
scale at fixed flavor).

intrinsic_flavors: IntrinsicFlavors
"""List of intrinsic quark PDFs."""

Integration cores

After #242 we should not need any longer, and parallelism in Python has poor support, better avoiding it, and apply at some different level (dispatch multiple jobs, use parallel primitives).

n_integration_cores: int = 1
"""Number of cores used to parallelize integration."""

Max nf

Drop both MaxNfPdf and MaxNfAs because redundant with the matchings mechanism.

Actually, the first one is fully redundant, while the second is only redundant if equal to the first, but there is no evidence that it makes sense using it separately during an evolution run (and since EKO is a library, like APFEL, if you want just to evolve $\alpha_s$ you can pass your matchings to the Couplings class)

Runcards update

It will be up to the user to use the new nested runcards.

We will move the update() function to ekomark, for its internal uses.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
output Output format and management refactor Refactor code
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants