diff options
author | Thomas White <taw@physics.org> | 2024-04-18 14:32:14 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2024-04-18 14:32:14 +0200 |
commit | 52bde38abbcb53d163355a71fc9e99332ffe3dee (patch) | |
tree | 54bf334103708bcbf0b821c583b06f66769edf22 /julia/CrystFEL/src/diffcalc.jl | |
parent | 536d1a563e5c93cbbefb3556ea897acaf8fa70ce (diff) | |
parent | 62a2fdee1b7e69a1fe1ecb58e286866c41b6bb81 (diff) |
Merge branch 'julia'
Diffstat (limited to 'julia/CrystFEL/src/diffcalc.jl')
-rw-r--r-- | julia/CrystFEL/src/diffcalc.jl | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/julia/CrystFEL/src/diffcalc.jl b/julia/CrystFEL/src/diffcalc.jl new file mode 100644 index 00000000..1c6aea9c --- /dev/null +++ b/julia/CrystFEL/src/diffcalc.jl @@ -0,0 +1,44 @@ +module DiffractionCalculations + +import ..CrystFEL: libcrystfel +import ..CrystFEL.Images: InternalImage, Image +import ..CrystFEL.Crystals: InternalCrystal, Crystal +import ..CrystFEL.RefLists: RefList, UnmergedReflection, InternalRefList +import ..CrystFEL.Symmetry: SymOpList +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 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 |