Come dovrebbero essere trattati i coefficienti non costanti con lo schema di controvento del primo ordine a volume finito?


11

A partire dall'equazione di avanzamento in forma di conservazione.

ut=(a(x)u)x

dove è una velocità che dipende dallo spazio e è una concentrazione di una specie che viene conservata.a(x)u

Discretizzare il flusso (dove il flusso , è definito sui bordi delle celle tra i punti di mesh) dà, f=a(x)u

ut=1h(fj12fj+12)

Usando un primo ordine controvento si approssimano i flussi come,

fj12=a(xj12)uj1fj+12=a(xj+12)uj
Che fornisce,
ut=1h(a(xj12)uj1a(xj+12)uj)

Se era costante, ciò si ridurrebbe al familiare schema controvento, ovvero .u t = aa(x)ut=ah(uj1uj)

La mia domanda è: come possiamo trattare i coefficienti non costanti dell'equazione di avanzamento? La velocità è definita nei centri cellulari, quindi un approccio semplice sarebbe il seguente,

a(xj12)a(xj1)a(xj+12)a(xj)

Questo è il mio approccio preferito perché è molto semplice da implementare.

Tuttavia, potremmo anche usare (suppongo) uno schema di media per definire la velocità ai bordi della cella,

a(xj12)12a(xj1)+12a(xj)a(xj+12)12a(xj)+12a(xj+1)

Nel libro di LeVeque dice:

Finora abbiamo ipotizzato che la velocità variabile sia specificata da un valore costante all'interno della j-esima cella della griglia. In alcuni casi è più naturale supporre invece che una velocità sia specificata su ciascuna interfaccia di cella.a j a j - 1a(x)ajaj12

Ma non elabora molto dopo. Qual è un approccio comune?

Sto risolvendo un problema di conservazione (sto usando l'equazione di avanzamento come equazione di continuità) quindi voglio assicurarmi che, dopo aver applicato la discretizzazione, la proprietà di conservazione sia preservata. Vorrei evitare qualsiasi sorpresa nascosta riguardo a questi coefficienti variabili! Qualcuno ha alcuni commenti e indicazioni generali?


Aggiornamento Di seguito ci sono due risposte davvero valide e potrei sceglierne solo una :(

Risposte:


4

A seconda di che tipo di sistema si sta guardando, può essere più conveniente di prendere in considerazione la velocità come costante a tratti all'interno di ogni cellula, o che è definito alle interfacce cellulari. Ad esempio, in meteorologia, le griglie sfalsate sono abbastanza comuni, dove la pressione potrebbe essere definita all'interno delle cellule e la velocità alle interfacce cellulari. Si potrebbe facilmente pensare alla velocità definita all'interno delle celle. Tutto sommato: la scelta della rappresentazione non dovrebbe influire sulla convergenza del metodo *, a condizione che la discretizzazione sia stabile e coerente.a

La cosa più importante (e l'hai già toccato nella tua domanda) è che il sistema discretizzato è ancora conservativo. A condizione che il tuo schema possa essere scritto nel modulo

ujt=Fj12(uj1,uj)Fj+12(uj,uj+1)

allora dovrebbe essere conservativo, da allora

tudx=jujtδx=j(Fj12Fj+12)δx=(F12FN+12)δx .

Il tuo approccio semplice dovrebbe funzionare bene, così come la media della velocità tra le celle per definirla sulle interfacce delle celle, a condizione che la velocità sia sempre positiva. Inoltre, non credo che la media ti garantirà una maggiore precisione, quindi hai ragione a preferire il modo semplice.

Se stai anche risolvendo la velocità e hai un sistema di equazioni, potresti aver bisogno di stare più attento. Allo stesso modo, se stai risolvendo un PDE iperbolico non lineare e stai usando i limitatori di flusso, devi essere ancora più cauto.

* Tuttavia, per un sistema di PDE iperbolici, l'uso di griglie sfalsate può migliorare sostanzialmente la dispersione / diffusione artificiale. Se vuoi saperne di più, consulta le griglie C di Arakawa o consulta il capitolo 4 di questo libro .


Grazie per aver spiegato. E la tua intuizione è corretta; Sto risolvendo un sistema di equazioni in cui una delle equazioni è la velocità (un PDE delle altre variabili). Il sistema di equazioni è solo 1D, sto pianificando di utilizzare un metodo di bolina adattivo del 1 ° ordine (può capovolgere tra centrale del 2 ° ordine e bolina) forse con adattamento esponenziale. Non sto usando i limitatori di flusso, ma il sistema non è lineare. Devo essere "più attento" in questa situazione?
boyfarrell,

Tutto dipende se ti aspetti che si formino onde d'urto e simili, se c'è la possibilità che la velocità scenda al di sotto dello zero in alcune regioni, o se la velocità potrebbe diventare abbastanza elevata da farti infrangere dalla condizione di Courant-Friedrichs-Lewy ad un certo punto. Detto questo, proverei prima l'approccio semplice per vedere se funziona, cosa che potrebbe benissimo fare. Se fallirà, lo farà in modo spettacolare e inequivocabile, quindi non credo che dovresti preoccuparti di avere qualcosa di sbagliato sotto il tuo radar.
Daniel Shapero,

Sì, mi aspetto che la velocità sia solo diversa da zero solo al centro del mio dominio e quindi si avvicini rapidamente a zero quando ci si allontana dal centro. Sto scegliendo il passo temporale in modo che la condizione CFL sia soddisfatta (usando la velocità massima), la mesh sia fissa. Quali sono i criteri per un'onda d'urto? Non sto anticipando di vederlo (ma non lo sai mai).
boyfarrell,

5

Altri hanno detto tutto, ma volevo solo aggiungere un punto semplice, ma a volte sottile. La discretizzazione sopravento rimane prudente finché si utilizza un'interpolazione coerente di sui confini della cella.a(x)

Ciò che intendo per coerenza è che l' unica condizione che l'interpolazione deve soddisfare è

ai+1/2+=ai+1/2

In altre parole, fintanto che il metodo di interpolazione è continuo oltre i confini delle celle, la discretizzazione è garantita per rimanere conservativa.

Questo potrebbe non sembrare un grosso problema qui in 1D (e non dovrebbe) ma può causare problemi alle interfacce grossolane su griglie AMR multi-livello.


Per quanto riguarda la coerenza. Per un approccio a volume finito centrato sulla cellula. Se ho scelto di utilizzare (ad esempio) un'interpolazione lineare per stimare i valori dei vertici dello sconosciuto, dovrei utilizzare lo stesso metodo di interpolazione per stimare il valore del coefficiente ? È corretto "mescolare" le stime? Ad esempio, sarebbe valido assumere ma usare l'interpolazione per trovare ? uj+12a(xj+12)a(xj+12)a(xj+1)uj+12
boyfarrell,

@boyfarrell Sarebbe ok nel senso che il metodo rimane per essere conservativo. Tuttavia, influisce sull'accuratezza della soluzione. Spesso, ad esempio negli schemi ENO, si approssima l'intera funzione di flusso e non la velocità e la soluzione separatamente.
GradGuy,

4

È possibile utilizzare qualsiasi tipo di interpolazione per determinare e il metodo rimarrà conservativo.a(xj12)

Per capire perché è così, considera che la definizione analitica di conservatore è quella

tDu(x)dx=Da(x)u(x)dS,

dove è il dominio problematico. Ciò afferma che la variazione della quantità conservata è uguale al flusso al confine e che segue immediatamente dall'integrazione della legge sulla conservazione.D

Se la nostra discretizzazione è nella forma

ut(xj)=1h(a(xj12)uj12a(xj+12)uj+12)

dove sono i nostri punti della griglia, e , , allora l'equivalente dichiarazione di conservazione discreta èx1,,xnD=[c,d]c=x12d=xn+12

1hj=1n(a(xj12)uj12a(xj+12)uj+12)=a(x12)u12a(xn+12)un+12,

e si può facilmente osservare che ciò si mantiene espandendo la somma sul lato sinistro. Tieni presente che, nel tuo caso con riavvolgimento, e , anche se dovrebbe essere notato che questo schema è solo uno schema controvento appropriato se è sempre positivo.uj+1uj12=uj1a(x)uuj+12=uja(x)u

Per metodi di ordine superiore, a condizione che sia uniforme, si può semplicemente adattare un polinomio ai punti e valutare il polinomio in .a ( x j - r ) , , a ( x j + s ) a ( x j - 1a(x)a(xjr),,a(xj+s)a(xj12)

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.