Creo que depende de lo que quieras decir con codificación, pero déjame ver si puedo describir lo que necesitarías agregar a un paquete ab initio actual.
Primero, la mayoría de estos programas están escritos en Fortran, incluido el que usé VASP. Aunque hay algunos escritos en C ++. Por lo tanto, necesitará una buena idea de al menos uno de estos idiomas y especialmente de las bibliotecas de métodos numéricos. Además, estos son programas muy grandes, por lo que será necesario saber cómo manejar y modificar bases de código grandes.
En segundo lugar, necesitará una comprensión muy sólida de la física y las matemáticas detrás de DFT. Esto implicará una buena cantidad de mecánica cuántica, probablemente incluyendo algo de teoría de campo cuántico, así como también conocimiento del análisis funcional.
- ¿Existe un límite superior teórico en RAM que se pueda instalar en una computadora?
- ¿Cómo construiría un universo de realidad virtual de 5 dimensiones?
- ¿Deben los servidores de bases de datos ser virtualizados?
- ¿Cuáles son los límites computacionales de una computadora?
- Cómo demostrar que O (f (n) + g (n)) = O (f (n)) + O (g (n))
Ahora la pregunta es cómo desea mejorar un programa DFT. Quizás desee agregar un módulo que calcule la entropía a través del análisis vibracional de un sistema. Una vez más, con un buen conocimiento práctico de la mecánica cuántica y las matemáticas asociadas, será un trabajo difícil pero factible. O tal vez desee incorporar MM, nuevamente necesitará un amplio conocimiento del sistema, pero esto se ha hecho antes. Sin embargo, si su objetivo es aumentar la velocidad de estos cálculos, eso será complicado.
Para resumir, diría que agregar una funcionalidad no trivial a estos programas es una propuesta extremadamente difícil. La codificación de esta funcionalidad será técnicamente desafiante debido a la gran base de código y la cuestión altamente técnica. Sin embargo, el tiempo y el esfuerzo necesarios para aprender la mecánica cuántica y las matemáticas necesarias para mejorar estos programas reducirán el tiempo necesario para adquirir la fluidez suficiente con Fortran.