Skip to content

Commit 7393b28

Browse files
committed
prepare release v1.1.0
1 parent 4b5b7e6 commit 7393b28

File tree

2 files changed

+53
-47
lines changed

2 files changed

+53
-47
lines changed

CHANGELOG.md

Lines changed: 52 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,67 @@
22

33
### Breaking Changes
44

5-
* For h5 files, the internal data layout has changed. rayx/rayx-ui wont be able to write/read the old format
6-
75
### RAYX-CORE
8-
* New optical element: **Crystal** (https://github.com/hz-b/rayx/pull/380)
9-
* For more information visit our [wiki](https://hz-b.github.io): https://hz-b.github.io/rayx/Model/BeamlineObjects/OpticalElements/Crystal.html
10-
* New optical element: **Single layer foil** (https://github.com/hz-b/rayx/pull/391)
11-
* For more information visit our [wiki](https://hz-b.github.io): https://hz-b.github.io/rayx/Model/BeamlineObjects/OpticalElements/Foil.html
12-
* Beamlines are now represented as a tree graph (improved support for grouping of elements) (https://github.com/hz-b/rayx/pull/350)
13-
* For h5 files, the internal data layout has changed (https://github.com/hz-b/rayx/pull/374)
14-
* Each attribute is stored separately
15-
* Each attribute may or may not be stored, depending on format options set (`--format ...` flag)
16-
* May record events from a single element only (https://github.com/hz-b/rayx/pull/365)
17-
* May record specific attributes of events only (https://github.com/hz-b/rayx/pull/374)
18-
* Advance electric field using optical path length (https://github.com/hz-b/rayx/pull/394)
19-
* Rework verbose mode console output (`--verbose` flag)
20-
* Fix efficiency calculation
21-
* Updated dependency `alpaka` to version `2.0.0` (https://github.com/alpaka-group/alpaka/releases/tag/2.0.0) (https://github.com/hz-b/rayx/pull/399)
22-
* Inherently, the build dependency `boost` was dropped in rayx
23-
* By default, rayx-core now compiles for all major cuda architectures (https://github.com/hz-b/rayx/pull/399)
6+
7+
* New optical element: **Multi Layer Mirror**
8+
* support for up to 1000 coatings
9+
* New source: **Ray List Source**
10+
* user can provide a list of rays to be taced
11+
* Generate rays on selected device
12+
before, rays were generated from sources on the cpu, singlethreaded
13+
now, ray generation will take place on the selected device, gpu or cpu, multithreaded
14+
* record generated rays, so they can be analyzed and plotted by the user
15+
* Changes in Ray attributes
16+
* refactor `path_length` to `optical_path_length`
17+
before, represented the geometrical path length
18+
now, represents the optical path length
19+
* refactor `element_id` to `object_id`
20+
before, an event refered to an element
21+
now an event may relate to generated rays from a source or element
22+
* Drop support for misalignment
23+
* 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
24+
* Rework reading and writing rays to csv file
25+
* improve readability of csv files
26+
* allow scientific notation
27+
* use precise number of digits for floating point numbers
28+
* add ability to write integers and strings
29+
* use ray attribute mask, to determine what attributes are written
30+
* Extend beamline tree (`class BeamlineNode`, `class Group`)
31+
* add node to tree, release node from tree, reparent node, find node
32+
* add bijection between sources/elements and object_id
33+
* Extend `struct Rays` (structure of arrays)
34+
* Make more types be used in type-safe manner, in preparation to make them available from rayx-python (https://github.com/hz-b/rayx/pull/415)
35+
* Several performance optimizations
36+
* use rays in SoA fashion, including gpu kernels, allows for masking recorded attributes as early as possible
37+
* Fix energy distribuition type: list of weighted values for photon energy (dat file)
38+
* Fix single precision calculation in conversion from global to local electric field and calculation of degree of polarization. use double precision
2439

2540
### RAYX (cli)
2641

27-
* Rename cli format options
28-
`-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 "`
29-
* Add cli option to dump meta data of h5 and rml files
30-
`-D,--dump TEXT Dump the meta data of a file (h5 or rml)`
31-
* Add cli option to record events from a single element only
32-
`-R,--record-element INT Record events only for a specifc element`
33-
* Add cli option to specify output filepath of csv or h5 files (https://github.com/hz-b/rayx/pull/366)
34-
`-o,--output TEXT Output path or filename`
42+
* Add cli option to override the number of rays in the sources of the traced beamline
43+
`-n,--number-of-rays INT Override the number of rays for all sources`
44+
* Add cli option to sort output events by object_id. This can speed-up analysis when plotting per object
45+
`-O,--sort-by-object-id Sort rays by object_id before writing to output file`
46+
47+
* Enable usage of option `-o` to specify output directory of trace results for multiple rml inputs
3548

36-
### RAYX-UI
49+
* rework cli parsing
50+
* add capability to positional arguments
51+
by default arguments will be treated as RML input
52+
e.g. `./rayx my_beamline.rml my_other_beamline.rml`
53+
this allows for double clicking rml files in the file manager to run rayx. just set rayx as default application for file extension `.rml`
54+
* add capability to array-like arguments
55+
e.g. `rayx my_beamline.rml -A position_x position_z`
56+
* use `--` to terminate the list of values to an array-like argument)
57+
e.g. `./rayx -A position_x position_z -- my_beamline.rml`
3758

38-
* Improve Wayland support on Linux (https://github.com/hz-b/rayx/pull/353)
39-
* Add flag to run in verbose mode (`--verbose` flag) (https://github.com/hz-b/rayx/pull/351)
59+
* Rename some of the cli arguments
60+
* Validate output events
4061

4162
### Other Changes
42-
* Improved ease of compilation using `compile.sh` script (https://github.com/hz-b/rayx/pull/385)
43-
* Add CMake option to enable/disable OpenMP backend (https://github.com/hz-b/rayx/pull/357)
44-
* Add CMake option to build `rayx-core` as static lib (https://github.com/hz-b/rayx/pull/343)
45-
* Enable use of rayx as a submodule in another project (https://github.com/hz-b/rayx/pull/359)
46-
* Add shell.nix file, for starting a nix-shell environment, containing all dependencies required to build (https://github.com/hz-b/rayx/pull/389)
4763

48-
## New Contributors
49-
* @JonasTrenkler made their first contribution (https://github.com/hz-b/rayx/pull/357)
64+
* Fallback to single-threaded tracing on CPU when OpenMP is not available during compilation
5065

5166
## Other
5267

53-
**Full Changelog**: https://github.com/hz-b/rayx/compare/v0.21.2...v1.0.0
54-
55-
<!-- ### Runtime Performance Comparison -->
56-
<!-- Runtime performance compared to the previous release (https://github.com/hz-b/rayx/tree/v0.21.2) -->
57-
58-
## Probably coming soon
59-
60-
* Mac support including multithreaded tracing on CPU using OpenMP (arm, x86)
61-
* Nix flake for reproducable dependency handling to make developing and building rayx more accessible
62-
* Multi layer foil
68+
**Full Changelog**: https://github.com/hz-b/rayx/compare/v0.1.0...v1.0.0

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
22

33
# ---- Project ----
4-
project(RAYX VERSION 1.0.0)
4+
project(RAYX VERSION 1.1.0)
55
if(MSVC)
66
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
77
endif()

0 commit comments

Comments
 (0)