Módulo para características de evolución de la estructura ab initio (maise)
* Descripción basada en la red neuronal de interacciones interatómicas
* Optimización evolutiva
* Análisis de estructura
1. Información general
2. Descargar e instalación
3. Entrada
4. Ejemplos
5. Descripción de la etiqueta de entrada de configuración
Maise ha sido desarrollado por
Alexey Kolmogorov [email protected]
Samad Hajinazar [email protected]
Ernesto Sandoval [email protected]
La versión 2.9 actual funciona en plataformas Linux y combina 3 módulos para modelar, optimizar y analizar estructuras atómicas.
1 El módulo de red neuronal (NN) construye, prueba y utiliza modelos NN para describir las interacciones interatómicas con precisión de inicio de AB cercana a un bajo costo computacional en comparación con los cálculos de la teoría funcional de densidad.
Con el objetivo principal de usar modelos NN para acelerar la búsqueda de la estructura, la función principal del módulo es relajarse estructuras dadas. Para simplificar la aplicación NN y la comparación, coincidimos estrechamente con los formatos de archivo de entrada y salida con los utilizados en el software VASP. Los modelos NN parametrizados previamente disponibles en el directorio 'Modelos/' se han generado y probado ampliamente para materiales cristalinos y/o nanoestructurados. Las primeras aplicaciones prácticas de NN incluyen la predicción de nuevas aleaciones sintetizables Mg-Ca y M-SN [1-3], así como la identificación de nanopartículas de CU-PD-AG más estables y nanopartículas de Au [4,5].
Los usuarios pueden crear sus propios modelos NN con Maise que generalmente están entrenados en la energía de la teoría funcional de densidad (DFT) de la energía total y los datos de la fuerza atómica para estructuras relativamente pequeñas. La generación de configuraciones relevantes y diversas se realiza por separado con un protocolo de 'muestreo evolutivo' detallado en nuestro trabajo publicado [6]. El código presenta una característica única, 'entrenamiento estratificado', de cómo construir NNS robustos para sistemas químicos con varios elementos [6]. Los modelos NN se desarrollan de manera jerárquica, primero para elementos, luego para binarios, etc., lo que permite la generación de bibliotecas reutilizables para bloques extendidos en la tabla periódica.
2 El algoritmo evolutivo (EA) implementado permite una identificación eficiente de las configuraciones de estado fundamental en una composición química dada. Nuestros estudios han demostrado que la EA es particularmente ventajosa en el tratamiento de grandes estructuras cuando no hay información estructural experimental disponible [7,8].
Las búsquedas se pueden realizar para cristales a granel 3D, películas 2D y nanopartículas 0D. La población de estructuras se puede generar aleatoriamente o predefinir en función de la información previa. Las operaciones esenciales son 'crossover', cuando se crea una nueva configuración basada en dos estructuras principales en la generación anterior y 'mutación', cuando una estructura principal se distorsiona aleatoriamente. Para las nanopartículas 0D, hemos introducido un algoritmo evolutivo multiproceso que permite una optimización simultánea eficiente de grupos en un rango de tamaño especificado [4].
3 Las funciones de análisis incluyen la comparación de estructuras basadas en la función de distribución radial (RDF), la determinación del grupo espacial y las posiciones de Wyckoff con un paquete SPGLIB externo, etc. En particular, el producto de punto de estructura basado en RDF es esencial para Eliminar estructuras duplicadas en búsquedas de EA y seleccionar diferentes configuraciones en el conjunto de estructuras de baja energía encontradas.
[1] https://pubs.rsc.org/en/content/articlelanding/2018/cp/c8cp05314f#!divabStract
[2] https://www.nature.com/articles/s41524-022-00825-4
[3] https://pubs.rsc.org/en/content/articlelanding/2023/cp/d3cp02817h/unauth
[4] https://pubs.rsc.org/en/content/articlelanding/2019/cp/c9cp00837c#!divabstract
[5] https://pubs.acs.org/doi/10.1021/acs.jpcc.9b08517
[6] https://journals.aps.org/prb/abstract/10.1103/physRevb.95.014114
[7] https://journals.aps.org/prl/abstract/10.1103/PhysRevlett.109.075501
[8] https://journals.aps.org/prb/abstract/10.1103/physRevb.98.085131
El código fuente para maise se puede obtener desde el línea de comandos ejecutando:
git clone git://github.com/maise-guide/maise.git
o
git clone https://github.com/maise-guide/maise.git
o
wget -O master.zip https://github.com/maise-guide/maise/archive/master.zip unzip master.zip
1 Use ' Make -Jobs ' para la compilación completa. Para la recompilación, use 'Make Clean' para eliminar archivos de objetos o 'Hacer Clean-All' para eliminar archivos de objetos y bibliotecas externas.
2 Durante la compilación de Maise, están presentes las verificaciones de 'Make -Jobs' si están presentes dos bibliotecas externas requeridas, la biblioteca GSL y SPGLIB V1.11.2.1, febrero de 2019. Si no, se descargarán automáticamente a ./ext-decep e instalado en ./lib en la mayoría de los sistemas.
3 Si la instalación de GSL o SPGLIB no se completa automáticamente, compáquelos manualmente y copie (i) libgsl.a, libgslcblas.a y libsymspg.a en el subdirectorio './lib'; (ii) el subdirectorio 'spglib.h' en './lib/include'; y (iii) todos los encabezados GSL en el subdirectorio './lib/include/gsl'.
4 Un script 'Check' está disponible en el directorio './test/' que se puede ejecutar después de compilar el ejecutable de Maise para garantizar la funcionalidad adecuada del código. Este script verifica automáticamente el rendimiento del código al analizar los datos, capacitar a la red neuronal y evaluar una estructura cristalina. Si la compilación está bien, el script 'verificar' saldrá así; De lo contrario, los registros de errores se proporcionarán más información sobre el problema.
El código se ha probado ampliamente en las plataformas de Linux. Apreciaremos los comentarios de los usuarios sobre la instalación y el rendimiento del paquete en diferentes plataformas.
Los archivos de entrada principales que definen una simulación son 'configuración' con configuración de trabajo, 'modelo' con parámetros NN y 'poscar' con parámetros de estructura atómica en el formato VASP. La conversión de entornos atómicos en entradas NN durante la etapa de análisis del desarrollo de NN requiere un archivo 'base' que especifica las funciones de simetría de Behler-Parrinello.
| Evos | NNET | CELÚLA | |||||
| BUSCAR | EXAMEN | ANALIZAR GRAMATICALMENTE | TREN | PRUEBA | Simulador | EXAMEN | |
| configuración | + + | + + | + + | + + | + + | + + | |
| modelo | +* | +# | +# | ||||
| base | + + | $ | |||||
| SPG | + + | + + | |||||
| GSL | + + | + + | |||||
| * Para la capacitación estratificada que uno necesita para proporcionar modelos individuales $ 'base' almacenado en el directorio analizado se adjunta al 'modelo' al final de la capacitación # 'Model' tiene 'base' pegado al final una vez que se termina el entrenamiento | |||||||
Las funciones de examen de estructura y manipulación se ejecutan llamando a Maise con una bandera:
maise -flag
| Bandera | Descripción de la bandera |
|---|---|
| hombre | emitir la lista de banderas disponibles |
| RDF | Calcule y traza el RDF para Poscar |
| CXC | Calcule el producto DOT para POSCAR0 y POSCAR1 usando RDF |
| CMP | Compare RDF, grupo espacial y volumen de Poscar0 y Poscar1 |
| SPG | convertir poscar en str.cif, conv, prim |
| CIF | convertir str.cif en convivir y prim |
| oscuro | Encuentre si Poscar es periódico (3) o no periódico (0) |
| volante | Calcule el volumen por átomo para estructuras de cristal o nano |
| putrefacción | Gire una nanopartícula a lo largo de los vectores propios de momentos de inercia |
| mudanza | mover átomos a lo largo de una dirección por un cambio constante |
| caja | Restablecer el tamaño de la caja para nanopartículas |
| sorber | hacer una supercélula especificada por Na x Nb x NC |
| propina | Célula unitaria de cambio en Poscar a lo largo de un Phonon EigenMode |
| órdenes | ordenar átomos por especies |
| afuera | Extraiga instantáneas de MD o trayectorias de relajación en VASP |
El directorio 'Ejemplos/' tiene muestras de trabajos de Maise para análisis y manipulación de células unitarias, análisis de análisis, capacitación de redes neuronales, simulando estructuras con modelos de redes neuronales, búsqueda evolutiva del modelo de red neuronal de estado fundamental, ejecución de dinámicas moleculares y cálculo de fonones. El ejemplo de EASH tiene un archivo ReadMe, un archivo de configuración con solo etiquetas relevantes para el trabajo en particular y los archivos de salida de referencia para comparar.
Selector de tipo de trabajo principal
Estructura-enviromente
Evos principales
Operaciones de evos
Evos crossover/mutación
Dinámica molecular
Especies relacionadas
E/S
Modelo general
Modelo de red neuronal
Capacitación en redes neuronales
Analizador
Relajación celular
Trabajo
Nmax mmax
Código Dene KMSH LBOX NDIM NITR NNJB NPOP RAND RUT SEED SITR TINI
Blob Chop Invs Mate Mute Mute PLnt Refly Rube Swap Tetr
ACRS ADST ELPS LCRS LDST MCRS SCRS SDST
CPLT CPLP ICMP delt MOVI NSTP MDTP TMAX TMIN TSTP
ASPC NSPC TSPC
Cout Data Depo Eval Otpt WDIR
Ncmp nngt nnnn nnnu nsym
Fmrk lreg ntrn ntst tefs npar
EMAX FMAX FMIN VMAX VMIN MMAX
Etol Mint Mitr PGPA Rlxt Time
| ETIQUETA | DESCRIPCIÓN |
|---|---|
| Trabajo | Análisis de estructura (00) Herramientas de análisis de uso especificadas por Flags, búsqueda evolutiva (10) ejecución (11) Salida blanda (12) Análisis de salida dura (13), simulación celular (20) Relajación (21) Dinámica molecular (22) Cálculos de fonones, Analización de datos (30) Prepare entradas para el entrenamiento NN, capacitación NN (40) Entrenamiento completo (41) Stratified Training |
| CÓDIGO | Tipo de código en uso. (0) maise-int (1) vasp-ext (2) maise-ext |
| Npar | Número de núcleos para entrenamiento o simulación de células paralelas |
| MENTA | El algoritmo optimizador para el entrenamiento de la red neuronal y la optimización de las células. (Tipo de minimizador GSL (0) BFGS2 (1) CG-FR (2) CG-PR (3) Descendencia más empinada |
| Mitrio | Número máximo de los pasos de optimización; Si no se alcanza la precisión deseada para el entrenamiento NN o los pasos de optimización de células |
| Rlxt | Tipo de optimización de células (2) solo (3) Volumen de celda completa (7) (ISIF en VASP) |
| Etol | Tolerancia de error para la convergencia de entrenamiento o optimización de células |
| TEFS | Valor objetivo de entrenamiento (0) E (1) EF (2) ES (3) EFS (4) Toy |
| Fmrk | Fracción de átomos que se analizarán para usar para entrenamientos EF o EFS |
| Cout | Tipo de salida en el archivo de salida en la evaluación y optimización de la celda |
| Nmax | Número máximo de átomos en la celda unitaria |
| Mmax | Número máximo de vecinos dentro del radio de corte |
| NSPC | Número de tipos de elementos para la búsqueda evolutiva, analizando los datos y la capacitación en redes neuronales. |
| TSPC | Número atómico de los elementos especificados con la etiqueta NSPC |
| ASPC | Número de átomos de cada elemento para la búsqueda evolutiva |
| Nsym | Número de funciones de simetría de Behler-Parrinello para analizar datos utilizando el archivo "Base" |
| NCMP | La longitud del vector de entrada de la red neuronal |
| NTRN | Número de estructuras utilizadas para el entrenamiento de la red neuronal (número negativo de porcentaje de medios) |
| NTST | Número de estructuras utilizadas para pruebas de redes neuronales (porcentaje de número de número negativo de medios) |
| Nnnn | Número de capas ocultas en la red neuronal (no incluye el vector de entrada y la neurona de salida) |
| Nnnu | Número de neuronas en capas ocultas |
| Nngt | Tipo de función de activación para las neuronas de capas ocultas (0) lineal (1) Tanh |
| Emaxo | Analice solo esta fracción de estructuras de energía más baja. De 0 a 1 |
| Fmax | No analizará los datos con fuerzas mayores que este valor |
| Vmin | No analizarán los datos con volumen/átomo más pequeño que este valor |
| Vmax | No analizará los datos con volumen/átomo más grande que este valor |
| Ndim | Dimensionalidad de la célula unitaria en la búsqueda evolutiva y la optimización de células (3) Cristal (2) Partícula (0) Partícula |
| Lbox | Dimensión de la caja para generar partículas en la búsqueda evolutiva en Angs (ignorado para cristales) |
| NPOP | Tamaño de la población en la búsqueda evolutiva |
| Sitr | Inicio de la iteración en la búsqueda evolutiva (0) Comenzar desde estructuras aleatorias o especificadas |
| Nitrio | Número de iteraciones en la búsqueda evolutiva (debería ser más grande que SITR) |
| Tini | Tipo de inicio de la búsqueda evolutiva cuando sitr = 0 |
| TIEMPO | Tiempo máximo para la relajación celular en la búsqueda evolutiva y la optimización de las células |
| PGPA | Presión en GPA |
| CURA PRINCIPAL | Almacene estructuras distintas generadas en la búsqueda evolutiva en el grupo/IF dentro de esta ventana de energía/átomo (EV/átomo) desde el estado fundamental |
| Kmsh | Densidad de malla K utilizada para VASP-EVOS. Valores sugeridos: 0.30 para s/c, 0.05 para metales |
| SEMILLA | Iniciar semilla para el generador de números aleatorios en la búsqueda evolutiva (0) utiliza el tiempo como semilla (+) el valor de la semilla |
| Rand | Iniciar semilla para el análisis del conjunto de datos. (0) usa el tiempo como semilla (+) El valor de la semilla (-) Sin aleatorización: las estructuras se analizan en el orden de listado |
| Tmin | Temperatura mínima en carreras de MD (k) |
| Tmax | Temperatura máxima en las carreras de MD (k) |
| TSTP | Paso de temperatura en las ejecuciones de MD (k) en forma de ejecución tmin a tmax |
| Delt | Paso de tiempo en las ejecuciones de MD |
| NSTP | Número de pasos por temperatura en carreras MD |
| CPLT | Acoplamiento constante en el termostato de la nariz para las carreras MD. Sugerido: 25.0 |
| CPLP | CONSTRIFICACIÓN DE ACOPLAMIENTO en Brendsen Barostat para carreras MD. Sugerido: 100.0 |
| ICMP | Compresibilidad isotérmica en Brendsen Barostat para Runs MD (en 1/GPA) |
| Movi | Número de pasos después de lo cual se guardará una instantánea de estructura durante la ejecución de MD |
| MDTP | Tipo de ejecución de MD (10) NVE (20) NVT: Nariz-Hoover (30) NPT: Nariz-Hoover y Brendsen (40) isobárico (11,21,31,41) se ejecuta con velocidades leídas desde el archivo Poscar |
| Despo | Ruta a los conjuntos de datos DFT a analizar |
| DATOS | Ubicación de los datos analizados para analizar o leer para capacitación (se sobrescribirá durante el análisis) |
| OTPT | Directorio para almacenar parámetros del modelo en el proceso de capacitación |
| Evaluación | Directorio para datos de pruebas de modelo |
| Wdir | Directorio de trabajo para búsqueda evolutiva, ejecuciones de MD, etc. |
| Tetros | Fracción de las estructuras generadas aleatoriamente utilizando la operación de tetris. De 0 a 1 |
| Pltt | Fracción de las estructuras generadas a partir de semillas. De 0 a 1 |
| EMBALAR | Fracción de las estructuras generadas a partir de estructuras de paquete cerrado. De 0 a 1 |
| GOTA | Fracción de las estructuras generadas aleatoriamente usando forma de blob. De 0 a 1 |
| COMPAÑERO | Fracción de las estructuras generadas por crossover utilizando dos mitades de cada padre. De 0 a 1 |
| INTERCAMBIO | Fracción de las estructuras generadas por crossover utilizando el núcleo y el caparazón de los padres. De 0 a 1 |
| PALURDO | Fracción de las estructuras generadas por la operación del cubo de Rubik. De 0 a 1 |
| Reflejar | Fracción de las estructuras generadas por simetrización a través de la reflexión. De 0 a 1 |
| Invasas | Fracción de las estructuras generadas por simetrización a través de la inversión. De 0 a 1 |
| CORTAR | Fracción de las estructuras generadas por corte para hacer facetas. De 0 a 1 |
| SILENCIAR | Fracción de las estructuras generadas por distorsiones aleatorias a la estructura. De 0 a 1 |
| MCRS | 0.50 tasa de mutación en crossover |
| SCRS | 0.00 Crossover: tasa de intercambio |
| LCRS | 0.00 Crossover: fuerza de mutación para vectores de celosía |
| ACRS | 0.10 Crossover: fuerza de mutación para posiciones atómicas |
| Sdst | 0.00 Distorsión: velocidad de intercambio |
| LDST | 0.00 Distorsión: resistencia a la mutación para vectores de celosía |
| Lirón | 0.20 Distorsión: resistencia a la mutación para posiciones atómicas |
| Pisos | 0.30 aleatorio: elipticidad de nanopartículas |