LODE spherical expansion

This calculator is registered with the lode_spherical_expansion name.

LodeSphericalExpansion hyper-parameters

Show full JSON schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "LodeSphericalExpansionParameters",
  "description": "Parameters for LODE spherical expansion calculator.\n\nThe spherical expansion is at the core of representations in the LODE (long-distance equivariant) family. See [this article](https://aip.scitation.org/doi/10.1063/1.5128375) for more information on the LODE representation.",
  "type": "object",
  "required": [
    "atomic_gaussian_width",
    "center_atom_weight",
    "cutoff",
    "max_angular",
    "max_radial",
    "potential_exponent",
    "radial_basis"
  ],
  "properties": {
    "atomic_gaussian_width": {
      "description": "Width of the atom-centered gaussian used to create the atomic density.",
      "type": "number",
      "format": "double"
    },
    "center_atom_weight": {
      "description": "Weight of the central atom contribution in the central image to the features. If `1` the center atom contribution is weighted the same as any other contribution. If `0` the central atom does not contribute to the features at all.",
      "type": "number",
      "format": "double"
    },
    "cutoff": {
      "description": "Spherical real space cutoff to use for atomic environments. Note that this cutoff is only used for the projection of the density. In contrast to SOAP, LODE also takes atoms outside of this cutoff into account for the density.",
      "type": "number",
      "format": "double"
    },
    "k_cutoff": {
      "description": "Spherical reciprocal cutoff. If `k_cutoff` is `None` a cutoff of `1.2 π / atomic_gaussian_width`, which is a reasonable value for most systems, is used.",
      "type": [
        "number",
        "null"
      ],
      "format": "double"
    },
    "max_angular": {
      "description": "Number of spherical harmonics to use in the expansion",
      "type": "integer",
      "format": "uint",
      "minimum": 0.0
    },
    "max_radial": {
      "description": "Number of radial basis function to use in the expansion",
      "type": "integer",
      "format": "uint",
      "minimum": 0.0
    },
    "potential_exponent": {
      "description": "Potential exponent of the decorated atom density. Currently only implemented for `potential_exponent < 10`. Some exponents can be connected to SOAP or physics-based quantities: p=0 uses Gaussian densities as in SOAP, p=1 uses 1/r Coulomb like densities, p=6 uses 1/r^6 dispersion like densities.\"",
      "type": "integer",
      "format": "uint",
      "minimum": 0.0
    },
    "radial_basis": {
      "description": "Radial basis to use for the radial integral",
      "allOf": [
        {
          "$ref": "#/definitions/RadialBasis"
        }
      ]
    }
  },
  "definitions": {
    "RadialBasis": {
      "description": "Radial basis that can be used in the SOAP or LODE spherical expansion",
      "oneOf": [
        {
          "description": "Use a radial basis similar to Gaussian-Type Orbitals.\n\nThe basis is defined as `R_n(r) ∝ r^n e^{- r^2 / (2 σ_n^2)}`, where `σ_n = cutoff * \\sqrt{n} / n_max`",
          "type": "object",
          "required": [
            "Gto"
          ],
          "properties": {
            "Gto": {
              "type": "object",
              "properties": {
                "spline_accuracy": {
                  "description": "Accuracy for the spline. The number of control points in the spline is automatically determined to ensure the average absolute error is close to the requested accuracy.",
                  "default": 1e-8,
                  "type": "number",
                  "format": "double"
                },
                "splined_radial_integral": {
                  "description": "compute the radial integral using splines. This is much faster than the base GTO implementation.",
                  "default": true,
                  "type": "boolean"
                }
              }
            }
          },
          "additionalProperties": false
        },
        {
          "description": "Compute the radial integral with user-defined splines.\n\nThe easiest way to create a set of spline points is the `rascaline.generate_splines` Python function.\n\nFor LODE calculations also the contribution of the central atom have to be provided. The `center_contribution` is defined as `c_n = \\sqrt{4π} \\int dr r^2 R_n(r) g(r)` where `g(r)` is a radially symmetric density function, `R_n(r)` the radial basis function and `n` the current radial channel. Note that the integration range was deliberately left ambiguous since it depends on the radial basis, i.e. for the GTO basis, `r \\in R^+` is used, while `r \\in [0, cutoff]` for the monomial basis.",
          "type": "object",
          "required": [
            "TabulatedRadialIntegral"
          ],
          "properties": {
            "TabulatedRadialIntegral": {
              "type": "object",
              "required": [
                "points"
              ],
              "properties": {
                "center_contribution": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "number",
                    "format": "double"
                  }
                },
                "points": {
                  "type": "array",
                  "items": {
                    "$ref": "#/definitions/SplinePoint"
                  }
                }
              }
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "SplinePoint": {
      "description": "A single point entering a spline used for the tabulated radial integrals.",
      "type": "object",
      "required": [
        "derivatives",
        "position",
        "values"
      ],
      "properties": {
        "derivatives": {
          "description": "Array of values for the tabulated radial integral (the shape should be `(max_angular + 1) x max_radial`)",
          "allOf": [
            {
              "$ref": "#/definitions/ndarray::Array"
            }
          ]
        },
        "position": {
          "description": "Position of the point",
          "type": "number",
          "format": "double"
        },
        "values": {
          "description": "Array of values for the tabulated radial integral (the shape should be `(max_angular + 1) x max_radial`)",
          "allOf": [
            {
              "$ref": "#/definitions/ndarray::Array"
            }
          ]
        }
      }
    },
    "ndarray::Array": {
      "title": "ndarray::Array",
      "description": "Serialization format used by ndarray",
      "type": "object",
      "required": [
        "data",
        "dim",
        "v"
      ],
      "properties": {
        "data": {
          "title": "Array_of_double",
          "description": "data of the array, in row-major order",
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "dim": {
          "title": "Array_of_uint",
          "description": "shape of the array",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "uint",
            "minimum": 0.0
          }
        },
        "v": {
          "description": "version of the ndarray serialization scheme, should be 1",
          "examples": [
            1
          ],
          "type": "integer"
        }
      }
    }
  }
}

Parameters for LODE spherical expansion calculator.

The spherical expansion is at the core of representations in the LODE (long-distance equivariant) family. See this article for more information on the LODE representation.

atomic_gaussian_width: number:

Width of the atom-centered gaussian used to create the atomic density.

center_atom_weight: number:

Weight of the central atom contribution in the central image to the features. If 1 the center atom contribution is weighted the same as any other contribution. If 0 the central atom does not contribute to the features at all.

cutoff: number:

Spherical real space cutoff to use for atomic environments. Note that this cutoff is only used for the projection of the density. In contrast to SOAP, LODE also takes atoms outside of this cutoff into account for the density.

k_cutoff: number:

Spherical reciprocal cutoff. If k_cutoff is None a cutoff of 1.2 π / atomic_gaussian_width, which is a reasonable value for most systems, is used.

max_angular: unsigned integer:

Number of spherical harmonics to use in the expansion

max_radial: unsigned integer:

Number of radial basis function to use in the expansion

potential_exponent: unsigned integer:

Potential exponent of the decorated atom density. Currently only implemented for potential_exponent < 10. Some exponents can be connected to SOAP or physics-based quantities: p=0 uses Gaussian densities as in SOAP, p=1 uses 1/r Coulomb like densities, p=6 uses 1/r^6 dispersion like densities.”

radial_basis: RadialBasis:

Radial basis to use for the radial integral

RadialBasis

Radial basis that can be used in the SOAP or LODE spherical expansion

  • Gto: {spline_accuracy: number, splined_radial_integral: boolean}

    Use a radial basis similar to Gaussian-Type Orbitals.

    The basis is defined as R_n(r) r^n e^{- r^2 / (2 σ_n^2)}, where σ_n = cutoff * \sqrt{n} / n_max

  • TabulatedRadialIntegral: {center_contribution: number[], points: SplinePoint[]}

    Compute the radial integral with user-defined splines.

    The easiest way to create a set of spline points is the rascaline.generate_splines Python function.

    For LODE calculations also the contribution of the central atom have to be provided. The center_contribution is defined as c_n = \sqrt{4π} \int dr r^2 R_n(r) g(r) where g(r) is a radially symmetric density function, R_n(r) the radial basis function and n the current radial channel. Note that the integration range was deliberately left ambiguous since it depends on the radial basis, i.e. for the GTO basis, r \in R^+ is used, while r \in [0, cutoff] for the monomial basis.

SplinePoint

A single point entering a spline used for the tabulated radial integrals.

derivatives: ndarray::Array:

Array of values for the tabulated radial integral (the shape should be (max_angular + 1) x max_radial)

position: number:

Position of the point

values: ndarray::Array:

Array of values for the tabulated radial integral (the shape should be (max_angular + 1) x max_radial)

ndarray::Array

Serialization format used by ndarray

data: number[]:

data of the array, in row-major order

dim: unsigned integer[]:

shape of the array

v: integer:

version of the ndarray serialization scheme, should be 1