Quali nuove strutture di dati sono utilizzate nella FEM adattiva?


9

Un sacco di librerie FEM adattivi utilizzare strutture dati in rete più avanzate per gestire l'aggiunta / rimozione di nodi, bordi, triangoli, tetraedri, ecc, ad esempio, i p4est utilizza la libreria octree strutture dati per adaptive mesh refinement; non troverai spesso ocre utilizzate per i calcoli su una mesh statica.

Cosa cambia dal lato dell'algebra lineare per la FEM adattiva?

Il modo più schietto che riesco a concepire sarebbe quello di ricostruire completamente tutte le matrici del sistema ogni volta che la mesh viene raffinata o ruvida. Se l'adattamento della mesh è un'operazione sufficientemente rara, la spesa per farlo viene infine ammortizzata sul resto del calcolo. Con questo approccio si potrebbe facilmente sfruttare il software di algebra lineare sparsa esistente (PETSc, Trilinos, ecc.).

Questo metodo smussato è il più comunemente usato o ci sono librerie che riescono a riutilizzare o modificare la vecchia matrice durante il perfezionamento? Dopotutto, la maggior parte della mesh e le matrici corrispondenti rimangono invariate durante un adattamento della mesh.

Risposte:


6

Sì, l'approccio più comune è ricostruire. Le strutture di dati modificabili sul posto tendono ad essere meno efficienti una volta impostate e la riallocazione è in realtà abbastanza economica rispetto al riassemblaggio (ad esempio, a causa della non linearità), quindi è davvero una soluzione eccellente. Al di fuori di nicchie relativamente rare con soluzioni molto semplici, i tentativi di utilizzare strutture di dati dinamici nei solutori rallenteranno solo l'applicazione. È una percezione comune tra coloro che dimenticano di misurare o modellare le prestazioni, tuttavia.


3

Come già detto da Jed, il riutilizzo di componenti algebrici lineari come matrici e vettori non è comunemente fatto. Inoltre, non è necessario: l'installazione di questi componenti è relativamente molto economica rispetto al costo di risoluzione dei sistemi lineari.

Se cerchi elementi che cambiano quando si passa da mesh statiche a mesh adattate in modo adattivo, l'ostacolo maggiore riguarda i nodi sospesi. In deal.II , questo è gestito dalla classe ConstraintMatrix , che richiede diverse 1000 righe di codice. Puoi trovare alcune delle descrizioni di ciò che questa lezione fa nel mio lavoro e da Oliver Kayser-Herold (collegato alla mia pagina delle pubblicazioni ). Nessun altro componente (oltre a maneggiare la mesh, ovviamente) ha richiesto così tanto adattamento quando si passa da mesh fisse a adattive.

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.