Pagina 1 di 1

Metodo upwind a due dimensioni

MessaggioInviato: 21/03/2017, 23:31
da tranesend
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

Re: Metodo upwind a due dimensioni

MessaggioInviato: 27/03/2017, 21:29
da Raptorista
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.