diff options
author | Thomas White <taw@physics.org> | 2024-01-22 11:54:52 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2024-02-06 16:59:35 +0100 |
commit | c2bbea9374aa940c6dc5f8102614470aab1baa8e (patch) | |
tree | ddf2580ee23a8fee1d06ec66524e4e6512b246af /julia | |
parent | d371a2b753fd20da36ec6a46f06e4bc8f058f1fa (diff) |
Julia: Expose partiality modelling
Diffstat (limited to 'julia')
-rw-r--r-- | julia/CrystFEL/src/CrystFEL.jl | 3 | ||||
-rw-r--r-- | julia/CrystFEL/src/diffcalc.jl | 33 |
2 files changed, 30 insertions, 6 deletions
diff --git a/julia/CrystFEL/src/CrystFEL.jl b/julia/CrystFEL/src/CrystFEL.jl index 431fb51e..1b1ee52b 100644 --- a/julia/CrystFEL/src/CrystFEL.jl +++ b/julia/CrystFEL/src/CrystFEL.jl @@ -67,7 +67,8 @@ export Image include("diffcalc.jl") using .DiffractionCalculations -export predictreflections +export predictreflections, calculatepartialities! +export PartialityModel, UnityModel, XSphereModel, OffsetModel, RandomModel, GeneralGaussianModel include("indexing.jl") using .Indexing diff --git a/julia/CrystFEL/src/diffcalc.jl b/julia/CrystFEL/src/diffcalc.jl index d89376ce..1c6aea9c 100644 --- a/julia/CrystFEL/src/diffcalc.jl +++ b/julia/CrystFEL/src/diffcalc.jl @@ -5,17 +5,40 @@ import ..CrystFEL.Images: InternalImage, Image import ..CrystFEL.Crystals: InternalCrystal, Crystal import ..CrystFEL.RefLists: RefList, UnmergedReflection, InternalRefList import ..CrystFEL.Symmetry: SymOpList -export predictreflections +export predictreflections, calculatepartialities! +export PartialityModel, UnityModel, XSphereModel, OffsetModel, RandomModel, GeneralGaussianModel + + +""" +Enumeration of the available partiality models. +""" +@enum PartialityModel begin + UnityModel + XSphereModel + OffsetModel + RandomModel + GeneralGaussianModel +end function predictreflections(cr::Crystal, image::Image; maxres=1e10) - refls = ccall((:predict_to_res, libcrystfel), - Ptr{InternalRefList}, - (Ptr{InternalCrystal}, Ptr{InternalImage}, Cdouble), - cr.internalptr, image.internalptr, maxres) + + refls = @ccall libcrystfel.predict_to_res(cr.internalptr::Ptr{InternalCrystal}, + image.internalptr::Ptr{InternalImage}, + maxres::Cdouble)::Ptr{InternalRefList} sym = SymOpList("1") return RefList{UnmergedReflection}(refls, sym) end +function calculatepartialities!(reflist::RefList{UnmergedReflection}, + cr::Crystal, image::Image; model=XSphereModel, maxres=1e10) + + @ccall libcrystfel.calculate_partialities(reflist.internalptr::Ptr{InternalRefList}, + cr.internalptr::Ptr{InternalCrystal}, + image.internalptr::Ptr{InternalImage}, + model::Cint)::Cvoid +end + + end # of module |