Union logger transformations#2426
Conversation
bd56d3b to
754c277
Compare
|
Tests, linting, mcdoc and formatting pass locally for all logger and abs_logger components |
|
@mads-bertelsen the remaining error in the mcstas-basictest workflow, gcc Windows is very likely not an issue in your code. The NCrystal dependency is in place but is not (currently) properly found / linked correctly on that configuration. (The “fully” conda workflow works fine.) |
Logger components had coordinate transformation from master to local in their code, and didn't take rotation into account. Abs_loggers on the other hand had the transformation done in master, this was moved into the abs_loggers to be more consistent with loggers. It was decided to have transformation in the loggers, abs_loggers instead of master for performance reasons, a logger may look on just the time, and then there is no need to transform position and wavevector.
Additional tests are needed and will be added to the branch.
- Union_master at weird position, requires loggers to correct with their transformation, harder test - Added conditional component to all abs_logger and logger tests, testing a significantly different code path for each Found issue in conditionals as relating to absorption loggers with speicifc target, fixed that.
…abs_loggers and Powder_process. Renamed geometries in text to avoid names of drawcalls such as box and sphere, which prevents mcdisplay functionality. Reduced uncertainty in certain tests to ensure they are very likely to succeed when running with standard 1E6 rays.
…g on windows blocking the PR.
98bbc57 to
5e26d07
Compare
…rhaps could be cause of rare crash on windows.
|
During one test on windows there were a number of runtime failures on very simple test instruments that all used a conditional component, but only that single run. Looked through all code related to conditionals for memory allocation errors and found two issues that were fixed:
All tests pass locally and on GitHub actions. Maybe these helped, maybe it was something else, but have not been able to reproduce that test error since. Think this is ready to merge! |

Free-form text area
Please describe what your PR is adding in terms of features or bugfixes:
In the Union system, loggers and absorption loggers handled coordinate transformation from the master to their local coordinate system in different ways. That has been streamlined so they both perform the transformation in the logger, as the transformation is not always necessary which saves computation time (think logging just the time).
Fixed issue the caused loggers to not account for rotation.
Fixed issue that prevented conditional on absorption loggers in certain circumstances.
Updated all tests of loggers and absorption loggers to include:
Many tests lacked examples, this has been rectified in all cases except where only event output is possible. One component lacked a test, and it was added.
Development OS / boundary conditions
Please describe what OS you developed and tested your additions on, and if any special dependencies are required:
PR Checklist for contributing to McStas/McXtrace
For a coherent and useful contribution to McStas/McXtrace, please fill in relevant parts of the checklist:
My contribution includes patches to an existing component file
mcdocutility and rendered a reasonable documentation page for the component (please attach as screenshot in comments!)mctestutility to test one or more instruments making use of the component (please attachmcviewtestreport as screenshot in comments)mccode-clangformattool to apply the standard McCode component indentation schememcrun --c-lint"linter" and followed advice to remove most / all warnings that are raisedMy contribution includes patches to an existing instrument file
mcdocutility and rendered a reasonable documentation page for the instrument (please attach as screenshot in comments!)mctestutility to test the instrument (please attachmcviewtestreport as screenshot in comments)mcrun --c-lint"linter" and followed advice to remove most / all warnings that are raisedMy contribution includes a new component file
mcdocutility and rendered a reasonable documentation page for the component (please attach as screenshot in comments!)mccode-clangformattool to apply the standard McCode component indentation schemecontribcomponent categoryMy contribution includes a new instrument file
mcdocutility and rendered a reasonable documentation page for the instrument (please attach as screenshot in comments!)%Example:line to describe expected behaviourmcrun --c-lint"linter" and followed advice to remove most / all warnings that are raisedexampleshierarchy in a folder in the style ofexamples/ESS/New_stuff/New_stuff.instrexamplefolder, but if general use I have placed it in the globaldatafolder.My work touches the code-generator in mccode/src
My work touches / adds to the runtime lib code (.c,.h etc in multiple locations
My PR is meant to fix a specific, existing issue
My contribution contains something else