Ramannoodle

Latest version: v0.5.0

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

Scan your dependencies

Page 1 of 2

0.5.0

**This update adds [pymatgen](https://pymatgen.org/) interfaces to ramannoodle.** Through pymatgen, ramannoodle can talk with a much wider variety of DFT packages.

New features
- `io.pymatgen` module for interacting with pymatgen `Structure`'s, `Trajectory`'s, etc. 4984f65fdaf69c66947a1f556c59ce53bb641996
- Added `InterpolationModel.add_dof_from_pymatgen` for building interpolation models from pymatgen objects. a6786f6ad2680ca1d8d8d94dfc6774032a5deb88
- Added `ARTModel.add_art_from_pymatgen` for building ART models from pymatgen objects 4984f65fdaf69c66947a1f556c59ce53bb641996
- Added `[pymatgen]` install option group to enable pymatgen interfaces f3bd2b769b3f8cfbffb5223291214b7c63d0613a

Improvements

- Explicitly specified public API using `__all__` in `__init__.py` files f3bd2b769b3f8cfbffb5223291214b7c63d0613a
- Reorganized scratch files written during testing f3bd2b769b3f8cfbffb5223291214b7c63d0613a
- Made submodules private where appropriate f3bd2b769b3f8cfbffb5223291214b7c63d0613a

Documentation
- Added a short pymatgen guide to the IO guide f3bd2b769b3f8cfbffb5223291214b7c63d0613a
- Improved doc structure to better reflect public API (using private submodules) c20fa4116f795321aa5fd2d31ba385268ae66279
- PR submitted to pymatgen to list ramannoodle as an external package.

0.4.0

**This version includes a brand-new polarizability model based on a graph neural network architecture!**

New Features
- `PotGNN`, a polarizability model based on a graph neural network architecture and implemented using PyTorch and PyTorch-Geometric.
- `ramannoodle.dataset.torch.PolarizabilityDataset` for training and evaluating `PotGNN` d118aeeea5692cbbff190f4059e259c44a0fff4d
- `ramannoodle.pmodel.torch.train` module for convenient training of `PotGNN`. b24a7a446f2722dab063b88a5a74964dfbcf3414
- `[torch]` install options for pip. Installing ramannoodle with these options (after installing the requisite PyTorch packages) gives access to PyTorch model functionality. 6a6a4c24466f8fa4dbc177d14ead8c5c1e44bd1d
- `read_structure_and_polarizability` function for vasprun.xml files. 738d6f4fd3cdd1115d50eea8a5dc1635a260a0b5

API Changes

- Renamed `UsageError` to`UserError` b7b08dd9bed7c6ed60ca3ca51c323c203d1de638
- Renamed most `*utils` modules to simply `utils`. 4c67d498cdaff59583ad3217e16a9b0d0f976f67
- Renamed `globals` module to `constants` to avoid conflicts with the build-in `globals()` function
- Renamed `polarizability` package to `pmodel` 7aa554b372d42be80a89a4412ae7a8ec66980616

Enhancements and Bugfixes
- Added robot.txt for documentation 79845592164e027fb6e3f94f46c93d669cfc8747
- Exception is now raised when `filepaths` parameters are empty (`filepaths=[]`) 10ce3eda305f3d7a2aa894c6ae135d07b0958e67
- Public API is now exposed from the root package. 7844905495814f43b2d964aeb20221701cb8595d
- Replaced `np.close(...).all()` with `np.allclose(...)` 4ac7389584cc34a2bdc888b6af2534988dc2a0ca
- Added a progress bar for `Trajectory.get_spectrum`, which can take a while depending on the speed of the provided polarizability model 6c0567c9025f40e58edd1075ece9f7115c9a7b3d

Documentation
- Cleaned up documentation
- Updated installation guide and citation in README.
- Added machine learning tutorial

0.3.0

**This update brings molecular-dynamics-derived Raman spectra to ramannoodle!** It also includes improved documentation and tutorials, minor API updates in preparation for the upcoming version 0.4.0, better dependency management, and more robust CI.

New features
- [x] `Trajectory` class for storing molecular dynamics trajectories. a3e4508169e0273ae0cfe0e59f55383126724861
- [x] `MDRamanSpectrum` class for manipulating MD-derived Raman spectra. a3e4508169e0273ae0cfe0e59f55383126724861
- [x] New IO functions for VASP files
- [x] Read/write support for XDATCAR ea00e68c985b4affd7ba44ec771584a2fabb65f1
- [x] Read support for vasprun.xml 6974243bf2d9cc0ef7af7b4dc49fb88e8bf26674
- [x] Trajectory reading from OUTCARs bef82ce22cc0669c7a0f656d069f1eb8e1a0e454

API changes
- [x] `PolarizabilityModel.get_polarizability` -> `PolarizabilityModel.calc_polarizabilities` 0b9bde9a7f6fbcad24d96ae92a2d179060d840bc ef5c6b1703f7f84687d9632631689fa529d90984
- [x] `calc_polarizabilities` takes fractional positions instead of Cartesian displacements 50fc9ffdc25e9a1769454914caa326182e162604
- [x] `calc_polarizabilities` takes a batch of fractional positions ef5c6b1703f7f84687d9632631689fa529d90984
- [x] `calculate_displacement` -> `calc_displacement` 7d596d53ab84ffb5cc6331a62555b2b5d79cc4cc
- [x] `Phonons` now includes reference positions and represents eigenvectors in fractional coordinates, rather than Cartesian coordinates. 50fc9ffdc25e9a1769454914caa326182e162604
- [x] `InterpolationModel.equilibrium_polarizability` --> `InterpolationModel.ref_polarizability` 70fe3f85fdd673e2de03082860329d7ca0613f16
- [x] `file_paths` --> `filepaths` 4a4b030f1dacea31a4980b3e1290a4a0cd669f34
- [x] `ReferenceStructure.get_num_nonequivalent_atoms()` -> `ReferenceStructure.num_nonequivalent_atoms` (property). 77e4ca74ba4d4beb9b4d6ed892c656792a2ce4a2
- [x] `calc_displacement` computes displacement relative to first argument 239110940465af85da579cf745fd1f12a73e7c5c

Enhancements and bugfixes
- [x] dependabot integration abc661d8c5091d4a1d5ba90cb788f672441137e3
- [x] Renamed "*_file" args in private IO functions to simply "file" a613713642b9574788ac316d9ec33955efc4be38
- [x] ``convolve_spectrum`` uses better default `out_wavenumbers` 8419de1c44100b5911e72609d97499fdca895c87
- [x] Dependency management
- [x] Specify minimum dependencies c6e76d80811a3fee7c8595a990afd1b51693465b
- [x] Github action to check minimum dependencies c6e76d80811a3fee7c8595a990afd1b51693465b
- [x] tabulate is now a listed dependency c6e76d80811a3fee7c8595a990afd1b51693465b
- [x] Action runners for macos, windows 56c7c690e21ab77aaeb06c27b25ad4e632f9aaf2 6c911ac6ba50452cc4b9e1e7c17af1ffc41acd89

Documentation updates
- [x] Molecular dynamics tutorial 88242fef858a027a19d8a88827983af17a2732c6
- [x] Update readme to highlight MD features ee4558a99eeb79b776b74390c8459e6a178276e9
- [x] Extensive improvements to tutorials and documentation ee4558a99eeb79b776b74390c8459e6a178276e9 9bb180a47ffa3ab946a442f1846be84f9816021a

0.2.1

Bug fixes
* Made algorithm for finding permutation matrices more robust to floating point errors, which in some cases could cause ``ReferenceStructure`` to throw an exception on construction 6ee84ee9f03dea6b02de05681720d9832bf3cdc4

0.2.0

New features
* **Atomic Raman tensors** (ARTs) implemented in `ARTModel`, a subclass of `InterpolationModel`.
* **Workflow for building polarizability models**
* Utilities in `ramannoodle.structure.displace` to **generate displaced structures** for polarizability calculations, whose results are fed into polarizability models.
* **Dummy models** to ensure these displaced structures cover all degrees of freedom before carrying out expensive polarizability calculations.
* **Model masking** allows degrees of freedom in `InterpolationModel` and `ARTModel` to be enabled and disabled (masked) on the fly. This allows the calculation of **partial Raman spectra**, which are useful when studying point defects, for example.
* Polarizability models implement `__repr__`, which helps users **track model state**. This is especially handy when using ramannoodle in Jupyter notebooks.
* Read/write support for **VASP POSCAR files.**
* `DOFWarning`, which warns when a degree of freedom's data **does not span zero** (i.e. the equilibrium structure). This is not fatal, but is undesirable in nearly all cases.

Major API changes
* Restructured and reorganized packages and modules, including renaming `ramannoodle.symmetry` to `ramannoodle.structure`.
* Added `ramannoodle.io.generic`, which implements generic IO functionality. Subpackages, such as `ramannoodle.io.vasp.poscar`, are now the preferred way to read and write files.
* Changed getters/setters to properties.
* Arguments use fractional coordinates by default. Cartesian arguments now have the ``cart_`` prefix.

Minor enhancements and bugfixes
* NDArray shape checking functions are more flexible.
* Added additional tests to achieve >95% coverage.
* Renamed `StructuralSymmetry` to `ReferenceStructure`.

Documentation updates
* Documentation has a much higher level of polish.
* Clarified units, both in docstrings and in the guides.
* Added new guides
* Full tutorial covering displaced structure generation and dummy models.
* Masking tutorial
* Guide to interfacing with first principles codes, including information on supported file formats.
* Added logo to sidebar.
* Added a developer guide.

**Full Changelog**: https://github.com/wolearyc/ramannoodle/compare/v0.1.1-alpha...0.2.0

0.1.1alpha

**This release focused largely on improving code reliability, documentation, and performance.**

* Added more thorough exception handling, including better argument type and value validation. This should make the API much more pleasant to use.
* Added additional tests to to cover exception cases.
* Implemented faster algorithm for determining permutation matrices associated with symmetry operations. These matrices are essential to determining symmetrically equivalent displacements. Algorithm went from O(n^2) to O(nlog(n)), and initializing symmetries is now extremely fast.
* Documentation has been greatly improved. Added introduction, basic tutorial (based on Jupyter notebook), and developer guide. Also tweaked code documentation to improve consistency and readability.

**Full Changelog**: https://github.com/wolearyc/ramannoodle/compare/v0.1.0-alpha...v0.1.1-alpha

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.