inverse_internal_coordinate_tensors

inverse_internal_coordinate_tensors(expansion, coords=None, masses=None, order=None, mass_weighted=True, remove_translation_rotation=True, fixed_atoms=None, fixed_coords=None, fixed_cartesians=None): 

LLM Docstring

Invert a forward internals-by-Cartesians derivative expansion to obtain the Cartesians-by-internals expansion, optionally removing translation/rotation and mass-weighting.

Depending on the module flags _transrot_projection_method and _pre_mass_weight, the translation/rotation subspace is either projected out or augmented onto the transformation before the (pseudo)inverse is taken with TensorDerivatives.inverse_transformation; mass weighting is applied and undone around the inversion. Constraints are re-applied with prep_inverse_derivatives.

  • expansion: list[np.ndarray]

    the forward derivative expansion

  • coords: np.ndarray | None

    Cartesian coordinates (needed to remove translation/rotation)

  • masses: np.ndarray | None

    per-atom masses

  • order: int | None

    maximum derivative order (defaults to len(expansion))

  • mass_weighted: bool

    whether to mass-weight the plain inverse

  • remove_translation_rotation: bool

    whether to strip translation/rotation

  • fixed_atoms: Iterable[int] | None

    atoms to hold fixed

  • fixed_coords: Iterable[int] | None

    internal coordinates to hold fixed

  • fixed_cartesians: Iterable | None

    (atom, component) Cartesians to hold fixed

  • :returns: list[np.ndarray]

    the inverse derivative expansion


Feedback

Examples

Templates

Documentation