ALIGNN#

class nfflr.models.ALIGNN(config: ALIGNNConfig = ALIGNNConfig(transform=PeriodicRadiusGraph(), cutoff=XPLOR(), alignn_layers=4, gcn_layers=4, norm='batchnorm', atom_features='cgcnn', edge_input_features=80, triplet_input_features=40, embedding_features=64, hidden_features=256, output_features=1, compute_forces=False, energy_units='eV/atom', reference_energies=None))[source]#

Atomistic Line graph network.

Chain alternating gated graph convolution updates on crystal graph and atomistic line graph.

Methods

forward(x)

forward(self, x: nfflr.atoms.Atoms)[source]#

reset_atomic_reference_energies

forward(x)[source]#
forward(self, x: nfflr.atoms.Atoms)[source]
forward(self, g: Tuple[dgl.heterograph.DGLGraph, dgl.heterograph.DGLGraph] | dgl.heterograph.DGLGraph)[source]

ALIGNN : start with atom_features.

x: atom features (g.ndata) y: bond features (g.edata and lg.ndata) z: angle features (lg.edata)

class nfflr.models.ALIGNNConfig(transform: Callable = PeriodicRadiusGraph(), cutoff: Module = XPLOR(), alignn_layers: int = 4, gcn_layers: int = 4, norm: Literal['batchnorm', 'layernorm'] = 'batchnorm', atom_features: str = 'cgcnn', edge_input_features: int = 80, triplet_input_features: int = 40, embedding_features: int = 64, hidden_features: int = 256, output_features: int = 1, compute_forces: bool = False, energy_units: Literal['eV', 'eV/atom'] = 'eV/atom', reference_energies: Literal['fixed', 'trainable'] | None = None)[source]#

Hyperparameter schema for nfflr.models.gnn.alignn.

Attributes:
reference_energies

Methods

cutoff

transform