Home Esempi Immagini dello schermo Manuale utente Logo di Bluesky YouTube ☰
OghmaNano Piattaforma di simulazione multifisica per dispositivi optoelettronici e sistemi fotonici SCARICA Guida rapida per iniziare.

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.

Electrical parameters editor with mobility set to 0, a non-physical value that prevents carrier transport and causes solver errors.
Mobilità nulla (μ = 0). Si tratta di una condizione non realistica che impedisce completamente il trasporto e, in genere, causa la mancata convergenza nei modelli di deriva-diffusione.Mobilità nulla (μ = 0). Si tratta di una condizione non realistica che impedisce completamente il trasporto e, in genere, causa la mancata convergenza nei modelli di deriva-diffusione.
Solver crash trace showing failure after setting mobility to zero.
Si è verificato un errore dovuto alla mobilità nulla. Quando μ = 0, le equazioni di trasporto diventano incoerenti, causando errori nella simulazione e, infine, il blocco del programma.Si è verificato un errore dovuto alla mobilità nulla. Quando μ = 0, le equazioni di trasporto diventano incoerenti, causando errori nella simulazione e, infine, il blocco del programma.

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.

Electrical parameters editor with an unrealistically high mobility set to 1×10^6 m²·V⁻¹·s⁻¹, which destabilises the solver.
Mobilità irrealistica (μ = 1 × 10⁶ m²·V⁻¹·s⁻¹). Coefficienti di trasporto estremamente elevati generano sistemi molto rigidi e spesso causano errori nel processo di calcolo.Mobilità irrealistica (μ = 1 × 10⁶ m²·V⁻¹·s⁻¹). Coefficienti di trasporto estremamente elevati generano sistemi molto rigidi e spesso causano errori nel processo di calcolo.
Solver error message caused by unrealistically high mobility settings that destabilise the numerical solution.
Si è verificato un errore dovuto a un valore di mobilità eccessivamente elevato. Valori di μ molto alti rendono il sistema di equazioni alle derivate parziali troppo rigido, causando instabilità e il fallimento del risolutore.Si è verificato un errore dovuto a un valore di mobilità eccessivamente elevato. Valori di μ molto alti rendono il sistema di equazioni alle derivate parziali troppo rigido, causando instabilità e il fallimento del risolutore.

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.

Layer editor showing the source contact set to an extremely thin width—much smaller than the mesh spacing—which leads to non-convergence.
La larghezza della zona di contatto della sorgente è impostata su un valore patologicamente ridotto (inferiore alla distanza tra le maglie). Tali caratteristiche della sottorete causano condizioni al contorno mal definite e, in genere, impediscono la convergenza.La larghezza della zona di contatto della sorgente è impostata su un valore patologicamente ridotto (inferiore alla distanza tra le maglie). Tali caratteristiche della sottorete causano condizioni al contorno mal definite e, in genere, impediscono la convergenza.
Mesh settings panel showing a typical 2D OFET mesh with about 10 divisions along X—a stable baseline configuration.
Schema di suddivisione in elementi tipico e stabile per i transistor OFET bidimensionali: circa 10 punti lungo l’asse X. Una suddivisione in elementi non troppo raffinata garantisce che il sistema sia ben definito e che la soluzione converga in modo stabile.Schema di suddivisione in elementi tipico e stabile per i transistor OFET bidimensionali: circa 10 punti lungo l’asse X. Una suddivisione in elementi non troppo raffinata garantisce che il sistema sia ben definito e che la soluzione converga in modo stabile.

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.

Mesh settings panel with the X-mesh set to 100 divisions, far higher than normally required for a 2D OFET.
Densità eccessiva della maglia: maglia X = 100 punti. L’uso di maglie eccessivamente raffinate aumenta le dimensioni e la rigidità del sistema, rendendo il risolutore 2D più lento e più incline a non convergere.Densità eccessiva della maglia: maglia X = 100 punti. L’uso di maglie eccessivamente raffinate aumenta le dimensioni e la rigidità del sistema, rendendo il risolutore 2D più lento e più incline a non convergere.
Solver error dialog highlighted in red after using an excessively high number of mesh points.
L’errore è dovuto a una maglia eccessivamente raffinata. Un’eccessiva densità della maglia aumenta la rigidità e il carico di memoria, causando errori nel processo di calcolo (indicati da una casella rossa).L’errore è dovuto a una maglia eccessivamente raffinata. Un’eccessiva densità della maglia aumenta la rigidità e il carico di memoria, causando errori nel processo di calcolo (indicati da una casella rossa).

👉 Prossimi passi:👉 Prossimi passi: