Tópico 21 · Máquina de estados
1/2
A máquina de estados e o comando fix
O LIGGGHTS não compila o script todo de uma vez: funciona como uma máquina de estados de leitura sequencial. Cada linha altera a memória do sistema, mas o tempo da simulação só começa a andar em um instante muito específico.
1. Leitura sequencial
O LIGGGHTS lê o script de cima para baixo, linha por linha. Cada linha altera o estado do sistema na memória. O tempo da simulação não avança durante a leitura dos comandos de configuração.
⏱️
Conceito — o gatilho do tempo: o comando run. O tempo só avança quando o software encontra run (ex.: run 500000). Nesse momento, a leitura pausa e o software executa o ciclo de integração pelo número de passos pedido. Ao terminar o run, a leitura continua na linha seguinte.
Consequência prática
# Se a ordem de inserção for cancelada ANTES de um run...
fix insert all insert/rate/region ...
unfix insert
# ... nenhuma partícula é criada: a ordem já não existia
# quando o tempo passou a rodar.
run 500000
2. O que o comando fix realmente significa
Ao ler fix, deduz-se intuitivamente que serve para "fixar" uma propriedade constante — isso não está correto. Na arquitetura em C++ do LIGGGHTS/LAMMPS, fix vem de "to affix / to attach" (anexar). Um fix é qualquer operação anexada ao ciclo de integração:
- fix gravidadeanexa uma rotina que empurra as partículas para baixo a cada passo —
fix gravidade all gravity 9.81...
- fix m1anexa à memória global uma tabela de rigidez consultada a cada colisão —
fix m1 all property/global youngsModulus...
- fix paredeanexa uma operação que verifica, a cada passo, se alguma partícula tocou a malha CAD —
fix parede all wall/gran/hertz/history...