The changelog section had grown to 22 entries written from the commits
rather than for a user. Collapsed to 13, each saying what is gained
before what changed, with related work merged - the six anisotropy
entries into one, five space-group entries into two, five
integration-radius entries into one - and four things added that had no
entry at all: the packaging split, the statically linked cuFFT, the Ceres
back-end drop and REPORT_VERSION reaching 3.
CPU_DATA_ANALYSIS gains 9.5, the adaptive integration radius: the r80
measurement, the clamp, the constant-ring-area r3, the convergence test,
why it applies to the final pass only and the density fallback. Three
passages there had gone stale against the code: 13.1 still described the
I/sigma quantile fallback that b90fcfb98 deleted, and 13.5 said the gate
tests delta_B when it tests delta_B_linear and that the high-symmetry
caution fires wherever the Laue class leaves one free direction, which
0da593b32 narrowed.
RUGNUX gains an Installation section - there was no page anywhere saying
where rugnux comes from - a synopsis, a worked first run naming the files
that actually appear and the report keys to grep, and sections on the
unmerged export and on diffraction anisotropy. Its report section list
was one section behind: anisotropy is 9, warnings is 10.
The packaging change reached further than the changelog implied, so the
pages describing what a release ships were corrected too: the viewer
tarball no longer carries rugnux or the two developer utilities, the
Linux archives link cuFFT statically rather than shipping it beside the
binary under an $ORIGIN rpath, the aarch64 archive has a higher glibc
floor than the RHEL 8 ones and is untested on hardware, the archives
unpack with no top-level directory, and the notices live per package
under share/doc/jfjoch_<component>. The RHEL 9.5 vm_flags workaround in
FPGA_PCIE_DRIVER is obsolete and now says so.
3.0 KiB
Tools
Besides the main services (jfjoch_broker,
jfjoch_writer, jfjoch_viewer), the repository ships a
number of command-line tools. Each prints its own usage when run with -h or without arguments.
Data analysis
rugnux
Offline CLI tool that runs the full crystallographic analysis pipeline (spot finding, indexing,
integration, scaling/merging) on a stored HDF5 dataset, producing a _process.h5 file and, when
merging, reflection files. Merging is on by default (--no-merge disables it). --mode picks what a
run does: mx (the above, the default), azint (only azimuthal integration, no spot
finding/indexing), scale (re-scale/merge the already-integrated reflections in a _process.h5
without re-integrating) or calibration (detector geometry from a calibrant's powder rings, written
as a .poni file). See rugnux.
rugnux installs on its own, as the rugnux package or as a standalone archive — see
rugnux ▸ Installation.
jfjoch_extract_hkl
Extracts reflections (HKL list) from a Jungfraujoch master file; can sum the same HKL across
neighbouring images and compare against an XDS INTEGRATE.HKL reference. A developer utility: it is
built from source but, like jfjoch_recompress, is not installed into any package.
FPGA / PCIe card management
jfjoch_pcie_status
Prints detailed status information about the card. Safe to run during data collection:
./jfjoch_pcie_status /dev/jfjoch0
jfjoch_pcie_net_cfg
Reads and modifies the network configuration of the card's interfaces:
jfjoch_pcie_net_cfg <device name>
Read configuration for all network interfaces of a device
jfjoch_pcie_net_cfg <device name> <if number>|fgen
Read configuration for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen ipv4 <IPv4 address>
Set IPv4 address for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen direct 0|1
Set direct mode for a particular network interface / internal frame generator
jfjoch_pcie_net_cfg <device name> <if number>|fgen clear
Clear Ethernet counters for a particular network interface / internal frame generator
jfjoch_pcie_clear_net_counters
Resets the card's Ethernet, UDP and ICMP packet counters (which otherwise run from power-on):
./jfjoch_pcie_clear_net_counters /dev/jfjoch0
Testing, benchmarking and simulation
jfjoch_udp_simulator
UDP packet simulator used to test the Jungfraujoch FPGA receiver.
jfjoch_fpga_test
Exercises and benchmarks the FPGA data path and receiver. With -H it runs the high-level
synthesis C model on the CPU, so no FPGA device is required.
jfjoch_lite_perf_test
Performance test of the lite (CPU/GPU) analysis path — indexing, integration and optional file writing.
jfjoch_hdf5_test
Tests single-threaded HDF5 writer performance.
jfjoch_simplon_test
Minimal test client for a DECTRIS SIMPLON detector API.