xnn.ffnn.models.oplslib.resolve_improper_type#

xnn.ffnn.models.oplslib.resolve_improper_type(improper_types, i, j, k, l)[source]#

Find the improper-type key for the class quadruple, k central.

Follows the precedence of SEAMM’s force-field reader: the exact triple of outer classes first, then one outer wildcard (each position), then two, then all three. Outer classes are order-insensitive.

Parameters:
  • improper_types (dict) – The library’s improper-type table ("I-J-K-L" keys, X wildcards).

  • i (str) – Atom classes; k is the trigonal center.

  • j (str) – Atom classes; k is the trigonal center.

  • k (str) – Atom classes; k is the trigonal center.

  • l (str) – Atom classes; k is the trigonal center.

Returns:

The matching key, or None.

Return type:

str or None