Lattice Boltzmann con BGK e d2q9

Due paginette #qui per sapere come implementare l’equazione di Boltzmann (che già contiene le assunzioni di caos molecolare) nelle simulazioni numeriche (con approssimazione di Bhatnagar-Gross-Krook): reticolo bidimensionale con nove velocità discrete.

Abbiamo la fase di movimento delle distribuzioni di singola particella – relative ad ogni velocità e in ogni nodo del reticolo – e poi la fase di collisione, costruita in modo da avere rilassamento all’equilibrio locale verso una distribuzione di Maxwell-Boltzmann, anch’essa discretizzata usando delle regole che mantengono l’interpretazione probabilistica di tale distribuzione, l’isotropia dello spazio e l’invarianza galileiana delle velocità.

Lo schema è isotermo, dato che si considera in tutto il reticolo un valore costante di velocità del suono (relazionata alla temperatura del reticolo); il tempo di rilassamento all’equilibrio locale è relazionato alla viscosità cinematica (la si trova con analisi di Chapman-Enskog).

L’osservabile principale è la densità di particelle: per la sua computazione probabilmente (non ci ho messo le mani con un linguaggio di programmazione… se tu lettore vuoi farlo poi fammi sapere ;o) si deve:

  • far partire un ciclo temporale (che fissa il passo), all’interno del quale lanciamo un ciclo di nodi per calcolare lo streaming di ogni velocità (altro ciclo annidato);
  • poi rifacciamo partire un ciclo sui nodi e quindi sulle velocità, lavorando sulle collisioni;
  • alla fine di ogni calcolo delle distribuzioni (ad ogni nodo), computiamo la densità.

Avremo dunque una sequenza temporale del campo di densità, che possiamo alla fine disegnare usando diverse gradazioni di colore e dunque studiare l’evoluzione macroscopica del fluido oggetto di indagine.

Fonti: Rotenberg #qui (vid), Ubertini #qui (txt). Approfondimenti #qui (vid) e #qui (vid).