Come incorporare le condizioni al contorno con il metodo Galerkin?


21

Ho letto alcune risorse sul web sui metodi Galerkin per risolvere i PDE, ma non sono chiaro su qualcosa. Quello che segue è il mio resoconto di ciò che ho capito.

Si consideri il seguente problema al valore limite (BVP):

L[u(x,y)]=0on(x,y)Ω,S[u]=0on(x,y)Ω

dove è un operatore di differenziazione lineare del 2 ° ordine, è il dominio del BVP, è il confine del dominio e è un operatore differenziale lineare del 1 ° ordine. Spesa come approssimazione del modulo:LΩR2ΩSu(x,y)

u(x,y)i=1Naigi(x,y)

dove è un insieme di funzioni che useremo per approssimarti . Sostituendo nel BVP:giu

iaiL[gi(x,y)]=R(a1,...,aN,x,y)

Poiché la nostra approssimazione non è esatta, la residua non è esattamente zero. Nel metodo Galerkin-Ritz-Raleigh minimizziamo rispetto all'insieme di funzioni approssimative richiedendo . QuindiRRR,gi=0

R,gi=j=1NajL[gj],gi=0

Pertanto, per trovare i coefficienti , dobbiamo risolvere l'equazione della matrice:ai

(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=0

La mia domanda è: come posso incorporare le condizioni al contorno in questo?

EDIT: Inizialmente la domanda diceva che era un operatore differenziale lineare di secondo ordine. L'ho cambiato in un operatore differenziale lineare del 1 ° ordine.S[u]


1
becko, benvenuto scicomp! La nostra politica sul cross-posting segue quella di altri siti di Stack Exchange . È possibile effettuare il cross-post se si adatta la stessa domanda (più o meno) a un pubblico diverso. È possibile richiedere che la tua domanda venga migrata su un altro sito dopo qualche tempo, se ritieni che la tua domanda non riceva una risposta soddisfacente (o affatto) sul sito in cui è inizialmente pubblicata.
Geoff Oxberry,

Tuttavia, è generalmente considerato un comportamento offensivo il cross-post. Se guardi l'elenco dei siti beta su Area 51, molti di loro sono ancora in beta pubblica dopo un anno. Resteremo ancora in giro per un po '(almeno su una scala temporale più lunga di quella necessaria per rispondere alla maggior parte delle domande su questo sito). Inoltre, a meno che gli mathutenti che rispondono alla tua domanda non siano anche scicomputenti, non otterranno credito o attribuzione adeguati per la loro risposta qui scicompse copi e incolli mathe viceversa.
Geoff Oxberry,

1
Sei sicuro che sia anche un operatore del secondo ordine? In generale, questo non è un problema ben posto. Ad esempio, se , allora stai chiedendo in che ha soluzioni orribilmente non uniche (ad esempio, la soluzione del PDE su qualsiasi dominio più grande con qualsiasi condizione al contorno è anche una soluzione). Di solito chiediamo che sia un operatore (possibilmente non lineare) del primo ordine. S = L L u = 0 ˉ Ω SSS=LLu=0Ω¯S
Jed Brown,

2
Anche se , stai ancora cercando soluzioni non uniche. Considera se è l'operatore laplace e è un altro operatore lineare di secondo ordine. Quindi qualsiasi tale che per un vettore costante può essere aggiunto a una soluzione per creare un'altra soluzione. L S u u = k kSLLSuu=kk
Dan,

1
@GeoffOxberry Per la tua tranquillità, la domanda duplicata su mathè stata eliminata. Ovviamente avevi ragione nel mantenere la domanda qui. Ho ricevuto risposte molto utili.
becko,

Risposte:


15

Una risposta rapida e generale senza astrazioni matematiche. Esistono diverse opzioni per imporre condizioni al contorno, ad es

A rigor di termini, il metodo Galerkin richiede la scelta di un insieme di funzioni di base che soddisfino il BC del problema (ad es. Tramite ricombinazione di basi e / o divisione dell'approssimazione con responsabile di soluzioni disomogenee e una somma parziale che si basa su funzioni di base che soddisfano le condizioni omogenee)u 0 u Nuh=u0+uNu0uN

  • Metodi di penalità / Lagrange si moltiplica quando si aggiunge essenzialmente un termine di penalità che incorpora la condizione al contorno, ad es. A + dove è una matrice responsabile della condizione al contorno discreta e è responsabile di termini non omogenei. Nel limite le condizioni sono fortemente imposte e altrimenti sono debolmente imposte. La scelta di influisce sul condizionamento del sistema. B b p τ ττB=b+τbpBbpττ

  • Metodo Tau in cui vengono scambiate una serie di equazioni (modifica delle righe nel sistema di Galerkin) con versioni discrete delle condizioni al contorno che vengono quindi applicate esplicitamente. Nota: un'opzione è anche quella di rendere i sistemi sovradeterminati con condizioni al contorno aggiuntive.

  • Prima della discretizzazione (metodo Ritz) riscrivere la formulazione di Galerkin tramite il teorema di divergenza di Gauss per trasformare gli integrali di volume in integrali di confine e quindi incorporare (esattamente o approssimativamente) condizioni al contorno direttamente nella formulazione prima della discretizzazione.

  • Infine, sfruttando la connessione tra espansioni nodali / modali è anche possibile derivare un metodo nodale di Galerkin in cui la soluzione al sistema sono i coefficienti di una base di Lagrange piuttosto che una base modale.


1
Immagino che is , no? λτλ
shuhalo,

Sì. corretto.
Allan P. Engsig-Karup,

1
Dovrebbe leggere "Il metodo Galerkin richiede che tu scelga un insieme di funzioni di base che soddisfino il BC del problema"?
Knl

@knl: lo penso anche io, mentre l'altra frase non ha senso. Farò una modifica.
davidhigh,

7

Una possibilità è quella di assemblare la matrice di sistema e il vettore lato destro , con i gradi di libertà prescritti come sconosciuti, come qualsiasi altro grado di libertà. Quindi, e vengono modificati azzerando le righe e le colonne associate ai dof prescritti, inserendo uno nella corrispondente voce diagonale e modificando opportunamente il vettore rhs .b A b bAbAbb

Quando si azzerano le righe, inserirne una in diagonale e modificare rhs in modo da applicare il valore prescritto, il sistema non è più simmetrico. Ecco perché azzerare le colonne e modificare il vettore rhs per tenere conto del valore prescritto.b

Un'altra possibilità è quella di aggiungere un numero molto grande (di solito 1e10) alla diagonale del dof prescritto e quindi impostare la voce rhs su p * , dove è il valore prescritto di quel dof.ˉ u ˉ upu¯u¯


6

Il problema generale di trattare le condizioni al contorno con il metodo degli elementi finiti può diventare piuttosto complicato. Ma se:

  • S ( u ) = 0 u f ( x , y ) δ ΩS(u) è tale che l'unica imposizione che fa sulla forma di è che è uguale a qualche su .S(u)=0uf(x,y)δΩ

  • Puoi raggruppare i tuoi elementi in modo che sia interamente al limite di vari elementiδΩ

è in realtà molto semplice. La tua equazione:

( L [ g

(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=0
deve essere sostituito con
(L[g1],g1L[gN],g1L[g1],gNL[gN],gN)(a1aN)=b

dove il vettore sul lato destro rappresenta le condizioni al contorno.b

Per determinare , imposta gli elementi della tua base che determinano il valore di su su qualunque valore debbano essere per soddisfare le condizioni al contorno. In , dovresti escluderli da ma non da (gli elementi di che corrispondono a queste funzioni sono già stati determinati, quindi non dovrebbero essere inclusi in l'equazione della matrice). Quindi, imposta come equazione di matrice e i valori degli elementi di dovrebbe apparire come prodotto interno di u delta Ohm L [ g j ] , g ig j g io unR , g i= N Σ j = 1 a jL [ g j ] , g i= 0 b LbuδΩL[gj],gigjgia

R,gi=j=1NajL[gj],gi=0
bL operando sulla tua base interiore con elementi della tua base di confine.

Grazie per la risposta Dan. Non capisco il paragrafo che inizia "Per determinare ..." (che è la parte essenziale, penso). Potresti renderlo un po 'più esplicito? b
becko,

D'altra parte, il problema che sto cercando di risolvere soddisfa solo la seconda condizione che imposti: il confine è un rettangolo. Per quanto riguarda la prima condizione, le condizioni al contorno non specificano i valori della funzione al confine. Le condizioni al contorno specificano i valori delle combinazioni lineari delle derivate del secondo ordine della funzione (qualcosa come , dove sono costanti. Anche le condizioni al contorno sono omogenee. a2u/xy+b2u/x2=0)a,b
becko,

@becko: potresti voler essere più esplicito su quali e sono nella tua domanda. Diversi tipi di condizioni al contorno possono essere gestiti in diversi modi. LS
Dan,

1
Ho modificato un po 'la domanda per renderla più chiara, credo. Non voglio pubblicare il problema esatto che sto cercando di risolvere perché voglio mantenere la domanda il più generale possibile. Penso di poter capire meglio il metodo in questo modo.
becko,

@becko: potremmo voler spostare questo per chattare , poiché sta diventando un po 'lungo.
Dan,

2

Ecco un metodo noto come ricombinazione di base , che non è stato menzionato nel presente thread. Sto citando dal libro di JP Boyd, "Chebyshev and Fourier Spectral Methods", 2a edizione, capitolo 6.5 .:

Lu=f
B(x)v(x)g(x)
u(x)v(x)+B(x)g(x)f(x)LB(x)
Lv=g
v(x)

B(x)

Segue la mia spiegazione:

  • "Condizione al contorno disomogenea" indica una condizione che contiene una costante, ad es.

    xu(x,y)|x=x0=1.

    Secondo il programma precedente, scegliendo una comoda funzione , la si ottiene fino a B(x)

    xu(x,y)|x=x0=0.
  • Una volta che hai reso omogenee tutte le condizioni al contorno in questo modo, puoi passare alla tua espansione di base (che presumo sia fatta in termini di base di un prodotto): Applicando il corrispondente operatore BC, si ottiene e questo dovrebbe essere zero per secondo l'esempio precedente.

    u(x,y) = ijaijϕi(x)φj(y)
    xu(x,y) = ijaijϕi(x)φj(y)
    x=x0
  • Ora arriva il passaggio cruciale : usando una base che già soddisfa il BC da sola, cioè per tutto , il BC del ( trasformato) il problema bidimensionale viene soddisfatto automaticamente ! Insiemi di base di questo e tipo simile possono essere trovati, ad esempio, con una procedura chiamata "ricombinazione di basi" (che viene spesso usata in combinazione con metodi di collocazione).ϕ i ( x ) | x = x 0 = 0 iϕi(x)ϕi(x)|x=x0=0i

  • Si noti che questo è il punto in cui le condizioni al contorno omogenee contano davvero, perché altrimenti si dovrebbero imporre ulteriori vincoli. Ad esempio, supponiamo di lavorare con la condizione " " sopra e, di conseguenza, proviamo a utilizzare una base con . Quindi e per rendere questa espressione uguale a per tutti , si dovrebbe vincolare le coeffcients espansione pure. Pertanto, per BC non omogenei, esiste un modo generale per applicare i vincoli alle parti monodimensionali ma usarlo per l'intero problema.ϕ i ( x ) | x = x 0 = 1 x u ( x , y ) | x = x 0 = i j a i j=1ϕi(x)|x=x0=1

    xu(x,y)|x=x0 = ijaijφj(y)
    y a i j1yaij

La cosa bella di tutto questo approccio è che sta lavorando a un livello relativamente astratto. Gli ingredienti necessari sono solo la linearità dell'operatore BC e una risposta in termini di funzioni di base del prodotto. Pertanto, è applicabile anche a metodi approssimativi.

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.