next up previous contents
Next: Imposizione delle condizioni al Up: Il codice di calcolo Previous: Calcolo e assemblaggio dei   Indice

Calcolo del termine noto

Il contributo locale (11) al termine noto $ f$ nell'equazione $ i$-esima del sistema (9) per un nodo $ i$ interno al dominio $ {\cal S}$ o appartenente a $ \Gamma_u$ ha espressione:

$\displaystyle f_i^{(e)} = \int \!\!\! \int_{{\cal S}^{(e)}} \; \frac{p}{h} \xi_i dS^{(e)}$ (16)

Nel caso in esame, si è assunto $ p/h=-5/4 \pi^2$   sen$ (\pi x)$   cos$ (\pi/2 \; x)$. L'integrale (16) non è facilmente risolubile in modo esatto e ci limitiamo a ricavarne un'approssimazione per via numerica. Se la discretizzazione del dominio è sufficientemente fitta, la funzione $ p/h$ non varia molto all'interno di $ {\cal S}^{(e)}$ e può quindi essere trattata come una costante. Approssimiamo $ p/h$ con il valore che essa assume nel punto $ (x_{G^{(e)}}, y_{G^{(e)}})$ baricentro dell'elemento $ e$ ottenendo:

$\displaystyle f_i^{(e)} = -\frac{5}{4} \pi^2$   sen$\displaystyle \left(\pi x_{G^{(e)}}\right)$   cos$\displaystyle \left(\frac{\pi}{2} y_{G^{(e)}}\right) \int \!\!\! \int_{{\cal S}^{(e)}} \; \xi_i dS^{(e)} = -\frac{5 \Delta}{12} \pi^2$   sen$\displaystyle \left(\pi x_{G^{(e)}}\right)$   cos$\displaystyle \left(\frac{\pi}{2} y_{G^{(e)}}\right)$ (17)

che risulta uguale per tutti i nodo appartenenti al medesimo triangolo. Si dimostra che assemblare i contributi definiti dalla (17) è equivalente a calcolare la componente $ i$-esima del termine noto globale come:

$\displaystyle f_i = \frac{1}{3} \frac{p(x_i,y_i)}{h} \sum_e \Delta = -\frac{5}{12}$   sen$\displaystyle \left( \pi x_i \right)$   cos$\displaystyle \left( \frac{\pi}{2} y_i \right) \sum_e \Delta$ (18)

dove la sommatoria è estesa a tutti i triangoli che hanno un vertice nel nodo $ i$. In sostanza, si può dire che il termine noto è pari al prodotto tra il termine noto della (1) e l'area di afferenza del nodo $ i$, cioè 1/3 dell'area del patch di triangoli che condividono il nodo $ i$. Può essere quindi conveniente predisporre un vettore contenente l'area di afferenza relativa a ciascun nodo della griglia di calcolo.

Per i nodi situati lungo il boundary $ \Gamma_q$ il termine noto locale ha espressione:

$\displaystyle f_i^{(e)} = \int \!\!\! \int_{{\cal S}^{(e)}} \; \frac{p}{h} \xi_i dS^{(e)} - \int_{\Gamma_q^{(e)}} q \xi_i \; d\Gamma^{(e)}$ (19)

Alla quantità calcolata mediante la procedura sopra illustrata per i nodi interni ad $ {\cal S}$ o situati su $ \Gamma_u$ va sottratto un integrale di bordo esteso a tutti gli elementi contenenti il nodo $ i$ e con un lato posto su $ \Gamma_q$. La funzione base $ \xi_i$ lungo il lato dell'elemento $ e$ per il quale $ i$ è uno degli estremi si riduce ad una retta che assume valore 1 su $ i$ e 0 in corrispondeza all'altro estremo (Figura 4). Utilizzando ancora la ``midpoint rule'' e ricordando l'espressione di $ q=-\pi$   cos$ (\pi/2 \; y)$, il secondo integrale della (19) risulta:

$\displaystyle \int_{\Gamma_q^{(e)}} q \xi_i d\Gamma^{(e)} = - \pi$   cos$\displaystyle \left( \frac{\pi}{2} y_{M^{(e)}} \right) \int_{\Gamma_q^{(e)}} \xi_i d\Gamma^{(e)} = - \frac{\pi l}{2}$   cos$\displaystyle \left( \frac{\pi}{2} y_{M^{(e)}} \right)$ (20)

dove $ M^{(e)}$ è il punto medio del lato di $ e$ posto su $ \Gamma_q$ ed $ l$ è la sua lunghezza. Come osservato in precedenza, l'assemblaggio dei contributi (20) al termine noto è equivalente a modificare la sua componente $ i$-esima (18) aggiungendo il contributo:

$\displaystyle -\frac{1}{2} q(y_i) \sum_e l = \frac{\pi}{2}$   cos$\displaystyle \left( \frac{\pi}{2} y_i \right) \sum_e l$ (21)

dove la sommatoria è estesa a tutti i triangoli che hanno un vertice nel nodo $ i$ ed un lato su $ \Gamma_q$. In altri termini, la condizione di Neumann (3) si impone modificando il termine noto dei nodi situati su $ \Gamma_q$ ed aggiungendovi l'opposto di $ q$ calcolato in $ i$ moltiplicato per la lunghezza del segmento afferente al nodo $ i$ lungo $ \Gamma_q$, cioè 1/2 della lunghezza totale dei segmenti di bordo che condividono il nodo $ i$. Anche in questo caso può essere conveniente predisporre un vettore contenente la lunghezza del bordo afferente a ciascun nodo su cui viene assegnata una condizione di Neumann.


next up previous contents
Next: Imposizione delle condizioni al Up: Il codice di calcolo Previous: Calcolo e assemblaggio dei   Indice
Massimiliano Ferronato 2006-11-13