When using the GlobalInternalCoordinateTransform together with functorch (more specifically jacrev), I encountered a lot of incompatibilities.
Some things I found that are incompatible:
- calling
requires_grad_(True) on tensors that already require gradients (haven't tried it for tensors without). E.g. in init_ics2xyz in ic_helper.py
- calling
torch.any, e.g. in dist_deriv in ic_helper.py
- inplace arithmetics, e.g. in
_rotmat3x3 in ic_helper.py
It seems like mainly ic_helper.py being the issue.