universal-soap
scripts to create SOAP descriptors for arbitrary elements and combinations
Heuristics:
- Length scales
- Atomic (inputs)
- typical bond length (from equilibrium bond length in lowest energy 2D or 3D structure)
- minimal bond length (from shortest bond length of any equilibrium structure, including dimer)
- Pairs: typical and minimal length scales equal to the arithmetic mean of the two corresponding atomic length scales
- Atomic (inputs)
- For each atomic number Z there is a set of length scales associated with it as the center, applying to all neighbor types
- Typical Z-Z (homonuclear) bond length * 1.3
- Add one spacing factor (currently 1.5) larger
- Add additional shorter length scales, by factors of 1/spacing^n, as long as they are at least 1.3 times larger than shortest bond (over all Z_center-Z2 pairs)
- If the longest bond times 1.3 is more than 1.1 times larger than the outermost length scale so far, add additional longer length scales, by factors of spacing^n, until the longest one is larger than 1.3 times longest bond (over all Z_center-Z2 pairs)
- For each of these length scales there is an associated SOAP
- The center of the cutoff transition, i,.e.
cutoff - 0.5 transition, is equal to the length scale - The transition width is
min(0.25 length_scale, 2 Angstrom) - The atom sigma is the
length_scale / 8, divided by an optionalsharpnessfactor
- The center of the cutoff transition, i,.e.
Files:
-
length_scales.json: file with information on atomic length scales: minimum bond length, typical bond length, volume/atom. For each of these values there's also a string for information source (e.g. URL), and dict of other info/links
-
universal_SOAPs.py: routines that actually compute length scales and corresponding SOAP hyper-params
descriptor_len_scales_for_center()- length scales for a given species as center in the presences of any number of neighbor speciesSOAP_hypers()- returns dict of SOAP hyperparams (cutoff,cutoff_transition_widthandatom_gaussian_width) with element atomic numbers as keys, and list of 3 entry dicts as values, one dict per SOAP descriptor/length scale
-
write_descriptor_quantity_json: Executable that reads length_scales.json file and list of atomic numbers, and outputs json with per-descriptor
cutoff,transition, andatom_gaussian_widthvalues
Example
The command python write_descriptor_quantity_json --Zs 5 32 will return length scales needed to define the SOAP descriptors for a system with boron (5) and germanium (32). The output is
{"5": [{"cutoff": 2.6, "cutoff_transition_width": 0.64, "atom_gaussian_width": 0.32}, {"cutoff": 3.8, "cutoff_transition_width": 0.96, "atom_gaussian_width": 0.48}], "32": [{"cutoff": 3.8, "cutoff_transition_width": 0.94, "atom_gaussian_width": 0.47}, {"cutoff": 5.6, "cutoff_transition_width": 1.4, "atom_gaussian_width": 0.7}]}
So three SOAPs each the boron-centered and the germanium-centered descriptors, with cutoffs, cutoff_transition_widths and atom_gaussian_widths parameters given.
Release files for universalSOAP 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| universalsoap-0.1.1.tar.gz | 20.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| universalSOAP-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.4 kB
Release files / universalsoap-0.1.1.tar.gz
| Download URL | universalsoap-0.1.1.tar.gz |
|---|---|
| Size | 20.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
661e37653eef089e77de4ad4af0536f0092700d6679209ab5029f81d174c61a1
|
|
BLAKE2b-256 checksum How to use checksums |
ebc72adfd2b6b10c0ddbafe58ee2c88fbd4e4996af2cae47ca57b88c2abfaae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|
Release files / universalSOAP-0.1.1-py3-none-any.whl
| Download URL | universalSOAP-0.1.1-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0424d66cfa55c2aa0d19312390c0df3369221730bfea7d13a4b935b5f6bd7b54
|
|
BLAKE2b-256 checksum How to use checksums |
362e16f38d01c18ff4e0d73c0010c3bef24de737e41dca94cfd2d62a99d37876
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/5.0.0 CPython/3.12.3
|