¿Puedo usar dos códigos diferentes?

Sep 03 2020

¿Puedo usar un código para la optimización de la geometría y otro código para un cálculo de un solo punto en esa geometría optimizada? ¿Se pueden publicar resultados así?

Respuestas

12 NikeDattani Sep 03 2020 at 10:00

Absolutamente.

Hago esto todo el tiempo y, a menudo, uso varios códigos, ya que cada código tiene sus propias fortalezas y debilidades.

Usé 7 códigos diferentes en este artículo donde todo lo que estaba haciendo era la energía de ionización de un átomo de carbono (esto significa calcular la energía de un átomo de carbono neutro y la energía de un catión de carbono ionizado individualmente y luego informar la diferencia entre estos dos energías).

  • MOLPRO se utilizó para optimizar los conjuntos de bases (porque no muchos códigos pueden optimizar los exponentes de conjuntos de bases).
  • GAUSSIAN se utilizó para optimizar las funciones de tipo k en los conjuntos de bases (GAUSSIAN no puede optimizar automáticamente los exponentes, por lo que tuvimos que hacer la optimización manualmente, pero GAUSSIAN puede tratar funciones de tipo k mientras que MOLPRO no puede).
  • Se usó MOLCAS para calcular las integrales, porque aunque GAUSSIAN puede usar funciones de tipo k y de tipo l, no puede imprimir las integrales en formato FCIDUMP pero MOLCAS sí; y las integrales debían estar en formato FCIDUMP porque es el formato que lee NECI.
  • NECI se utilizó para hacer los cálculos de FCIQMC (los otros programas no pueden hacer FCIQMC o no pueden hacerlo con tanto control como necesitábamos).
  • Se usó CFOUR para calcular las correcciones DBOC y X2C porque MOLPRO, GAUSSIAN, MOLCAS y NECI no podían hacer esto en ese momento (y probablemente todavía no pueden hacer DBOC).
  • Se utilizó MRCC para calcular cálculos de conglomerados acoplados para las correcciones X2C y DBOC más allá de CCSD (T), ya que los otros programas no pueden ir más allá de CCSD (T).
  • Se usó Psi3 (un precursor de Psi4) para optimizar algunas de las funciones de los conjuntos de bases (pero esta parte se hizo antes de que comenzáramos este proyecto, y fue el tema de artículos anteriores, por lo que no necesitamos usar Psi3 o Psi4 directamente en este documento).

Es muy común calcular integrales en un programa y cálculos posteriores a SCF en otro programa. Ese es el propósito del archivo fcidump : Para calcular integrales en un programa, imprímalas en formato FCIDUMP, que es el formato universal que casi todos los programas pueden leer.

¿Por qué MOLPRO, PySCF, (Abierto) MOLCAS, ARROW, DALTON, DIRAC, GAMESS, DICE, BLOCK, CheMPS2, xacc, NECI, BAGEL, HANDE, Psi4 y probablemente otros, pueden todos leer el formato FCIDUMP? Es porque la gente quiere poder calcular integrales en un programa y cálculos posteriores a SCF en un programa diferente. Esta es también la razón por la que MRCC tiene interfaces con CFOUR, MOLPRO, Psi4, DIRAC, ORCA, COLUMBUS, AMBER: la gente quiere poder calcular integrales en un programa y hacer clústeres acoplados de alto orden en un programa diferente. Hay varios otros ejemplos.

En cuanto a la optimización de la geometría: en realidad, hacemos cálculos de energía de un solo punto en geometrías obtenidas por diferentes programas todo el tiempo cuando tomamos una geometría de la literatura y hacemos un cálculo de energía de un solo punto en ella. A menudo, incluso tomamos la geometría de un experimento de cristalografía de rayos X y luego hacemos un cálculo de energía de un solo punto. Algunos programas pueden hacer ciertos tipos de cálculos de energía de un solo punto (tal vez tengan implementada una función especial de DFT, por ejemplo) pero no pueden hacer optimización de geometría porque el algoritmo de optimización simplemente no está implementado.

Pero tenga cuidado: CCSD (T) de núcleo congelado es MOLPRO, no significa lo mismo que CCSD (T) de núcleo congelado en CFOUR, por ejemplo. Lo que significa un método en un software no es necesariamente lo que significa en otro software. Además de asegurarse de tener claro en su documento qué conjunto de bases, SCF, post-SCF y otros métodos se utilizan, es una buena idea decir también qué programa se utilizó (tanto para la optimización de geometría como para la cálculo de energía de un solo punto).

9 TySterling Sep 03 2020 at 02:47

Dependiendo de las propiedades que le interesen ... tal vez. No sugiero esto en general. Trabajo en cálculos de fonones en los que las fuerzas deben relajarse hasta alcanzar una tolerancia bastante estricta. Según mi experiencia, la estructura relajada (usando, por ejemplo, VASP) no suele ser idéntica a la que encuentra otro código (por ejemplo, ABINIT). Por supuesto, las dos estructuras están cerca y una mayor relajación con el segundo código (en mi caso ABINIT) converge en solo un par de pasos. Para algo como la energía total o la densidad electrónica de estados, probablemente no importe.

8 kskinnerx16 Sep 03 2020 at 01:17

Esto se ha hecho anteriormente. En mi experiencia, la geometría se encuentra con un código y las correcciones de solvente se realizan con otro. Yo personalmente he hecho esto [1] y he publicado los resultados. Realicé una optimización de geometría usando QChem y luego correcciones de solvente usando ORCA.

Referencia:

[1] TJ Doyon, JC Perkins, SA Baker Dockrey, EO Romero, KC Skinner, PM Zimmerman, ARH Narayan “Formación quimioenzimática de metida de o-quinona” J. Am. Chem. Soc. 2019, 141, 20269–20277.

5 Y.Zhai Sep 04 2020 at 09:02

Si, absolutamente.

La razón es que se requieren diferentes códigos para generar exactamente los mismos resultados si se refieren a los mismos métodos.

Por ejemplo, si usa Gaussian, Orca, Molpro, NWChem, Psi4, PySCF ... (no puedo enumerar la lista completa) para realizar HF / cc-pVTZ para estudiar H 2 , deberían generar exactamente los mismos resultados, incluida la energía y funciones de onda.

Por supuesto, los diferentes paquetes pueden producirse en diferentes formatos. Además, diferentes paquetes pueden tener diferentes valores predeterminados para algunos parámetros (por ejemplo, el umbral de optimización, la beta geminal de los métodos correlacionados explícitos, el tamaño de las cuadrículas integrales, el orbital inicial para la iteración SCF, etc.) Es responsabilidad de los usuarios verifique el valor predeterminado, porque aparentemente es imposible que el paquete pionero le diga cómo el software posterior tratará los valores predeterminados.

Entonces, si realiza exactamente el mismo cálculo, use dos paquetes diferentes, aquí mismo significa los mismos parámetros dados explícitamente y parámetros implícitos, mientras obtiene resultados diferentes, debemos considerar

  • Al menos uno de ellos tiene un error; o
  • Deberían denominarse métodos diferentes, por ejemplo, los métodos PM7 en gaussiano y en MOPAC. Esto debería mencionarse en el manual o debería considerarse un error.

En resumen, lo que importa son los métodos, no el software. Dado que es una forma común de realizar la optimización de la geometría utilizando un método más económico, y para realizar el cálculo de un solo punto utilizando un método más preciso, por supuesto es aceptable utilizar un software diferente, considerando que algunos métodos solo están disponibles en los menos utilizados. paquetes.