Módulo para recursos de evolução da estrutura ab initio (MeiSe)
* Descrição baseada em rede neural de interações interatômicas
* Otimização evolutiva
* Análise de estrutura
1. Informações gerais
2. Download e instalação
3. Entrada
4. Exemplos
5. Descrição da tag de entrada de configuração
Maise foi desenvolvido por
Alexey Kolmogorov [email protected]
Samad Hajinazar [email protected]
Ernesto Sandoval [email protected]
A versão atual 2.9 funciona em plataformas Linux e combina 3 módulos para modelar, otimizar e analisar estruturas atômicas.
1 O módulo da rede neural (NN) constrói, testa e usa modelos NN para descrever as interações interatômicas com a precisão do initio próximo a um custo computacional baixo em comparação com os cálculos da teoria funcional da densidade.
Com o objetivo principal de usar os modelos NN para acelerar a pesquisa da estrutura, a principal função do módulo é relaxar as estruturas. Para simplificar o aplicativo e a comparação NN, correspondemos de perto nos formatos de arquivo de entrada e saída com os usados no software VASP. Os modelos NN anteriormente parametrizados disponíveis no diretório 'Modelos/' foram gerados e testados extensivamente para materiais cristalinos e/ou nanoestruturados. As primeiras aplicações práticas do NNs incluem a previsão de novas ligas sintetizáveis de MG-CA e M-SN [1-3], bem como a identificação de nanopartículas mais estáveis de Cu-PD-Ag e Au [4,5].
Os usuários podem criar seus próprios modelos de NN com osse, que geralmente são treinados na teoria funcional da densidade (DFT) e dados de força atômica para estruturas relativamente pequenas. A geração de configurações relevantes e diversas é feita separadamente com um protocolo de 'amostragem evolutiva' detalhado em nosso trabalho publicado [6]. O código apresenta um recurso exclusivo, 'Treinamento estratificado', de como criar NNs robustos para sistemas químicos com vários elementos [6]. Os modelos NN são desenvolvidos de maneira hierárquica, primeiro para elementos, depois para binários e assim por diante, o que permite a geração de bibliotecas reutilizáveis para blocos estendidos na tabela periódica.
2 O algoritmo evolutivo implementado (EA) permite uma identificação eficiente de configurações de estado fundamental em uma determinada composição química. Nossos estudos mostraram que o EA é particularmente vantajoso ao lidar com grandes estruturas quando não há entrada estrutural experimental [7,8].
As pesquisas podem ser realizadas para cristais a granel 3D, filmes 2D e nanopartículas 0D. A população de estruturas pode ser gerada aleatoriamente ou predefinida com base em informações anteriores. As operações essenciais são 'crossover', quando uma nova configuração é criada com base em duas estruturas pais na geração anterior e 'mutação', quando uma estrutura pai é distorcida aleatoriamente. Para nanopartículas 0D, introduzimos um algoritmo evolutivo multitribe que permite uma otimização simultânea eficiente de clusters em uma faixa de tamanho especificada [4].
3 As funções de análise incluem a comparação de estruturas com base na função de distribuição radial (RDF), na determinação do grupo espacial e nas posições de Wyckoff com um pacote externo spglib, etc. Em particular, o produto da estrutura baseado em RDF é essencial para eliminando estruturas duplicadas em pesquisas de EA e selecionando diferentes configurações no pool de estruturas de baixa energia 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
O código -fonte do Maise pode ser obtido da linha de comando em execução:
git clone git://github.com/maise-guide/maise.git
ou
git clone https://github.com/maise-guide/maise.git
ou
wget -O master.zip https://github.com/maise-guide/maise/archive/master.zip unzip master.zip
1 Use ' Make --jobs ' para compilação completa. Para recompilação, use 'Faça limpo' para remover arquivos de objeto ou 'fazer limpar tudo' para remover arquivos de objeto e bibliotecas externas.
2 Durante a compilação de Maise, 'Make --jobs' verifica se duas bibliotecas externas necessárias, biblioteca GSL e SPGLIB v1.11.2.1, fevereiro de 2019, estão presentes. Caso contrário, eles serão baixados automaticamente para ./ext-dep e instalados em ./lib na maioria dos sistemas.
3 Se a instalação GSL ou SPGLIB não for concluída automaticamente, compile -os manualmente e copie (i) libgsl.a, libgslcblas.a e libsymspg.a no subdiretório './lib'; (ii) o cabeçalho 'spglib.h' em './lib/include' subdiretório; e (iii) todos os cabeçalhos GSL no subdiretório './lib/include/gsl'.
4 Um script de 'verificação' está disponível no diretório './test/', que pode ser executado após a compilação do executável do Maise para garantir a funcionalidade adequada do código. Esse script verifica automaticamente o desempenho do código na análise dos dados, treinando a rede neural e avaliando uma estrutura de cristal. Se a compilação estiver bem, o script 'verificação' será lançado; Caso contrário, os logs de erros serão fornecidos com mais informações sobre o problema.
O código foi extensivamente testado em plataformas Linux. Agradecemos o feedback dos usuários sobre a instalação e o desempenho do pacote em diferentes plataformas.
Os principais arquivos de entrada que definem uma simulação são 'configuração' com configurações de trabalho, 'modelo' com parâmetros NN e 'poscar' com parâmetros de estrutura atômica no formato VASP. A conversão de ambientes atômicos em entradas NN durante o estágio de análise do desenvolvimento de NN requer um arquivo 'base' que especifica funções de simetria de Behler-Parrinello.
EVOS | Nnet | CÉLULA | |||||
PROCURAR | EXAME | Analisar | TREM | TESTE | Simul | EXAME | |
configurar | + | + | + | + | + | + | |
modelo | +* | +# | +# | ||||
base | + | $ | |||||
Spg | + | + | |||||
GSL | + | + | |||||
* Para treinamento estratificado, é preciso fornecer modelos individuais $ 'base' armazenado no diretório analisado é anexado ao 'modelo' no final do treinamento # 'modelo' tem 'base' colado no final quando o treinamento é concluído |
As funções de exame e manipulação da estrutura são executadas chamando Maise com uma bandeira:
maise -flag
Bandeira | Descrição da bandeira |
---|---|
homem | Saia a lista de sinalizadores disponíveis |
rdf | Calcule e plote o RDF para Poscar |
cxc | Calcule o produto DOT para POSCAR0 e POSCAR1 usando RDF |
cmp | Compare RDF, Grupo Espacial e Volume de Poscar0 e Poscar1 |
spg | converter poscar em str.cif, conv, prim |
cif | converter str.cif em conv e prim |
escurecido | Descubra se o POSCAR é periódico (3) ou não periódico (0) |
vol | Volume de computação por átomo para estruturas de cristal ou nano |
podridão | Gire uma nanopartícula ao longo dos autovetores de momentos de inércia |
mov | mover átomos ao longo de uma direção por uma mudança constante |
caixa | Redefina o tamanho da caixa para nanopartículas |
e aí? | Faça uma supercélula especificada por Na X NB x nc |
Eig | Célula unitária de mudança em Poscar ao longo de um Phonon Eigenmode |
ord | Order átomos por espécie |
fora | Extraia instantâneos de MD ou trajetórias de relaxamento em VASP |
Diretório 'Exemplos/' possui amostras de trabalhos de mestrado para análise e manipulação de células unitárias, analisando dados, treinando redes neurais, simulando estruturas com modelos de rede neural, pesquisa evolutiva para o modelo de rede neural de estado fundamental, dinâmica molecular executada e cálculo de fônonos. O EASH exemplo possui um arquivo de leitura, um arquivo de configuração com apenas tags relevantes para o trabalho específico e os arquivos de saída de referência para comparação.
Seletor de tipo de trabalho principal
Estrutura-enviroment
EVOS principal
Operações de eVos
EVOS Crossover/Mutação
Dinâmica molecular
Espécies relacionadas
E/S.
Modelo Geral
Modelo de rede neural
Treinamento da rede neural
Análise
Relaxamento celular
Jobt
Nmax mmax
Código Dene Kmsh Lbox ndim nitr nnjb npop rand Run semente sitr tini
Blob chop invs mate mudo pack plnt refl 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 avaliar otpt wdir
Ncmp nngt nnnn nnnu nsym
Fmrk lreg ntn ntst tefs npar
Emax fmax fmin vmax vmin mmax
Etol Mint Mitr PGPA RLXT Hora
MARCAÇÃO | DESCRIÇÃO |
---|---|
Jobt | Análise da estrutura (00) Ferramentas de análise de uso especificadas por sinalizadores, pesquisa evolutiva (10) execução (11) saída suave (12) análise dura (13) Análise, simulação de células (20) Relaxamento (21) Dinâmica molecular (22) Cálculos de fonon, Parsing de dados (30) Prepare entradas para o treinamento NN, Treinamento NN (40) Treinamento completo (41) |
CÓDIGO | Tipo do código em uso. (0) Maise-Int (1) VASP-EXT (2) Maise-EXT |
Npar | Número de núcleos para treinamento paralelo de NN ou simulação de células |
HORTELÃ | O algoritmo de otimizador para o treinamento da rede neural e a otimização de células. (Tipo de minimizador GSL (0) BFGS2 (1) CG-FR (2) CG-PR (3) Descendência íngreme |
Mitr | Número máximo das etapas de otimização; Se a precisão desejada não for alcançada para o treinamento NN ou as etapas de otimização de células |
Rlxt | Tipo de otimização de células (2) somente força (3) volume de célula completa (7) (ISIF em VASP) |
Etol | Tolerância a erros para treinamento ou convergência de otimização de células |
Tefs | Treinamento Valor -alvo (0) E (1) EF (2) ES (3) EFS (4) Toy |
FMRK | Fração de átomos que serão analisados para usar nos treinamentos de EF ou EFS |
Cout | Tipo de saída no arquivo Outcar na avaliação e otimização de células |
Nmax | Número máximo de átomos na célula unitária |
Mmax | Número máximo de vizinhos dentro do raio de corte |
NSPC | Número de tipos de elementos para pesquisa evolutiva, analisando os dados e o treinamento em rede neural. |
TSPC | Número atômico dos elementos especificados com tag nspc |
ASPC | Número de átomos de cada elemento para a pesquisa evolutiva |
Nsym | Número das funções de simetria de Behler-Parrinello para analisar dados usando o arquivo "base" |
Ncmp | O comprimento do vetor de entrada da rede neural |
Ntn | Número de estruturas usadas para treinamento de rede neural (número negativo significa porcentagem) |
Ntst | Número de estruturas usadas para testes de rede neural (número negativo significa porcentagem) |
Nnnn | Número de camadas ocultas na rede neural (não inclui vetor de entrada e neurônio de saída) |
Nnnu | Número de neurônios em camadas ocultas |
Nngt | Tipo de função de ativação para os neurônios das camadas ocultas (0) linear (1) Tanh |
Emax | Analisar apenas essa fração das estruturas de menor energia. De 0 a 1 |
Fmax | Não analisará dados com forças maiores que esse valor |
Vmin | Não analisará dados com volume/átomo menor que este valor |
Vmax | Não analisará dados com volume/átomo maior que este valor |
Ndim | Dimensionalidade da célula unitária em busca evolutiva e otimização de células (3) Cristal (2) Filme (0) Partícula |
Lbox | Dimensão da caixa para gerar partículas na pesquisa evolutiva em angs (ignorado por cristais) |
Npop | Tamanho da população na pesquisa evolutiva |
Sitr | Iteração inicial na pesquisa evolutiva (0) Iniciar de estruturas aleatórias ou especificadas |
Nitr | Número de iterações na pesquisa evolutiva (deve ser maior que o sitr) |
Tini | Tipo de iniciar a pesquisa evolutiva quando sitr = 0 |
TEMPO | Tempo máximo para o relaxamento celular em busca evolutiva e otimização de células |
PGPA | Pressão no GPA |
Dene | Armazene estruturas distintas geradas em pesquisa evolutiva no pool/se dentro desta janela de energia/átomo (EV/átomo) do estado fundamental |
Kmsh | Densidade da malha K usada para VASP-EVOS. Valores sugeridos: 0,30 para S/C, 0,05 para metais |
SEMENTE | Iniciar sementes para o gerador de números aleatórios em pesquisa evolutiva (0) usa o tempo como semente (+) o valor da semente |
Rand | Iniciando sementes para a análise do conjunto de dados. (0) usa o tempo como semente (+) o valor da semente (-) sem randomização: as estruturas são analisadas na ordem de listagem |
Tmin | Temperatura mínima nas execuções de MD (k) |
Tmax | Temperatura máxima nas execuções do MD (K) |
Tstp | Etapa de temperatura nas corridas de MD (k) em execução de tmin para tmax |
Del | Etapa de tempo no MD corre |
NSTP | Número de etapas por temperatura nas execuções do MD |
Cplt | Acoplamento constante no termostato do nariz para as execuções de MD. Sugerido: 25.0 |
CPLP | Acoplamento constante em Brenden Barostat para execuções de MD. Sugerido: 100.0 |
ICMP | Compressibilidade isotérmica em Brenden Barostat para corridas de MD (em 1/GPA) |
Movi | Número de etapas após as quais um instantâneo de estrutura será salvo durante a execução do MD |
Mdtp | MD Tipo de execução (10) NVE (20) NVT: Nariz-hoover (30) NPT: Nariz-hoover e Brenden (40) isobárico (11,21,31,41) são executadas com velocisidades lidas do arquivo POSCAR |
Depo | Caminho para os conjuntos de dados DFT a serem analisados |
DADOS | Localização dos dados analisados para analisar ou ler para treinamento (será substituído durante a análise) |
OTPT | Diretório para armazenar parâmetros do modelo no processo de treinamento |
Aval | Diretório para dados de teste de modelo |
Wdir | Diretório de trabalho para pesquisa evolutiva, execuções de MD, etc. |
Tetr | Fração das estruturas geradas aleatoriamente usando o operação do Tetris. De 0 a 1 |
Plnt | Fração das estruturas geradas a partir de sementes. De 0 a 1 |
PACOTE | Fração das estruturas geradas a partir de estruturas de embalagem fechada. De 0 a 1 |
Blob | Fração das estruturas geradas aleatoriamente usando a forma do blob. De 0 a 1 |
AMIGO | Fração das estruturas geradas pelo crossover usando duas metades de cada pai. De 0 a 1 |
TROCAR | Fração das estruturas geradas pelo crossover usando o núcleo e a concha dos pais. De 0 a 1 |
Rube | Fração das estruturas geradas pela operação do cubo de Rubik. De 0 a 1 |
Reflexão | Fração das estruturas geradas por simetrização via reflexão. De 0 a 1 |
Invs | Fração das estruturas geradas por simetrização via inversão. De 0 a 1 |
CORTAR | Fração das estruturas geradas cortando para fazer facetas. De 0 a 1 |
MUDO | Fração das estruturas geradas por distorções aleatórias para a estrutura. De 0 a 1 |
Mcrs | 0,50 Taxa de mutação no cruzamento |
Scrs | 0,00 Crossover: Taxa de troca |
LCRS | 0,00 cruzamento: força de mutação para vetores de treliça |
ACRS | 0.10 Crossover: força de mutação para posições atômicas |
Sdst | 0,00 Distorção: Taxa de troca |
LDST | 0,00 distorção: força de mutação para vetores de treliça |
Adst | 0,20 Distorção: força de mutação para posições atômicas |
ELPS | 0,30 Random: elipticidade de nanopartículas |