Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.4.0 #74

Merged
merged 186 commits into from
May 29, 2024
Merged

Release 0.4.0 #74

merged 186 commits into from
May 29, 2024

Conversation

freddieknets
Copy link
Collaborator

  • Adapted buffer and io_buffer in manager to work correctly. Made impact table more robust; works correctly for BlackAbsorber.
  • Spelling mistake in Beryllium
  • Added ds parameter to table, and fixed interaction_type property.
  • Absorbed logging now correctly with ds.
  • Amorphous layer temporarily not supported (adapted tests as well). Prepared small details for recording of crystals.
  • Removed nam from crystal code.
  • Moved imapcts table to separate folder with own C code.
  • Moved material into interact.
  • Some cleaning in scatter_cry and crystal.
  • Moved calculation of bend/bending angle, and scatter length, to python.
  • some further cleaning of crystal function
  • More cleaning in function crystal.
  • Refactored LocalParticle inside function interact.
  • Cleaned up calcionloss_cry.
  • Removed _scatter_length as it was wrong.
  • Adapted MoveAM to work with ScatteringParameters.
  • First implementation of channeling transport function, and some renaming of variables.
  • Use new channeling transport function implemenation for dechanneling as well.
  • Forgot to track new file crystal_properties.h
  • New file structure for impact table.
  • Cleaned up movech - not yet tested.
  • Fixed typos (tests pass), and factored constants out into separate file.
  • Some further cleaning.
  • Cleaned scatter.
  • Bunch of cleaning.
  • Homogenised calcionloss.
  • First introduction of continous transport funtions Amorphous and Channel.
  • Changed structs by reference.
  • First try to make general EverestData struct (no crystals yet) -- does not worj.
  • Quick fix with EverestData definition -- still does not work.
  • Quick fix: needed to initialise radl. Crystals still to be done.
  • Refactored code to use struct EverestData (crystals work as well).
  • Large refactoring of crystals. Tests do not pass! Needs to be benchmarked.
  • MCS to VI is wrong; need to implement it more smart. Currently, defaulted to original implementation (drift to VI).
  • Small bugfixes, still something wrong.
  • Fixed transition regions, fixed VR. Transition can be activated with a compiler flag (off by default).
  • Tests pass (manually generated for crystals).
  • Everest collimator initialises with energy (instead of energy0).
  • Fixed bug in tracking: collimator initialisation should not happen in a twiss
  • Cleaning of spaces in colldb
  • Made test and example lines optimised by default
  • Revert "Made test and example lines optimised by default". This had some (aperture) markers removed and the collimators can't be installed.
  • Install crystals before regular collimators to avoid recompilation.
  • Added critical angle as an xofield such that it can be inspected after tracking. Not very efficient, should be improved.
  • Adapted examples.
  • Added colldb for crystal simulations.
  • Some WIP: moving scatter function in crystal.
  • Preliminary first step to remove particle initialisation out of manager
  • Preliminary first step to remove lossmap out of manager
  • Created LossMap class.
  • Changed the test so it fits the new LossMap class.
  • Changed the examples so they work with the LossMap class. Added the class to init.
  • imported xobjects and matplotlib as these were missing.
  • Added dump function
  • Added the dump function in the examples. Removed file parameter from lossmap function.
  • Angles are in xpart.
  • Current save state - WIP
  • debugging -WIP
  • added test file for initial_distribution.py
  • removed test file as it is not needed
  • WIP
  • Made functions for generating particles on collimator independent of CollimationManager
  • Removed functions for generating particles on collimator from CollimatorManager class
  • Small changes to LossMap, updated all examples.
  • Added check on json file for lossmap test
  • Some cleaning and adaptation of test_lossmap and examples
  • Quick bugfix
  • Finally removed duckcoll
  • Removed inactive front and back, and renamed active_length as length
  • Raise error when using deprecated active_length, inactive_front, or inactive_back.
  • Fix in BlackAbsorber and EverestCrystal
  • created new test file for initial distribution. WIP
  • WIP
  • WIP
  • Created test for initial_distribution.py
  • created test for initial_ditribution.py
  • Updated both test and generation of initial particles. It is still very slow. Removed the parameters for the transverse distribution, as it didn't work as intended and anyway it should be normalised to the beam sigma; otherwise we might create an unmatched beam.
  • Corrected References
  • new file for rewriting jaws
  • addded the changes from RemoveRef
  • Changed collimator data and made small changes for absorbers
  • WIP
  • BlackAbsorber works without reference frame.
  • Quick fix in gap assignment
  • Renamed absorbed flag as enter jaw flag
  • Fixed initial distribution. TODO: matched_dispersion does not work.
  • Udpated crystal gap in example
  • Updated examples
  • Separated collimator geometry from scattering. Works for absorber. Changed base properties of BaseCollimator (base in C is now jaw_LU, jaw_LD, etc).
  • small update
  • WIP: does not work for everest
  • Moved geometry information into a struct, as casting the BeamElement to a BaseCollimator did not work (as the data fields are not necessarily at the same memory addresses)
  • WIP: need to free memory of struct.
  • Kinda works for everest collimators (very small discrepancies in zeta for test_lengths), not for crystals
  • EverestCollimator works correctly
  • Reset crystals to old working state.
  • Force passing of io_buffer to tracker when enabling scattering
  • Refactored BaseCollimator to be compatible with new Xtrack API: optics are attached to collimator element itself, no more need for CollDB
  • Moved installation and assigning optics/setting openings out of manager
  • Added emittance as attribute to base collimator.
  • Install with as default
  • Fixed bug in twiss in assign_optics and added emittance to manager.
  • Updated tests
  • Updated license headrr
  • Added installation test
  • Updated examples
  • Added emittance to BaseCollimator init
  • Small mistakes in examples
  • Slight logic change in update gaps
  • Small fix in example
  • WIP
  • Updated and renamed impacts table (InteractionRecord).
  • wip
  • Fix in _apply_optics: only when gaps are manually set
  • Typo fix
  • Test for gaps and jaws
  • Geometry C code and test
  • Geometry for rectangular and polygonal collimators implemented, and applied to BlackAbsorber
  • EverestCollimator also updated for geometry
  • Took out nuclear interaction into separate file; cleaned up scattering code for Everest collimator
  • Drifting remaining part (after leaving jaw) is done in geometry)
  • Regenerated test references (random normal inside tetat is calculated differently)
  • Updated EverestBlock code to new everest implementation
  • Small cleaning and bugfix in everest collimator
  • Added crystal file in geometry
  • Did not finish (at all), and it is sort of messy. Not sure its useable.
  • Still sort of messy.
  • Fixed momentum scaling in single diffractive, and homogenised exact or expanded drifts and angles inside code
  • Finally, crystal geometry
  • Added eta to channeling efficiency and prohibit two-sided crystal (however this currently makes test_elements fail)
  • Added a few more checks in BaseCollimator and adapted test_elements.
  • New geometry code in C based on segments and objects: much more modular
  • Updated test for new geometry (still need tests with vlimit)
  • Two bugfixes: 1.e12 where it should have been 1.e-12, and a memory issue when expanding an array (in calculate_overlap) -> this was solved by the realisation that the array will always be allocated large enough in our case anyway
  • Added test for geometry
  • Introduced BlackCrystal, applied new geometry to BlackAbsorber and BlackCrystal, and made jaw= and gap= sign-dependent when setting a single-sided collimator.
  • Updated tests for BlackAbsorber
  • EverestCollimator uses new-style geometry; EverestCrystal in the works.
  • Quick bugfix of typo in crystals (but geometry update not yet complete for EverestCrystal)
  • First step to get EverestCrystal working with new geometry - WIP
  • Quick bugfix: angle should be after transformation.
  • EverestCrystal tests pass. However, currently the crystal rotates around the front corner -> not done consistently.
  • Redefinition of crystals: tilt around inner front corner.
  • Forgot to rename jaw_L into jaw in collimator jsons in test
  • Moving to inner upstream corner (for rotation) means s=0
  • Moved eta into EverestColl struct (instead of being hardcoded) and removed some superflous geometry from struct (though some is left for now)
  • Bugfix of typo (xdim instead of width)
  • Adapted BlackCrystal to new tilt rotation logic
  • Made sure elements can be initialised without argument
  • Updated geometry elements tests
  • Fix: inside Rc scale with sart(eta)
  • Reshuffled class dependencies to better separate geometry from scattering
  • Reorganised CrystalGeometry struct vd EverestCollData struct
  • Updated references after bugfix with sqrt(eta) inside Rc
  • trying to make tests more robust
  • Added casting to unsigned int to ensure positive value for malloc
  • Updated examples and tests etc to new crystal API
  • Small changes to crystal
  • Made BlackAbsorber tests with tilts flaky
  • Removed manager completely.
  • Small typo in package init
  • Made test initial distribution flaky
  • Updated version number to v0.4.0.

freddieknets and others added 30 commits July 5, 2023 19:43
…t table more robust; works correctly for BlackAbsorber.
…epared small details for recording of crystals.
freddieknets and others added 28 commits May 17, 2024 00:55
…und the front corner -> not done consistently.
…moved some superflous geometry from struct (though some is left for now)
Added casting to unsigned int to ensure positive value for malloc
@freddieknets freddieknets merged commit f67379d into main May 29, 2024
@freddieknets freddieknets deleted the release/v0.4.0 branch May 29, 2024 00:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant