Quali sono le migliori pratiche per algoritmi e implementazione di simulazioni multi-fisica?


16

La simulazione multi-fisica comporta l'accoppiamento di più "fisica", spesso con scale spaziali e / o temporali diverse. Inoltre, i codici di fisica singola sono spesso scritti da diversi team. La tecnica di accoppiamento più comunemente usata è la divisione dell'operatore del primo ordine, ma questo ha scarse proprietà di precisione e stabilità. Come posso determinare quali algoritmi saranno efficaci per un problema di interesse e come dovrei strutturare il mio software per renderli disponibili?

Risposte:


5

Sostengo vivamente un assemblaggio completamente accoppiato poiché questo può facilmente riprodurre le versioni divise dell'operatore. In particolare, le routine che calcolano il residuo e il giacobino per la fisica diversa possono essere separate, ma la struttura dovrebbe essere in grado di combinarle per formare un residuo unificato per l'intero sistema. Ecco come funziona PETSc.

Quindi, le soluzioni split dell'operatore possono essere utilizzate come precondizionatore per il sistema completamente accoppiato o come risolutore a sé stante, tutto dalla riga di comando. Inoltre, alcuni accoppiamenti possono essere preservati, mentre altri possono essere scartati. PETSc gestisce questo tramite l'interfaccia PC FieldSplit. Ciò consente la replica di schemi ibridi, come ICE semi-implicito per la fluidodinamica.


5

Dal momento che questa è un'area di ricerca molto attiva, esito a tentare una risposta, ma ho una certa esperienza su cosa non provare.

Non :

  • Prendi il vecchio codice dell'applicazione A e la vecchia applicazione B, quindi prova ad accoppiarli insieme
  • Usa il codice arcaico (che implica inutilizzabile a posteriori), invece di creare una nuova applicazione
  • Richiede un enorme framework (> 10 dipendenze obbligatorie) sui nuovi utenti che iniziano a contribuire
  • Supponiamo che il layout dei dati (mesh, matrici, vettori, ecc.) Sia facile da scrivere

Fare :

  • Utilizzare pratiche di programmazione standard e, si spera, buoni modelli di progettazione
  • Leggi la letteratura sulla suddivisione dell'operatore per comprendere i limiti di precisione e stabilità
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.