Dissezione nidificata su griglia regolare


9

Quando si risolvono sistemi lineari sparsi utilizzando metodi di fattorizzazione diretta, la strategia di ordinamento utilizzata ha un impatto significativo sul fattore di riempimento di elementi diversi da zero nei fattori. Una di queste strategie di ordinazione è la dissezione nidificata. Mi chiedo se è possibile elaborare in anticipo l'ordinamento di dissezione nidificata, dati solo i parametri della griglia (ipotizzare una griglia di differenza finita quadrata M x N con differenze del primo ordine).

Modifica Ho appena scoperto che esiste un codice che fa questo: http://www.cise.ufl.edu/research/sparse/meshnd/

Risposte:


8

Sì. Di recente ho scritto codice per fare esattamente questo.

Supponiamo di avere una griglia e che sia accettabile avere nodi foglia con 100 vertici. Si può quindi definire una funzione ricorsiva in cui gli argomenti sono:nX×ny

  • le dimensioni e gli offset di un sottodominio rettangolare
  • un puntatore in un array che memorizzerà il riordino

La routine poi deve semplicemente calcolare il prodotto delle dimensioni locali decidere se il dominio è un accettabilmente piccolo per essere un foglio, e quindi, in caso affermativo, scrivere gli indici naturali nodo foglia (dire nun'turun'l(X,y)=X+ynXnX×ny


Immagino che la mia domanda riguardi più: la dissezione nidificata sta davvero tagliando in modo ricorsivo lo spazio a metà? Inoltre, è l'ordinamento di posizionare gli indici di confine davanti a ciascuna metà destra e sinistra? Non ho mai trovato una semplice spiegazione di ciò che sta succedendo.
Victor Liu,

1
Sì, la dissezione nidificata è molto semplice, ma memorizzi gli indici di confine dopo le metà sinistra e destra. Il punto è garantire che i due sottodomini non siano collegati direttamente, quindi, per differenze finite, è importante considerare la dimensione dello stencil quando si decide su quanto deve essere spesso il separatore. Ti consiglio di leggere la panoramica di Liu sul metodo multifrontale e di stabilire che ogni separatore viene trattato come un supernodo.
Jack Poulson,

Ah sì, mi sono reso conto che poco dopo ho commentato e poi ho effettuato la modifica. Grazie per il riferimento.
Victor Liu,
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.