However, ddX provides an implementation for this step for multipolar solutes and for λ being the nuclear coordinates. This is an interesting case, as the forces are often needed, they have more cumbersome expressions with respect to other analytical derivatives, and in ddX this step benefits from the internal FMM library. The solvent contribution to the forces is computed by calling multipole_force_terms in Fortran or the corresponding functions in C and Python. This subroutine takes as arguments the multipolar distribution, the model object and the state object. The latter contains information about the adjoint solution X adj which is required to assemble the scalar products in eq. 10.