Chaque fournisseur QM a son propre dialecte .cosmo. Unités différentes, ordres de colonnes différents, conventions différentes pour l'indexation des atomes. La solution de contournement historique consistait en des scripts regex par fournisseur ; chaque laboratoire maintenait le sien ; aucun ne faisait d'aller-retour en fp64.
Le module Rosetta Stone réduit chaque format fournisseur en un seul hub : le MolForge FullOutput. Prise en charge en production de Turbomole / COSMOtherm / xtb / MolForge CSV ; partielle pour Gaussian / NwChem / ORCA. La détection automatique les distingue par analyse du contenu.
Matrice de prise en charge des formats
Turbomole + COSMOtherm : production, aller-retour fp64. Export natif xtb : production (distingué de Turbomole par l'en-tête $gfn / # generated by xtb). MolForge CSV : échange natif pour les pipelines ML. ORCA cpcm.dat, Gaussian SCRF, NwChem cosmo : partiel (au mieux sur les agencements de versions les plus courants).
Ajouter un nouveau fournisseur
Écrivez _parse_X_blocks(path) → _ParsedLegacy avec les unités normalisées en Bohr / Ų / indices d'atomes à base 0. Ajoutez une branche de détection automatique à read_legacy_cosmo. Ajoutez éventuellement un écrivain write_X_cosmo. Temps total par nouveau fournisseur : ~1 jour.