Skip to main content

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
  • 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 optional sharpness factor

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 species
    • SOAP_hypers() - returns dict of SOAP hyperparams (cutoff, cutoff_transition_width and atom_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, and atom_gaussian_width values

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)

Source distribution for universalSOAP 0.1.1
File Size Uploaded
universalsoap-0.1.1.tar.gz 20.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for universalSOAP 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page