Una buona differenza finita per l'equazione di continuità


22

Quale sarebbe una discreta discretizzazione a differenza finita per la seguente equazione:

ρt+(ρu)=0 ?

Possiamo prendere il caso 1D:

ρt+ddx(ρu)=0

Per qualche ragione tutti gli schemi che riesco a trovare sono per la formulazione in coordinate lagrangiane. Ho escogitato questo schema per il momento (ignorando l' indice j ):

ρi,jn+1ρi,jnτ+1hx(ρi+1,jn+1+ρi,jn+12uxi+1/2,jnρi,jn+1+ρi1,jn+12uxi1/2n)=0

Ma sembra essere davvero instabile o ha qualche orribile condizione di stabilità. È così?

La velocità viene effettivamente calcolata attraverso la legge darcy u=kμp . Inoltre abbiamo l'equazione di stato. L'intero sistema consiste anche di un'equazione di energia e dell'equazione di stato per il gas ideale. Le velocità possono diventare negative .


Nel caso 1D, il problema è essenzialmente un pde iperbolico del 1 ° ordine. Hai provato a utilizzare uno schema di differenza finita controvento del primo ordine?
Paolo

Finora sto correndo con quello che ho scritto nella domanda. Il mio caso è in realtà 2d però. Ma dato che si tratta di un'equazione così classica, ho pensato che sarebbe disponibile anche una discretizzazione classica.
tiam,

Potresti mostrare come uno schema controvento cercherebbe questo. Conosco il concetto del metodo del volume finito quando lo usi nel termine convettivo, ma lì non hai più un derivato spaziale un prodotto.
tiam,

Viene dato il campo di velocità o soddisfa anche un'equazione di evoluzione?
David Ketcheson,

La velocità viene effettivamente calcolata attraverso la legge darcy . L'intero sistema consiste anche di un'equazione di energia e dell'equazione di stato per il gas ideale. Le velocità possono diventare negative. u=kμp
tiam,

Risposte:


21

Stai osservando l'equazione di conservazione di massa:

dmdt=0

Quando si considera l'evoluzione della massa per unità di volume, ciò si riduce all'equazione di avanzamento della densità in forma di flusso:

ρt=(ρu)

La cosa buona di questo è che è solo l'equazione di avanzamento di un campo scalare arbitrario (nel nostro caso, questo è densità ) ed è (relativamente) facile da risolvere, a condizione che gli schemi di differenziazione del tempo e dello spazio adeguati e iniziale e condizioni al contorno.ρ

Quando progettiamo uno schema di differenziazione finito, ci preoccupiamo di convergenza, stabilità e accuratezza. Uno schema converge se quando . La stabilità degli schemi garantisce che la quantità rimanga limitata quando . L'accuratezza formale dello schema indica dove si trova l'errore di troncamento nelle serie di espansione di Taylor della derivata parziale. Guarda un libro di testo CFD per maggiori dettagli su queste proprietà fondamentali di uno schema di differenziazione. Δt0AtΔAΔtAtΔt0At

Ora, l'approccio più semplice è quello di passare direttamente alla differenziazione a monte del 1 ° ordine. Questo schema è definito positivo, conservativo ed efficiente dal punto di vista computazionale. Le prime due proprietà sono particolarmente importanti quando modelliamo l'evoluzione di una quantità che è sempre positiva (cioè massa o densità).

Per semplicità, diamo un'occhiata al caso 1-D:

ρt=(ρu)x

È conveniente ora definire il flusso , in modo che:Φ=ρu

(ρu)x=ΦxΔΦΔxΦi+1/2Φi1/2Δx

Ecco uno schema di ciò che stiamo simulando:

            u           u
|          -->         -->          |
|    rho    |    rho    |    rho    |
x-----o-----x-----o-----x-----o-----x
     i-1  i-1/2   i   i+1/2  i+1

Stiamo valutando l'evoluzione di nella cella . L'utile o la perdita netta deriva dalla differenza tra ciò che entra, e ciò che esce, . È qui che iniziamo a divergere dalla risposta di Paolo. Nel vero differenziale conservativo a monte, la quantità al centro della cellula viene trasportata dalla velocità sul suo bordo della cellula, nella direzione del suo movimento. In altre parole, se immagini di essere la quantità consigliata e ti siedi al centro della cellula, vieni trasportato nella cellula di fronte a te dalla velocità sul bordo della cellula. La valutazione del flusso sul bordo della cella come prodotto di densità e velocità, entrambi sul bordo della cella, non è corretta e non conserva la quantità consigliata.i Φ I - 1 / 2 Φ i + 1 / 2ρiΦi1/2Φi+1/2

I flussi in entrata e in uscita sono valutati come:

Φi+1/2=ui+1/2+|ui+1/2|2ρi+ui+1/2|ui+1/2|2ρi+1

Φi1/2=ui1/2+|ui1/2|2ρi1+ui1/2|ui1/2|2ρi

Il suddetto trattamento del differenziamento del flusso garantisce la certezza a monte. In altre parole, regola la direzione di differenziazione in base al segno di velocità.

Il criterio di stabilità Courant-Friedrichs-Lewy (CFL), quando si fa la differenza di tempo con il semplice primo ordine, la differenza di Eulero in avanti viene data come:

μ=uΔtΔx1

Si noti che in 2 dimensioni, il criterio di stabilità CFL è più rigoroso:

μ=cΔtΔx12

dove è magnitudine della velocità, .cu2+v2

Alcune cose da considerare Questo schema può essere o non essere appropriato per la tua applicazione a seconda del tipo di processo che stai simulando. Questo schema è altamente diffusivo ed è appropriato per flussi molto fluidi senza forti pendenze. È anche più diffusivo per passaggi di tempo più brevi. Nel caso 1-D, otterrai una soluzione quasi esatta se i gradienti sono molto piccoli e se . Nel caso 2-D, ciò non è possibile e la diffusione è anisotropica.μ=1

Se il tuo sistema fisico considera onde d'urto o gradienti elevati di altro tipo, dovresti esaminare la differenza a monte di ordine superiore (ad es. 3 ° o 5 ° ordine). Inoltre, potrebbe valere la pena esaminare la famiglia di schemi di Flux Corrected Transport (Zalesak, 1979, JCP); correzione anti-diffusione per il suddetto schema di Smolarkiewicz (1984, JCP); Famiglia di schemi MPDATA di Smolarkiewicz (1998, JCP).

Per la differenza di tempo, la differenza di Eulero in avanti del 1 ° ordine può essere soddisfacente per le tue esigenze. Altrimenti, esamina i metodi di ordine superiore come Runge-Kutta (iterativo) o Adams-Bashforth e Adams-Moulton (multi-livello).

Vale la pena esaminare alcuni libri di testo a livello di laurea CFD per un riepilogo degli schemi sopra menzionati e molti altri.


Grazie per la risposta. Ora vedo chiaramente il controvento :). Proverò ad implementarlo ora! Mi chiedo, il fatto che cambi ad ogni momento influenza la stabilità? u
tiam,

1
No, purché soddisfi il vincolo CFL. È possibile eseguire un time- adattivo, ovvero , oppure impostare la costante base alla velocità massima prevista nel problema. Ricorda che varie combinazioni di metodi di differenziazione del tempo e dello spazio ti daranno diversi vincoli CFL. Δt=Δxmax(u)Δt
milancurcic,

è un po 'strano, ho implementato lo schema e sono riuscito a inviare un impulso da un limite all'altro e viceversa (invertendo la velocità). Ma non appena dico che inizia a richiedere un timestep estremamente piccolo, anche se la velocità è inferiore a 1. L'impostazione del timestep dinamico come definito sopra non ha aiutato neanche. u=Cρ
Tiam,

O forse non è affatto strano, forse il tuo commento sopra non ha governato il caso in cui e siete accoppiati. uρ
Tiam,

I vincoli di stabilità e l'ordine di accuratezza sono formalmente derivati e validi per l'equazione di avvezione linearizzato - dove non dipende . In passato, ho accoppiato con successo questa equazione con equazioni di Navier-Stokes non lineari per u, v. In questo caso i vincoli di stabilità formali non sono soddisfatti, ma mantenere gli incrementi ragionevolmente bassi funziona. Quando imposti , la tua equazione diventa . Dovresti studiare (se possibile) qual è il criterio di stabilità per la tua equazione. uρu=Cρρt=C[(ρ)2+ρ2ρ]
milancurcica,

13

(ddx)

ρioK+1-ρioKΔt+ρioKUioK-ρio-1KUio-1KΔX=0

ΔXΔt


ρK+1Δt

Non sono del tutto sicuro ... Penso che dovresti controllare l'errore di troncamento per assicurarti che si avvicini correttamente al PDE. Puoi prendere in considerazione gli altri schemi impliciti su questo sito Web: web.mit.edu/dongs/www/publications/projects/…
Paul
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.