MPhys: a modular multiphysics library for coupled simulation and adjoint derivative computation (Structural and Multidisciplinary Optimization)