Skip to content

Future directions for CG iterations #239

@jwa7

Description

@jwa7

The first 'iteration' of the Python redesign is starting to converge - see #237. In a rough order of chronology and/or complexity, the next steps to be tackled in future PRs are as follows:

To Do - Functionality

  • Implement correlate_tensors:
def correlate_tensors(
    tensor_1: TensorMap,
    tensor_2: TensorMap,
    angular_cutoff: Optional[int] = None,
    selected_keys: Optional[Labels] = None,
) -> TensorMap:
    """
    Performs the Clebsch Gordan tensor product of two TensorMaps that correspond
    to densities or density correlations. Returns a new TensorMap corresponding
    to a higher correlation-order descriptor.

    The two input tensors can be single- or multi-center, and of arbitrary (and
    different) correlation order, but must contain the same samples.
    """
  • Ensure torch dispatch works and make the CG code torchscript-able (with @Luthaf)
  • Support CG products of gradients (with @PicoCentauri and @Luthaf)
  • Speed up wrapper code (i.e. everything that isn't the tensor product operation). Line profiling shows that the pre-calculation (and caching for subsequent but separate calculations) of the components and properties might be a good place to start (with @frostedoyster)
  • Run systematic benchmarking on sparse vs dense vs sparse w/ Mops. Define when in general it is best to use one over the others, and dynamically change the default based on the input system (with @frostedoyster)
  • Metadata such as "order_nu" should be associated with the TensorMap and not in the keys - awaiting functionality in metatensor
  • Extend to combinations of tensors with different samples (with @DivyaSuman14 and @curiosity54)
  • Later down the line: customizable and arbitrary (non)linear transformations at each iteration (with @agoscinski, thesis dependent)

To Do - Documentation

Metadata

Metadata

Labels

PythonIssues related to the Python APIcalculatorsWork on the representation/fingerprint functions.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions