Stabilità del risolutore OFET: errori dovuti alla griglia, alla convergenza e alla simulazione.Stabilità del risolutore OFET: errori dovuti alla griglia, alla convergenza e alla simulazione.
In questa sezione viene spiegato come individuare i problemi di stabilità e di convergenza del risolutore nelle simulazioni OFET bidimensionali. Le simulazioni unidimensionali sono generalmente stabili e veloci, ma con l’aumento della dimensionalità, da 1D a 2D e 3D, il numero di equazioni accoppiate e di termini di collegamento aumenta rapidamente. Pertanto, scelte inadeguate della griglia, valori di mobilità non realistici, contatti poco definiti o incrementi di polarizzazione eccessivamente ampi possono causare la mancata convergenza del risolutore drift-diffusion.In questa sezione viene spiegato come individuare i problemi di stabilità e di convergenza del risolutore nelle simulazioni OFET bidimensionali. Le simulazioni unidimensionali sono generalmente stabili e veloci, ma con l’aumento della dimensionalità, da 1D a 2D e 3D, il numero di equazioni accoppiate e di termini di collegamento aumenta rapidamente. Pertanto, scelte inadeguate della griglia, valori di mobilità non realistici, contatti poco definiti o incrementi di polarizzazione eccessivamente ampi possono causare la mancata convergenza del risolutore drift-diffusion.
In questa sezione, manipoleremo intenzionalmente alcune configurazioni semplici per indurre situazioni di non convergenza, per poi analizzare le cause di tali problemi e individuare le soluzioni. Riproducendo voi stessi queste situazioni di errore comuni, imparerete a riconoscere i sintomi e ad applicare le opportune correzioni (ad esempio, modificando la griglia, riducendo l’ampiezza del passo di correzione o moderando i parametri materiali estremi) per ottenere una soluzione stabile.In questa sezione, manipoleremo intenzionalmente alcune configurazioni semplici per indurre situazioni di non convergenza, per poi analizzare le cause di tali problemi e individuare le soluzioni. Riproducendo voi stessi queste situazioni di errore comuni, imparerete a riconoscere i sintomi e ad applicare le opportune correzioni (ad esempio, modificando la griglia, riducendo l’ampiezza del passo di correzione o moderando i parametri materiali estremi) per ottenere una soluzione stabile.
1. Instabilità del risolutore dovuta a una mobilità irrealisticamente bassa.1. Instabilità del risolutore dovuta a una mobilità irrealisticamente bassa.
In molti casi, i problemi di convergenza derivano da valori di input non fisiciPer illustrare questo concetto, abbiamo impostato intenzionalmente la mobilità dei portatori di carica a 0 e analizzare gli errori risultanti. Naturalmente, la mobilità in un materiale reale non è mai veramente pari a zero: ha sempre un valore finito, ma questo esempio illustra cosa succede quando al risolutore viene fornito un parametro non realistico. La mobilità è configurata in
Editor dei parametri elettrici dei transistor OFETSe il valore è impostato al di fuori di un intervallo fisicamente significativo, le equazioni di deriva-diffusione possono diventare instabili o non convergere.
In molti casi, i problemi di convergenza derivano da valori di input non fisiciPer illustrare questo concetto, abbiamo impostato intenzionalmente la mobilità dei portatori di carica a 0 e analizzare gli errori risultanti. Naturalmente, la mobilità in un materiale reale non è mai veramente pari a zero: ha sempre un valore finito, ma questo esempio illustra cosa succede quando al risolutore viene fornito un parametro non realistico. La mobilità è configurata in
Editor dei parametri elettrici dei transistor OFETSe il valore è impostato al di fuori di un intervallo fisicamente significativo, le equazioni di deriva-diffusione possono diventare instabili o non convergere.
Aprire l’editor dei parametri elettrici (finestra principale → scheda Dispositivo) e impostare la mobilità su 0, come mostrato in ??. Quindi, avviare la simulazione. Dovrebbe comparire una schermata di errore simile a ??, con due riquadri rossi: un riquadro verticale attorno al riepilogo dei residui e un riquadro orizzontale vicino al messaggio di errore.Aprire l’editor dei parametri elettrici (finestra principale → scheda Dispositivo) e impostare la mobilità su 0, come mostrato in ??. Quindi, avviare la simulazione. Dovrebbe comparire una schermata di errore simile a ??, con due riquadri rossi: un riquadro verticale attorno al riepilogo dei residui e un riquadro orizzontale vicino al messaggio di errore.
Se si osserva la casella rossa verticale, si può notare che f()=2.54e2 è seguito da altre righe in cui f() è molto grande (ad esempio, 1e15, 1e5, 1e8, 1e7). In questo caso, f() rappresenta l’errore residuo del risolutore: una misura di quanto bene le equazioni accoppiate siano attualmente soddisfatte. Idealmente, l’errore residuo del risolutore dovrebbe essere esattamente zero, anche se in pratica questo non è mai possibile. Un errore residuo compreso tra 1e−10 e 1e−8 indica un’ottima convergenza, mentre valori intorno a 1e−1 sono ancora accettabili. Al contrario, errori residui nell’ordine delle centinaia (ad esempio, 2.54e2) – soprattutto se accompagnati da valori dei componenti grandi come 1e15 – sono un chiaro segnale che il risolutore sta avendo difficoltà e che il sistema è diventato instabile.Se si osserva la casella rossa verticale, si può notare che f()=2.54e2 è seguito da altre righe in cui f() è molto grande (ad esempio, 1e15, 1e5, 1e8, 1e7). In questo caso, f() rappresenta l’errore residuo del risolutore: una misura di quanto bene le equazioni accoppiate siano attualmente soddisfatte. Idealmente, l’errore residuo del risolutore dovrebbe essere esattamente zero, anche se in pratica questo non è mai possibile. Un errore residuo compreso tra 1e−10 e 1e−8 indica un’ottima convergenza, mentre valori intorno a 1e−1 sono ancora accettabili. Al contrario, errori residui nell’ordine delle centinaia (ad esempio, 2.54e2) – soprattutto se accompagnati da valori dei componenti grandi come 1e15 – sono un chiaro segnale che il risolutore sta avendo difficoltà e che il sistema è diventato instabile.
La casella rossa orizzontale indica in genere il motivo per cui l’esecuzione si interrompe: Holes asking for 3e5 but only defined in range [min, max]. Ciò significa che il livello di quasi-Fermi calcolato ha superato l’intervallo tabulato. Prima dell’avvio, il modello pre-tabula le relazioni, come il livello di quasi-Fermi in funzione della densità di portatori, su un ampio intervallo di energia, un intervallo molto più ampio di quanto ci si aspetterebbe normalmente in un dispositivo. Quando il risolutore diventa instabile, il modello può richiedere valori irrealistici che vanno ben oltre tale intervallo; a quel punto, il risolutore non è in grado di calcolare le quantità necessarie e si interrompe.La casella rossa orizzontale indica in genere il motivo per cui l’esecuzione si interrompe: Holes asking for 3e5 but only defined in range [min, max]. Ciò significa che il livello di quasi-Fermi calcolato ha superato l’intervallo tabulato. Prima dell’avvio, il modello pre-tabula le relazioni, come il livello di quasi-Fermi in funzione della densità di portatori, su un ampio intervallo di energia, un intervallo molto più ampio di quanto ci si aspetterebbe normalmente in un dispositivo. Quando il risolutore diventa instabile, il modello può richiedere valori irrealistici che vanno ben oltre tale intervallo; a quel punto, il risolutore non è in grado di calcolare le quantità necessarie e si interrompe.
In sintesi, impostando la mobilità su un valore non fisico (μ = 0), abbiamo forzato le equazioni a operare in un regime privo di significato fisico, e di conseguenza il metodo numerico fallisce: si ottengono residui elevati, seguiti da una richiesta di valori al di fuori delle tabelle precalcolate e, infine, si verifica un errore. È importante sottolineare che questo risultato non è dovuto a una debolezza del modello o a un errore del software. Inserendo parametri non fisici, il risolutore viene portato in un regime in cui non esiste alcuna soluzione matematicamente o fisicamente valida, e quindi non può fornire un risultato significativo.In sintesi, impostando la mobilità su un valore non fisico (μ = 0), abbiamo forzato le equazioni a operare in un regime privo di significato fisico, e di conseguenza il metodo numerico fallisce: si ottengono residui elevati, seguiti da una richiesta di valori al di fuori delle tabelle precalcolate e, infine, si verifica un errore. È importante sottolineare che questo risultato non è dovuto a una debolezza del modello o a un errore del software. Inserendo parametri non fisici, il risolutore viene portato in un regime in cui non esiste alcuna soluzione matematicamente o fisicamente valida, e quindi non può fornire un risultato significativo.
2. Instabilità del risolutore dovuta a una mobilità eccessivamente elevata e non realistica.2. Instabilità del risolutore dovuta a una mobilità eccessivamente elevata e non realistica.
In questo esempio, abbiamo impostato la mobilità dei portatori di carica su μ = 1×106 m²·V⁻¹·s⁻¹. Si tratta di un valore intenzionalmente non realistico per un modello di deriva-diffusione dei semiconduttori: una grandezza di questo tipo potrebbe essere associata a regimi di conduzione metallica piuttosto che al trasporto per salto o a bande in semiconduttori organici o convenzionali. In pratica, non si utilizzerebbe un valore così elevato nelle simulazioni di OFET.In questo esempio, abbiamo impostato la mobilità dei portatori di carica su μ = 1×106 m²·V⁻¹·s⁻¹. Si tratta di un valore intenzionalmente non realistico per un modello di deriva-diffusione dei semiconduttori: una grandezza di questo tipo potrebbe essere associata a regimi di conduzione metallica piuttosto che al trasporto per salto o a bande in semiconduttori organici o convenzionali. In pratica, non si utilizzerebbe un valore così elevato nelle simulazioni di OFET.
Se si esegue la simulazione con questa impostazione, si può osservare che il risolutore fatica a raggiungere la convergenza. Nella finestra di visualizzazione dei residui (la casella che mostra f()) si noteranno errori estremamente elevati, ad esempio 1e24, 1e19, 1e21, che non diminuiscono. È normale che i residui siano elevati durante le prime iterazioni, mentre il risolutore cerca uno stato stabile, ma dovrebbero poi stabilizzarsi rapidamente verso valori più piccoli. La persistenza di residui molto elevati è un chiaro segnale che il sistema è diventato numericamente instabile o non realistico a causa dei parametri scelti.Se si esegue la simulazione con questa impostazione, si può osservare che il risolutore fatica a raggiungere la convergenza. Nella finestra di visualizzazione dei residui (la casella che mostra f()) si noteranno errori estremamente elevati, ad esempio 1e24, 1e19, 1e21, che non diminuiscono. È normale che i residui siano elevati durante le prime iterazioni, mentre il risolutore cerca uno stato stabile, ma dovrebbero poi stabilizzarsi rapidamente verso valori più piccoli. La persistenza di residui molto elevati è un chiaro segnale che il sistema è diventato numericamente instabile o non realistico a causa dei parametri scelti.
In sintesi: evitate valori di mobilità eccessivamente elevati e irrealistici. Valori di coefficiente di trasporto troppo alti rendono il sistema di equazioni alle derivate parziali molto rigido, causando una scarsa stabilità e la mancata convergenza. Utilizzate valori di μ fisicamente plausibili per il vostro sistema di materiali e ripetete la simulazione con incrementi di polarizzazione moderati per ripristinare un comportamento stabile.In sintesi: evitate valori di mobilità eccessivamente elevati e irrealistici. Valori di coefficiente di trasporto troppo alti rendono il sistema di equazioni alle derivate parziali molto rigido, causando una scarsa stabilità e la mancata convergenza. Utilizzate valori di μ fisicamente plausibili per il vostro sistema di materiali e ripetete la simulazione con incrementi di polarizzazione moderati per ripristinare un comportamento stabile.
3. Strutture dei dispositivi inadeguate e contatti non correttamente realizzati.3. Strutture dei dispositivi inadeguate e contatti non correttamente realizzati.
In questo esempio, apriamo l’editor dei contatti e impostiamo la larghezza del contatto della sorgente a un valore molto piccolo (vedere ??), precisamente un micron. A prima vista, questo potrebbe non sembrare un problema, ma crea una sottile difficoltà: la simulazione si basa su una griglia a differenze finite, in cui quantità come il campo elettrico e la densità di portatori vengono calcolate solo nei punti definiti della griglia.In questo esempio, apriamo l’editor dei contatti e impostiamo la larghezza del contatto della sorgente a un valore molto piccolo (vedere ??), precisamente un micron. A prima vista, questo potrebbe non sembrare un problema, ma crea una sottile difficoltà: la simulazione si basa su una griglia a differenze finite, in cui quantità come il campo elettrico e la densità di portatori vengono calcolate solo nei punti definiti della griglia.
Se si esamina l’editor della griglia elettrica (che si trova nella scheda «Elettrica»), si noterà che questo contatto ultra-sottile, di un micron, si trova tra i punti della griglia (vedere ??). Di conseguenza, il contatto non viene correttamente «ricalcato» dalla griglia a differenze finite e non viene applicato in modo appropriato alla struttura del dispositivo. Ciò crea una discrepanza tra la geometria definita e la griglia numerica, impedendo alla simulazione di convergere.Se si esamina l’editor della griglia elettrica (che si trova nella scheda «Elettrica»), si noterà che questo contatto ultra-sottile, di un micron, si trova tra i punti della griglia (vedere ??). Di conseguenza, il contatto non viene correttamente «ricalcato» dalla griglia a differenze finite e non viene applicato in modo appropriato alla struttura del dispositivo. Ciò crea una discrepanza tra la geometria definita e la griglia numerica, impedendo alla simulazione di convergere.
Per risolvere questo problema, è possibile aumentare lo spessore del contatto in modo che si sovrapponga ad almeno un punto della griglia, oppure aumentare la densità della griglia (ovvero aggiungere più punti) nella griglia a differenze finite, in modo che il contatto venga rilevato correttamente.Per risolvere questo problema, è possibile aumentare lo spessore del contatto in modo che si sovrapponga ad almeno un punto della griglia, oppure aumentare la densità della griglia (ovvero aggiungere più punti) nella griglia a differenze finite, in modo che il contatto venga rilevato correttamente.
4. Densità della maglia, convergenza e raffinamento eccessivo.4. Densità della maglia, convergenza e raffinamento eccessivo.
Un’idea sbagliata piuttosto diffusa quando si inizia a lavorare con modelli basati sul metodo delle differenze finite è che un numero maggiore di punti della griglia produca automaticamente risultati più accurati. Il ragionamento è spesso il seguente: «cinque punti della griglia non possono essere sufficienti, ma mille punti devono garantire risultati eccellenti». In realtà, però, non è così.Un’idea sbagliata piuttosto diffusa quando si inizia a lavorare con modelli basati sul metodo delle differenze finite è che un numero maggiore di punti della griglia produca automaticamente risultati più accurati. Il ragionamento è spesso il seguente: «cinque punti della griglia non possono essere sufficienti, ma mille punti devono garantire risultati eccellenti». In realtà, però, non è così.
OghmaNano utilizza un metodo di discretizzazione chiamato schema di Scharfetter–Gummel, che interpola con precisione quantità come la densità di portatori e il potenziale tra i punti della griglia. Il risolutore non si limita a ipotizzare un comportamento lineare tra i nodi, ma utilizza un approccio di adattamento esponenziale che descrive con elevata precisione la fisica del trasporto, anche su griglie relativamente grossolane. Ciò significa che è possibile ottenere una buona precisione utilizzando un numero sorprendentemente limitato di punti.OghmaNano utilizza un metodo di discretizzazione chiamato schema di Scharfetter–Gummel, che interpola con precisione quantità come la densità di portatori e il potenziale tra i punti della griglia. Il risolutore non si limita a ipotizzare un comportamento lineare tra i nodi, ma utilizza un approccio di adattamento esponenziale che descrive con elevata precisione la fisica del trasporto, anche su griglie relativamente grossolane. Ciò significa che è possibile ottenere una buona precisione utilizzando un numero sorprendentemente limitato di punti.
Aumentare la densità della griglia non si limita a prolungare il tempo di esecuzione, ma può effettivamente ridurre la stabilità e la precisione. Una griglia più fine genera un sistema di equazioni più ampio, rendendo il problema numerico più difficile da risolvere. Di conseguenza, la matrice diventa più rigida, i residui possono aumentare e il risolutore potrebbe avere difficoltà a convergere.Aumentare la densità della griglia non si limita a prolungare il tempo di esecuzione, ma può effettivamente ridurre la stabilità e la precisione. Una griglia più fine genera un sistema di equazioni più ampio, rendendo il problema numerico più difficile da risolvere. Di conseguenza, la matrice diventa più rigida, i residui possono aumentare e il risolutore potrebbe avere difficoltà a convergere.
Esiste sempre un compromesso tra la necessità di rappresentare accuratamente i fenomeni fisici, di mantenere un tempo di simulazione ragionevole e di evitare errori numerici superflui. Le figure riportate di seguito illustrano questo concetto: con 100 punti della griglia distribuiti sull’intero dispositivo, il risolutore inizialmente indica valori residui molto elevati (ad esempio, 1e6, 1e5). Solo dopo numerose iterazioni i valori si stabilizzano, raggiungendo valori ragionevoli di f(). Questa instabilità deriva dal fatto che la griglia è eccessivamente fitta, il che rende difficile per il risolutore gestire il sistema.Esiste sempre un compromesso tra la necessità di rappresentare accuratamente i fenomeni fisici, di mantenere un tempo di simulazione ragionevole e di evitare errori numerici superflui. Le figure riportate di seguito illustrano questo concetto: con 100 punti della griglia distribuiti sull’intero dispositivo, il risolutore inizialmente indica valori residui molto elevati (ad esempio, 1e6, 1e5). Solo dopo numerose iterazioni i valori si stabilizzano, raggiungendo valori ragionevoli di f(). Questa instabilità deriva dal fatto che la griglia è eccessivamente fitta, il che rende difficile per il risolutore gestire il sistema.
👉 Prossimi passi:👉 Prossimi passi:
- Torna a introduzione all’elettronica organica per una panoramica più completa dell’argomento. Torna a introduzione all’elettronica organica per una panoramica più completa dell’argomento.