From ba4ae851aff5efb482443e4df82699300c016621 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 7 Oct 2024 14:06:16 +0000 Subject: [PATCH] build based on 0fad543 --- dev/example/index.html | 4 +- dev/functions/index.html | 2 +- dev/index.html | 2 +- dev/installation/index.html | 4 +- dev/my_qcdnum_params.h5 | Bin 12782 -> 12782 bytes dev/notebook/index.html | 2 +- dev/quickstart/index.html | 130 ++++++++++++++++++------------------ dev/search/index.html | 2 +- dev/splint/index.html | 6 +- dev/testsgns/index.html | 2 +- dev/timing/index.html | 2 +- 11 files changed, 78 insertions(+), 78 deletions(-) diff --git a/dev/example/index.html b/dev/example/index.html index a57c860..789b259 100644 --- a/dev/example/index.html +++ b/dev/example/index.html @@ -91,7 +91,7 @@ return f end -func_c = @cfunction(func, Float64, (Ref{Int32}, Ref{Float64}))
Ptr{Nothing} @0x00007f61da397040

Next, let's initialise QCDNUM and run QCDNUM to evolve the PDF.

QCDNUM.qcinit(-6, " ")
+func_c = @cfunction(func, Float64, (Ref{Int32}, Ref{Float64}))
Ptr{Nothing} @0x00007fb74d697050

Next, let's initialise QCDNUM and run QCDNUM to evolve the PDF.

QCDNUM.qcinit(-6, " ")
 nx = QCDNUM.gxmake(xmin, iwt, ng, nxin, iosp)
 nq = QCDNUM.gqmake(qq, wt, ngq, nqin)
 nw = QCDNUM.fillwt(itype)
@@ -124,4 +124,4 @@
  Aij NNLO
  FILLWT: weight calculations completed

Now, we can briefly check the results

@printf("x, q, CharmSea = %0.4e, %0.4e, %0.4e\n", x, q, csea)
 @printf("as(mz2) = %0.4e", asmz)
x, q, CharmSea = 1.0000e-03, 1.0000e+03, 1.8708e+00
-as(mz2) = 1.1807e-01

This page was generated using Literate.jl.

+as(mz2) = 1.1807e-01

This page was generated using Literate.jl.

diff --git a/dev/functions/index.html b/dev/functions/index.html index 80dd119..e8d0c2e 100644 --- a/dev/functions/index.html +++ b/dev/functions/index.html @@ -1,4 +1,4 @@ Available functions · QCDNUM.jl

Available functions

The dcoumentation of all available functions is listed below in alphabetical order. Documentation can also be found using the search bar on the left, or via the Julia REPL, e.g:

julia> using QCDNUM
 
-julia> ?QCDNUM.evsgns

Module documentation

QCDNUM.InputPDFType
InputPDF

Struct containing all necessary info to pass a PDF (parton distribution function) into QCDNUM.

source
QCDNUM.allfijMethod
allfij(iset, ix, iq, n, ichk)

Get all flavour-pdf values for given ix and iq grid points.

Arguments

  • iset::Integer: pdf set id (1-24).
  • ix::Integer: x grid point.
  • iq::Integer: q2 grid point.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Array{Float64,2}: pdf values over flavours.
source
QCDNUM.allfxqMethod
allfxq(iset, x, qmu2, n, ichk)

Get all flavour-pdf values for a given x and mu^2.

Arguments

  • iset::Integer: pdf set id (1-24).
  • x::Float64: input value of x.
  • qmu2::Float64: input value of qmu2.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Array{Float64,2}: pdf values over flavours.
source
QCDNUM.altabnMethod
altabn(iset, iq, n)

Returns the value of (alphaS / 2pi)^n, properly truncated, at the factorisation scale muF^2.

Arguments

  • iset::Integer: identifier of tha active alpha_S table (0) or pdf set (1-24).
  • iq::Integer: index of q2 grid point
  • n::Integer: power of alpha_S for the different perturbative series.

Returns

  • asn::Float64: value of (alpha_S / 2pi)^n, 0 if error.
  • ierr::Integer: set, on exit, to 1 if iq is close to or below the value of

Lambda^2, and to 2 if iq is outside the grid boundaries.

source
QCDNUM.asfuncMethod
asfunc(r2)

Evolve alpha_S(mu_R^2). Does not use mu^2 grid or weight tables.

Returns

  • alphas::FLoat64: alpha_S value.
  • nf::Integer: number of flavours at scale r2.
  • ierr::Integer: error code
source
QCDNUM.bvalijMethod
bvalij(iset, id, ix, iq, ichk)

Get the value of a basis pdf at a given point (ix, iq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from 0 to 12+n,

where n is the number of additional pdfs in iset.

  • ix::Integer: x index.
  • iq::Integer: qq index.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.bvalxqMethod
bvalxq(iset, id, x, qq, ichk)

Get the value of a basis pdf at a given point (x, qq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from 0 to 12+n,

where n is the number of additional pdfs in iset.

  • x::Float64: x value.
  • qq::Float64: qq value.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.cpyparMethod
cpypar(iset)

Copy the evolution parameters of a pdf set to a local array. The array has the following param values:

  • 1: iord
  • 2: alfas
  • 3: r2alf
  • 4: nfix
  • 5: q2c
  • 6: q2b
  • 7: q2t
  • 8: ar
  • 9: br
  • 10:xmin
  • 11:qmin
  • 12:qmax

In addition to the evolution parameters is given the pdf type in array(13): 1 = unpolarised, 2 = polarised, 3 = time-like, 4 = external, 5 = user.

Arguments

  • iset::Integer: pdf set identifier.

Returns

  • array::Vector{Float64}
source
QCDNUM.dmpwgtMethod
dmpwgt(itype, lun, filename)

Dump weight tables of a given itype to filename.

source
QCDNUM.dsp_funs1Method
dsp_funs1(ia, u, ichk)

Evaluate function for 1D spline.

Possible values of ichk:

  • -1: extrapolate the spline
  • 0: return 0
  • 1: throw an error message

Arguments

  • ia::Integer: address of spline
  • u::Float64: x or qq
  • ichk::Integer: defines behaviour when outside

spline range

source
QCDNUM.dsp_funs2Method
dsp_funs2(ia, x, q, ichk)

Evaluate function for 2D spline.

Possible values of ichk:

  • -1: extrapolate the spline
  • 0: return 0
  • 1: throw an error message

Arguments

  • ia::Integer: address of spline
  • x::Float64: x value
  • q::Float64: qq value
  • ichk::Integer: defines behaviour when outside

spline range

source
QCDNUM.dsp_ints1Method
dsp_ints1(ia, u1, u2)

Evaluate integral of spline between u1 and u2.

The integration limits must lie inside the spline range.

source
QCDNUM.dsp_ints2Method
dsp_ints2(ia, x1, x2, q1, q2, rs, np)

Evaluate integral of spline between x1, x2, q1 and q2. Also takes care of rscut and integrations makes use of N-point Gauss quadrature, as defined by the choice of np.

The integration limits must lie inside the spline range.

source
QCDNUM.dsp_rsmaxMethod
dsp_rsmax(ia, rsc)

Get the root(s) cut limit for the spline at ia and cut rsc.

source
QCDNUM.dsp_spgetvalMethod
dsp_spsgtval(ia, i)

Get some extra info, val, from the spline ia.

Arguments

  • ia::Integer: spline address.
  • i::Integer: storage index, runs from 1-100.

Returns

  • val::Float64: value to store.
source
QCDNUM.dsp_ureadMethod
dsp_uread(i)

Read something from the reserved user space.

Arguments

  • i::Integer: where to read, from 1 to nuser

Returns

  • val::Float64: what is read
source
QCDNUM.evolfgMethod
evolfg(itype, func, def, iq0)

Evolve the flavour pdf set.

Arguments

  • itype::Integer: select un-polarised (1), polarised (2) or

time-like (3) evolution.

  • func::Union{Base.CFunction, Ptr{Nothing}}: User-defined function

that returns input x * f_j(x) at iq0. j is from 0 to 2 * nf.

  • def::Array{Float64}: input array containing the contribution of

quark species i to the input distribution j.

  • iq0::Integer: grid index of the starting scale mu_0^2.

Returns

  • epsi::Float64: max deviation of the quadratic spline interpolation

from linear interpolation mid-between grid points.

source
QCDNUM.evolveMethod
evolve(input_pdf, qcdnum_params)

High-level interface to QCD evolution with QCDNUM.

source
QCDNUM.evsgnsMethod
evsgns(itype, func, isns, n, iq0)

Evolve an arbitrary set of single/non-singlet pdfs. The evolution can only run in FFNS or MFNS mode, as it is not possible to correctly match at the thresholds as in evolfg.

Arguments

The arguments are as for evolfg, expect def::Array{Float64} is replaced with:

  • isns::Array{Int32,1}: Input int array specifing the

evolution type. Entries can be (+1, -1, +-2) corresponding to singlet, valence non-singlet and +/- q_ns singlets respectively.

  • n::Integer: Number of singlet/non-singlet pdfs to evolve

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.extpdfMethod
extpdf(fun, iset, n, offset)

Import a pdfset from an external source.

Arguments

  • fun::Union{Base.CFunction, Ptr{Nothing}}: User-defined function with the signature

fun(ipdf::Integer, x::Float64, qq::Float64, first::UInt8)::Float64 specifying the values at x and qq of pdfset ipdf.

  • iset::Integer: Pdfset identifier, between 1 and 24.
  • n::Integer: Number of pdf tables in addition to gluon tables.
  • offset::Float64: Relative offset at the thresholds mu_h^2, used

to catch matching discontinuities.

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.fflistMethod
fflist(iset, c, isel, x, q, ichk)

A fast routine to generate a list of interpolated pdfs.

Arguments

  • iset::Integer: pdf set identifier [1-24]
  • c::Array{Float64}: coefficients of quarks/anti-quarks
  • isel::Integer: selection flag
  • x::Array{Float64}: list of x values.
  • q::Array{Float64}: list of q2 values.
  • ichk::Integer: flag to steer error checking. See allfxq().

Returns

  • f::Array{Float64}: output list of pdf values.
source
QCDNUM.ffromrMethod
rfromf(fscale2)

Convert the renormalisation scale, muR^2, to the factorisation scale, muF^2.

source
QCDNUM.fillwtMethod
fillwt(itype)

Fill weight tables for all order and number of flavours. itype is used to select un-polarised pdfs (1), polarised pdfs (2) or fragmentation functions (3).

Returns

  • nwds::Integer: number of words used in memory.
source
QCDNUM.fsplneMethod
fsplne(iset, id, x, iq)

Spline interpolation of a basis PDF in x, at the grid point iq. Provided as a diagnostic tool to investigate possible quadratic spline oscillations.

Arguments

iset::Integer: PDF set identifier [1-24] id::Integer: Identifier of a basis pdf |e^±| x::Float64: x value iq::Integer: Index of a Q^2 grid point

Returns

pdf::Float64: pdf value

source
QCDNUM.ftableMethod
fftabl(ist, c, isel, x, q, n, ichk)

A fast routine to generate a table of interpolated pdfs.

  • iset::Integer: pdf set identifier [1-24]
  • c::Array{Float64}: coefficients of quarks/anti-quarks
  • isel::Integer: selection flag
  • x::Array{Float64}: list of x values.
  • q::Array{Float64}: list of q2 values.
  • ichk::Integer: flag to steer error checking. See allfxq().

Returns

  • table::Matrix{Float64}: output table of pdf values.
source
QCDNUM.fvalijMethod
fvalij(iset, id, ix, iq, ichk)

Get the value of a flavour momentum density at a given point (ix, iq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from -6 to 6+n,

where n is the number of additional pdfs in iset.

  • ix::Integer: x index.
  • iq::Intger: qq index.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.fvalxqMethod
fvalxq(iset, id, x, qq, ichk)

Get the value of a flavour momentum density at a given point (x, qq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from -6 to 6+n,

where n is the number of additional pdfs in iset.

  • x::Float64: x value.
  • qq::Float64: qq value.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.getabrMethod
getabr()

Get the relation between the factorisation scale muF^2 and the renormalisation scale muR^2.

muR^2 = ar muF^2 + br.

source
QCDNUM.getalfMethod
getalf()

Set the starting value of alpha_S and the starting renormalisation scale r2. By default alpha_S(m_Z^2) = 0.118.

source
QCDNUM.getcbtMethod
getcbt()

Return the current threshold settings for the FFNS or VFNS.

Returns

  • nfix::Integer: number of flavours in the FFNS. For VNFS set

nfix = 0.

  • qc/b/t::Float64: q2 values of the heavy flavour thresholds

in the VFNS. Ignored if FFNS.

source
QCDNUM.getintMethod
getint(param)

Get QCDNUM integer parameters.

Arguments

  • param::String: Name of parameter. Can be "iter" (number of

evolutions in backwards iteration), "tlmc" (time-like matching conditions), "nopt" (number of perturbative terms) or "edbg" (evolution loop debug printout).

Returns

  • ival::Int32: Integer value that is read
source
QCDNUM.getlimMethod
getlim(iset)

Read current grid boundary values for a pdf set iset.

Returns

  • xmin::Float64: min x boundary
  • qmin::Float64: min q2 boundary
  • qmax::Float64: max q2 boundary
source
QCDNUM.getordMethod
getord()

Get order of perturbative QCD calculations. iord = 1, 2, 3 for LO, NLO and NNLO respectively. By default, iord = 2.

source
QCDNUM.getvalMethod
getval(param)

Get QCDNUM parameters.

Arguments

  • param::String: Name of parameter. Can be "null" (result of

calc that cannot be performed), "epsi" (tolerance level in float comparison |x-y| < epsi), "epsg" (numerical accuracy of Gauss integration in weight table calc), "elim" (allowed diff between quadratic and linear spline interpolation mid-between x grid points - to disable, set elim<=0), "alim" (Max allowed value of alpha_s(mu^2)), "qmin" (smallest possible boundary of mu^2 grid) "qmax" (largest possible boundary of mu^2 grid).

Returns

  • val::Float64: Value.
source
QCDNUM.gqmakeMethod
gqmake(qarr, wgt, n, nqin)

Define a logarithmically-spaced mu_F^2 grid on which the parton densities are evolved.

Arguments

  • qarr::Array{Float64,1}: input array containing n values of mu^2

in ascending order. The lower edge of the grid should be above 0.1 GeV^2.

  • wgt::Array{Float64,1}: relative grip point density in each region

defined by qarr.

  • n::Integer: number of values in qarr and wgt (n>=2).
  • nqin::Integer: requested number of grid points.

Returns

  • nqout::Integer: number of generated grid points.
source
QCDNUM.grparsMethod
grpars()

Get the current grid definitions.

Returns

nx::Integer: number of points in x grid. xmi::Float64: lower boundary of x grid. xma::Float64: upper boundary of x grid. nq::Integer: number of points in qq grid. qmi::Float64: lower boundary of qq grid. qma::Float64: upper boundary of qq grid. iord::Integer: order of spline interpolation.

source
QCDNUM.gxmakeMethod
gxmake(xmin, iwt, n, nxin, iord)

Define a logarithmically-spaced x grid.

Arguments

  • xmin::Array{Float64,1}: an input array containitn n values

of x in ascending order. xmin[1] defines the lower end of the grid and other values define approx positions where the point density will change according to the values set in iwt.

  • iwt::Array{Int32,1}: input integer weights given in ascending order

and must always be an integer multiple of the previous weight.

  • n::Integer: number of values specified in xmin and iwt.
  • nxin::Integer: Requested number of grid points.
  • iord::Integer: iord = 2(3) for linear(quadratic) spline interpolation.

Returns

  • nxout::Integer: the number of generated grid points.
source
QCDNUM.iqfrmqMethod
iqfrmq(q2)

Get grid point index of the closest grid point at or below q2 value.

source
QCDNUM.isp_s2makeMethod
isp_s2make(istepx, istepq)

Create a spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepx::Integer: steps taken in sampling the QCDNUM x grid
  • istepq::Integer: steps taken in sampling the QCDNUM qq grid
source
QCDNUM.isp_s2userMethod
isp_s2user(xarr, nx, qarr, nq)

Set your own node points in the spline in case the automatic sampling fails.

The routine will discard points outside the x-qq evolution grid, round the remaining nodes down to the nearest grid-point and then sort them in ascending order, discarding equal values. Thus you are allowed to enter un-sorted scattered arrays.

Arguments

  • xarr::Array{Float64}: array of x values
  • nx::Integer: length of xarr
  • qarr::Array{Float64}: array of qq values
  • nq::Integer: length of qarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.isp_splinetypeMethod
isp_splinetype(ia)

Get the type of spline at address ia.

Possible types are:

  • -1: x spline
  • 0: not a spline
  • 1: qq spline
  • 2: x-qq spline
source
QCDNUM.isp_sqmakeMethod
isp_sqmake(istepq)

Create a 1D qq spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepq::Integer: steps taken in sampling the QCDNUM qq grid
source
QCDNUM.isp_squserMethod
isp_squser(qarr, nq)

Set your own node points in the 1D qq spline in case the automatic sampling fails.

Arguments

  • qarr::Array{Float64}: array of qq values
  • nq::Integer: length of qarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.isp_sxmakeMethod
isp_sxmake(istepx)

Create a 1D x spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepx::Integer: steps taken in sampling the QCDNUM x grid
source
QCDNUM.isp_sxuserMethod
isp_sxuser(xarr, nx)

Set your own node points in the 1D x spline in case the automatic sampling fails.

Arguments

  • xarr::Array{Float64}: array of x values
  • nx::Integer: length of xarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.ixfrmxMethod
ixfrmx(x)

Get grid point index of closest grid point at or below x value.

source
QCDNUM.keygrpMethod
keygrp(iset, igroup)

Returns the parameter key of the pdf group in iset. Useful to check if parameters match. Like a more specific keypar.

igroup can be:

  • 1: order
  • 2: alpha_S
  • 3: fnsandthresholds
  • 4: scale
  • 5: cutes
  • 6: all
source
QCDNUM.keyparMethod
keypar(iset)

Returns the parameter key of the pdf in iset. Useful to check if parameters match with.

source
QCDNUM.make_gridMethod
make_grid(grid_params)

High-level interface to build QCDNUM grid from GridParams.

source
QCDNUM.mixfnsMethod
mixfns(nfix, r2c, r2b, r2t)

Select the MFNS mode and set thresholds on mu_R^2.

Arguments

  • nfix::Integer: Fixed number of flavours for MFNS. Can be

in the range [3, 6].

  • r2c/b/t::Float64: Thresholds defined on the renormalisation scale

mu_R^2 for c, b and t.

source
QCDNUM.nfrmiqMethod
nfrmiq(iset, iq)

Returns the number of active flavours nf at a q2 grid point iq.

Arguments

  • iset::Integer: pdf set identifier.
  • iq::Integer: q2 grid point.

Returns

  • nf::Integer: number of active flavours. 0 if iq is

outside the q2 grid.

  • ithresh::Integer: threshold indicator that is set to

+1(-1) if iq is at a threshold with the larger (smaller) number of flavours, 0 otherwise.

source
QCDNUM.nwusedMethod
nwused()

Returns the szie nwtot of the QCDNUM store (the parameter nwf0 in qcdnum.inc) and the number of words used, nwuse.

The output argument ndummy is not used at present.

source
QCDNUM.nxtlunMethod
nxtlun(lmin)

Get next free logical unit number above max(lmin, 10). Returns 0 if there is no free logical unit. Can be called before or after qcinit. Handy if you want to open a file on a unit that is guaranteed to be free.

source
QCDNUM.pullcpMethod
pushcp()

Pull the current parameters from LIFO stack (load stashed parameters).

source
QCDNUM.pushcpMethod
pushcp()

Push the current parameters to LIFO stack (temporarily stash them).

source
QCDNUM.qcinitMethod
qcinit(lun, filename)

Initialise QCDNUM - should be called before anything else.

Arguments

  • lun::Integer: the output logical unit number. When set to 6,

the QCDNUM messages appear on the standard output. When set to -6, the QCDNUM banner printout is suppressed.

  • filename::String: the output filename to store log. Irrelevant

when lun is set to 6/-6

source
QCDNUM.qqatiqMethod
qqatiq(q, iq)

Check if q2 coincides with a grid point iq.

Returns

out::Bool: true or false

source
QCDNUM.qstoreMethod
qstore(action, i, val)

QCDNUM reserves 500 words of memory for user use.

Arguments

  • action::String: Can be "write", "read", "lock" or "unlock".
  • i::Integer: Where to read/write in the store.
  • val::Float64: What to write in the store.
source
QCDNUM.qstoreMethod
qstore(action, i)

QCDNUM reserves 500 words of memory for user use.

Arguments

  • action::String: Can be "write", "read", "lock" or "unlock".
  • i::Integer: Where to read/write in the store.

Returns

  • val::Float64: What is read from the store.
source
QCDNUM.rfromfMethod
rfromf(fscale2)

Convert the factorisation scale, muF^2, to the renormalisation scale, muR^2.

source
QCDNUM.save_paramsMethod
save_params(file_name, params)

Store the QCDNUM or SPLINT parameters for reproducibility.

source
QCDNUM.setabrMethod
setabr(ar, br)

Define the relation between the factorisation scale muF^2 and the renormalisation scale muR^2.

muR^2 = ar muF^2 + br.

source
QCDNUM.setalfMethod
setalf(alfs, r2)

Set the starting value of alpha_S and the starting renormalisation scale r2. By default alpha_S(m_Z^2) = 0.118.

source
QCDNUM.setcbtMethod
setcbt(nfix, iqc, iqb, iqt)

Select FFNS or VFNS, and thresholds on mu_F^2 if necessary.

Arguments

  • nfix::Integer: number of flavours in the FFNS. For VNFS set

nfix = 0.

  • iqc/b/t::Integer: grid indices of the heavy flavour thresholds

in the VFNS. Ignored if FFNS.

source
QCDNUM.setintMethod
setint(param, ival)

Set QCDNUM integer parameters.

Arguments

  • param::String: Name of parameter. Can be "iter" (number of

evolutions in backwards iteration), "tlmc" (time-like matching conditions), "nopt" (number of perturbative terms) or "edbg" (evolution loop debug printout).

  • ival::Integer: Value to set.
source
QCDNUM.setlimMethod
setlim(ixmin, iqmin, iqmax)

Restrict the range of a pdf evolution or import to only part of the x-q2 grid.

ixmin, iqmin and iqmax re-define the range of the grid. To release a cut, eneter a value of 0. Fatal error if the cuts result in a kinematic domain that is too small or empty.

source
QCDNUM.setlunMethod
setlun(lun, filename)

Redirect the QCDNUM messages. Arguments are the same as for qcinit, but it can be called at any point in the program after qcinit.

Arguments

  • lun::Integer: the output logical unit number. When set to 6,

the QCDNUM messages appear on the standard output. When set to -6, the QCDNUM banner printout is suppressed.

  • filename::String: the output filename to store log. Irrelevant

when lun is set to 6/-6

source
QCDNUM.setordMethod
setord(iord)

Set order of perturbative QCD calculations. iord = 1, 2, 3 for LO, NLO and NNLO respectively. By default, iord = 2.

source
QCDNUM.setvalMethod
setval(param, val)

Set QCDNUM parameters.

Arguments

  • param::String: Name of parameter. Can be "null" (result of

calc that cannot be performed), "epsi" (tolerance level in float comparison |x-y| < epsi), "epsg" (numerical accuracy of Gauss integration in weight table calc), "elim" (allowed diff between quadratic and linear spline interpolation mid-between x grid points - to disable, set elim<=0), "alim" (Max allowed value of alpha_s(mu^2)), "qmin" (smallest possible boundary of mu^2 grid) "qmax" (largest possible boundary of mu^2 grid).

  • val::Float64: Value to set.
source
QCDNUM.splchkMethod
splchk(iset, id, iq)

Return for a basis pdf at a given Q^2 grid point the maximum deviation between a linear interpolation and the spline interpolation used by QCDNUM.

To be used if having issues with evolfg or extpdf.

Arguments

iset::Integer: PDF set identifier [1-24] id::Integer: Identifier of a basis PDF |e^±| iq::Integer: Index of a Q^2 grid point

Returns

epsi::Float64: Value of the max deviation

source
QCDNUM.ssp_eraseMethod
ssp_erase(ia)

Clear the memory from ia onwards. ia=0 can also be used to erase all spline objects in memory.

source
QCDNUM.ssp_extrapuMethod
ssp_extrapu(ia, n)

Define the extrapolation at the kinematic limit for a spline at address ia.

The extrapolation index n can be:

  • 0: constant
  • 1: linear
  • 2: quadratic
  • 3: cubic
source
QCDNUM.ssp_extrapvMethod
ssp_extrapv(ia, n)

Define the extrapolation at the kinematic limit for a spline at address ia.

The extrapolation index n can be:

  • 0: constant
  • 1: linear
  • 2: quadratic
  • 3: cubic
source
QCDNUM.ssp_s2f123Method
ssp_s2f123(ia, iset, def, istf, rs)

Fast structure function input for 2D splines over x and qq.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • rs::Float64: sqrt(s) cut - 0 for no kinematic cut
source
QCDNUM.ssp_s2fillMethod
ssp_s2fill(iasp, fun, rs)

Fill the spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • rs::Float64: set a sqrt(s) cut - 0 for no kinematic cut
source
QCDNUM.ssp_spinitMethod
ssp_spinit(nuser)

Initialise SPLINT - should be called before other SPLINT functions.

Arguments

  • nuser::Integer: the number of words reserved for user storage
source
QCDNUM.ssp_splimsMethod
ssp_splims(ia)

Get node limits of spline at address ia.

Here, u and v refer to the x and qq dimensions respectively.

Returns tuple containing

  • nu::Integer: number of nodes in u direction
  • u1::Float64: lower u limit
  • u2::Float64: upper u limit
  • nv::Integer: number of nodes in v direction
  • v1::Float64: lower v limit
  • v2::Float64: upper v limit
  • n::Integer: number of active nodes below kinematic limit
source
QCDNUM.ssp_spsetvalMethod
ssp_spsetval(ia, i, val)

Store some extra info, val, along with the spline at ia.

Arguments

  • ia::Integer: spline address.
  • i::Integer: storage index, runs from 1-100.
  • val::Float64: value to store.
source
QCDNUM.ssp_sqf123Method
ssp_sq123(ia, iset, def, istf, ix)

Fast structure function input for splines over qq.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • ix::Integer: index of x value
source
QCDNUM.ssp_sqfillMethod
ssp_sqfill(iasp, fun, ix)

Fill the 1D qq spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • ix::Integer: fixed ix value to pass to fun
source
QCDNUM.ssp_sxf123Method
ssp_sxf123(ia, iset, def, istf, iq)

Fast structure function input for splines over x.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • iq::Integer: index of qq value
source
QCDNUM.ssp_sxfillMethod
ssp_sxfill(iasp, fun, iq)

Fill the 1D x spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • iq::Integer: fixed iq value to pass to fun
source
QCDNUM.ssp_unodesMethod
ssp_unodes(ia, n, nu)

Copy u-nodes from spline at address ia to local array.

Arguments

  • ia::Integer: address of spline
  • n::Integer: dimension of array to copy to
  • nu::Integer: number of u-nodes copied

Returns

  • array::Array{Float64}: array of u-nodes
source
QCDNUM.ssp_uwriteMethod
ssp_uwrite(i, val)

Write something to the reserved user space.

Arguments

  • i::Integer: where to write, from 1 to nuser
  • val::Float: what to write
source
QCDNUM.ssp_vnodesMethod
ssp_vnodes(ia, n, nv)

Copy v-nodes from spline at address ia to local array.

Arguments

  • ia::Integer: address of spline
  • n::Integer: dimension of array to copy to
  • nv::Integer: number of v-nodes copied

Returns

  • array::Array{Float64}: array of v-nodes
source
QCDNUM.sumfijMethod
sumfij(iset, c, isel, ix, iq, ichk)

Return the gluon or a weighted sum of quark densities, depending on the selection flag, isel.

isel values:

0: Gluon density |xg> 1: Linear combination c summed over active flavours 2-8: Specific singlet/non-singlet quark component 9: Intrinsic heavy flavours 12+i: Additional pdf |xf_i> in iset

See QCDNUM manual for more information.

Arguments

  • iset::Integer: pdf set id (1-24).
  • c::Array{Float64}: Coefficients of quarks/anti-quarks
  • isel::Integer: Selection flag
  • ix::Integer: x grid point.
  • iq::Integer: q2 grid point.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Float64: pdf value.
source
QCDNUM.sumfxqMethod
sumfxq(iset, c, isel, x, qmu2, ichk)

Return the gluon or a weighted sum of quark densities, depending on the selection flag, isel.

isel values:

0: Gluon density |xg> 1: Linear combination c summed over active flavours 2-8: Specific singlet/non-singlet quark component 9: Intrinsic heavy flavours 12+i: Additional pdf |xf_i> in iset

See QCDNUM manual for more information.

Arguments

  • iset::Integer: pdf set id (1-24).
  • c::Array{Float64}: Coefficients of quarks/anti-quarks
  • isel::Integer: Selection flag
  • x::Float64: input value of x.
  • qmu2::Float64: input value of qmu2.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Float64: pdf value.
source
QCDNUM.useparMethod
usepar(iset)

Activate the parameters of iset, ie. copy them to iset = 0 and re-initialise the active look-up tables.

source
QCDNUM.usrpdfMethod
usrpdf(fun, iset, n, offset)

Create a user-defined type-5 pdfset (same type as the output of evsgns).

Arguments

  • fun::Union{Base.CFunction, Ptr{Nothing}}: User-defined function with the signature

fun(ipdf::Integer, x::Float64, qq::Float64, first::UInt8)::Float64 specifying the values at x and qq of pdfset ipdf.

  • iset::Integer: Pdfset identifier, between 1 and 24.
  • n::Integer: Number of pdf tables in addition to gluon tables.
  • offset::Float64: Relative offset at the thresholds mu_h^2, used

to catch matching discontinuities.

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.wtfileMethod
wtfile(itype, filename)

Maintains an up-to-date weight table in filename.

source
QCDNUM.xxatixMethod
xxatix(x, ix)

Check if x coincides with a grid point ix.

Returns

out::Bool: true or false

source
QCDNUM.zmfillwMethod
zmfillw()

Fill weight tables for zero-mass structure function calculations.

source
QCDNUM.zmstfunMethod
zmstfun()

Calculate a structure function from a linear combination of parton densities.

Arguments

  • istf::Integer: structure function index

where (1,2,3,4) = (FL, F2, xF3, fL^').

  • def::Array{Float64}: coeffs of the quark linear combination

for which the structure function is to be calculated.

  • x::Array{Float64}: list of x values.
  • Q2::Array{Float64}: list of Q2 values.
  • n::Integer: number of items in x, Q2 and f.
  • ichk::Integer: flag for grid boundary checks. See QCDNUM docs.

Returns

  • f::Array{Float64}: list of structure functions.
source
QCDNUM.zmwordsMethod
zmwords()

Check the number of words available in the ZMSTF workspace and the number of words used.

source
+julia> ?QCDNUM.evsgns

Module documentation

QCDNUM.EvolutionParamsType

EvolutionParams

Struct for holding all QCDNUM Parameters.

source
QCDNUM.GridParamsType
GridParams

Struct for holding the QCDNUM grid parameters.

source
QCDNUM.InputPDFType
InputPDF

Struct containing all necessary info to pass a PDF (parton distribution function) into QCDNUM.

source
QCDNUM.SPLINTParamsType
SPLINTParams

Struct for storage of parameters used with SPLINT package of QCDNUM.

source
QCDNUM.SplineAddressesType
SplineAddresses

Lookup table for addresses of different structure function splines.

source
QCDNUM.allfijMethod
allfij(iset, ix, iq, n, ichk)

Get all flavour-pdf values for given ix and iq grid points.

Arguments

  • iset::Integer: pdf set id (1-24).
  • ix::Integer: x grid point.
  • iq::Integer: q2 grid point.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Array{Float64,2}: pdf values over flavours.
source
QCDNUM.allfxqMethod
allfxq(iset, x, qmu2, n, ichk)

Get all flavour-pdf values for a given x and mu^2.

Arguments

  • iset::Integer: pdf set id (1-24).
  • x::Float64: input value of x.
  • qmu2::Float64: input value of qmu2.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Array{Float64,2}: pdf values over flavours.
source
QCDNUM.altabnMethod
altabn(iset, iq, n)

Returns the value of (alphaS / 2pi)^n, properly truncated, at the factorisation scale muF^2.

Arguments

  • iset::Integer: identifier of tha active alpha_S table (0) or pdf set (1-24).
  • iq::Integer: index of q2 grid point
  • n::Integer: power of alpha_S for the different perturbative series.

Returns

  • asn::Float64: value of (alpha_S / 2pi)^n, 0 if error.
  • ierr::Integer: set, on exit, to 1 if iq is close to or below the value of

Lambda^2, and to 2 if iq is outside the grid boundaries.

source
QCDNUM.asfuncMethod
asfunc(r2)

Evolve alpha_S(mu_R^2). Does not use mu^2 grid or weight tables.

Returns

  • alphas::FLoat64: alpha_S value.
  • nf::Integer: number of flavours at scale r2.
  • ierr::Integer: error code
source
QCDNUM.bvalijMethod
bvalij(iset, id, ix, iq, ichk)

Get the value of a basis pdf at a given point (ix, iq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from 0 to 12+n,

where n is the number of additional pdfs in iset.

  • ix::Integer: x index.
  • iq::Integer: qq index.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.bvalxqMethod
bvalxq(iset, id, x, qq, ichk)

Get the value of a basis pdf at a given point (x, qq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from 0 to 12+n,

where n is the number of additional pdfs in iset.

  • x::Float64: x value.
  • qq::Float64: qq value.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.cpyparMethod
cpypar(iset)

Copy the evolution parameters of a pdf set to a local array. The array has the following param values:

  • 1: iord
  • 2: alfas
  • 3: r2alf
  • 4: nfix
  • 5: q2c
  • 6: q2b
  • 7: q2t
  • 8: ar
  • 9: br
  • 10:xmin
  • 11:qmin
  • 12:qmax

In addition to the evolution parameters is given the pdf type in array(13): 1 = unpolarised, 2 = polarised, 3 = time-like, 4 = external, 5 = user.

Arguments

  • iset::Integer: pdf set identifier.

Returns

  • array::Vector{Float64}
source
QCDNUM.dmpwgtMethod
dmpwgt(itype, lun, filename)

Dump weight tables of a given itype to filename.

source
QCDNUM.dsp_funs1Method
dsp_funs1(ia, u, ichk)

Evaluate function for 1D spline.

Possible values of ichk:

  • -1: extrapolate the spline
  • 0: return 0
  • 1: throw an error message

Arguments

  • ia::Integer: address of spline
  • u::Float64: x or qq
  • ichk::Integer: defines behaviour when outside

spline range

source
QCDNUM.dsp_funs2Method
dsp_funs2(ia, x, q, ichk)

Evaluate function for 2D spline.

Possible values of ichk:

  • -1: extrapolate the spline
  • 0: return 0
  • 1: throw an error message

Arguments

  • ia::Integer: address of spline
  • x::Float64: x value
  • q::Float64: qq value
  • ichk::Integer: defines behaviour when outside

spline range

source
QCDNUM.dsp_ints1Method
dsp_ints1(ia, u1, u2)

Evaluate integral of spline between u1 and u2.

The integration limits must lie inside the spline range.

source
QCDNUM.dsp_ints2Method
dsp_ints2(ia, x1, x2, q1, q2, rs, np)

Evaluate integral of spline between x1, x2, q1 and q2. Also takes care of rscut and integrations makes use of N-point Gauss quadrature, as defined by the choice of np.

The integration limits must lie inside the spline range.

source
QCDNUM.dsp_rscutMethod
dsp_rscut(ia)

Get the root(s) cut for the spline at ia.

source
QCDNUM.dsp_rsmaxMethod
dsp_rsmax(ia, rsc)

Get the root(s) cut limit for the spline at ia and cut rsc.

source
QCDNUM.dsp_spgetvalMethod
dsp_spsgtval(ia, i)

Get some extra info, val, from the spline ia.

Arguments

  • ia::Integer: spline address.
  • i::Integer: storage index, runs from 1-100.

Returns

  • val::Float64: value to store.
source
QCDNUM.dsp_ureadMethod
dsp_uread(i)

Read something from the reserved user space.

Arguments

  • i::Integer: where to read, from 1 to nuser

Returns

  • val::Float64: what is read
source
QCDNUM.evolfgMethod
evolfg(itype, func, def, iq0)

Evolve the flavour pdf set.

Arguments

  • itype::Integer: select un-polarised (1), polarised (2) or

time-like (3) evolution.

  • func::Union{Base.CFunction, Ptr{Nothing}}: User-defined function

that returns input x * f_j(x) at iq0. j is from 0 to 2 * nf.

  • def::Array{Float64}: input array containing the contribution of

quark species i to the input distribution j.

  • iq0::Integer: grid index of the starting scale mu_0^2.

Returns

  • epsi::Float64: max deviation of the quadratic spline interpolation

from linear interpolation mid-between grid points.

source
QCDNUM.evolveMethod
evolve(input_pdf, qcdnum_params)

High-level interface to QCD evolution with QCDNUM.

source
QCDNUM.evsgnsMethod
evsgns(itype, func, isns, n, iq0)

Evolve an arbitrary set of single/non-singlet pdfs. The evolution can only run in FFNS or MFNS mode, as it is not possible to correctly match at the thresholds as in evolfg.

Arguments

The arguments are as for evolfg, expect def::Array{Float64} is replaced with:

  • isns::Array{Int32,1}: Input int array specifing the

evolution type. Entries can be (+1, -1, +-2) corresponding to singlet, valence non-singlet and +/- q_ns singlets respectively.

  • n::Integer: Number of singlet/non-singlet pdfs to evolve

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.extpdfMethod
extpdf(fun, iset, n, offset)

Import a pdfset from an external source.

Arguments

  • fun::Union{Base.CFunction, Ptr{Nothing}}: User-defined function with the signature

fun(ipdf::Integer, x::Float64, qq::Float64, first::UInt8)::Float64 specifying the values at x and qq of pdfset ipdf.

  • iset::Integer: Pdfset identifier, between 1 and 24.
  • n::Integer: Number of pdf tables in addition to gluon tables.
  • offset::Float64: Relative offset at the thresholds mu_h^2, used

to catch matching discontinuities.

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.fflistMethod
fflist(iset, c, isel, x, q, ichk)

A fast routine to generate a list of interpolated pdfs.

Arguments

  • iset::Integer: pdf set identifier [1-24]
  • c::Array{Float64}: coefficients of quarks/anti-quarks
  • isel::Integer: selection flag
  • x::Array{Float64}: list of x values.
  • q::Array{Float64}: list of q2 values.
  • ichk::Integer: flag to steer error checking. See allfxq().

Returns

  • f::Array{Float64}: output list of pdf values.
source
QCDNUM.ffromrMethod
rfromf(fscale2)

Convert the renormalisation scale, muR^2, to the factorisation scale, muF^2.

source
QCDNUM.fillwtMethod
fillwt(itype)

Fill weight tables for all order and number of flavours. itype is used to select un-polarised pdfs (1), polarised pdfs (2) or fragmentation functions (3).

Returns

  • nwds::Integer: number of words used in memory.
source
QCDNUM.fsplneMethod
fsplne(iset, id, x, iq)

Spline interpolation of a basis PDF in x, at the grid point iq. Provided as a diagnostic tool to investigate possible quadratic spline oscillations.

Arguments

iset::Integer: PDF set identifier [1-24] id::Integer: Identifier of a basis pdf |e^±| x::Float64: x value iq::Integer: Index of a Q^2 grid point

Returns

pdf::Float64: pdf value

source
QCDNUM.ftableMethod
fftabl(ist, c, isel, x, q, n, ichk)

A fast routine to generate a table of interpolated pdfs.

  • iset::Integer: pdf set identifier [1-24]
  • c::Array{Float64}: coefficients of quarks/anti-quarks
  • isel::Integer: selection flag
  • x::Array{Float64}: list of x values.
  • q::Array{Float64}: list of q2 values.
  • ichk::Integer: flag to steer error checking. See allfxq().

Returns

  • table::Matrix{Float64}: output table of pdf values.
source
QCDNUM.fvalijMethod
fvalij(iset, id, ix, iq, ichk)

Get the value of a flavour momentum density at a given point (ix, iq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from -6 to 6+n,

where n is the number of additional pdfs in iset.

  • ix::Integer: x index.
  • iq::Intger: qq index.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.fvalxqMethod
fvalxq(iset, id, x, qq, ichk)

Get the value of a flavour momentum density at a given point (x, qq).

Arguments

  • iset::Integer: pdf set id (1-24)
  • id::Integer: basis pdf identifier from -6 to 6+n,

where n is the number of additional pdfs in iset.

  • x::Float64: x value.
  • qq::Float64: qq value.
  • ichk::Integer: flag to steer error checking.

See allfxq().

Returns

  • pdf::Float64: pdf values.
source
QCDNUM.getabrMethod
getabr()

Get the relation between the factorisation scale muF^2 and the renormalisation scale muR^2.

muR^2 = ar muF^2 + br.

source
QCDNUM.getalfMethod
getalf()

Set the starting value of alpha_S and the starting renormalisation scale r2. By default alpha_S(m_Z^2) = 0.118.

source
QCDNUM.getcbtMethod
getcbt()

Return the current threshold settings for the FFNS or VFNS.

Returns

  • nfix::Integer: number of flavours in the FFNS. For VNFS set

nfix = 0.

  • qc/b/t::Float64: q2 values of the heavy flavour thresholds

in the VFNS. Ignored if FFNS.

source
QCDNUM.getintMethod
getint(param)

Get QCDNUM integer parameters.

Arguments

  • param::String: Name of parameter. Can be "iter" (number of

evolutions in backwards iteration), "tlmc" (time-like matching conditions), "nopt" (number of perturbative terms) or "edbg" (evolution loop debug printout).

Returns

  • ival::Int32: Integer value that is read
source
QCDNUM.getlimMethod
getlim(iset)

Read current grid boundary values for a pdf set iset.

Returns

  • xmin::Float64: min x boundary
  • qmin::Float64: min q2 boundary
  • qmax::Float64: max q2 boundary
source
QCDNUM.getordMethod
getord()

Get order of perturbative QCD calculations. iord = 1, 2, 3 for LO, NLO and NNLO respectively. By default, iord = 2.

source
QCDNUM.getvalMethod
getval(param)

Get QCDNUM parameters.

Arguments

  • param::String: Name of parameter. Can be "null" (result of

calc that cannot be performed), "epsi" (tolerance level in float comparison |x-y| < epsi), "epsg" (numerical accuracy of Gauss integration in weight table calc), "elim" (allowed diff between quadratic and linear spline interpolation mid-between x grid points - to disable, set elim<=0), "alim" (Max allowed value of alpha_s(mu^2)), "qmin" (smallest possible boundary of mu^2 grid) "qmax" (largest possible boundary of mu^2 grid).

Returns

  • val::Float64: Value.
source
QCDNUM.gqcopyMethod
gqcopy(n)

Copy the current mu^2 grid into an array of length n.

source
QCDNUM.gqmakeMethod
gqmake(qarr, wgt, n, nqin)

Define a logarithmically-spaced mu_F^2 grid on which the parton densities are evolved.

Arguments

  • qarr::Array{Float64,1}: input array containing n values of mu^2

in ascending order. The lower edge of the grid should be above 0.1 GeV^2.

  • wgt::Array{Float64,1}: relative grip point density in each region

defined by qarr.

  • n::Integer: number of values in qarr and wgt (n>=2).
  • nqin::Integer: requested number of grid points.

Returns

  • nqout::Integer: number of generated grid points.
source
QCDNUM.grparsMethod
grpars()

Get the current grid definitions.

Returns

nx::Integer: number of points in x grid. xmi::Float64: lower boundary of x grid. xma::Float64: upper boundary of x grid. nq::Integer: number of points in qq grid. qmi::Float64: lower boundary of qq grid. qma::Float64: upper boundary of qq grid. iord::Integer: order of spline interpolation.

source
QCDNUM.gxcopyMethod
gxcopy(n)

Copy the current x grid into an array of length n.

source
QCDNUM.gxmakeMethod
gxmake(xmin, iwt, n, nxin, iord)

Define a logarithmically-spaced x grid.

Arguments

  • xmin::Array{Float64,1}: an input array containitn n values

of x in ascending order. xmin[1] defines the lower end of the grid and other values define approx positions where the point density will change according to the values set in iwt.

  • iwt::Array{Int32,1}: input integer weights given in ascending order

and must always be an integer multiple of the previous weight.

  • n::Integer: number of values specified in xmin and iwt.
  • nxin::Integer: Requested number of grid points.
  • iord::Integer: iord = 2(3) for linear(quadratic) spline interpolation.

Returns

  • nxout::Integer: the number of generated grid points.
source
QCDNUM.ievtypMethod
ievtype(iset)

Get the pdf evolution type for set iset::Integer.

source
QCDNUM.initMethod
init()

High-level default initialisation for QCDNUM.

source
QCDNUM.iqfrmqMethod
iqfrmq(q2)

Get grid point index of the closest grid point at or below q2 value.

source
QCDNUM.isp_s2makeMethod
isp_s2make(istepx, istepq)

Create a spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepx::Integer: steps taken in sampling the QCDNUM x grid
  • istepq::Integer: steps taken in sampling the QCDNUM qq grid
source
QCDNUM.isp_s2userMethod
isp_s2user(xarr, nx, qarr, nq)

Set your own node points in the spline in case the automatic sampling fails.

The routine will discard points outside the x-qq evolution grid, round the remaining nodes down to the nearest grid-point and then sort them in ascending order, discarding equal values. Thus you are allowed to enter un-sorted scattered arrays.

Arguments

  • xarr::Array{Float64}: array of x values
  • nx::Integer: length of xarr
  • qarr::Array{Float64}: array of qq values
  • nq::Integer: length of qarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.isp_splinetypeMethod
isp_splinetype(ia)

Get the type of spline at address ia.

Possible types are:

  • -1: x spline
  • 0: not a spline
  • 1: qq spline
  • 2: x-qq spline
source
QCDNUM.isp_spreadMethod
ssp_spread(filename)

Read spline from filename and return address ia.

source
QCDNUM.isp_spsizeMethod
isp_spsize(ia)

Get used space for spline ia, or total memory size when ia = 0.

source
QCDNUM.isp_spversMethod
isp_spvers()

SPLINT version as a date.

source
QCDNUM.isp_sqmakeMethod
isp_sqmake(istepq)

Create a 1D qq spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepq::Integer: steps taken in sampling the QCDNUM qq grid
source
QCDNUM.isp_squserMethod
isp_squser(qarr, nq)

Set your own node points in the 1D qq spline in case the automatic sampling fails.

Arguments

  • qarr::Array{Float64}: array of qq values
  • nq::Integer: length of qarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.isp_sxmakeMethod
isp_sxmake(istepx)

Create a 1D x spline object in memory, and return the address. Every istep-th grid point is taken as a node point of the spline and the grid boundaries are always included as node points.

Arguments

  • istepx::Integer: steps taken in sampling the QCDNUM x grid
source
QCDNUM.isp_sxuserMethod
isp_sxuser(xarr, nx)

Set your own node points in the 1D x spline in case the automatic sampling fails.

Arguments

  • xarr::Array{Float64}: array of x values
  • nx::Integer: length of xarr

Returns

  • iasp::Integer: address of the spline object
source
QCDNUM.ixfrmxMethod
ixfrmx(x)

Get grid point index of closest grid point at or below x value.

source
QCDNUM.keygrpMethod
keygrp(iset, igroup)

Returns the parameter key of the pdf group in iset. Useful to check if parameters match. Like a more specific keypar.

igroup can be:

  • 1: order
  • 2: alpha_S
  • 3: fnsandthresholds
  • 4: scale
  • 5: cutes
  • 6: all
source
QCDNUM.keyparMethod
keypar(iset)

Returns the parameter key of the pdf in iset. Useful to check if parameters match with.

source
QCDNUM.load_paramsMethod
load_params(file_name)

Load stored QCDNUM or SPLINT parameters.

source
QCDNUM.make_gridMethod
make_grid(grid_params)

High-level interface to build QCDNUM grid from GridParams.

source
QCDNUM.mixfnsMethod
mixfns(nfix, r2c, r2b, r2t)

Select the MFNS mode and set thresholds on mu_R^2.

Arguments

  • nfix::Integer: Fixed number of flavours for MFNS. Can be

in the range [3, 6].

  • r2c/b/t::Float64: Thresholds defined on the renormalisation scale

mu_R^2 for c, b and t.

source
QCDNUM.nfrmiqMethod
nfrmiq(iset, iq)

Returns the number of active flavours nf at a q2 grid point iq.

Arguments

  • iset::Integer: pdf set identifier.
  • iq::Integer: q2 grid point.

Returns

  • nf::Integer: number of active flavours. 0 if iq is

outside the q2 grid.

  • ithresh::Integer: threshold indicator that is set to

+1(-1) if iq is at a threshold with the larger (smaller) number of flavours, 0 otherwise.

source
QCDNUM.nptabsMethod
nptabs(iset)

Get the number of pdf tables in set iset::Integer.

source
QCDNUM.nwusedMethod
nwused()

Returns the szie nwtot of the QCDNUM store (the parameter nwf0 in qcdnum.inc) and the number of words used, nwuse.

The output argument ndummy is not used at present.

source
QCDNUM.nxtlunMethod
nxtlun(lmin)

Get next free logical unit number above max(lmin, 10). Returns 0 if there is no free logical unit. Can be called before or after qcinit. Handy if you want to open a file on a unit that is guaranteed to be free.

source
QCDNUM.pdfcpyMethod
pdfcpy(iset1, iset2)

Copy pdf set.

source
QCDNUM.pullcpMethod
pushcp()

Pull the current parameters from LIFO stack (load stashed parameters).

source
QCDNUM.pushcpMethod
pushcp()

Push the current parameters to LIFO stack (temporarily stash them).

source
QCDNUM.qcinitMethod
qcinit(lun, filename)

Initialise QCDNUM - should be called before anything else.

Arguments

  • lun::Integer: the output logical unit number. When set to 6,

the QCDNUM messages appear on the standard output. When set to -6, the QCDNUM banner printout is suppressed.

  • filename::String: the output filename to store log. Irrelevant

when lun is set to 6/-6

source
QCDNUM.qfrmiqMethod
qfrmiq(iq)

Get q2 value at grid point iq.

source
QCDNUM.qqatiqMethod
qqatiq(q, iq)

Check if q2 coincides with a grid point iq.

Returns

out::Bool: true or false

source
QCDNUM.qstoreMethod
qstore(action, i, val)

QCDNUM reserves 500 words of memory for user use.

Arguments

  • action::String: Can be "write", "read", "lock" or "unlock".
  • i::Integer: Where to read/write in the store.
  • val::Float64: What to write in the store.
source
QCDNUM.qstoreMethod
qstore(action, i)

QCDNUM reserves 500 words of memory for user use.

Arguments

  • action::String: Can be "write", "read", "lock" or "unlock".
  • i::Integer: Where to read/write in the store.

Returns

  • val::Float64: What is read from the store.
source
QCDNUM.readwtMethod
readwt(lun, filename)

Read weight tables from filename.

source
QCDNUM.rfromfMethod
rfromf(fscale2)

Convert the factorisation scale, muF^2, to the renormalisation scale, muR^2.

source
QCDNUM.save_paramsMethod
save_params(file_name, params)

Store the QCDNUM or SPLINT parameters for reproducibility.

source
QCDNUM.setabrMethod
setabr(ar, br)

Define the relation between the factorisation scale muF^2 and the renormalisation scale muR^2.

muR^2 = ar muF^2 + br.

source
QCDNUM.setalfMethod
setalf(alfs, r2)

Set the starting value of alpha_S and the starting renormalisation scale r2. By default alpha_S(m_Z^2) = 0.118.

source
QCDNUM.setcbtMethod
setcbt(nfix, iqc, iqb, iqt)

Select FFNS or VFNS, and thresholds on mu_F^2 if necessary.

Arguments

  • nfix::Integer: number of flavours in the FFNS. For VNFS set

nfix = 0.

  • iqc/b/t::Integer: grid indices of the heavy flavour thresholds

in the VFNS. Ignored if FFNS.

source
QCDNUM.setintMethod
setint(param, ival)

Set QCDNUM integer parameters.

Arguments

  • param::String: Name of parameter. Can be "iter" (number of

evolutions in backwards iteration), "tlmc" (time-like matching conditions), "nopt" (number of perturbative terms) or "edbg" (evolution loop debug printout).

  • ival::Integer: Value to set.
source
QCDNUM.setlimMethod
setlim(ixmin, iqmin, iqmax)

Restrict the range of a pdf evolution or import to only part of the x-q2 grid.

ixmin, iqmin and iqmax re-define the range of the grid. To release a cut, eneter a value of 0. Fatal error if the cuts result in a kinematic domain that is too small or empty.

source
QCDNUM.setlunMethod
setlun(lun, filename)

Redirect the QCDNUM messages. Arguments are the same as for qcinit, but it can be called at any point in the program after qcinit.

Arguments

  • lun::Integer: the output logical unit number. When set to 6,

the QCDNUM messages appear on the standard output. When set to -6, the QCDNUM banner printout is suppressed.

  • filename::String: the output filename to store log. Irrelevant

when lun is set to 6/-6

source
QCDNUM.setordMethod
setord(iord)

Set order of perturbative QCD calculations. iord = 1, 2, 3 for LO, NLO and NNLO respectively. By default, iord = 2.

source
QCDNUM.setvalMethod
setval(param, val)

Set QCDNUM parameters.

Arguments

  • param::String: Name of parameter. Can be "null" (result of

calc that cannot be performed), "epsi" (tolerance level in float comparison |x-y| < epsi), "epsg" (numerical accuracy of Gauss integration in weight table calc), "elim" (allowed diff between quadratic and linear spline interpolation mid-between x grid points - to disable, set elim<=0), "alim" (Max allowed value of alpha_s(mu^2)), "qmin" (smallest possible boundary of mu^2 grid) "qmax" (largest possible boundary of mu^2 grid).

  • val::Float64: Value to set.
source
QCDNUM.splchkMethod
splchk(iset, id, iq)

Return for a basis pdf at a given Q^2 grid point the maximum deviation between a linear interpolation and the spline interpolation used by QCDNUM.

To be used if having issues with evolfg or extpdf.

Arguments

iset::Integer: PDF set identifier [1-24] id::Integer: Identifier of a basis PDF |e^±| iq::Integer: Index of a Q^2 grid point

Returns

epsi::Float64: Value of the max deviation

source
QCDNUM.splint_initMethod
splint_init()

High-level interface to splint initialisation.

source
QCDNUM.ssp_eraseMethod
ssp_erase(ia)

Clear the memory from ia onwards. ia=0 can also be used to erase all spline objects in memory.

source
QCDNUM.ssp_extrapuMethod
ssp_extrapu(ia, n)

Define the extrapolation at the kinematic limit for a spline at address ia.

The extrapolation index n can be:

  • 0: constant
  • 1: linear
  • 2: quadratic
  • 3: cubic
source
QCDNUM.ssp_extrapvMethod
ssp_extrapv(ia, n)

Define the extrapolation at the kinematic limit for a spline at address ia.

The extrapolation index n can be:

  • 0: constant
  • 1: linear
  • 2: quadratic
  • 3: cubic
source
QCDNUM.ssp_nprintMethod
ssp_nprint(ia)

Print a list of nodes and grids for the spline at address ia.

source
QCDNUM.ssp_s2f123Method
ssp_s2f123(ia, iset, def, istf, rs)

Fast structure function input for 2D splines over x and qq.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • rs::Float64: sqrt(s) cut - 0 for no kinematic cut
source
QCDNUM.ssp_s2fillMethod
ssp_s2fill(iasp, fun, rs)

Fill the spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • rs::Float64: set a sqrt(s) cut - 0 for no kinematic cut
source
QCDNUM.ssp_spdumpMethod
ssp_spdump(ia, filename)

Dump spline at address ia to filename.

source
QCDNUM.ssp_spinitMethod
ssp_spinit(nuser)

Initialise SPLINT - should be called before other SPLINT functions.

Arguments

  • nuser::Integer: the number of words reserved for user storage
source
QCDNUM.ssp_splimsMethod
ssp_splims(ia)

Get node limits of spline at address ia.

Here, u and v refer to the x and qq dimensions respectively.

Returns tuple containing

  • nu::Integer: number of nodes in u direction
  • u1::Float64: lower u limit
  • u2::Float64: upper u limit
  • nv::Integer: number of nodes in v direction
  • v1::Float64: lower v limit
  • v2::Float64: upper v limit
  • n::Integer: number of active nodes below kinematic limit
source
QCDNUM.ssp_spsetvalMethod
ssp_spsetval(ia, i, val)

Store some extra info, val, along with the spline at ia.

Arguments

  • ia::Integer: spline address.
  • i::Integer: storage index, runs from 1-100.
  • val::Float64: value to store.
source
QCDNUM.ssp_sqf123Method
ssp_sq123(ia, iset, def, istf, ix)

Fast structure function input for splines over qq.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • ix::Integer: index of x value
source
QCDNUM.ssp_sqfillMethod
ssp_sqfill(iasp, fun, ix)

Fill the 1D qq spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • ix::Integer: fixed ix value to pass to fun
source
QCDNUM.ssp_sxf123Method
ssp_sxf123(ia, iset, def, istf, iq)

Fast structure function input for splines over x.

Arguments

  • ia::Integer: address of the spline object
  • iset::Integer: QCDNUM pdf-set index
  • def::Array{Float64}: Array of (anti-)quark

coefficients

  • istf::Integer: structure function index

1<=>FL, 2<=>F2, 3<=>xF3, 4<=>FL'

  • iq::Integer: index of qq value
source
QCDNUM.ssp_sxfillMethod
ssp_sxfill(iasp, fun, iq)

Fill the 1D x spline object by passing a function. The function must have the signature fun(ix::Integer, iq::Integer, first::Boolean).

Arguments

  • iasp::Integer: address of the spline object
  • fun::Union{Base.CFunction, Ptr{Nothing}}: function to be splined
  • iq::Integer: fixed iq value to pass to fun
source
QCDNUM.ssp_unodesMethod
ssp_unodes(ia, n, nu)

Copy u-nodes from spline at address ia to local array.

Arguments

  • ia::Integer: address of spline
  • n::Integer: dimension of array to copy to
  • nu::Integer: number of u-nodes copied

Returns

  • array::Array{Float64}: array of u-nodes
source
QCDNUM.ssp_uwriteMethod
ssp_uwrite(i, val)

Write something to the reserved user space.

Arguments

  • i::Integer: where to write, from 1 to nuser
  • val::Float: what to write
source
QCDNUM.ssp_vnodesMethod
ssp_vnodes(ia, n, nv)

Copy v-nodes from spline at address ia to local array.

Arguments

  • ia::Integer: address of spline
  • n::Integer: dimension of array to copy to
  • nv::Integer: number of v-nodes copied

Returns

  • array::Array{Float64}: array of v-nodes
source
QCDNUM.sumfijMethod
sumfij(iset, c, isel, ix, iq, ichk)

Return the gluon or a weighted sum of quark densities, depending on the selection flag, isel.

isel values:

0: Gluon density |xg> 1: Linear combination c summed over active flavours 2-8: Specific singlet/non-singlet quark component 9: Intrinsic heavy flavours 12+i: Additional pdf |xf_i> in iset

See QCDNUM manual for more information.

Arguments

  • iset::Integer: pdf set id (1-24).
  • c::Array{Float64}: Coefficients of quarks/anti-quarks
  • isel::Integer: Selection flag
  • ix::Integer: x grid point.
  • iq::Integer: q2 grid point.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Float64: pdf value.
source
QCDNUM.sumfxqMethod
sumfxq(iset, c, isel, x, qmu2, ichk)

Return the gluon or a weighted sum of quark densities, depending on the selection flag, isel.

isel values:

0: Gluon density |xg> 1: Linear combination c summed over active flavours 2-8: Specific singlet/non-singlet quark component 9: Intrinsic heavy flavours 12+i: Additional pdf |xf_i> in iset

See QCDNUM manual for more information.

Arguments

  • iset::Integer: pdf set id (1-24).
  • c::Array{Float64}: Coefficients of quarks/anti-quarks
  • isel::Integer: Selection flag
  • x::Float64: input value of x.
  • qmu2::Float64: input value of qmu2.
  • n::Integer: number of additional pdfs to be returned.
  • ichk::Integer: flag to steer error checking. See QCDNUM

docs. ichk = -1 makes code faster, at the risk of not checking certain things.

Returns

  • pdf::Float64: pdf value.
source
QCDNUM.useparMethod
usepar(iset)

Activate the parameters of iset, ie. copy them to iset = 0 and re-initialise the active look-up tables.

source
QCDNUM.usrpdfMethod
usrpdf(fun, iset, n, offset)

Create a user-defined type-5 pdfset (same type as the output of evsgns).

Arguments

  • fun::Union{Base.CFunction, Ptr{Nothing}}: User-defined function with the signature

fun(ipdf::Integer, x::Float64, qq::Float64, first::UInt8)::Float64 specifying the values at x and qq of pdfset ipdf.

  • iset::Integer: Pdfset identifier, between 1 and 24.
  • n::Integer: Number of pdf tables in addition to gluon tables.
  • offset::Float64: Relative offset at the thresholds mu_h^2, used

to catch matching discontinuities.

Returns

  • epsi::Float64: Maximum deviation of the quadratic spline from

linear interpolation mid-between the grid points.

source
QCDNUM.wtfileMethod
wtfile(itype, filename)

Maintains an up-to-date weight table in filename.

source
QCDNUM.xfrmixMethod
xfrmix(ix)

Get x value at grid point ix.

source
QCDNUM.xxatixMethod
xxatix(x, ix)

Check if x coincides with a grid point ix.

Returns

out::Bool: true or false

source
QCDNUM.zmfillwMethod
zmfillw()

Fill weight tables for zero-mass structure function calculations.

source
QCDNUM.zmstfunMethod
zmstfun()

Calculate a structure function from a linear combination of parton densities.

Arguments

  • istf::Integer: structure function index

where (1,2,3,4) = (FL, F2, xF3, fL^').

  • def::Array{Float64}: coeffs of the quark linear combination

for which the structure function is to be calculated.

  • x::Array{Float64}: list of x values.
  • Q2::Array{Float64}: list of Q2 values.
  • n::Integer: number of items in x, Q2 and f.
  • ichk::Integer: flag for grid boundary checks. See QCDNUM docs.

Returns

  • f::Array{Float64}: list of structure functions.
source
QCDNUM.zmwordsMethod
zmwords()

Check the number of words available in the ZMSTF workspace and the number of words used.

source
diff --git a/dev/index.html b/dev/index.html index e9d871a..623ce3d 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Introduction · QCDNUM.jl

Introduction

Fast QCD evolution and convolution: QCDNUM.jl solves the DGLAP evolution equations, which describe the evolution of parton distribution functions with varying energy scales.

Hadrons, such as protons and neutrons, are made up of quarks held together by the strong force. At high energy scales, the valence quarks that define these hadrons exist in a sea of virtual quarks and gluons. The parton distribution functions (often abbreviated to PDFs) describe this structure and are of fundamental importance to our understanding of quantum chromodynamics (QCD), as well as its application to a range of processes, from LHC physics to the development of cosmic ray air showers in the Earth's atmosphere. PDFs can be extracted from accelerator measurements in which hadrons are probed through collisions with electrons, and the DGLAP equations are widely used for this purpose.

QCDNUM.jl is a Julia wrapper for Michiel Botje's QCDNUM, written in Fortran77. The Julia interface offers several interesting advantages:

  • Easily install and use the original QCDNUM without having to compile it on your system - all set up is taken care of behind the scenes in a cross-platform way thanks to BinaryBuilder and Yggdrasil
  • Interface your QCDNUM-based code with Julia's rich functionality and package ecosystem
  • Work interactively with easy file IO, plotting and debugging in e.g. Jupyter notebooks
  • Write more accessible code with the high-level Julia interface provided, in addition to all functions available in QCDNUM

Have you not used QCDNUM before, but are interested to see what QCDNUM.jl can do? Our high-level Julia interface may be more accessible for you. Check out the quick start example where we demonstrate the main functionality.

Are you a long-time user of QCDNUM in Fortran or C++? All the standard QCDNUM functions have corresponding Julia versions. So, translating your old code or starting a new project should be a quick and intuitive! Check out the QCDNUM example jobs. These are Julia versions of the test jobs of the original QCDNUM.

The source code, along with Julia scripts for all examples can be found in the GitHub repository.

This documentation gives an overview of the Julia implementation. More details can be found in the QCDNUM docs.

If you are interested in extracting parton densities from accelerator data, you may also want to check out our PartonDensity.jl project.

Citation

Original QCDNUM software: M. Botje, Comput. Phys. Commun. 182(2011)490, arXiv:1005.1481.

QCDNUM.jl: Coming soon!

+Introduction · QCDNUM.jl

Introduction

Fast QCD evolution and convolution: QCDNUM.jl solves the DGLAP evolution equations, which describe the evolution of parton distribution functions with varying energy scales.

Hadrons, such as protons and neutrons, are made up of quarks held together by the strong force. At high energy scales, the valence quarks that define these hadrons exist in a sea of virtual quarks and gluons. The parton distribution functions (often abbreviated to PDFs) describe this structure and are of fundamental importance to our understanding of quantum chromodynamics (QCD), as well as its application to a range of processes, from LHC physics to the development of cosmic ray air showers in the Earth's atmosphere. PDFs can be extracted from accelerator measurements in which hadrons are probed through collisions with electrons, and the DGLAP equations are widely used for this purpose.

QCDNUM.jl is a Julia wrapper for Michiel Botje's QCDNUM, written in Fortran77. The Julia interface offers several interesting advantages:

  • Easily install and use the original QCDNUM without having to compile it on your system - all set up is taken care of behind the scenes in a cross-platform way thanks to BinaryBuilder and Yggdrasil
  • Interface your QCDNUM-based code with Julia's rich functionality and package ecosystem
  • Work interactively with easy file IO, plotting and debugging in e.g. Jupyter notebooks
  • Write more accessible code with the high-level Julia interface provided, in addition to all functions available in QCDNUM

Have you not used QCDNUM before, but are interested to see what QCDNUM.jl can do? Our high-level Julia interface may be more accessible for you. Check out the quick start example where we demonstrate the main functionality.

Are you a long-time user of QCDNUM in Fortran or C++? All the standard QCDNUM functions have corresponding Julia versions. So, translating your old code or starting a new project should be a quick and intuitive! Check out the QCDNUM example jobs. These are Julia versions of the test jobs of the original QCDNUM.

The source code, along with Julia scripts for all examples can be found in the GitHub repository.

This documentation gives an overview of the Julia implementation. More details can be found in the QCDNUM docs.

If you are interested in extracting parton densities from accelerator data, you may also want to check out our PartonDensity.jl project.

Citation

Original QCDNUM software: M. Botje, Comput. Phys. Commun. 182(2011)490, arXiv:1005.1481.

QCDNUM.jl: Coming soon!

diff --git a/dev/installation/index.html b/dev/installation/index.html index 673ba24..ff89503 100644 --- a/dev/installation/index.html +++ b/dev/installation/index.html @@ -10,7 +10,7 @@ [4acc4d78] ~ QCDNUM v0.2.1 `~/work/QCDNUM.jl/QCDNUM.jl` ⇒ v0.2.1 Precompiling project... QCDNUM - 1 dependency successfully precompiled in 3 seconds (162 already precompiled) + 1 dependency successfully precompiled in 3 seconds (168 already precompiled) 1 dependency precompiled but a different version is currently loaded. Restart julia to access the new version

Development installation

git clone  https://github.com/cescalara/QCDNUM.jl.git
cd QCDNUM.jl
 julia
julia> ]
pkg> generate QCDNUM
 ...... 
@@ -34,4 +34,4 @@
  :xxatix
  :zmfillw
  :zmstfun
- :zmwords

Package removal

To remove package execute

julia> using Pkg

followed by

julia> Pkg.rm("QCDNUM")
+ :zmwords

Package removal

To remove package execute

julia> using Pkg

followed by

julia> Pkg.rm("QCDNUM")
diff --git a/dev/my_qcdnum_params.h5 b/dev/my_qcdnum_params.h5 index 5ff4a879b439d3b2ea08304704cc3daeb5b16356..b93d03e5dbcd94bbc8fb6a39e43d78ab6d63bd29 100644 GIT binary patch delta 284 zcmaEt{4ROJ5;pejub9&r7-mddICruK`w^BMK<;J%ju1vLYw`xJ2@^M1Og7-Efyiv& za$y0pCdo8Re!$ALxrv{NlO3dqfuUjI!q&+Gk|hwG0vt0YD@biYa0;Y*z?@AoE)c^f z$()+}K-*z*kem`s)vw7Pv<)UNl7|bNm^?uNVc_NkignB|wKITr1x@BrgR6xI$f% -Notebook tutorial · QCDNUM.jl

Use QCDNUM in Jupyter notebook

The simplest way to use the QCDNUM in the Jupyter notebook after the installation is

  • To create a virtual python environment with an ad-hoc name myjuliav
[user@host workdirectory]$ python -m venv myjuliav
  • Activate the virtual environment
[user@host workdirectory]$ source myjuliav/bin/activate.sh
  • Install the Jupyter notebook package using pip
(myjuliav) [user@host workdirectory]$ python -m pip install notebook
  • Launch the notebook
(myjuliav) [user@host workdirectory]$ jupyter notebook

and follow the instructions that will be shown on the screen.

In the notebook

  • Create a new notebook

New notebook

  • Start to use QCDNUM

QCDNUM

+Notebook tutorial · QCDNUM.jl

Use QCDNUM in Jupyter notebook

The simplest way to use the QCDNUM in the Jupyter notebook after the installation is

  • To create a virtual python environment with an ad-hoc name myjuliav
[user@host workdirectory]$ python -m venv myjuliav
  • Activate the virtual environment
[user@host workdirectory]$ source myjuliav/bin/activate.sh
  • Install the Jupyter notebook package using pip
(myjuliav) [user@host workdirectory]$ python -m pip install notebook
  • Launch the notebook
(myjuliav) [user@host workdirectory]$ jupyter notebook

and follow the instructions that will be shown on the screen.

In the notebook

  • Create a new notebook

New notebook

  • Start to use QCDNUM

QCDNUM

diff --git a/dev/quickstart/index.html b/dev/quickstart/index.html index 2741afd..a94d2c7 100644 --- a/dev/quickstart/index.html +++ b/dev/quickstart/index.html @@ -172,85 +172,85 @@ plot(p1, p2, layout=(1, 2), xlabel="x") - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

We can also save the QCDNUM setup that we used here for later use:

QCDNUM.save_params("my_qcdnum_params.h5", evolution_params)

Of course, these can be then be loaded back:

g = QCDNUM.load_params("my_qcdnum_params.h5")
 g["evolution_params"]
EvolutionParams
   label: String "evolution_params"
@@ -264,4 +264,4 @@
   iqt: Int64 0
   weight_type: Int64 1
   output_pdf_loc: Int64 1
-

This page was generated using Literate.jl.

+

This page was generated using Literate.jl.

diff --git a/dev/search/index.html b/dev/search/index.html index 829850b..041409c 100644 --- a/dev/search/index.html +++ b/dev/search/index.html @@ -1,2 +1,2 @@ -Search · QCDNUM.jl

Loading search...

    +Search · QCDNUM.jl

    Loading search...

      diff --git a/dev/splint/index.html b/dev/splint/index.html index f148280..822990a 100644 --- a/dev/splint/index.html +++ b/dev/splint/index.html @@ -93,7 +93,7 @@ return f end -func_c = @cfunction(func, Float64, (Ref{Int32}, Ref{Float64}))
      Ptr{Nothing} @0x00007f6199f9eac0

      Let's set up and run this example evolution.

      QCDNUM.qcinit(-6, " ")
      +func_c = @cfunction(func, Float64, (Ref{Int32}, Ref{Float64}))
      Ptr{Nothing} @0x00007fb74759f740

      Let's set up and run this example evolution.

      QCDNUM.qcinit(-6, " ")
       nx = QCDNUM.gxmake(xmin, iwt, ng, nxin, iosp)
       nq = QCDNUM.gqmake(qq, wt, ngq, nqin)
       nw = QCDNUM.fillwt(itype)
      @@ -152,7 +152,7 @@
           return QCDNUM.fvalij(iset, ipdf, ix, iq, 1)
       end
       
      -fun = @cfunction(func, Float64, (Ref{Int32}, Ref{Int32}, Ref{UInt8}))
      Ptr{Nothing} @0x00007f6199f9fde0

      Fill the spline and set no kinematic limit

      QCDNUM.ssp_s2fill(iasp, fun, 0.0)

      We can use some helper functions to query the spline properties...

      QCDNUM.isp_splinetype(iasp)
      +fun = @cfunction(func, Float64, (Ref{Int32}, Ref{Int32}, Ref{UInt8}))
      Ptr{Nothing} @0x00007fb7475a0a60

      Fill the spline and set no kinematic limit

      QCDNUM.ssp_s2fill(iasp, fun, 0.0)

      We can use some helper functions to query the spline properties...

      QCDNUM.isp_splinetype(iasp)
       
       nu, u1, u2, nv, v1, v2, n = QCDNUM.ssp_splims(iasp)
      (22, 0.00010000000000000009, 1.0, 14, 2.0, 10000.00000000001, 308)

      ... or copy the nodes locally and print a summary.

      xarray = QCDNUM.ssp_unodes(iasp, nu, nu);
       qqarray = QCDNUM.ssp_vnodes(iasp, nv, nv);
      @@ -200,4 +200,4 @@
         1   51  0.10000E-01    0      12  0.97874E+01    0
         2   68  0.47863E-01    0      28  0.98578E+02    0
         3   76  0.10000E+00    0      44  0.99286E+03    0
      -  4   93  0.47863E+00    0      55  0.48588E+04    0

      This page was generated using Literate.jl.

      + 4 93 0.47863E+00 0 55 0.48588E+04 0

      This page was generated using Literate.jl.

      diff --git a/dev/testsgns/index.html b/dev/testsgns/index.html index 8d38bbb..b8e01f0 100644 --- a/dev/testsgns/index.html +++ b/dev/testsgns/index.html @@ -187,4 +187,4 @@ id = 9, dif = 0.00000e+00 id = 10, dif = 0.00000e+00 id = 11, dif = 0.00000e+00 -id = 12, dif = 0.00000e+00

      This page was generated using Literate.jl.

      +id = 12, dif = 0.00000e+00

      This page was generated using Literate.jl.

      diff --git a/dev/timing/index.html b/dev/timing/index.html index 541215a..38e0022 100644 --- a/dev/timing/index.html +++ b/dev/timing/index.html @@ -156,4 +156,4 @@ - Wait: 1000 evols and 2.10^6 stfs will take ... 6.188660 seconds (25.56 k allocations: 16.815 MiB, 0.13% compilation time)

      This page was generated using Literate.jl.

      + Wait: 1000 evols and 2.10^6 stfs will take ... 6.286163 seconds (25.56 k allocations: 16.815 MiB, 0.15% compilation time)

      This page was generated using Literate.jl.