aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2024-02-06 16:41:33 +0100
committerThomas White <taw@physics.org>2024-02-06 16:59:35 +0100
commit55c02192fad40514a9dd8456aac9381561641cfe (patch)
tree1571fae033b94d36206fc53fb1355a209cf0139c
parent5398ff3bc10439b8e4642256b7d8b21e17ae7ce2 (diff)
Julia: Add "savereflist!"
-rw-r--r--julia/CrystFEL/src/CrystFEL.jl2
-rw-r--r--julia/CrystFEL/src/reflists.jl15
2 files changed, 15 insertions, 2 deletions
diff --git a/julia/CrystFEL/src/CrystFEL.jl b/julia/CrystFEL/src/CrystFEL.jl
index 91af5d19..95b2a61d 100644
--- a/julia/CrystFEL/src/CrystFEL.jl
+++ b/julia/CrystFEL/src/CrystFEL.jl
@@ -55,7 +55,7 @@ export PeakList
include("reflists.jl")
using .RefLists
-export RefList, loadreflist
+export RefList, loadreflist, savereflist!
export Reflection, MergedReflection, UnmergedReflection
include("crystal.jl")
diff --git a/julia/CrystFEL/src/reflists.jl b/julia/CrystFEL/src/reflists.jl
index c5edb794..e1766f83 100644
--- a/julia/CrystFEL/src/reflists.jl
+++ b/julia/CrystFEL/src/reflists.jl
@@ -3,7 +3,7 @@ module RefLists
using Printf
import ..CrystFEL: libcrystfel
import ..CrystFEL.Symmetry: SymOpList, InternalSymOpList, symmetry_name
-export RefList, loadreflist
+export RefList, loadreflist, savereflist!
export Reflection, UnmergedReflection, MergedReflection
export InternalRefList
@@ -123,6 +123,19 @@ function loadreflist(filename::AbstractString)
end
+function savereflist!(reflist::RefList{MergedReflection}, filename::AbstractString)
+
+ r = @ccall libcrystfel.write_reflist_2(filename::Cstring,
+ reflist.internalptr::Ptr{InternalRefList},
+ reflist.symmetry.internalptr::Ptr{InternalSymOpList})::Cint
+
+ if r != 0
+ throw(ErrorException("Failed to save reflection list"))
+ end
+
+end
+
+
function Base.show(io::IO, ::MIME"text/plain", reflist::RefList{MergedReflection})
println(io, "Merged reflection list in point group ", symmetry_name(reflist.symmetry))
print(io, " h k l intensity σ(intens) nmeas")