Química cuántica y física del estado sólido: Fortran, C, C++, Python

Últimamente he estado interesado en el fundamento físico que le da la geometría a las diferentes moléculas. Por ejemplo ¿por qué en la molécula de agua, los átomos de hidrógeno forman un ángulo de 104.45 grados?

En física uno sabe que esas preguntas se responden con mecánica cuántica. Esa configuración de átomos es una de las soluciones de la ecuación de Schrödinger. Parte del proceso de aprender que la leyes de la física realmente funcionan, es tomar la ecuación, resolverla y dejar que la quijada caiga de asombro; pues la solución matemática representa exactamente lo que vemos en la naturaleza.

El problema es que si queremos analizar una molécula de agua con la ecuación de Schrödinger, tenemos que utilizar un método numérico para resolverla, ya que la ecuación es tan complicada que no se puede resolver utilizando papel y lápiz unicamente.

Buscando en internet me encuentro que mucha gente ya tiene un largo recorrido en el oficio de la química cuántica y física del estado sólido. Aquí podemos ver un largo listado de paquetes de software para simular y calcular la estructura atómica de diferentes moléculas.

Lo que me llamó la atención es que todos están escritos usando alguno de cuatro lenguajes: Fortran, C, C++ o Python.

La moraleja de este post es que si alguien está interesado en física computacional, es necesario aprender y manejar alguno —o todos— estos lenguajes de programación.

Anuncios
Esta entrada fue publicada en Física y etiquetada , . Guarda el enlace permanente.

6 respuestas a Química cuántica y física del estado sólido: Fortran, C, C++, Python

  1. Alberto dijo:

    lo mas importante es saber plantear un problema en un lenguaje de programación, y por muy elitista que sea una persona, siempre tendrá una idea de como es la dinámica del problema cuando lo vea en un lenguaje distinta al que maneja.

    yo uso C++ pero algunas cosas la hago por fortran, pero he notado que al momento de generar un gran volumen de datos ambos me arrojan mentiras, y cuando uso windows se vuelve mas mentiroso. por ello uso debian. y la solución que halle fue controlar el tiempo ( en el caso de C++ con usleep()) donde hago pausas para cout, dando resultados perfectos. claro lo pongo en la noche y me voy a dormir, y en la mañana están listos para ser analizados.

  2. Cool As Ice dijo:

    Cada lenguaje tiene sus pros y contras, yo uso en ocasiones fortran por la rapidez al hacer muchos cálculos, lo horrible del código no es por el lenguaje sino por el programador.

  3. Juan Carlos dijo:

    Aprender Fortran por necesidad y luego olvidarlo por salud propia, ja, ja, ja!

    Hace unos años fui al deparamento de entomología de la universidad y me puse en contacto con gente que trabaja en el problema de determinar infestaciones de plagas en bosques de pino (de hecho la plaga era un escarabajo del pino). Tomaban muestras de árboles infectados y datos de la infección presente (área afectada, especies, composición del bosque) y datos del clima actual y previsto para generar una estimación de cómo progresaría la enfermedad de no ser atentida y cuántos árboles cortar (y dónde) para detenerla.

    Tenían un modelo que había sido implementado en Fortran y querían trasladarlo a una plataforma más moderna. No era la primera vez que miraba algo en Fortran, pero sí la primera que ese “algo” era así de horrible. C tiene fama de ser ilegible, pero Fortran…

    En la actualidad generalmente programo en MATLAB o en Octave y, si se necesita velocidad, en C o en C++ (hay muchas cosas buenas en C++ y es, creo yo, bastante elegante). Python está siendo usado cada vez más por la comunidad científica y hay mucho disponible en este lenguaje (la revista de la sociedad americana de física en conjunto con IEEE, “Computers in Science and Engineering” le ha dedicado, en los últimos años, dos volúmenes). En lo particular me molesta un poco el uso de la identación en Python con implicación sintáctica y, viniendo de C o de MATLAB, los iteradores del lenguaje también se sienten algo raros…

    Lo que sí es que prácticamente ningún físico se puede abstraer de aprender un lenguaje de programación y de formas de visualización de datos.

    Talvez la conclusión sea, por un lado, que no es tanto el idioma (lenguaje de programación) que se hable, con tal de que se hable alguno y, por otro lado, que se tenga ALGO que decir en ese idioma.

  4. Juan Diego Chang dijo:

    Por lo que he visto, la mayoría de físicos de estado sólido usan Fortran. Aunque siempre hay algunos un poco más modernos que usan C++ o Python. Me atrevería a decir que el lenguaje que uno debe aprender depende de los colaboradores con los que se trabajar, para que el intercambio de información se haga más fácil.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s