Skip to content

Implement PaiNN (Polarizable Atomistic Interaction Neural Network) #10687

@louischereau

Description

@louischereau

🚀 The feature, motivation and pitch

PaiNN (Polarizable Atomistic Interaction Neural Network) is a staple for molecular property prediction and MD simulations, offering a superior speed-accuracy trade-off compared to SchNet or DimeNet++. TI is often used as an indsutry standard for benchmarking. While implementations exist in specialist libraries (TorchMD-NET, SchNetPack), a native PyG implementation would allow users to leverage PyG's native batching, torch.compile optimizations, and broader GNN utility suite.

Read paper here: https://arxiv.org/pdf/2102.03150

Proposed Implementation:

I have a functional implementation and would like to PR it to torch_geometric.nn.models. Key technical details I plan to include:

  • Equivariant Message Passing: Refactored to inherit from MessagePassing for scalar and vector feature streams.

  • Performance: Optimized radial basis computations and distance-dependent filters to minimize redundant calculations during inference.

  • Verification: Includes unit tests for rotation equivariance and translation invariance.

  • Compatibility: Designed to be compatible with torch.compile and JIT for high-throughput production environments.

Are there specific naming conventions for vector-valued features or preferences for handling directional unit vectors ($r_{ij} / ||r_{ij}||$) that I should align with?

Alternatives

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions