13 votos

Gaussiano: Exploración relajada con optimización modredundante y átomos ficticios

Me gustaría realizar un escaneo relajado en Gaussian09 sobre mi molécula utilizando el modredundant optimización. Como quiero escanear dos longitudes de enlace simultáneamente, he definido algunos átomos ficticios que están cerca de los átomos reales cuyas longitudes de enlace deben ser escaneadas. Sin embargo, este enfoque no funciona, porque no puedo indexar correctamente los átomos ficticios. El Documentación de Gaussian09 dice (el énfasis es mío):

[Tipo] N1 [N2 [N3 [N4]] S nsteps stepsize [[min] max]]

N1, N2, N3 y N4 son números de átomo o comodines (que se comentan a continuación). La numeración de los átomos comienza en 1, y cualquier los átomos ficticios no se cuentan .

¿Cómo puedo entonces realizar una exploración con referencia a un átomo ficticio? No quiero hacer el escaneo usando el z-matrix optimización porque no converge.

Aquí está mi archivo de entrada:

%nprocshared=16
%mem=5gb
%chk=4MeAminoButanal
#P HF/6-31G(d) opt=(modredundant) scrf=(pcm) nosymm

4MeAminoButanal dummy scan

0 1
 C     0.000000     0.000000     0.000000
 N     0.000000     0.000000     1.451901
 C     1.325038     0.000000     2.055476
 C     1.991320     1.377897     2.032970
 C     1.229182     2.449098     2.809397
 C     1.309917     2.335179     4.306919
 X    -0.248373    -0.404008     1.611583
 X    -1.041414    -0.131882     1.066579
 H     1.218960    -0.323776     3.083767
 H     1.990264    -0.714465     1.564774
 H     2.993872     1.281489     2.436811
 H     2.106328     1.711600     1.006802
 H     1.602469     3.443240     2.566292
 H     0.178120     2.455789     2.536445
 H     0.708887     3.065770     4.854632
 H    -1.016528    -0.113770    -0.358506
 H     0.375985     0.943036    -0.379032
 H     0.606031    -0.798850    -0.431982
 X     1.641992     1.939406     4.607116
 X     1.311963     2.318294     5.471711
 O     1.974063     1.543637     4.907309
 H    -0.496745    -0.808017     1.771266

B 7 19 S 60 -0.05
B 22 7 F
B 2 7 F
B 6 19 F
B 21 19 F

Cuando lo ejecuto, Gaussian09 obviamente se queja con

Se ha leído la siguiente sección de entrada ModRedundant: Número de átomo no válido. B 7 19 S 60 -0.05

5 votos

Esta pregunta podría ser más adecuada en Ciencia computacional pero no está fuera de tema aquí. Efectivamente, no se pueden utilizar átomos ficticios con un barrido relajado a través de modredundante, porque no existen en ese sistema de coordenadas. Tampoco hay ninguna opción en la que esto sea posible. ¿Puede explicar lo que está tratando de hacer? A mí me parece que está acercando los puntos medios de los enlaces CO y NH. Si su entrada funcionara, entonces es muy probable que no produzca lo que usted pretende. (Por cierto, estas usando demasiado proc y mem para HF).

3 votos

@Martin- No estoy de acuerdo contigo: este problema es muy específico para un programa QChem, por lo que es muy poco probable que la gente de Ciencias Computacionales pueda decir mucho al respecto, mientras que muchos químicos tienen experiencia con el software dado. Sin embargo, estoy totalmente de acuerdo contigo en que el OP puede querer hacer algo en lo que probablemente no se necesiten átomos ficticios.

0 votos

@Martin- Eso es exactamente lo que estoy tratando de hacer. ¿Cómo lo harías tú?

16voto

maccullt Puntos 1555

Descargo de responsabilidad: Esta respuesta se refiere al uso de Gaussiana 09 . Mientras que el ModRedundant se mantiene y, por lo tanto, las mismas restricciones se aplican también en las nuevas versiones, ahora hay una nueva forma de utilizar las coordenadas internas. Véase mi otra respuesta para esta opción.


Como he publicado antes en los comentarios, efectivamente no se pueden utilizar átomos ficticios con una exploración relajada a través del ModRedundant porque no existen en ese sistema de coordenadas. Las coordenadas internas redundantes se generan sólo a partir de los átomos reales. Traté de encontrar una explicación de eso, pero no lo logré. Creo que la razón de este comportamiento es que los átomos ficticios no tienen funciones de base y por lo tanto no se incluyen en la función de onda.

En este caso necesitas medios alternativos a lo que realmente quieres conseguir. Por supuesto, eso depende de lo que quiera modelar. A partir de la información que has proporcionado, puedo ver que estás intentando acercar los puntos medios de los enlaces carbono-oxígeno y nitrógeno-hidrógeno, posiblemente para simular la formación del enlace carbono-nitrógeno y la transferencia de protones. Aunque dudo seriamente que esto ocurra en un solo paso, esta es al menos una forma de intentar hacerlo.

Si este método hubiera funcionado, creo que habrías obtenido un resultado diferente al esperado. Hay algunas cuestiones más, que puede que no hayas considerado con tu enfoque.
Se podría pensar que las dos líneas siguientes mantienen fija la distancia de enlace de hidrógeno del nitrógeno. No es así.

B 22 7 F
B 2 7 F

Porque el ángulo de enlace A 22 7 2 sigue siendo flexible, y la longitud de enlace B 22 2 sigue siendo flexible, esto posiblemente puede hacer lo que quiera. Lo mismo ocurre con el enlace carbono-oxígeno.

B 6 19 F
B 21 19 F

Si estoy en lo cierto con mi suposición, entonces lo que quieres mirar es la formación del enlace carbono-nitrógeno. ¿Por qué no tomar esta coordenada interna y escanearla? Es fácil y debería hacer más o menos lo que te gusta. La siguiente entrada debería llevarte allí. Tenga en cuenta que he cambiado el método a pm6 para reducir masivamente el tiempo de la computadora - e incluso con eso, tomó demasiado tiempo para mi paciencia. (Tampoco incluí ninguna línea final sobre los recursos - ver mis notas más abajo).

#P pm6
opt=(modredundant)
scrf=(pcm)
nosymm

4MeAminoButanal scan

0 1
C        0.000000     0.000000     0.000000
N        0.000000     0.000000     1.451901
C        1.325038     0.000000     2.055476
C        1.991320     1.377897     2.032970
C        1.229182     2.449098     2.809397
C        1.309917     2.335179     4.306919
H        1.218960    -0.323776     3.083767
H        1.990264    -0.714465     1.564774
H        2.993872     1.281489     2.436811
H        2.106328     1.711600     1.006802
H        1.602469     3.443240     2.566292
H        0.178120     2.455789     2.536445
H        0.708887     3.065770     4.854632
H       -1.016528    -0.113770    -0.358506
H        0.375985     0.943036    -0.379032
H        0.606031    -0.798850    -0.431982
O        1.974063     1.543637     4.907309
H       -0.496745    -0.808017     1.771266

B 6 17 F
B 2 18 F
B 2  6 S 60 -0.05

También hay que tener en cuenta que no he comprobado que la longitud de enlace N-C sea más corta que un Ångström, por lo que los últimos pasos tardan una eternidad en converger y morirá en el último paso quedándose sin ciclos. Hazlo con algo más razonable. El cálculo en sí produjo un resultado algo razonable. La siguiente animación recorre todas las estructuras optimizadas. Se hizo con ChemCraft .

scan animation

Algunos apuntes más sobre su aportación:

  • %nprocshared=16 es un número bastante grande el que pides para un cálculo Hartree-Fock. Hay que tener en cuenta que la paralelización no es lineal. Aunque ha mejorado con los años, creo que 4 hilos es lo más razonable para este tamaño de sistema. Puedes ir más allá, aunque no te recomendaría ir más allá de diez.
  • %mem=5gb es probablemente demasiado. Dudo que ninguno de estos procesos supere los 200 MB de memoria, probablemente mucho menos.
  • %chk=4MeAminoButanal Debería considerar la posibilidad de añadir el .chk final en todos los casos. Gaussian es conocido por estropear las cosas cuando hay caracteres no ordinarios como _-. en un nombre de archivo.
  • Tal vez sea una buena idea no escribir toda la sección de la ruta en una sola línea. Considere esto como una mejora de la legibilidad de su entrada. Puede agrupar comandos similares (como pop declaraciones) en una línea, etc.
    En versiones anteriores, Gaussian podía tener problemas para leer más allá del 80º carácter. Ya no puedo reproducir este error y hace mucho tiempo que no me lo comentan, así que esto no debería ser un problema. Sin embargo, un archivo de entrada bien estructurado puede ayudarle a encontrar posibles errores de sintaxis que resulten de errores tipográficos.

1 votos

Gaussian sometimes has (still) trouble reading in anything beyond the 80th char. Vaya, no sabía esto... ¿Puedes ofrecer un ejemplo explícito? Me encantaría ver este comportamiento. Gran respuesta por cierto.

2 votos

@LordStryker Gracias y me alegro de verte. Ya no he podido reproducir este fallo, así que estoy bastante seguro de que lo han arreglado. Gaussian usaba un ancho fijo de 80 char en la entrada (y todavía usa eso como salida para la legibilidad, pero no en todas partes) y rompía las líneas más largas, aparentemente eso podría haber destruido algunas palabras clave. Mi antiguo supervisor nos lo dijo y nos lo enseñó, pero bien podría haber sido la versión 98 o 94. Voy a arreglar esa afirmación.

0 votos

Me acabo de dar cuenta de que este error puede ser el resultado del preprocesamiento del archivo de entrada, insertando espacios dentro de una palabra clave, lo que produce un error de sintaxis. Puede que no sea culpa de los gaussianos después de todo...

8voto

maccullt Puntos 1555

Descargo de responsabilidad: Esta respuesta se refiere al uso de Gaussian 16 . Mientras que el ModRedundant se mantiene y, por lo tanto, se le aplican las mismas restricciones que se mencionan en la otra respuesta. Sin embargo, ahora existe una nueva forma de utilizar las coordenadas internas como se explica a continuación.


La nueva magia la proporciona el coordenadas internas generalizadas (GIC) que proporcionan nuevas e increíbles formas de definir la entrada. Se invoca a través de la función geom o opt y la opción especificada es GIC . Eso por sí solo no permite realizar exploraciones, sólo cambia el uso interno de las coordenadas y las construye. Tiene que combinarse con el habitual ModRedundant o el nuevo AddGIC ( GIC sería entonces redundante) opciones.

Este último invoca la lectura de una nueva sección de entrada después de la definición de la molécula, al igual que en Gaussian 09. Sin embargo, si lee la página de información, se dará cuenta rápidamente de que hay muchas más opciones posibles, incluyendo operaciones matemáticas. De este modo, puede definir anclajes intermedios que puede utilizar como sustitutos de los átomos ficticios. Los átomos ficticios en la definición de la geometría siguen sin contar, y son completamente superfluas con este enfoque.

La siguiente entrada realizará el escaneo que pretendía inicialmente. Se romperá cerca del final, ya que se formará un anillo de cuatro miembros y con dos lados y la distancia de los puntos medios fijados, simplemente se queda sin ciclos. Puede adoptar la entrada según sus necesidades. Voy a explicar un poco más por debajo de la entrada-archivo.

#P PM6
OPT(MaxCycle=100,Loose)
SYMMETRY(none)
GEOM(ModRedundant,GIC)

4MeAminoButanal scan

0 1
C        0.000000     0.000000     0.000000
N        0.000000     0.000000     1.451901
C        1.325038     0.000000     2.055476
C        1.991320     1.377897     2.032970
C        1.229182     2.449098     2.809397
C        1.309917     2.335179     4.306919
H        1.218960    -0.323776     3.083767
H        1.990264    -0.714465     1.564774
H        2.993872     1.281489     2.436811
H        2.106328     1.711600     1.006802
H        1.602469     3.443240     2.566292
H        0.178120     2.455789     2.536445
H        0.708887     3.065770     4.854632
H       -1.016528    -0.113770    -0.358506
H        0.375985     0.943036    -0.379032
H        0.606031    -0.798850    -0.431982
O        1.974063     1.543637     4.907309
H       -0.496745    -0.808017     1.771266

xCO(inactive)=XCntr(6,17)
yCO(inactive)=yCntr(6,17)
zCO(inactive)=zCntr(6,17)
bCO(freeze)=B(6,17)
xNH(inactive)=XCntr(2,18)
yNH(inactive)=yCntr(2,18)
zNH(inactive)=zCntr(2,18)
bNH(freeze)=B(2,18)
distCOandNH=sqrt\[(xCO-xNH)^2+(yCO-yNH)^2+(zCO-zNH)^2\]\*0.529
distCOandNH(NSteps=30, StepSize=-0.10)

La primera línea de la entrada GIC define el x -del centro del enlace de CO, y los dos siguientes hacen lo mismo para y y z . Se establecen como inactivos ya que sólo los necesitamos como ancla intermedia para la distancia. Por lo tanto, no aparecerán en la salida.
La cuarta línea congela la longitud del enlace de CO. He decidido incluirla porque forma parte de su configuración inicial. Sin embargo, después de realizar el cálculo, creo que debería relajarse.
Las cuatro líneas que siguen definen lo mismo que antes para el enlace NH.
La penúltima línea define la distancia entre los centros. La multiplicación con 0.529 convierte de bohr a angstrom. Básicamente, esto sólo es necesario porque facilita la especificación de la siguiente operación, la exploración real en la última línea.

Por lo tanto, esta nueva interfaz ofrece muchas oportunidades maravillosas y posibilidades para las exploraciones más exóticas. Sin embargo, también permite definir ciertos valores que se imprimen en la salida, para facilitar mucho el post-procesamiento. Sólo puedo recomendar la lectura del manual y hacer mucho uso de este nuevo sistema.

Para no dejarte colgado, aquí tienes el escaneo resultante animado:

animated scan

0 votos

Gracias por su respuesta. ¿Qué pasa si uno quiere realizar el equivalente escáner rígido ? No he podido encontrar una solución directa sin emplear la matriz Z ...

0 votos

@gluuke No creo que haya una manera fácil y directa de hacer un escaneo rígido sin una matriz z. Por supuesto que puedes crear todas las coordenadas residentes tú mismo y luego congelar la mayoría, pero eso es probablemente una tarea tan extensa como crear una matriz sana.

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