XtalOptimizer: Max time is configurable
All checks were successful
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 11m43s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 12m58s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 12m58s
Build Packages / Generate python client (push) Successful in 15s
Build Packages / build:rpm (rocky8) (push) Successful in 13m7s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m12s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 13m18s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 13m33s
Build Packages / Build documentation (push) Successful in 34s
Build Packages / build:rpm (rocky9) (push) Successful in 13m54s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 6m59s
Build Packages / Unit tests (push) Successful in 51m27s

This commit is contained in:
2025-12-06 16:40:00 +01:00
parent 3ef11420f9
commit dbc09e04f9
3 changed files with 5 additions and 2 deletions

View File

@@ -104,7 +104,8 @@ void IndexAndRefine::ProcessImage(DataMessage &msg,
.crystal_system = symmetry.crystal_system,
.min_spots = experiment.GetIndexingSettings().GetViableCellMinSpots(),
.refine_beam_center = true,
.refine_distance_mm = false
.refine_distance_mm = false,
.max_time = 0.04 // 40 ms is max allowed time for the operation
};
if (symmetry.crystal_system == gemmi::CrystalSystem::Trigonal)

View File

@@ -517,7 +517,7 @@ bool XtalOptimizerInternal(XtalOptimizerData &data,
ceres::Solver::Options options;
options.linear_solver_type = ceres::DENSE_QR;
options.minimizer_progress_to_stdout = false;
options.max_solver_time_in_seconds = 0.02; // 20 ms - try not go longer
options.max_solver_time_in_seconds = data.max_time;
options.logging_type = ceres::LoggingType::SILENT;
ceres::Solver::Summary summary;

View File

@@ -27,6 +27,8 @@ struct XtalOptimizerData {
bool refine_distance_mm = false;
bool refine_detector_angles = false;
float max_time = 1.0;
std::optional<GoniometerAxis> axis;
// output