4 votos

Ejecutar un comando en cada paso de una exploración relajada

En Gaussian, estoy tratando de hacer un barrido relajado y para cada paso obtener el volumen. Sin embargo, cuando utilizo la palabra clave de volumen, parece que sólo se obtiene el volumen para los pasos iniciales y finales. ¿Hay alguna manera de asegurar que la palabra clave se ejecute para cada paso de un escaneo? Una pregunta similar ( ¿Cómo obtener el espectro Raman a lo largo de cada coordenada de una exploración en Gaussian? ), pero quiero confirmar si Gaussian no permite que se ejecuten otras palabras clave durante una exploración.

4 votos

Tal y como comenté en la pregunta enlazada, será infinitamente más fácil ejecutar esto usando un script externo y autoescrito en bash o python.

7voto

maccullt Puntos 1555

Adivina qué: es es posible (en su caso concreto).

Me equivoqué. Al menos un poco. La mayor parte de lo que se describe a continuación es cierto para el propósito general, y no voy a cambiar esa parte de la respuesta.

Sin embargo, en el caso concreto de que sólo quiera calcular el volumen, puede hacerlo porque creo que forma parte del módulo de análisis de la población. De hecho, puedes solicitar un análisis de población en cada paso de la optimización, pero ten cuidado con lo que deseas (ejecutar NBO te llevará una eternidad). Así la optimización será un poco más lenta, pero es la forma más conveniente. Por lo tanto, la solución a su problema muy específico es añadir la siguiente línea a la sección de la ruta:

pop=always volume

Ten en cuenta que la salida será una pesadilla aún mayor que antes.

Aquí tiene una entrada completa de la $\ce{H3B-NH3}$ que he utilizado anteriormente.

%chk=df-bp86-d3.def2svp.chk
%nproc=4
%mem=16000MB
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
pop=always                         ! Perform a population analysis at every step
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Scan

0 1
  N       0.00000        0.00000       -0.80852
  H       0.92634        0.00000       -1.36025
  H      -0.46317       -0.80223       -1.36025
  H      -0.46317        0.80223       -1.36025
  B       0.00000        0.00000        0.19148
  H       0.52348        0.90670        0.85928
  H      -1.04696        0.00000        0.85928
  H       0.52348       -0.90670        0.85928

B 1 5 S 5 0.2

Para comparar (no estoy 100% seguro de haber utilizado los valores correctos):

Energies
Step1 SCF Done:  E(RB-P86) =  -82.7531561505     A.U. after    8 cycles
Step2 SCF Done:  E(RB-P86) =  -83.0511089272     A.U. after    7 cycles
Step3 SCF Done:  E(RB-P86) =  -83.1459883448     A.U. after    7 cycles
Step4 SCF Done:  E(RB-P86) =  -83.1661412429     A.U. after    8 cycles
Step5 SCF Done:  E(RB-P86) =  -83.1606918387     A.U. after    8 cycles
Step6 SCF Done:  E(RB-P86) =  -83.1485268431     A.U. after    8 cycles

Volumes
Step1 Molar volume =  491.032 bohr\*\*3/mol ( 43.819 cm\*\*3/mol)
Step2 Molar volume =  415.148 bohr\*\*3/mol ( 37.047 cm\*\*3/mol)
Step3 Molar volume =  401.060 bohr\*\*3/mol ( 35.790 cm\*\*3/mol)
Step4 Molar volume =  406.785 bohr\*\*3/mol ( 36.301 cm\*\*3/mol)
Step5 Molar volume =  514.428 bohr\*\*3/mol ( 45.907 cm\*\*3/mol)
Step6 Molar volume =  453.278 bohr\*\*3/mol ( 40.450 cm\*\*3/mol)

Las energías difieren muy poco (de la aproximación de abajo), pero los volúmenes difieren en algunos puntos. Ahora que podría ser, que acabo de utilizar el análisis de la población mal, o algo más. No tengo tiempo para investigar. (Deja un comentario o edita si lo averiguas).


He vuelto a mirar eso, pero sin un serio hackeo a través de la external interfaz de palabras clave, no creo que sea posible. Tampoco he podido encontrar una iOP para controlar lo que se perfora al archivo de puntos de control y cuándo, y luego usar el resultado de eso para una ejecución de propiedad/análisis.
El punch es igualmente decepcionante, ya que sólo muestra el último estado.

Aunque el manual sugiere que se puede acceder a un paso determinado de un escaneo en el archivo de puntos de control, he comprobado que esto no es cierto. La documentación es confusa en esa parte y también advierte, que no todo se almacena. Como se trata de un archivo binario, tampoco hay una forma real de comprobar lo que contiene.
Supongo que la verdadera razón de la existencia de esa opción es la de reiniciar un cálculo que se ha estropeado con parámetros diferentes a los de un cálculo intermedio.

Tampoco pude encontrar la manera de set una coordenada redundante dada a un valor específico y luego congelarla para realizar una optimización parcial en ese punto, y luego manipular esa coordenada mientras se lee en la conjetura y realizar otro cálculo.
Incluso con la nueva y generalmente impresionante forma de definir las coordenadas internas generales en Gaussian 16 ( GIC ) No tuve éxito.

De todos esos intentos, se me ocurrió que la forma probablemente más fácil (=perezosa) de hacer lo que quieres es realizar el escaneo, extraer las coordenadas (p'optimizadas) y ejecutar una serie de cálculos de punto único.

Un enfoque ligeramente menos pesado (probablemente) desde el punto de vista computacional sería realizar una exploración inicial en un nivel muy bajo (como pm6, si su molécula se comporta bien), y hacer p'optimizaciones en los pasos resultantes. Normalmente pm6 es capaz de ofrecer geometrías de partida razonables, lo que en muchos otros casos también puede ayudarle a reducir el esfuerzo computacional. Así que esto es probablemente fácil y bastante eficiente.
Hay varias opciones para extraer geometrías de un escaneo, la siguiente pregunta trata exactamente de eso: ¿Extraer todas las estructuras del cálculo de dinámica molecular de Gaussian 09 utilizando babel?

Sin duda, hay formas más eficientes de realizar este tipo de tareas, pero al final, la mayoría de ellas requieren trabajo manual.


N.B: No puedo creerlo, pero el enfoque pm6/popt es realmente una aplicación medio decente de trabajos compuestos . Aunque tengo que admitir que aún no lo he probado.
Funciona como lo demuestra el siguiente ejemplo. (He utilizado Gaussian 16 Rev. A.03, pero debería funcionar también con Gaussian 09 Rev D.01. Tal vez incluso antes).

Configuré una exploración inicial en el nivel pm6 de la teoría para $\ce{H3B-NH3}$ y escaneó el $\ce{B-N}$ lazo:

%chk=pm6.scan.chk
%nproc=2
%mem=8000MB
#P PM6
OPT(MaxCycle=100)
SYMMETRY(loose)
GEOM(ModRedundant)
Volume

title

0 1
 N     0.000000     0.000000    -0.764994
 H     1.019690     0.000000    -1.164250
 H    -0.509845    -0.883078    -1.164250
 H    -0.509845     0.883078    -1.164250
 B    -0.000000     0.000000     0.235006
 H     0.509845     0.883078     0.634262
 H    -1.019691     0.000000     0.634262
 H     0.509845    -0.883078     0.634262

B 1 5 S 5 0.2

He extraído las geometrías preoptimizadas con Chemcraft y he añadido una sección de cabecera y he hecho uso del --Link1-- separador. Después de la primera optimización leí el modus operandi para un ligero aumento de la velocidad. Estoy seguro de que algo de esto se puede automatizar más, pero para demostrarlo, lo hice a mano. La entrada comentada:

%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP 
Step 1

0 1
  N       0.00000        0.00000       -0.80852
  H       0.92634        0.00000       -1.36025
  H      -0.46317       -0.80223       -1.36025
  H      -0.46317        0.80223       -1.36025
  B       0.00000        0.00000        0.19148
  H       0.52348        0.90670        0.85928
  H      -1.04696        0.00000        0.85928
  H       0.52348       -0.90670        0.85928

B 1 5 F

--Link1--
%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
guess(read)                        ! Use the MO from the previous step
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Step 2

0 1
  N       0.00000        0.00000       -0.90852
  H       0.94043        0.00000       -1.36414
  H      -0.47021       -0.81444       -1.36414
  H      -0.47021        0.81444       -1.36414
  B       0.00000        0.00000        0.29148
  H       0.53853        0.93276        0.86317
  H      -1.07706        0.00000        0.86317
  H       0.53853       -0.93276        0.86317

B 1 5 F

--Link1--
%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
guess(read)                        ! Use the MO from the previous step
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Step 3

0 1
  N       0.00000        0.00000       -0.99853
  H       0.95023        0.00000       -1.38525
  H      -0.47511       -0.82292       -1.38525
  H      -0.47512        0.82292       -1.38525
  B       0.00000        0.00000        0.40147
  H       0.55372        0.95907        0.87762
  H      -1.10743        0.00000        0.87762
  H       0.55372       -0.95907        0.87762

B 1 5 F

--Link1--
%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
guess(read)                        ! Use the MO from the previous step
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Step 4

0 1
  N       0.00000        0.00000       -1.07752
  H       0.95590        0.00000       -1.42049
  H      -0.47795       -0.82783       -1.42049
  H      -0.47795        0.82783       -1.42049
  B       0.00000        0.00000        0.52248
  H       0.56746        0.98288        0.89885
  H      -1.13493        0.00000        0.89885
  H       0.56746       -0.98288        0.89885

B 1 5 F

--Link1--
%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
guess(read)                        ! Use the MO from the previous step
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Step 5

0 1
  N       0.00000        0.00000       -1.14730
  H       0.95649        0.00000       -1.46941
  H      -0.47824       -0.82834       -1.46941
  H      -0.47824        0.82834       -1.46941
  B       0.00000        0.00000        0.65270
  H       0.57849        1.00197        0.92763
  H      -1.15698        0.00000        0.92763
  H       0.57849       -1.00197        0.92763

B 1 5 F

--Link1--
%chk=df-bp86-d3.def2svp.rescan.chk
#P BP86/def2SVP/W06                ! Density Functional Theory Calculation
DenFit                             ! Use density fitting
empiricaldispersion=GD3            ! Use Grimme Dispersion
guess(read)                        ! Use the MO from the previous step
opt(MaxCycle=100,Loose,ModRed)     ! Use more optimisation cycles (Loose only for speed)
scf(xqc,MaxConventionalCycle=500)  ! If necessary, resort to quadratic convergence
int(ultrafinegrid)                 ! Larger Grid
scrf(pcm,solvent=water)            ! Use solvent
gfinput gfoldprint iop(6/7=3)      ! For molden
symmetry(loose)                    ! Loosen symmetry requirements
Volume                             ! Report vdW volume

Water H3B-NH3 DF-BP86-D3(PCM)/def2-SVP
Step 6

0 1
  N       0.00000        0.00000       -1.21413
  H       0.95402        0.00000       -1.53258
  H      -0.47701       -0.82621       -1.53258
  H      -0.47701        0.82621       -1.53258
  B       0.00000        0.00000        0.78587
  H       0.58528        1.01374        0.96868
  H      -1.17057        0.00000        0.96868
  H       0.58528       -1.01374        0.96868

B 1 5 F

Para comparar:
Energías

Step1 SCF Done:  E(RB-P86) =  -82.7531561507     A.U. after    8 cycles
Step2 SCF Done:  E(RB-P86) =  -83.0511087360     A.U. after    8 cycles
Step3 SCF Done:  E(RB-P86) =  -83.1459860378     A.U. after    7 cycles
Step4 SCF Done:  E(RB-P86) =  -83.1661471840     A.U. after    8 cycles
Step5 SCF Done:  E(RB-P86) =  -83.1606709617     A.U. after    8 cycles
Step5 SCF Done:  E(RB-P86) =  -83.1484921220     A.U. after    8 cycles

Volúmenes

Step1 Molar volume =  459.690 bohr\*\*3/mol ( 41.022 cm\*\*3/mol)
Step2 Molar volume =  479.017 bohr\*\*3/mol ( 42.747 cm\*\*3/mol)
Step3 Molar volume =  401.060 bohr\*\*3/mol ( 35.790 cm\*\*3/mol)
Step4 Molar volume =  406.785 bohr\*\*3/mol ( 36.301 cm\*\*3/mol)
Step5 Molar volume =  570.344 bohr\*\*3/mol ( 50.897 cm\*\*3/mol)
Step6 Molar volume =  498.606 bohr\*\*3/mol ( 44.495 cm\*\*3/mol)

Animación
animation scan

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X