Come dovrebbero essere applicate le condizioni al contorno quando si usa il metodo del volume finito?


16

A seguito della mia domanda precedente, sto cercando di applicare le condizioni al contorno a questa mesh di volume finito non uniforme,

Il limite laterale sinistro include la cella fantasma.

Vorrei applicare una condizione al contorno di tipo Robin ai lhs del dominio ( x=xL) , in modo tale che,

σL=(dux+au)|x=xL

dove è il valore limite; sono coefficienti definiti rispettivamente sul confine, sull'avvezione e sulla diffusione; , è la derivata di valutata al limite e è la variabile per la quale stiamo risolvendo.σLa,dux=uxuu

Possibili approcci

Posso pensare a due modi per implementare questa condizione al contorno sulla mesh di volume finito sopra:

  1. Un approccio a cellule fantasma.

    Scrivi come differenza finita includendo una cella fantasma. ux

    σL=du1u0h+au(xL)

    A. Quindi usa l' interpolazione lineare con i punti e per trovare il valore intermedio, .x0x1u(xL)

    B. In alternativa, trova facendo la media sulle celle,u(xL)u(xL)=12(u0+u1)

    In entrambi i casi, la dipendenza dalla cellula fantasma può essere eliminata nel solito modo (mediante sostituzione nell'equazione del volume finito).

  2. Un approccio di estrapolazione.

    Adatta una funzione lineare (o quadratica) a usando i valori nei punti x 1 , x 2 ( x 3 ). Ciò fornirà il valore u ( x L ) . La funzione lineare (o quadratica) può quindi essere differenziata per trovare un'espressione per il valore della derivata, u x ( x L ) , al limite. Questo approccio non utilizza una cella fantasma.u(x)x1,x2x3u(XL)uX(XL)

Domande

  • Quale approccio dei tre (1A, 1B o 2) è "standard" o consiglieresti?
  • Quale approccio introduce l'errore più piccolo o è il più stabile?
  • Penso di poter attuare personalmente l'approccio della cellula fantasma, tuttavia, come può essere implementato l'approccio di estrapolazione, questo approccio ha un nome?
  • Esistono differenze di stabilità tra l'adattamento di una funzione lineare o un'equazione quadratica?

Equazione specifica

Vorrei applicare questo limite all'equazione di diffusione-avviso (in forma di conservazione) con un termine di origine non lineare,

ut=-un'uX+duXX+S(X,u,t)

Discretizzare questa equazione sulla mesh sopra usando il metodo dà,θ

wjn+1θrawj1n+1θrbwjn+1θrcwj+1n+1=wjn+(1θ)rawj1n+(1θ)rbwjn+(1θ)rcwj+1n+s(xj,tn)

Tuttavia per il punto limite ( ) preferisco utilizzare uno schema completamente implicito ( θ = 1 ) per ridurre la complessità,j=1θ=1

w1n+1raw0n+1rbw1n+1rcw2n+1=w1n+s1n

Notare il punto fantasma , questo verrà rimosso applicando la condizione al contorno.w0n+1

I coefficienti hanno le definizioni,

ra=Δthj(ahj2h+dh)

rb=Δthj(a2[hj1hhj+1h+]+d[1h1h+])

rc=Δthj(-un'hj2h++dh+)

Tutte le variabili " " sono definite come nel diagramma sopra. Infine, Δ t che è la fase temporale ( NB questo è un caso semplificato con coefficienti a e d costanti , in pratica i coefficienti " r " sono leggermente più complicati per questo motivo).hΔtun'dr


1
Il libro più recente di LeVeque sui metodi a volume finito sostiene le cellule fantasma, a causa della loro semplicità di implementazione, ma non ricordo la discussione sui termini di errore.
Geoff Oxberry,

Puoi mettere giù le equazioni che vuoi risolvere? La strada da percorrere dipenderà anche dal problema. Ad esempio, potrebbe essere che, a causa della parte "Neumann", le condizioni al contorno siano come naturalmente risolte nella formulazione discreta.
Jan

@GeoffOxberry grazie per il suggerimento. Sono contento di usare Ghost Cell, cercherò di implementare in quel modo.
boyfarrell,

@Jan Inizialmente ho evitato di abbassare le equazioni a causa della complessità dovuta alla discretizzazione della mesh non uniforme, ma ho appena aggiornato la domanda con questi dettagli. Questo è un problema di diffusione dell'avviso. Non sono troppo sicuro di cosa intendi per "risolto naturalmente".
boyfarrell,

Come i Neumann bc sono naturalmente risolti negli schemi FEM, ad esempio per l'eqn di Poisson. Per FVM penso: considera la prima cella . Se hai un valore per u x0hdX(un'u+duX)dX=(un'u+duX)|X=h1-(un'u+duX)|X=0=SuXal limite, non è necessario discretizzarlo.
Jan

Risposte:


9

Questa è piuttosto un'osservazione generale su FVM che una risposta a domande concrete. E il messaggio è che non dovrebbe esserci la necessità di una tale discretizzazione ad hoc delle condizioni al contorno.

A differenza dei metodi FE o FD, in cui il punto di partenza è una risposta discreta per la soluzione, l'approccio FVM lascia intatta la soluzione (inizialmente) ma fa una media su una segmentazione del dominio. La discretizzazione della soluzione entra in gioco solo quando il sistema ottenuto di equazioni di equilibrio viene trasformato in un sistema di equazioni algebriche avvicinando i flussi attraverso le interfacce.

In questo senso, alla luce delle condizioni al contorno, consiglio di attenersi alla forma continua della soluzione il più a lungo possibile e di introdurre le approssimazioni discrete solo alla fine.

Supponiamo che l'equazione rimanga sull'intero dominio. Quindi mantiene il sottodominio [ 0 , h 1 ) e un'integrazione nello spazio dà h 1 0 u t d x

ut=-un'uX+duXX+S(X,u,t)
[0,h1) che è il contributo della prima cella al sistema di equazioni. Si noti che, oltre a prendere soltanto delle medie, non c'è stata alcuna discretizzazioneu.
0h1utdX=0h1X(-un'u+duX)dX+0h1S(X,u,t)dX=(-un'u+duX)|X=h1-(-un'u+duX)|X=0+0h1S(X,u,t)dX,
u

Ma ora, per trasformarlo in un'equazione algebrica, si assume in genere che sulla cella la funzione u sia costante nello spazio, cioè u ( t , x ) | C i = u i ( t ) . Quindi, dopo aver associato u ( x i ) u i , si può esprimere u x | h i ai boarder delle cellule tramite il quoziente di differenza in u i e u i + 1Ciouu(t,X)|Cio=uio(t)u(Xio)uiouX|hiouiouio+1. Per esprimere ai boarder delle cellule si può usare l'interpolazione (cioè differenze centrali o schemi controvento).u

Cosa fare al confine? Nell'esempio, si tratta di approssimare , non importa quello che è stato fatto per u finora.(-un'u+duX)|X=0u

  • Dato si può introdurre una cella fantasma e la condizione che un interpolante tra u 0 e u 1 sia uguale a g D al boarder.u|X=0=gDu0u1gD

  • uX|X=0=gNu0u1gN

  • (-un'u+duX)|X=0=gR

Tuttavia, non sono sicuro di cosa fare nel caso in cui ci siano bc di tipo Robin che non corrispondono direttamente al flusso. Ciò richiederà una certa regolarizzazione a causa della discontinuità dei parametri di avanzamento e diffusione.


===> Alcuni pensieri personali su FVM <===

  • La FVM non è una FDM in scala, come spesso suggeriscono esempi di equazioni di Poisson 1D su una griglia regolare
  • Non dovrebbe esserci una griglia in FVM, ci dovrebbero essere celle con interfacce e, se necessario, centri
  • Ecco perché penso che una formulazione stencil della discretizzazione non sia adatta
  • ioΩiouio
  • hiodio: =dio,io+1=|Xio-Xio+1|


Grazie per la tua guida mentre stavo imparando questo metodo. Forse posso condividere anche i miei pensieri. Sono d'accordo che è meglio dire con il modulo FVM il più a lungo possibile; in particolare per le condizioni al contorno come hai mostrato! Ma penso che sia molto utile quando si implementa per scrivere l'equazione in forma di matrice; è una notazione precisa e chiara. Inoltre, la stabilità e altre proprietà numeriche dipendono in modo cruciale da come il problema viene discretizzato (per FVM questo significa come i flussi e le facce delle cellule sono approssimati). Sotto questo aspetto preferisco equazioni a matrice, a iterazione su celle.
boyfarrell,

Forse il mio ultimo punto è stato ambiguo. Alla fine, avrai una matrice di coefficienti e un vettore variabile. Modificherò il mio post. Mi occupavo più dell'interpretazione che della realtà.
Jan

Fantastico, capisco il tuo punto. Grazie.
boyfarrell,
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.