  The Finite Elements with Switch Detection (FESD) is a high-accuracy method
for the numerical simulation and solution of optimal control problems subject
to discontinuous ODEs. In this article, we extend the FESD method [Nurkanovi\'c
et al., 2022] to the dynamic equations of multiple rigid bodies that exhibit
state jumps due to impacts and Coulomb friction. This new method is referred to
as FESD with Jumps (FESD-J). Starting from the standard Runge-Kutta equations,
we let the integration step sizes be degrees of freedom. Additional constraints
are introduced to ensure exact switch detection and to remove spurious degrees
of freedom if no switches occur. Moreover, at the boundaries of each finite
element, we impose the impact equations in their complementarity form, at both
the position and velocity level. They compute the normal and tangential
impulses in case of contact making. Otherwise, they are reduced to the
continuity conditions for the velocities. FESD-J treats multiple contacts,
where each contact can have a different coefficient of restitution and
friction. All methods introduced in this paper are implemented in the
open-source software package NOSNOC. We illustrate the use of FESD-J in both
simulation and optimal control examples.
