Brille

Latest version: v0.7.0

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

Scan your dependencies

Page 1 of 3

0.5.6

Includes 62 which fixes identified bugs and adds optional HDF5 file based input and output of key datastructures.
This release is functionally identical to `v0.5.5` but has updated Github Actions tooling.

**Full Changelog**: https://github.com/brille/brille/compare/v0.5.4...v0.5.6

0.5.4

What's Changed
* Documentation by g5t in https://github.com/brille/brille/pull/45
* Documentation by g5t in https://github.com/brille/brille/pull/46
* CMake improvements by g5t in https://github.com/brille/brille/pull/50
* Fix typos in docs by mducle in https://github.com/brille/brille/pull/48
* Correct errors by g5t in https://github.com/brille/brille/pull/52
* Fix implementation bugs by g5t in https://github.com/brille/brille/pull/55
* Fixes for trilcinic lattices by g5t in https://github.com/brille/brille/pull/58


**Full Changelog**: https://github.com/brille/brille/compare/v0.5.3...v0.5.4

0.5.3

When running for a very large number of q-points, the call to `BrillouinZone::moveinto` in `BrillouinZone*3::ir_interpolate_at` causes a serial bottleneck (the calls to `Interpolator::interpolate_at` take up most of the processing power and are already parallelised).

Even though the `BrillouinZone::moveinto` calls don't take up as much processing as `Interpolator::interpolate_at`, because they are serial for a very large q-point list they end up taking a similar amount of time as the actual interpolation.

This release parallelizes the main loop of `BrillouinZone::moveinto`.

0.5.2

- A new submodule `brille.utils` has been added to support simpler construction of Brillouin zone and grid objects.
- The irreducible Brillouin zone creation algorithm now raises an error if it fails instead of failing with only standard output message.
- New tests are added to support the new submodule and error condition, and all tests have a cleaner path-modification statement

0.5.0

The data storage class `ArrayVector<T>` has been replaced `Array2<T>` which shares ownership of its held pointer to allocated heap memory. This allows both internal use of views to avoid copying-out small sections of an array to perform, e.g., a vector operation; using externally owned pointers; and providing its pointer for use by external applications.
To allow this interaction with Python `pybind11::buffer_info` is utilized to get and return the pointer and relevant array information. Internally the
new class holds an arbitrary shared pointer which serves the dual purpose of reference counting for owned pointers and holding a reference
to an owning object for external pointers.

This refactor is a rather-major change within the C++ code but should not present any great differences through the Python API.
Some concerns to be aware of when using the `brille` Python module:

- Methods which take lists of **Q** points, e.g., `brille.BZTrellisQdc.moveinto`, should now always be provided a `numpy.ndarray` (or other Python buffer object) which has shape `[N, 3]`. Previously arrays with an arbitrary number of dimensions were allowed as long as the last dimension had three elements. These methods *should* work with any memory layout for the provided arrays, but best performance *might* be achieved when the 3-vectors are each in contiguous memory.
- Methods which take and store data to interpolate, e.g., `brille.BZTrellisQdc.fill`, continue to accept arrays with arbitrary shape, and the shape should be consistent with what is to be interpolated. If the provide array has row-ordered contiguous memory layout it will be used directly -- care should be taken to ensure other references to the same array do not modify the underlying data unintentionally as this could produce unexpected interpolation results -- for any other memory layout the array is copied.

0.4.3

Control over parallelism is now exposed for `BrillouinZone`::\*`moveinto`\* methods:
- The C++ `BrillouinZone` class methods `moveinto`, `ir_moveinto`, and `ir_moveinto wedge` have signatures which accept an optional integer to constrol how many OpenMP threads are utilized. This was not exposed through the Python interface but is now.

The pybind11 bound grid-like classes use commom methods and offer more useful documentation strings.
- The definition of a grid-like class, providing it with data to store, providing the cost function and weight information, and starting the equivalent-mode identification are now accessible separately from Python. These were avaiable previously but in a reduced number of calls, the old interface is still present.
- All of the shared methods now provide greatly expanded documentation

A temporary fix for incomplete `PolyhedronTrellis` creation has been improved
- New and improved checks for empty and full nodes have been introduced to reduce the number of polyhedra intersections that must be calculated when constructing a `PolyhedronTrellis`. This should provide at least a small speed-up without any user changes necessary.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.