jfjoch_process: Add anomalous mode
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 12m34s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m48s
Build Packages / Generate python client (push) Successful in 29s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m45s
Build Packages / Build documentation (push) Successful in 47s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m0s
Build Packages / build:rpm (rocky8) (push) Successful in 14m5s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m16s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 14m10s
Build Packages / build:rpm (rocky9) (push) Successful in 14m52s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 7m18s
Build Packages / Unit tests (push) Has been cancelled

This commit is contained in:
2026-02-17 13:18:40 +01:00
parent f3e8379a55
commit 957980307f
+8 -1
View File
@@ -43,6 +43,7 @@ void print_usage(Logger &logger) {
logger.Info(" -M Scale and merge (refine mosaicity) and write scaled.hkl + image.dat");
logger.Info(" -L Use log-scaling residual");
logger.Info(" -m<txt> Mosaicity refinement none|fixed|image (default: image)");
logger.Info(" -A Anomalous mode (don't merge Friedel pairs)");
}
int main(int argc, char **argv) {
@@ -63,6 +64,7 @@ int main(int argc, char **argv) {
bool use_fft = false;
bool refine_beam_center = true;
bool run_scaling = false;
bool anomalous_mode = false;
std::optional<int> space_group_number;
bool log_residual = false;
@@ -77,7 +79,7 @@ int main(int argc, char **argv) {
}
int opt;
while ((opt = getopt(argc, argv, "o:N:s:e:vR::Fxd:S:MLm:")) != -1) {
while ((opt = getopt(argc, argv, "o:N:s:e:vR::Fxd:S:MLm:A")) != -1) {
switch (opt) {
case 'o':
output_prefix = optarg;
@@ -116,6 +118,9 @@ int main(int argc, char **argv) {
case 'L':
log_residual = true;
break;
case 'A':
anomalous_mode = true;
break;
case 'm':
if (strcmp(optarg, "none") == 0)
mosaicity_refinement_mode = MosaicityRefinementMode::None;
@@ -419,6 +424,8 @@ int main(int argc, char **argv) {
scale_opts.max_num_iterations = 500;
scale_opts.max_solver_time_s = 240.0; // generous cutoff for now
scale_opts.log_scaling_residual = log_residual;
scale_opts.merge_friedel = !anomalous_mode;
switch (mosaicity_refinement_mode) {
case MosaicityRefinementMode::None:
scale_opts.refine_mosaicity = false;