Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-09-23 | Fix a couple of profiling memory errors | Thomas White | |
The "children" array was the wrong size, and not freed. Also, some formatting fussiness. | |||
2023-09-22 | Don't complain about missing 'all' group until it's actually needed | Thomas White | |
2023-09-20 | Fix inappropriate use of r_dev | Thomas White | |
These should be get_exerr. Following 1ae9a4582, the r_dev values are no longer useful physical quantities, only a refinement target function. This was causing the last few Git versions to not predict any reflections at all! | |||
2023-09-19 | Prediction refinement: Weaken restraint and reduce number of iterations | Thomas White | |
The restraint was way too strong, after the last round of tweaking. With a weaker restraint, the algorithm converges very quickly - it's practically linear - so ten iterations is way too much. | |||
2023-09-18 | Use a*a instead of pow(a, 2) | Thomas White | |
2023-09-18 | Build EXC_WEIGHT into r_dev | Thomas White | |
This avoids weird weighting factors everywhere and much confusion. Since Millepede doesn't have an easy way of weighting measurements (only via altering the ESD values), treating it as a units conversion seems to be easier. | |||
2023-09-18 | pred_residual: Remove vestigial conversion to metres | Thomas White | |
We want the residual in pixels, as described in the comment for EXC_WEIGHT. This routine is only used for displaying the total residuals, not for the real minimisation maths. However, we need to be clear. | |||
2023-09-18 | Prediction refinement: Record excitation error and distance residuals separately | Thomas White | |
2023-09-18 | Prediction refinement: Record initial residual and total shifts | Thomas White | |
2023-09-18 | Merge branch 'millepede' | Thomas White | |
Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/3 Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/29 | |||
2023-09-12 | Fix nominal space group when exporting MTZ in PG 2 | Thomas White | |
2023-09-12 | Fix sense of panel rotations | Thomas White | |
Should always be a right-hand grip rotation around positive axis direction. | |||
2023-09-12 | Seedee: Handle format i4< | Thomas White | |
2023-08-30 | Add excitation error to Millepede data (local-only measurement) | Thomas White | |
2023-08-30 | Fussiness | Thomas White | |
2023-08-29 | Meson: Simplify Millepede build system | Thomas White | |
There are no dependencies, only a subproject via wrap. | |||
2023-08-29 | Automatically add top-level group for single-panel detectors | Thomas White | |
2023-08-24 | Use built-in Mille writer instead of wrapping C++ version | Thomas White | |
2023-07-28 | Tweak sigmas | Thomas White | |
2023-07-28 | align_detector: Decode labels and apply geometry corrections | Thomas White | |
2023-07-28 | Don't attempt to write Mille data without geometry groups | Thomas White | |
2023-07-28 | Unconditionally compile crystfel-mille.c | Thomas White | |
We need mille_label() for align_detector, even if we don't have Millepede. Some of this complexity can be removed later by re-implementing "mille()". The build system and wrapper code is already longer than a pure C implementation would be. | |||
2023-07-28 | Initialise det->top_group | Thomas White | |
2023-07-28 | data_template_free: Free the groups as well | Thomas White | |
2023-07-28 | detgeom_free: Free the groups as well | Thomas White | |
2023-07-28 | Fix some memory leaks | Thomas White | |
2023-07-28 | Adjust refinement weights and restraints | Thomas White | |
2023-07-28 | Fix sigmas | Thomas White | |
2023-07-28 | Fix parameter refinement units | Thomas White | |
The *parameters* will be in metres, radians, m^-1 for translation, rotation and cell parameters respectively. The *residuals*, however, are in pixels. | |||
2023-07-28 | Avoid repetitive code | Thomas White | |
2023-07-28 | Fix incorrectly-sized array | Thomas White | |
2023-07-28 | Implement data_template_group_info() | Thomas White | |
2023-07-28 | Re-define geometry group labelling scheme | Thomas White | |
The old version was totally broken. The serial numbers have to contain the complete hierarchy information, otherwise they aren't unique. | |||
2023-07-28 | Rotation centre coordinates need to be in metres (not pixels) | Thomas White | |
2023-07-28 | Add rotation gradients for Mille | Thomas White | |
2023-07-28 | Add detgeom_group_center | Thomas White | |
2023-07-28 | Fix iterate() for prediction refinement | Thomas White | |
I was confused when I wrote acd0de4e4a21, and completely broke the maths. To fix it, I copied the guts of iterate() back from the old version and re-created the intermediate steps - switching x/y to fs/ss, calculating fs/ss gradients together and the hooks for Minv. | |||
2023-07-28 | Redefine ray vector without trigonometry | Thomas White | |
This makes the gradients very simple! | |||
2023-07-28 | Implement rotation gradients (with test) | Thomas White | |
2023-07-28 | Move rotate2d to utils | Thomas White | |
2023-07-28 | Separate gradients into "panel" and "physics" parts | Thomas White | |
2023-07-28 | Factorise matrix operations | Thomas White | |
This makes the code much clearer. Note that two opposing sign errors have been fixed in the gradient calculation. | |||
2023-07-28 | Add show_vector() | Thomas White | |
2023-07-28 | Implement panel x gradients | Thomas White | |
2023-07-28 | Calculate panel Minvs | Thomas White | |
2023-07-28 | Calculate fs and ss gradients together, SPOT panel number, add matrix hooks | Thomas White | |
2023-07-28 | r_gradient: Re-order parameters to match {fs,ss}_gradient | Thomas White | |
2023-07-28 | Trim the list of geometric parameters | Thomas White | |
2023-07-28 | Don't refine detector at all, in prediction refinement | Thomas White | |
Following the advice in https://doi.org/10.1107/S2059798318009191 | |||
2023-07-28 | Remove a #define | Thomas White | |