4 votos

¿Existe un algoritmo que tome las coordenadas de los átomos y produzca geometrías VSEPR?

Es decir, le darías las coordenadas de un átomo, las coordenadas de otros cuatro (por ejemplo) átomos, y te devolvería "tetraédrico" o "plano cuadrado" o lo que sea.

Actualmente estoy escribiendo una función que hace precisamente eso, pero (1) siento que estoy tomando un montón de decisiones arbitrarias en los cortes de tolerancia de ángulo que estoy usando, y (2) no estoy seguro de que sea muy eficiente la forma en que lo estoy haciendo.

He buscado pero no he encontrado una implementación anterior de esto - ¿hay alguna?

4voto

Feodoran Puntos 983

El software de química cuántica suele aprovechar las simetrías moleculares para acelerar los cálculos. Para ello necesitan alguna forma de determinar el grupo de puntos para un conjunto dado de átomos y sus coordenadas. Así que esto es básicamente lo que usted está preguntando, sólo que obtener algo como $D_{4h}$ en lugar de "plano cuadrado", o $T_d$ en lugar de "tetraédrica".

No estoy seguro de que el software mencionado lo utilice realmente, pero es bastante sencillo y eficaz si sólo se quiere comprobar determinados grupos de puntos:

  • Cada operación de simetría puede representarse como una $3\times 3$ matriz, por ejemplo el reflejo en el $xy$ el avión es

\begin {Ecuación} \sigma_ {xy} = \begin {pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end {pmatrix} \end {Ecuación}

  • Podemos representar las coordenadas del átomo en un $3\times N$ matriz, donde $N$ es el número de átomos. La molécula debe estar correctamente orientada (el centro de masa debe estar en el origen del sistema de coordenadas y los ejes principales de inercia deben coincidir con el $x$ , $y$ y $z$ ejes). Por ejemplo $\ce{H2}$ (o cualquier otro diatómico homonuclear):

\begin {pmatrix} 0 & 0 \\ 0 & 0 \\ 1 & -1 \end {pmatrix}

  • Para obtener las coordenadas transformadas según una determinada operación de simetría, basta con aplicar la matriz de la operación de simetría a la matriz de coordenadas.

\begin {Ecuación} \begin {pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end {pmatrix} \times \begin {pmatrix} 0 & 0 \\ 0 & 0 \\ 1 & -1 \end {pmatrix}= \begin {pmatrix} 0 & 0 \\ 0 & 0 \\ 1 & -1 \end {pmatrix} \end {Ecuación}

  • A continuación, podemos comparar el conjunto de coordenadas resultante con el original. Dado que para $\ce{H2}$ ambos átomos son iguales, podemos intercambiar las 2 columnas y ver, que tenemos matrices idénticas. Por lo tanto, $\sigma_{xy}$ es un elemento de simetría válido de nuestras coordenadas de entrada. En este punto se puede implementar un umbral de tolerancia, permitiendo que la norma (distancia) entre dos puntos "iguales" sea mayor que 0.

  • El conjunto de operaciones de simetría encontradas nos dará entonces directamente el grupo de puntos de esa molécula (esta información está disponible en las tablas de caracteres). Así que podemos comprobar un determinado grupo de puntos comprobando si las operaciones de simetría de ese grupo de puntos se pueden encontrar en nuestra geometría de entrada. Sin embargo, esto significa que tenemos que definir qué grupos de puntos queremos comprobar.

También existen diagramas de flujo (disponibles en libros sobre simetría molecular o a través de su motor de búsqueda favorito), que le indican qué elementos de simetría debe comprobar y le guían hasta el grupo de puntos.

No conozco un enfoque más general. Si alguien sabe más, por favor, amplíe.

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