Imporre le condizioni di compatibilità per il metodo degli elementi finiti misti nell'equazione di Stokes


13

Supponiamo di avere la seguente equazione del modello di flusso di Stokes:

{div(νu)+p=fdivu=0
dove la viscosità ν(x) è una funzione, per l'elemento finito misto standard, diciamo che usiamo la coppia stabile: spazio di Crouzeix-Raviart Vh per la velocità u e spazio costante nell'elemento Sh per la pressione p , abbiamo la seguente forma variazionale:

L([u,p],[v,q])=Ωνu:vΩqdivuΩpdivv=Ωfvv×qVh×Sh

e sappiamo che dal momento che il moltiplicatore di Lagrange p può essere determinato fino a una costante, la matrice assemblata alla fine dovrebbe avere spazio nullo 1 , per aggirare ciò potremmo imporre che la pressione p su un certo elemento sia zero, quindi non dobbiamo risolvere un sistema singolare.

Quindi, ecco la mia domanda 1:

  • (Q1) Esiste un modo diverso dall'applicazione di p=0 su alcuni elementi per eliminare il kernel per l'elemento finito misto standard? o dire, qualche risolutore là fuori che sia in grado di risolvere il sistema singolare per ottenere una soluzione compatibile? (o alcuni riferimenti sono benvenuti)

E per quanto riguarda la compatibilità, per (1) dovrebbe essere ˜ p p ˜ p = p - ν

Ων1p=0
e il piccolo trucco è calcolare essere la abbiamo ottenuto dalla soluzione di il sistema lineare sottratto dalla sua media ponderata: p~p
(2)p~=pν|Ω|Ων1p

Tuttavia, recentemente ho appena implementato un elemento stabilizzato misto stabilizzato per l'equazione di Stokes di Bochev, Dohrmann e GunzbergerP1P0 , in cui hanno aggiunto un termine stabilizzato alla formulazione variazionale (1): dove è la proiezione dallo spazio costante a tratti a continuo a tratti , e il kernel costante dell'elemento finito misto originale è sparito, tuttavia sono successe cose strane, (2) non non funziona più, ho coniato il problema del testΠ 1 P 0 P 1

L~([u,p],[v,q])=L([u,p],[v,q])Ω(pΠ1p)(qΠ1q)=Ωfvv×qVh×Sh
Π1P0P1 un problema di interfaccia per l'equazione di diffusione , questo è quello che ho ottenuto per la pressione , quella giusta è la vera soluzione e quella sinistra è l'approssimazione numerica:p

Stokes Test 1

tuttavia se è una costante, il problema del test funziona bene: νStokes Test 2

Immagino che sia perché il modo in cui sto imponendo la condizione di compatibilità, poiché è collegato alla stabilità inf-sup dell'intero sistema, ecco la mia seconda domanda:

  • (Q2): esiste un modo diverso da (2) per imporre la compatibilità per la pressione ? o mentre si coniuga il problema del test, che tipo di dovrei usare?ppp

MathML non funziona?
Shuhao Cao,

Usiamo MathJaX su StackExchange, tutto ciò che hai pubblicato viene visualizzato magnificamente, grazie per la domanda dettagliata.
Aron Ahmadia,

Risposte:


8

La condizione di compatibilità riguarda la velocità, non la pressione. Afferma che se hai solo le condizioni al contorno di Dirichlet per la velocità, allora queste dovrebbero essere compatibili con il vincolo privo di divergenze, cioè con il confine del dominio computazionale (non la cella).ΩΩun=0Ω

In questo caso non può essere distinto da con una costante arbitraria perché non hai alcuna condizione al contorno su per correggere la costante. Quindi ci sono infinite soluzioni per la pressione e per confrontare le soluzioni è necessaria una convenzione. I matematici preferiscono scegliere tale che (perché possono integrarsi) mentre il fisico preferisce (perché possono misurare in un punto). Se è l'equivalente discreto di ha uno spazio nullo costituito dal vettore identità.( p + c ) c p c ¯ p = p r e f p ( x r e f ) = p r e f B p p Bp(p+c)cpcp¯=prefp(xref)=prefBpp , implica cheB

I metodi del sottospazio di Krylov possono risolvere un sistema singolare rimuovendo lo spazio nullo dal sottospazio di Krylov in cui cercano la soluzione. Tuttavia, ciò non significa che otterrai la soluzionep corrispondente a una determinata convenzione, dovrai sempre determinare tu stesso la costante in una fase di postelaborazione, nessun risolutore può farlo per te.

Ecco alcuni suggerimenti per affrontare il tuo problema:

  • L'equazione (2) sembra strana. Se è una funzione dixνx come può essere al di fuori dell'integrale?
  • Il tuo campo di velocità soddisfa il vincolo di compatibilità?
  • Cerca di non fare nulla per la pressione, lascia che il risolutore si liberi di trovare una , quindi guardapppexact . È una costante?
  • In caso contrario, sei sicuro che lo spazio nullo di sia effettivamente il vettore di identità e niente di più? Sia su carta che nel codice? Il problema sembra abbastanza piccolo da calcolare effettivamente lo spazio nullo.B

2

Per quanto riguarda (Q1), è possibile scegliere un solutore per i problemi del punto di sella che calcola una soluzione dei minimi quadrati per il proprio sistema. Quindi una condizione aggiuntiva può essere imposta al moltiplicatore, come stabilire un determinato grado di libertà, imporre una media specifica.

In generale, e penso che ciò risponda (Q1), è possibile utilizzare un vincolo lineare in grado di distinguere costanti diverse.

Questo vincolo può essere imposto in una fase di post-elaborazione o da una scelta appropriata dello spazio di prova (ad esempio, se si lascia fuori un grado di libertà).

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.