  Quantum-chemical subsystem and embedding methods require complex workflows
that may involve multiple quantum-chemical program packages. Moreover, such
workflows require the exchange of voluminous data that goes beyond simple
quantities such as molecular structures and energies. Here, we describe our
approach for addressing this interoperability challenge by exchanging electron
densities and embedding potentials as grid-based data. We describe the approach
that we have implemented to this end in a dedicated code, PyEmbed, currently
part of a Python scripting framework. We discuss how it has facilitated the
development of quantum-chemical subsystem and embedding methods, and highlight
several applications that have been enabled by PyEmbed, including WFT-in-DFT
embedding schemes mixing non-relativistic and relativistic electronic structure
methods, real-time time-dependent DFT-in-DFT approaches, the density-based
many-body expansion, and workflows including real-space data analysis and
visualization. Our approach demonstrates in particular the merits of exchanging
(complex) grid-based data, and in general the potential of modular software
development in quantum chemistry, which hinges upon libraries that facilitate
interoperability.
