template-browser-not-supported

Grado en Química

Atrás Atrás

Simulaciones Computacionales en Química

Código asignatura
GQUIMI01-0-012
Curso
Tercero
Temporalidad
Segundo Semestre
Carácter
Optativa
Créditos
6
Pertenece al itinerario Bilingüe
No
Actividades
  • Tutorías Grupales (4 Horas)
  • Clases Expositivas (31 Horas)
  • Prácticas de Aula/Semina (24 Horas)
Guía docente

La asignatura “Simulaciones Computacionales en Química” corresponde a la materia "Química Aplicada" del Módulo Optativo. En primer lugar, se introducen los fundamentos básicos de programación y cálculo científico utilizando el lenguaje Python y sus módulos especializados. Python es seguramente el lenguaje de programación más utilizado por la comunidad científica para realizar todo tipo de tareas, desde sencillas aplicaciones de cálculo hasta complejas simulaciones de química computacional o desarrollo de modelos de aprendizaje automático (machine learning). En segundo lugar, se introducen diversas herramientas de la Química Computacional y se estudia su aplicación práctica para la predicción y/o racionalización de propiedades y fenómenos químicos. Los alumnos emplearán un programa de cálculo químico cuántico que dispone de una interfaz con el lenguaje Python, de modo que la preparación, ejecución y análisis de resultados se realizará en dicho entorno. Para consolidar los conocimientos adquiridos en los dos bloques de la asignatura y potenciar el autoaprendizaje de los alumnos, la última parte de la asignatura se dedicar a plantear y guiar a los estudiantes en la realización de un miniproyecto computacional que les pondrá en contacto con los métodos de aprendizaje automático.

Para poder matricularse de la asignatura es necesario haber superado 102 créditos entre básicos y obligatorios del segundo curso. Por otro lado, es recomendable que los alumnos dominen previamente una serie de conocimientos de Matemáticas y de Química Física, adquiridos en asignaturas previas, que les permitirán progresar en la asignatura. Así, durante el desarrollo de las clases, se supondrá un conocimiento previo de los siguientes contenidos y conceptos quimicofísicos:

  • La ecuación de Schrödinger y las propiedades genéricas de sus soluciones cuantizadas.
  • La interpretación del cuadrado de la función de onda como una densidad de probabilidad, el principio de incertidumbre de Heisenberg y el principio de exclusión de Pauli.
  • La solución mecanocuántica del problema del átomo de hidrógeno.
  • Las soluciones mecanocuánticas de los modelos del oscilador armónico y rotor rígido.
  • Nociones sobre el método de variaciones y el método de perturbaciones.
  • Notación de los grupos puntuales de simetría.
  • Funciones de estado termodinámicas.
  • Función de distribución de Boltzmann y funciones de partición moleculares del gas ideal.
  • Ley de Arrhenius y teoría del estado de transición

Por ejemplo, habiendo superado las asignaturas de Química Física I, II y III del Grado en Química de la Universidad de Oviedo (plan 2009), los estudiantes dispondrán de una buena base de conocimientos para progresar en esta asignatura.

Por otro lado, se supone que los estudiantes están familiarizados con herramientas informáticas de uso común, contando así con las habilidades necesarias para comenzar a utilizar herramientas informáticas de programación y/o química computacional. Por último, aunque la asignatura se imparte en español, también es muy recomendable un buen conocimiento del inglés técnico, leído y escrito, para consultar la bibliografía e interpretar la información generada por los programas.

Las competencias recogidas en la Memoria del Grado en Química son:

Competencias generales:

CG-1. Resolver problemas de forma cualitativa y cuantitativa relacionados con información química.

CG-3. Analizar información química y sintetizar conceptos mediante razonamientos críticos

CG-8. Transmitir adecuadamente información química en español y en inglés, tanto en forma oral como escrita.

CG-9. Aprender y trabajar de forma autónoma dentro del ámbito de la Química.

Competencias específicas:

CE-7 Comprender los principios de la termodinámica y emplearlos en el ámbito de la Química.

CE-9 Describir e interpretar la cinética y los mecanismos de las reacciones químicas.

CE-14 Relacionar las propiedades macroscópicas con la estructura atómica y molecular de la materia.

CE-15 Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías de la Química.

CE-20 Calcular, procesar e interpretar datos relacionados con información química.

Resultados de aprendizaje:

Ser capaz de resolver un problema científico complejo, de naturaleza química, utilizando el lenguaje de programación Python.

Ser capaz de plantear experimentos y cuestiones teóricas y emplear las herramientas proporcionadas por la Química Computacional para proceder a su resolución y posterior interpretación de los resultados obtenidos.

Bloque 1: Programación y Cálculo Científico con Python

1. Introducción a la Programación Científica con Python. (2h CE + 2h PA)

Fundamentos de programación y resolución de problemas científicos. Introducción al lenguaje de programación Python (variables, tipos de datos, condicionales, bucles). Instalación, notebooks IPython y entornos de desarrollo integrados. La docencia en el bloque 1 utiliza múltiples casos prácticos sencillos para ilustrar el material.

2. Funciones y Estructuras de Datos; Input y Output. (2h CE + 2h PA)

Definición de funciones y organización de software en Python. Listas, tuplas, diccionarios, cadenas de caracteres, conjuntos. Input y output de archivos de texto y csv en Python.

3. Cálculo Numérico con el Módulo numpy (2h CE + 2h PA)

El array de numpy como tipo fundamental para el cálculo numérico. Operaciones con arrays. Operaciones matriciales. Input y output de datos numéricos.

4. Algoritmos Numéricos con el Módulo scipy (2h CE + 2h PA)

Cálculo numérico para la resolución de problemas en química. Introducción al módulo scipy. Métodos numéricos para álgebra lineal, optimización y regresión con scipy.

5. Visualización de Datos con el Módulo matplotlib (2h CE + 2h PA)

Fundamentos de representaciones gráficas de datos científicos. Elementos de una representación. Creación de gráficas 2D y 3D con el módulo matplotlib.

Bloque 2: Elementos de Química Computacional

1. Objeto y Características de la Química Computacional. (1h CE +1h PA)

Importancia y función de la simulación molecular. Algunas definiciones básicas. Sistemas de coordenadas moleculares. Caso práctico: Introducción a un entorno gráfico de edición y visualización molecular.

2. Superficies de Energía Potencial (SEP) y Optimización de Geometrías Moleculares. (1h CE +1h PA)

Las SEP surgen de la aproximación Born-Oppenheimer. Significado químico de las propiedades geométricas de las SEP. Algoritmos necesarios para localizar los puntos críticos de una SEP. Caso práctico: Exploración de la SEP modelo Müller-Brown

3. Método HF y Funciones de Base (2h CE +2h PA)

La función de onda y la energía HF como elementos centrales de la Química Computacional. Aplicación del método de variaciones para la obtención de OMs: Ecuaciones SCF. Funciones de base de tipo gaussiano e implementación computacional HF. Caso práctico: Cálculos HF: Interpretación y visualización de OMs y Análisis de Población Electrónica.

4. Métodos con Correlación Electrónica Basados en la Función de Onda o en la Densidad Electrónica (DFT). (2h CE +2h PA)

Definición e importancia de la energía de correlación electrónica. Métodos basados en la Teoría de Perturbaciones (MP2) o en la Expansión Exponencial de la Función de Onda (CC). Métodos Basados en la Teoría del Funcional de la Densidad (DFT). Caso práctico: Cálculo de energías de reacción con métodos correlacionados.

5. Cálculo de Propiedades Termodinámicas. (2h CE +2h PA)

Termodinámica estadística del gas ideal. Estimación de entalpías y energías de Gibbs combinando distintos niveles de cálculo. Caso práctico: Cálculo de constantes de equilibrio en fase gas.

6. Estados de Transición y Reactividad Química. (2h CE +2h PA)

SEP y mecanismos de reacción. Estimación de constantes cinéticas mediante la Teoría del Estado de Transición. Caso práctico: Localización de estados de transición y cálculo de energías de activación.

Bloque 3: MiniProyecto

El miniproyecto comprenderá las restantes horas de docencia presencial y consistirá en el desarrollo de un código Python para la producción y análisis de datos químico-computacionales. La temática del miniproyecto puede variar según los temas que sean más de actualidad en el campo de la química computacional. Un ejemplo de proyecto posible es el diseño de un modelo de aprendizaje automático (machine learning) para la predicción de propiedades termoquímicas.

Para la consecución de los objetivos y competencias propuestos, la docencia presencial tendrá lugar en clases expositivas y de prácticas de aula, programadas en un aula de informática adecuada para el desarrollo de la asignatura.

1. Clases Expositivas (28 horas): El profesor presentará de modo resumido los contenidos teóricos, haciendo hincapié en los aspectos de especial complejidad cuya comprensión plena sea esencial para el correcto uso de las herramientas y módulos del lenguaje Python y de los métodos de la Química Computacional. Las presentaciones se apoyarán en distintos recursos docentes (apuntes del profesor, presentaciones gráficas, demostraciones de uso, etc.). Las últimas 5 sesiones se dedicarán al planteamiento y análisis del miniproyecto.

2. Clases de Práctica de Aula (24 horas): En esta modalidad, los estudiantes deben adoptar un rol activo para reforzar su comprensión de los conceptos expuestos por el profesor y para adquirir habilidades y competencias en el manejo de las herramientas informáticas. Para ello, el profesor plantea, en cada tema, un caso de estudio que exige al alumno implementar un programa sencillo y/o realizar cálculos químico computacionales. Los alumnos contarán con una serie de pautas recogidas en breves guiones de trabajo y con la supervisión y apoyo del profesor. Las últimas 5 sesiones se dedicarán a la implementación y ejecución del miniproyecto.

3. Tutorías Grupales. (4h) Durante las TGs los alumnos realizarán presentaciones orales para presentar en detalle el código elaborado y los resultados obtenidos en su miniproyecto computacional.

El trabajo autónomo (80 horas) a realizar individualmente por parte de los estudiantes comprende el estudio y práctica de los materiales expuestos en las CEs y PAs, además de completar el miniproyecto con su informe y presentación.

Se evaluarán los contenidos y presentación de un informe final dividido en dos partes: informe escrito y código. El informe contendrá al menos una introducción al problema propuesto en el miniproyecto, descripción de la metodología, resultados y conclusiones. Debe estar escrito en el estilo de un informe científico, incluyendo referencias a la literatura cuando sean relevantes, y se evaluará la claridad de la exposición, precisión en el lenguaje, pertinencia y valor del análisis de los resultados. El informe será acompañado del código Python desarrollado por el alumno sobre el que versa el informe. El código deberá funcionar correctamente, estar claramente estructurado y completamente documentado. Además, los alumnos llevarán a cabo una presentación oral del resultado de su trabajo en el miniproyecto. La nota final se calculará como 40% informe, 40% código y 20% presentación.

La calificación definitiva en las convocatorias extraordinarias se obtendrá valorando el desarrollo por parte del alumno de una simulación computacional concreta, propuesta por el profesor.

Se proveerá al alumno de un conjunto completo de materiales didácticos para el curso. El acceso y uso de los mismos se facilitará a los estudiantes mediante el material colocado en el Campus Virtual.

Para más información sobre el lenguaje Python, se pueden consultar las fuentes en abierto online para el core del lenguaje (https://docs.python.org) así como para los módulos estudiados en el curso (https://numpy.org , https://scipy.org , https://matplotlib.org ).

Los recursos en forma de programas informáticos son imprescindibles para la sección de química computacional. En particular, los alumnos utilizarán el programa PSI4 (https://psicode.org/; https://psicode.org/posts/psi4education/ ) en el aula de informática en la que se desarrollarán las actividades presenciales.  

Otras referencias de consulta y ampliación de contenidos:

  • A Creative Commons Textbook for Teaching Scientific Computing to Chemistry Students with Python and Jupyter Notebooks . J. Chem. Educ. 2021, 98, 489-494. https://github.com/weisscharlesj/SciCompforChemists
  • Cramer, C. J. Essentials of Computational Quantum Chemistry: Theories and Models, 2nd Edition, John Wiley & Sons, 2004.