Marxs

Latest version: v1.2

Safety actively analyzes 613544 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.3

----------------

New Features
^^^^^^^^^^^^


API Changes
^^^^^^^^^^^


Bug fixes
^^^^^^^^^

Other changes and additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.2

-----------------

New Features
^^^^^^^^^^^^
- Unit milimeter on ``"pos"`` and ``"dir"`` columns of photonlist. [169]

- Add method `marxs.simulator.Parallel.move_center` to change the ``pos4d``
value of a `marxs.simulator.Parallel` and adjust position of elements at
the same time. [169]

- Refactor `marxs.analysis.analysis.find_best_detector_position` to allow
for more general objective functions. [171]

- Update plotting for `marxs.optics.aperture.CircleAperture` to give more
flexibility in plotting the inner part of a ring-like aperture. This is
needed for models or stacked, rind-like apertures. [180]

- Add new module `marxs.design.tolerancing` to estimate alignment tolerances.
[186]

- Add class `marxs.optics.RandomGaussianScatter`. [192]

- The column names for blaze and order written by
`marxs.optics.FlatGrating` can now be configured. [195]

- Add a number of helper functions (incl. plotting) to
`marxs.design.tolerancing`. [199]

- Add a module to simulate CAT gratings manufactures in MIT's SNL. [202]

- Make MIT SNL grating specification more flexible. [210]


API Changes
^^^^^^^^^^^

- Sources now require input for flux, energy, and polarization as astropy
quantities. Any table-like input must not be a astropy `QTable` and flux and
polarization values are *densities* not per-bin. [218]

- The geometry of a class is now defined as a separate object from the new
`marxs.math.geometry` module. Before, the geometry was backed into the
optical components itself which led to significant code duplication. The new
scheme allows to make e.g. cylindrical and flat gratings with the same
gratings objects. However, not all geometries work with all objects and there
is currently no way to check automatically - the user has to use caution or
check the code. [182]

- Geometry objects provide item access like this
``detector.geometry['center']`` instead of a function interface with
``(...)``. [182]

- Remove ``utils.MergeIdentical`` merge strategy since it is not longer used
after 189. [191]

- `~astropy.units.Quantity` is used in more places, and thus
the base classes need to accept quantities as output from
"specific_process_photons". This change requires some care and thus
is done gradually only where needed at this point. [202]

- `~marxs.optics.RandomGaussianScatter` can be initialized without setting
scatter, provided that its already defined a class level variable (e.g.
for subclasses). [202]

- `~marxs.optics.RandomGaussianScatter` and `~marxs.optics.Scatter` now expect
angular quantities instead of plain floats. [216]


Bug fixes
^^^^^^^^^

- `marxs.analysis.gratings.resolvingpower_per_order` has been updated to ignore
photons with probability 0. [162]

- An index mix-up in `marxs.simulator.ParallelCalculated.calculate_elempos` introduced
unintended zoom and shear in the elements. [164]

- [159] left behind an undefined ``filterfunc``. This is fixed and a
regression test added. [165]

- `marxs.analysis.analysis.find_best_detector_position` will now change the
detector position always along an axis perpendicular to the detector plane.
[171]

- `marxs.optics.scatter.RadialMirrorScatter` now works with
``inplanescatter=0`` which is useful for parameters studies. [174]

- Plot only "half-box" for elements such as mirrors where the optical
interaction occurs on a surface. [178]

- With `marxs.optics.MultiAperture` photons would always be sorted by aperture
number. To fix this, apertures now behave more like other optical elements
and use ``process_photons``. [189]

- `marxs.optics.FlatStack` now inherits from `marxs.simulator.BaseContainer`.
[196]

- Fix bug in distributions generated by `marxs.source.SphericalDiskSource`. [202]

- Objects now fail to generate when zoom is set to 0. [217]

Other changes and additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Examples are now written for numpy >= 1.14 (which changed some printing
formats). [182]

1.1

-----------------

New Features
^^^^^^^^^^^^
- Add ability to plot cylinders in Mayavi (for support struts) [147]

- Add shape `"None"` (as a string) to avoid plotting an object [157]

API Changes
^^^^^^^^^^^
- Remove ``marxs.source.LabPointSource``, which was just a special case of
`~marxs.source.LabPointSourceCone`. Instead, set the default values of the
later so that it reproduces the behaviour of the former. [144]

- `~marxs.optics.multiLayerMirror.MultiLayerEfficiency` and
`~marxs.optics.multiLayerMirror.MultiLayerMirror` now
expect all parameters as keyword arguments for consistency with the other
elements in MARXS. [144]

- ``marxs.visualization.utils.format_saved_positions`` is now a method of
`~marxs.simulator.KeepCol` with the new name ``format_positions()`` and
the ``atol`` keyword can be switched off.
Additionally, `~marxs.simulator.KeepCol` now has a ``__array__`` method.
This makes the function useful for columns that
are not positions, but e.g. polarization vectors.
On the other hand, the ``plot_rays`` functions do not accept
`~marxs.simulator.KeepCol` objects directly as input any longer.
[149, 152]

- According to the docs, a pointing could be initialized with either a
`~astropy.coordinates.SkyCoord` or a tuple that would initialize the
`~astropy.coordinates.SkyCoord`. The later option was broken and has
been removed entirely. [151]

- Remove parameter ``filterfunc`` from `~marxs.analysis.gratings.resolvingpower_from_photonlist` and `~marxs.analysis.analysis.detected_fraction`.
Instead, the photon list can be filtered before calling these functions
just as easily. [159]

Bug fixes
^^^^^^^^^
- Added missing keywords in display dict for some objects and fixed exception
when plotting things that are not objects. Discovered and fixed as part of
[147].

- Polarization after reflection from a mirror used to just parallel transport
the vector and calculate the probability of the photon based on s and p
polarization. This needs to be applied to the outgoing polarization vector,
too. [148]

- Plotting of Rowland Torus failed in Mayavi due to typo. [154]


Other changes and additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Improve Documentation [146]

- Docs: Add polarization example [153]

- Docs: Add example to calculate flux from normalized spectrum [160]

- Add experiemental data for comparison to the polarization example [158]

1.0

-----------------
This is the first release intended to use. The Change log will begin starting
with this release.

0.1

--------------------------
This release was not intended to be used, but the verisioning scheme in the
development branch required a tagged commit.

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.