Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: hz-b/rayx

v1.1.0

24 Oct 11:45

Choose a tag to compare

Changelog

RAYX-CORE

  • New optical element: Multi Layer Mirror
    • support for up to 1000 coatings
  • New source: Ray List Source
    • user can provide a list of rays to be taced
  • Generate rays on selected device
    before, rays were generated from sources on the cpu, singlethreaded
    now, ray generation will take place on the selected device, gpu or cpu, multithreaded
    • record generated rays, so they can be analyzed and plotted by the user
  • Changes in Ray attributes
    • refactor path_length to optical_path_length
      before, represented the geometrical path length
      now, represents the optical path length
    • refactor element_id to object_id
      before, an event refered to an element
      now an event may relate to generated rays from a source or element
  • Drop support for misalignment
    • misalignment was an artifact from RAY-UI, which was incomplete in rayx, incapable of applying translational and rotational adjustments correctly. now it is removed, making space for a new design of this concept
  • Rework reading and writing rays to csv file
    • improve readability of csv files
      • allow scientific notation
      • use precise number of digits for floating point numbers
      • add ability to write integers and strings
    • use ray attribute mask, to determine what attributes are written
  • Extend beamline tree (class BeamlineNode, class Group)
    • add node to tree, release node from tree, reparent node, find node
    • add bijection between sources/elements and object_id
  • Extend struct Rays (structure of arrays)
  • Make more types be used in type-safe manner, in preparation to make them available from rayx-python (#415)
  • Several performance optimizations
    • use rays in SoA fashion, including gpu kernels, allows for masking recorded attributes as early as possible
  • Fix energy distribuition type: list of weighted values for photon energy (dat file)
  • Fix single precision calculation in conversion from global to local electric field and calculation of degree of polarization. use double precision

RAYX (cli)

  • Add cli option to override the number of rays in the sources of the traced beamline
    -n,--number-of-rays INT Override the number of rays for all sources

  • Add cli option to sort output events by object_id. This can speed-up analysis when plotting per object
    -O,--sort-by-object-id Sort rays by object_id before writing to output file

  • Enable usage of option -o to specify output directory of trace results for multiple rml inputs

  • rework cli parsing

    • add capability to positional arguments
      by default arguments will be treated as RML input
      e.g. ./rayx my_beamline.rml my_other_beamline.rml
      this allows for double clicking rml files in the file manager to run rayx. just set rayx as default application for file extension .rml
    • add capability to array-like arguments
      e.g. rayx my_beamline.rml -A position_x position_z
    • use -- to terminate the list of values to an array-like argument)
      e.g. ./rayx -A position_x position_z -- my_beamline.rml
  • Rename some of the cli arguments

  • Validate output events

Other Changes

  • Fallback to single-threaded tracing on CPU when OpenMP is not available during compilation

Other

Full Changelog: v1.0.0...v1.1.0

v1.0.0

19 Aug 12:22

Choose a tag to compare

Changelog

Breaking Changes

  • For h5 files, the internal data layout has changed. rayx/rayx-ui wont be able to write/read the old format

RAYX-CORE

RAYX (cli)

  • Rename cli format options
    -F,--format TEXT Write specific Ray attributes to output H5 files. Provide a space-separated list of attributes. default value: "path_id position_x position_y position_z event_type direction_x direction_y direction_z energy electric_field_x electric_field_y electric_field_z path_length order element_id source_id "
  • Add cli option to dump meta data of h5 and rml files
    -D,--dump TEXT Dump the meta data of a file (h5 or rml)
  • Add cli option to record events from a single element only
    -R,--record-element INT Record events only for a specifc element
  • Add cli option to specify output filepath of csv or h5 files (#366)
    -o,--output TEXT Output path or filename

RAYX-UI

  • Improve Wayland support on Linux (#353)
  • Add flag to run in verbose mode (--verbose flag) (#351)

Other Changes

  • Improved ease of compilation using compile.sh script (#385)
  • Add CMake option to enable/disable OpenMP backend (#357)
  • Add CMake option to build rayx-core as static lib (#343)
  • Enable use of rayx as a submodule in another project (#359)
  • Add shell.nix file, for starting a nix-shell environment, containing all dependencies required to build (#389)

New Contributors

Other

Full Changelog: v0.21.2...v1.0.0

Probably coming soon

  • Mac support including multithreaded tracing on CPU using OpenMP (arm, x86)
  • Nix flake for reproducable dependency handling to make developing and building rayx more accessible
  • Multi layer foil

v0.21.2

28 Aug 10:37

Choose a tag to compare

Changes

RAYX-CORE

  • Improve tests on correctness for gratings by @fannyzotter in #307
  • Rework Refrac2D by @fannyzotter in #308
  • Exchange Vulkan GPU tracer with Alpaka (using Cuda) and enable multithreaded CPU tracing. by @ichinii in #304
  • adapt compile.sh by @ichinii in #317
  • Rework/core classes by @Atraxus in #316
  • Exchange custom math library with std math library for complex numbers and trigonometry
  • Minor bug fixes

RAYX-UI

New Contributors

Full Changelog: v0.20.0...v0.21.0

v0.20.0

23 May 06:53

Choose a tag to compare

Changes

RAYX-UI

  • UI restyling
  • Added dockspace for more flexibility
  • UI Scale slider
  • Improvements for tracing with RAYX-UI
  • Loading witout h5

RAYX-CORE

  • Improved flexibility for optical elements (cutout, surface, behaviour)

Known Bugs

  • RAYX-UI can crash on ubuntu when opening the file dialog
    • use -i CLI argument for now if that is the case, we are working on a fix

v0.19.4

07 Mar 10:13

Choose a tag to compare

Changes

  • Improve robustness of rayx-ui optical element rendering
  • Fixing asset distribution for rayx-ui
  • Fixing script distribution for rayx

v0.19.3

02 Mar 10:36

Choose a tag to compare

Changes

  • Fixing shader distribution with binaries again

v0.19.2

02 Mar 10:03

Choose a tag to compare

Changes

  • Fixing shader distribution with binaries
  • Fixing material data distribution with binaries
  • Documentaion improvements

v0.19.1

20 Feb 13:21

Choose a tag to compare

Changes

  • Fixing shader distribution with binaries

v0.19.0

19 Feb 21:29

Choose a tag to compare

Changes

  • rayx-core:
    • Added optical elements
      • Paraboloid
    • Added light sources
      • Simple Undulator
      • Pixel Source
      • Dipole Source
    • Improved code consistency for optical elements and light sources
    • Improved test suite
    • Fixes for RZP tracing
  • rayx:
    • Added more options to customize the export of rays and speed up the tracing
    • Added option to choose GPU
    • Improved runtime by optimizing data handling
  • rayx-ui:
    • Added orthographic camera
    • Added footprints/heatmaps/histograms for simple optical elements
    • Changed default camera position and orientation
    • Jump to light source is possible now
    • Correctly render slits
    • Fixed positioning of light sources
    • Fixed triangulation bugs
    • Fixed general rendering bugs
  • General bugfixes and documentation updates

Release v0.18.0

05 Oct 14:35

Choose a tag to compare

Changes

  • Addition of first prototype for RAYX-UI, which allows rendering of beamlines
  • Added -s option for sequential tracing
  • Added option for specific h5 format when exporting rays
  • Bug fixes for the RZP (but still being worked on)
  • Added additional benchmarking tools
  • Exposed additional RAYX-CORE features for outside use
  • Improved documentation
  • Improved software testing