• Non ci sono risultati.

2.3 TRASFORMAZIONE STELLA POLIGONO

3.1.4 Trasformazione della rete

La rete ottenuta deve essere ora semplicata. A tal ne, si impiega la trasformazione stella-triangolo descritta nel capitolo 2, che permette di passare da una rete di n nodi ad una di n − 1 nodi. Supponiamo di voler eliminare il nodo I (il nodo da eliminare viene indicato in rosso nelle gure): le conduttanze che lo connettono ai nodi 1,2,3,4 vengono rimosse e sostituite con sei conduttanze che connettono tali nodi tra di loro:

Figura 3.12:

Per trasformare la rete, modichiamo la mappa in memoria:

Si ricorda che la generica conduttanza GXY che viene aggiunta alla rete vale: GXY = GXGY Z P K=1 GK

dove Z è il numero di conduttanze collegate al nodo eliminato. E' possibile che tra due punti X e Y adiacenti al punto eliminato fosse già presente una conduttanza prima della trasformazione. In questo caso, quest'ultima viene sommata a quella calcolata sopra.

La trasformazione della rete avviene iterando il processo descritto sopra, riducendo a ogni passo il numero di punti che compongono la rete e aggiornando la relativa mappa. Restano da stabilire la modalità con cui ad ogni passo viene scelto il punto da elimi- nare e la condizione di arresto dell'algoritmo, successivamente alla quale si ricaverà la conduttanza equivalente della rete.

3.1.4.1 Scelta del punto da eliminare

E' anzitutto necessario puntualizzare che la semplicazione della rete e l'eliminazio- ne del punto possono avvenire soltanto se a questo sono connessi almeno ad altri due punti tramite due conduttanze. Pertanto, tutti i punti che hanno un unico punto a loro adiacente non possono essere selezionati per essere eliminati. Nell'esempio mostrato in precedenza, gli unici punti selezionabili prima della trasformazione erano I e J, mentre dopo di essa divengono eliminabili anche i punti 1,3,4. Restano invece ineliminabili i punti 2,5,6, che hanno come unico punto adiacente J. Sono inoltre esclusi dall'elimina- zione i punti della rete che si trovano in corrispondenza dei contatti, in quanto il loro potenziale è ssato dal generatore di tensione esterno.

Se gli accorgimenti sopra vengono rispettati (e da questo punto in poi verrà dato per scontato che lo siano), qualsiasi sequenza di nodi selezionati ed eliminati porta la rete alla condizione di arresto che verrà esposta sotto. Ciò che cambia tra una sequenza e l'altra è il tempo impiegato dal programma per arrivare a tale condizione. Se si selezionano i nodi da eliminare senza una logica ben precisa, ad esempio seguendo l'ordine della lista "nodes", si osserva che il tempo di calcolo diviene piuttosto lungo, il che mal si concilia con la necessità di svolgere un elevato numero di esecuzioni dell'algoritmo per ottenere risultati accurati su reti anche molto complesse.

Ciò che si osserva eliminando i nodi secondo l'ordine con cui sono presenti nella lista "nodes" è che il programma diviene particolarmente lento nella parte centrale dell'esecu- zione. Nel momento in cui viene eliminato un punto avente k punti ad esso adiacenti, il

programma deve rimuovere dalla rete k conduttanze e calcolarek−1P

1

inuove conduttanze

da aggiungere poi ad essa, o da sommare ad altre già presenti. Osserviamo ora il graco sottostante (ottenuto impiegando valori di default ed inserendo 100 nanotubi nella strut- tura), che riporta in ascissa il numero di punti della rete ad ogni passo e in ordinata il valore medio di k :

Figura 3.14:

Si nota facilmente che il numero di punti adiacenti tende mediamente ad essere elevato nella parte centrale dell'esecuzione, e questo causa un rallentamento del programma. Proviamo a fornire un'interpretazione di questo comportamento: quando i nodi iniziano ad essere rimossi dalla rete, il valore medio di k tende ad aumentare, perchè ad ogni eliminazione il numero di nodi diminuisce di un'unità e il numero di conduttanze aumenta

di un valore pari ak−1P

1

i−k − p, dove p rappresenta il numero di conduttanze calcolate

che nisce in parallelo ad altre già presenti. Con l'aumento del valor medio di k, la rete diviene più tta e tendenzialmente aumenta il valore di p, ovvero aumenta la probabilità

che una o più delle k−1P

1

i conduttanze calcolate ad ogni passo niscano in parallelo a

conduttanze già presenti. Se ad un certo passo p aumenta al punto da far sì che si abbia

k−1

P

1

i−k −p < 0, il numero di conduttanze della rete diminuisce, e può diminuire pertanto anche il valor medio di k della rete.

Questo spiega almeno a livello intuitivo l'andamento "a campana" del graco. Di seguito viene riportato il graco di p in funzione del numero dei nodi, che conferma l'analisi appena esposta:

Figura 3.15:

Per rendere il programma più veloce è opportuno scegliere il nodo da eliminare in modo ragionato. Una possibilità consiste nel selezionare il nodo tra quelli che hanno il minor valore di k, ovvero quelli che minimizzano il tempo di esecuzione e che fanno sì che alla rete venga aggiunto un basso numero di conduttanze. Questa soluzione rende il programma molto più rapido e rete molto meno tta.

Torniamo all'esempio precedente, facendo riferimento alla gura 3.12. Dopo la rimozio- ne del punto I, i candidati all'eliminazione divengono 1, 3, 4, J. Quest'ultimo ha un valore di k pari a 6 e un valore di p pari a 3 (il valore di p può essere facilmente rilevato contando le connessioni presenti tra i nodi adiacenti, che in questo caso sono 1-3, 1-4, 3-4), pertanto

scegliendo di eliminare questo nodo si aggiungono alla retek−1P

1

i−k − p = 15 − 6 − 3 = 6 conduttanze. Scegliendo invece i punti 1,3,4, che hanno un valore di k pari a 3, si ag-

giungono k−1P

1

i−k − p = 3 − 3 − 3 = −3 conduttanze (ovvero il numero di resistenze

cala e la rete si semplica) e si svolgono un numero minore di operazioni per completare l'iterazione. Tali operazioni sono infatti date dall'aggiunta o dall'eliminazione di un re- sistore e dalla somma di due conduttanze in parallelo, pertanto sono complessivamente

k−1

P

1

i+k + p(24 nel caso k = 6 e 9 nel caso k = 3). Eliminando uno dei tre nodi diminui-

sce anche il valore di k del punto J, che passa da 6 a 5, e continuando a trasformare il circuito è facile vedere che torna ad essere 4, come era prima che venisse rimosso il nodo.

Concludiamo l'analisi fornendo dei graci analoghi a quelli delle gure 3.14 e 3.15, ottenuti risolvendo un'analoga rete con la procedura ottimizzata appena descritta:

Figura 3.16:

Dalle curve si nota quanto generalmente siani più bassi i valori medi di k e di p rispetto al caso precedente. Grazie a tale miglioria, il tempo di esecuzione per la semplicazio- ne della rete con valori di default passa dall'essere dell'ordine dei minuti all'ordine dei secondi.

3.1.4.2 Condizione di arresto e calcolo della conduttanza

equivalente

L'algoritmo iterativo si arresta quando non vi sono più punti eliminabili, ovvero punti con k 6= 1 che non siano posti in corrispondenza dei contatti. Al termine dell'esecuzione si ottiene, in generale, una rete di questo tipo:

Figura 3.18:

Per calcolare la conduttanza equivalente della rete, è suciente sommare i valori delle conduttanze che vanno da un contatto all'altro, ignorando invece tutte le altre, dato che ovviamente non forniscono alcun contributo alla conduzione.

Documenti correlati