Posso usar dois códigos diferentes?
Posso usar um código para otimização de geometria e outro código para um cálculo de ponto único nessa geometria otimizada? É possível publicar resultados assim?
Respostas
Absolutamente.
Eu faço isso o tempo todo e frequentemente uso vários códigos, pois cada código tem seus próprios pontos fortes e fracos.
Eu usei 7 códigos diferentes neste artigo onde tudo o que eu estava fazendo era a energia de ionização de um átomo de carbono (isso significa calcular a energia de um átomo de carbono neutro e a energia de um cátion de carbono ionizado isoladamente e, em seguida, relatar a diferença entre esses dois energias).
- MOLPRO foi usado para otimizar os conjuntos de base (porque poucos códigos podem otimizar expoentes de conjuntos de base).
- GAUSSIAN foi usado para otimizar as funções do tipo k nos conjuntos de base (o GAUSSIAN não pode otimizar expoentes automaticamente, então tivemos que fazer a otimização manualmente, mas o GAUSSIAN pode tratar as funções do tipo k enquanto o MOLPRO não).
- MOLCAS foi usado para calcular os integrais, porque embora o GAUSSIAN possa usar funções do tipo k e do tipo l, ele não pode imprimir os integrais no formato FCIDUMP, mas o MOLCAS pode; e os integrais precisavam estar no formato FCIDUMP porque é o formato que o NECI lê.
- O NECI foi usado para fazer os cálculos do FCIQMC (os outros programas não podem fazer o FCIQMC ou não podem fazê-lo com tanto controle quanto necessário).
- CFOUR foi usado para calcular as correções DBOC e X2C porque MOLPRO, GAUSSIAN, MOLCAS e NECI não puderam fazer isso no momento (e provavelmente ainda não podem fazer DBOC).
- MRCC foi usado para calcular cálculos de cluster acoplado para as correções X2C e DBOC além do CCSD (T), uma vez que os outros programas não podem ir além do CCSD (T).
- Psi3 (um precursor de Psi4) foi usado para otimizar algumas das funções dos conjuntos de base (mas esta parte foi feita antes de começarmos este projeto, e foi o assunto de artigos anteriores, portanto, não precisamos usar Psi3 ou Psi4 diretamente neste artigo).
É muito comum calcular integrais em um programa e cálculos pós-SCF em outro programa. Esse é o propósito do arquivo fcidump : Para calcular integrais em um programa, imprima-os no formato FCIDUMP, que é o formato universal que quase todos os programas podem ler.
Por que MOLPRO, PySCF, (Abrir) MOLCAS, ARROW, DALTON, DIRAC, GAMESS, DICE, BLOCK, CheMPS2, xacc, NECI, BAGEL, HANDE, Psi4 e provavelmente outros, podem ler o formato FCIDUMP? É porque as pessoas querem ser capazes de calcular integrais em um programa e cálculos pós-SCF em um programa diferente. Esta é também a razão pela qual MRCC tem interfaces com CFOUR, MOLPRO, Psi4, DIRAC, ORCA, COLUMBUS, AMBER: as pessoas querem ser capazes de calcular integrais em um programa e fazer cluster acoplado de alta ordem em um programa diferente. Existem vários outros exemplos.
Quanto à otimização da geometria: Na verdade, fazemos cálculos de energia de ponto único em geometrias obtidas por diferentes programas o tempo todo quando pegamos uma geometria da literatura e fazemos cálculos de energia de ponto único nela. Freqüentemente, até pegamos a geometria de um experimento de cristalografia de raios X e, em seguida, fazemos um cálculo de energia de um único ponto sobre ela. Alguns programas podem fazer certos tipos de cálculos de energia de ponto único (talvez eles tenham um funcional DFT especial implementado, por exemplo), mas não podem fazer a otimização da geometria porque o algoritmo de otimização simplesmente não está implementado.
Mas tenha cuidado: Frozen-core CCSD (T) é MOLPRO, não significa a mesma coisa que frozen-core CCSD (T) em CFOUR, por exemplo. O que um método significa em um software não é necessariamente o que significa em outro software. Além de certificar-se de que você deixou claro em seu artigo qual conjunto de base, SCF, pós-SCF e outros métodos são usados, é uma boa ideia também dizer qual programa foi usado (para a otimização da geometria e para o cálculo de energia de ponto único).
Dependendo de quais propriedades você gosta ... talvez. Eu não sugiro isso em geral. Eu trabalho em cálculos de fônon onde as forças devem ser relaxadas até uma tolerância bastante rígida. Minha experiência mostra que a estrutura relaxada (usando, por exemplo, VASP) não é geralmente idêntica à que outro código encontra (por exemplo, ABINIT). Obviamente, as duas estruturas estão próximas e o relaxamento adicional com o segundo código (no meu caso ABINIT) converge em apenas alguns passos. Para algo como energia total ou densidade eletrônica de estados, provavelmente não importa.
Isso já foi feito anteriormente. Em minha experiência, a geometria é encontrada com um código e as correções de solvente são realizadas com outro. Eu fiz isso pessoalmente [1] e tive os resultados publicados. Realizei uma otimização de geometria usando QChem e, em seguida, correções de solvente usando ORCA.
Referência:
[1] TJ Doyon, JC Perkins, SA Baker Dockrey, EO Romero, KC Skinner, PM Zimmerman, ARH Narayan “Chemoenzymatic o-quinone methide training” J. Am. Chem. Soc. 2019, 141, 20269–20277.
Sim absolutamente.
A razão é que códigos diferentes são necessários para gerar exatamente os mesmos resultados se eles se referirem aos mesmos métodos.
Por exemplo, se você usar Gaussian, Orca, Molpro, NWChem, Psi4, PySCF ... (não posso listar a lista completa) para realizar HF / cc-pVTZ para estudar H 2 , eles devem gerar exatamente os mesmos resultados, incluindo a energia e funções de onda.
É claro que diferentes pacotes podem ser produzidos em diferentes formatos. Além disso, diferentes pacotes podem ter diferentes valores padrão para alguns parâmetros (por exemplo, o limite de otimização, o beta geminal de métodos correlacionados explícitos, tamanho de grades integrais, o orbital inicial para a iteração SCF, etc.). É responsabilidade dos usuários verifique o valor padrão, porque aparentemente é impossível para o pacote pioneiro dizer a você como o software posterior tratará os valores padrão.
Portanto, se você realizar exatamente o mesmo cálculo, usar dois pacotes diferentes, aqui mesmo significa os mesmos parâmetros explicitamente fornecidos e parâmetros implícitos, embora obtenha resultados diferentes, devemos considerar
- Pelo menos um deles tem um bug; ou
- Eles devem ser referidos como métodos diferentes, por exemplo, os métodos PM7 em Gaussiano e em MOPAC. Isso deve ser mencionado no manual ou deve ser considerado um bug.
Em resumo, o que importa são os métodos, não o software. Uma vez que é uma maneira comum de realizar a otimização da geometria usando um método mais barato, e fazer o cálculo de ponto único usando um método mais preciso, é claro que é aceitável usar software diferente, considerando que alguns métodos estão disponíveis apenas nos menos usados pacotes.