Quantum mechanical/molecular mechanics (QM/MM) methods are interesting to model the impact of a complex environment on the spectroscopic properties of a molecule. In this context, a FROm molecular dynamics to second harmonic Generation (FROG) code is a tool to exploit molecular dynamics trajectories to perform QM/MM calculations of molecular optical properties. FROG stands for "FROm molecular dynamics to second harmonic Generation" since it was developed for the calculations of hyperpolarizabilities. These are relevant to model non-linear optical intensities and compare them with those obtained from second harmonic scattering or second harmonic generation experiments. FROG's specificity is that it is designed to study simple molecular liquids, including solvents or mixtures, from the bulk to the surface. For the QM/MM calculations, FROG relies on the Dalton package: its electronic-structure models, response theory, and polarizable embedding schemes. FROG helps with the global workflow needed to deal with numerous QM/MM calculations: it permits the user to separate the system into QM and MM fragments, to write Dalton's inputs, to manage the submission of QM/MM calculations, to check whether Dalton's calculation finished successfully, and finally to perform averages on relevant QM observables. All molecules within the simulation box and several time steps are tackled within the same workflow. The platform is written in Python and installed as a package. Intermediate data such as local electric fields or individual molecular properties are accessible to the users in the form of Python object arrays. The resulting data are easily extracted, analyzed, and visualized using Python scripts that are provided in tutorials.
Read full abstract