Posso usare due codici differenti?
Posso utilizzare un codice per l'ottimizzazione della geometria e un altro codice per il calcolo di un singolo punto su quella geometria ottimizzata? Si possono pubblicare risultati del genere?
Risposte
Assolutamente.
Lo faccio sempre e spesso utilizzo diversi codici, poiché ogni codice ha i suoi punti di forza e di debolezza.
Ho usato 7 codici diversi in questo articolo in cui tutto quello che stavo facendo era l'energia di ionizzazione di un atomo di carbonio (questo significa calcolare l'energia di un atomo di carbonio neutro e l'energia di un catione di carbonio ionizzato singolarmente e quindi riportare la differenza tra questi due energie).
- MOLPRO è stato utilizzato per ottimizzare i set di base (poiché non molti codici possono ottimizzare gli esponenti del set di base).
- GAUSSIAN è stato utilizzato per ottimizzare le funzioni di tipo k negli insiemi di base (GAUSSIAN non può ottimizzare automaticamente gli esponenti, quindi abbiamo dovuto eseguire l'ottimizzazione manualmente, ma GAUSSIAN può trattare le funzioni di tipo k mentre MOLPRO no).
- MOLCAS è stato utilizzato per calcolare gli integrali, perché anche se GAUSSIAN può usare funzioni di tipo k e di tipo l, non può stampare gli integrali in formato FCIDUMP ma MOLCAS può; e gli integrali dovevano essere in formato FCIDUMP perché è il formato che legge NECI.
- NECI è stato utilizzato per eseguire i calcoli FCIQMC (gli altri programmi non possono eseguire FCIQMC o non possono farlo con tutto il controllo di cui avevamo bisogno).
- CFOUR è stato utilizzato per calcolare le correzioni DBOC e X2C perché MOLPRO, GAUSSIAN, MOLCAS e NECI non potevano farlo al momento (e probabilmente ancora non possono farlo DBOC).
- MRCC è stato utilizzato per calcolare i calcoli di cluster accoppiati per le correzioni X2C e DBOC oltre CCSD (T), poiché gli altri programmi non possono andare oltre CCSD (T).
- Psi3 (un precursore di Psi4) è stato utilizzato per ottimizzare alcune delle funzioni dei set di base (ma questa parte è stata eseguita prima di iniziare questo progetto ed era l'argomento di articoli precedenti, quindi non abbiamo avuto bisogno di utilizzare Psi3 o Psi4 direttamente in questo documento).
È una cosa molto comune calcolare gli integrali in un programma e i calcoli post-SCF in un altro programma. Questo è lo scopo del file fcidump : per calcolare gli integrali in un programma, stamparli nel formato FCIDUMP, che è il formato universale che quasi tutti i programmi possono leggere.
Perché MOLPRO, PySCF, (Open) MOLCAS, ARROW, DALTON, DIRAC, GAMESS, DICE, BLOCK, CheMPS2, xacc, NECI, BAGEL, HANDE, Psi4 e probabilmente altri, possono tutti leggere il formato FCIDUMP? È perché le persone vogliono essere in grado di calcolare integrali in un programma e calcoli post-SCF in un programma diverso. Questo è anche il motivo per cui MRCC ha interfacce con CFOUR, MOLPRO, Psi4, DIRAC, ORCA, COLUMBUS, AMBER: le persone vogliono essere in grado di calcolare integrali in un programma e fare cluster accoppiati di ordine elevato in un programma diverso. Ci sono molti altri esempi.
Per quanto riguarda l'ottimizzazione della geometria: in realtà eseguiamo calcoli di energia a punto singolo su geometrie ottenute da programmi diversi per tutto il tempo quando prendiamo una geometria dalla letteratura e facciamo un calcolo di energia a punto singolo su di essa. Spesso prendiamo anche la geometria da un esperimento di cristallografia a raggi X, quindi eseguiamo un calcolo dell'energia a un punto su di essa. Alcuni programmi possono eseguire determinati tipi di calcoli energetici a punto singolo (forse hanno implementato una funzione DFT speciale, ad esempio) ma non possono eseguire l'ottimizzazione della geometria perché l'algoritmo di ottimizzazione semplicemente non è implementato.
Ma attenzione: CCSD (T) congelato-core è MOLPRO, non significa la stessa cosa di CCSD (T) congelato-core in CFOUR, per esempio. Il significato di un metodo in un software non è necessariamente quello che significa in un altro software. Oltre ad assicurarti di essere chiaro nel tuo articolo su quale set di base, SCF, post-SCF e altri metodi vengono utilizzati, è una buona idea anche dire quale programma è stato utilizzato (sia per l'ottimizzazione della geometria, sia per calcolo dell'energia in un punto).
A seconda delle proprietà che ti interessano .. forse. Non lo suggerisco in generale. Lavoro sui calcoli dei fononi in cui le forze devono essere rilassate con una tolleranza piuttosto stretta. In base alla mia esperienza, la struttura rilassata (utilizzando ad esempio VASP) non è solitamente identica a ciò che trova un altro codice (ad esempio ABINIT). Ovviamente le due strutture sono vicine e un ulteriore rilassamento con il 2 ° codice (nel mio caso ABINIT) converge in solo un paio di passaggi. Per qualcosa come l'energia totale o la densità elettronica degli stati, probabilmente non ha molta importanza.
Questo è stato fatto in precedenza. Nella mia esperienza la geometria viene trovata con un codice e le correzioni del solvente vengono eseguite con un altro. L'ho fatto personalmente [1] e ho fatto pubblicare i risultati. Ho eseguito un'ottimizzazione della geometria utilizzando QChem, quindi correzioni con solvente utilizzando ORCA.
Riferimento:
[1] TJ Doyon, JC Perkins, SA Baker Dockrey, EO Romero, KC Skinner, PM Zimmerman, ARH Narayan "Formazione chemoenzimatica di o-chinone metide" J. Am. Chem. Soc. 2019, 141, 20269–20277.
Si assolutamente.
Il motivo è che sono necessari codici diversi per generare esattamente gli stessi risultati se si riferiscono agli stessi metodi.
Ad esempio, se usi Gaussian, Orca, Molpro, NWChem, Psi4, PySCF ... (non posso elencare l'elenco completo) per eseguire HF / cc-pVTZ per studiare H 2 , dovrebbero generare esattamente gli stessi risultati, inclusa l'energia e funzioni d'onda.
Ovviamente pacchetti diversi possono essere generati in formati diversi. Inoltre, pacchetti diversi possono avere valori predefiniti diversi per alcuni parametri (ad esempio, la soglia di ottimizzazione, la beta geminale di metodi correlati espliciti, la dimensione delle griglie integrali, l'orbitale iniziale per l'iterazione SCF, ecc.) È responsabilità degli utenti controlla il valore predefinito, perché apparentemente è impossibile per il pacchetto pioniere dirti come il software successivo tratterà i valori predefiniti.
Quindi, se esegui esattamente lo stesso calcolo usa due pacchetti diversi, qui lo stesso significa gli stessi parametri esplicitamente dati e parametri impliciti, mentre ottieni risultati diversi, dovremmo considerare
- Almeno uno di loro ha un bug; o
- Dovrebbero essere indicati come metodi diversi, ad esempio i metodi PM7 in gaussiano e in MOPAC. Questo dovrebbe essere menzionato nel manuale o dovrebbe essere considerato come un bug.
In sintesi, sono i metodi che contano, non il software. Poiché è un modo comune per eseguire l'ottimizzazione della geometria utilizzando un metodo più economico e per eseguire il calcolo a punto singolo utilizzando un metodo più accurato, ovviamente è accettabile utilizzare software diversi, considerando che alcuni metodi sono disponibili solo in meno utilizzati Pacchetti.