Metodo upwind a due dimensioni

Messaggioda tranesend » 21/03/2017, 23:31

Ho un problema nello scrivere il codice che risolve l'equazione differenziale
$$ \partial_t{u} + c1(x,y)\partial_x{u} + c2(x,y)\partial_y{u}=0 $$ con dato iniziale $u_0(x,y)$ e con condizione al bordo di Dirichlet $g(x,y)$ su un dominio $\Omega=:$ $[a,b]$ x $ [c,d]$

Poiché il campo di velocità $c=(c_1(x,y),c_2 (x,y))$ il metodo upwind consisterà nell'utilizzare le differenze finite all'indietro per la variabile $x$ nel caso di $c_1 >0$, e le differenze finite in avanti nel caso di $c_1<=0$. E lo stesso vale per la seconda componente (ovviamente tutto rispetto alla variabile $y$). E fin qui tutto ok.
Il problema mio è il dato al bordo e principalmente nei vertici del quadrato.

Cioè prendiamo il lato sinistro del quadrato che saranno i punti del tipo $[a,z_i]$ con $z_i \in [c,d]$.
Ora prendo un nodo qualsiasi $(x_i,y_j)$ che non sia un vertice. Per capire se è un nodo inflow o meno (quindi se ci devo calcolare o meno la condizione al bordo) moltiplico la velocità per il versore normale esterno (in questo caso $n=(-1,0)$) e verifico il segno. Quindi
se $c_1(x_i,y_j) \cdot (-1) > 0$ potrò dire che il nodo non è inflow e si potrà utilizzare lo schema upwind tranquillamente. Altrimenti bisognerà utilizzare il dato iniziale. Ora arriva il problema dei vertici.
Ecco quale è il mio problema:
Se prendo il nodo $(x_1,y_1)$ che corrisponde al primo vertice in basso a sinistra del quadrato, non capisco come devo procedere. A parte il fatto che la normale esterna sui vertici non è definita, ma credo che questo si possa bypassare dicendo che senza perdita di generalità la normale esterna è sempre $(-1,0)$.
Quando devo capire se il nodo è inflow o meno, e faccio lo stesso ragionamento, quindi se
$$c_1(x_1,y_1)*(-1)>0$$ allora si potrà usare upwind. Ma qui arriva il problema. Infatti upwind in avanti nella prima variabile lo posso calcolare. Nel caso in cui $c_2(x_1,y_1)>0$ come faccio ad utilizzare UPWIND all'indietro se ho solo nodi in avanti??... O sbaglio ragionamento per i vertici? Per favore datemi una mano, che è tutto oggi che ci combatto
tranesend
Junior Member
Junior Member
 
Messaggio: 50 di 137
Iscritto il: 19/09/2013, 11:02

Re: Metodo upwind a due dimensioni

Messaggioda Raptorista » 27/03/2017, 21:29

Non sono sicuro di aver capito bene la domanda, ma provo comunque a rispondere: un nodo vertice è di inflow solo se è di inflow "in entrambe le variabili spaziali" nel senso, per il caso del vertice \((a,c)\), se l'avvezione va "verso destra" e "verso l'alto". Gli altri tre casi sono tutti di outflow. Puoi verificare la cosa facendo il test che descrivi con entrambe le normali dei lati che condividono il vertice.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4295 di 9616
Iscritto il: 28/09/2008, 19:58


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite