aboutsummaryrefslogtreecommitdiff
path: root/julia/CrystFEL/src/diffcalc.jl
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2024-04-18 14:32:14 +0200
committerThomas White <taw@physics.org>2024-04-18 14:32:14 +0200
commit52bde38abbcb53d163355a71fc9e99332ffe3dee (patch)
tree54bf334103708bcbf0b821c583b06f66769edf22 /julia/CrystFEL/src/diffcalc.jl
parent536d1a563e5c93cbbefb3556ea897acaf8fa70ce (diff)
parent62a2fdee1b7e69a1fe1ecb58e286866c41b6bb81 (diff)
Merge branch 'julia'
Diffstat (limited to 'julia/CrystFEL/src/diffcalc.jl')
-rw-r--r--julia/CrystFEL/src/diffcalc.jl44
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