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.

Configurazione del risolutore per il modello di trasporto-diffusioneConfigurazione del risolutore per il modello di trasporto-diffusione

Il risolutore Drift-Diffusion può essere configurato selezionando l’opzione Configura nella barra multifunzione relativa alle proprietà elettriche. In questo modo si apre la finestra di configurazione del risolutore, dove è possibile regolare le proprietà numeriche, come i limiti di iterazione, le tolleranze di errore e le strategie di convergenza. Queste opzioni consentono all’utente di controllare le prestazioni e la stabilità del risolutore per diverse simulazioni di dispositivi.Il risolutore Drift-Diffusion può essere configurato selezionando l’opzione Configura nella barra multifunzione relativa alle proprietà elettriche. In questo modo si apre la finestra di configurazione del risolutore, dove è possibile regolare le proprietà numeriche, come i limiti di iterazione, le tolleranze di errore e le strategie di convergenza. Queste opzioni consentono all’utente di controllare le prestazioni e la stabilità del risolutore per diverse simulazioni di dispositivi.

Configurazione del risolutore elettricoConfigurazione del risolutore elettrico

Il motore elettrico di OghmaNano risolve un insieme di equazioni non lineari strettamente correlate (Poisson + diffusione-trasporto, oltre a qualsiasi modello cinetico attivato). Queste equazioni contengono esponenziali e forti interazioni, pertanto vengono risolte in modo iterativo utilizzando un metodo di Newton-Raphson su una singola matrice Jacobiana globale. In genere, non sarà necessario modificare le impostazioni predefinite, ma il pannello di configurazione consente di stabilizzare i casi più complessi, velocizzare quelli più semplici o analizzare il comportamento dei calcoli numerici.Il motore elettrico di OghmaNano risolve un insieme di equazioni non lineari strettamente correlate (Poisson + diffusione-trasporto, oltre a qualsiasi modello cinetico attivato). Queste equazioni contengono esponenziali e forti interazioni, pertanto vengono risolte in modo iterativo utilizzando un metodo di Newton-Raphson su una singola matrice Jacobiana globale. In genere, non sarà necessario modificare le impostazioni predefinite, ma il pannello di configurazione consente di stabilizzare i casi più complessi, velocizzare quelli più semplici o analizzare il comportamento dei calcoli numerici.

Aprire la configurazione accedendo alla scheda «Elettrica», selezionando «Drift-diffusion» e scegliendo «Configura» – vedere DD Solver Open. Si aprirà la finestra mostrata in DD Solver Window, dove sarà possibile regolare il modo in cui il risolutore esegue le iterazioni e raggiunge la convergenza.Aprire la configurazione accedendo alla scheda «Elettrica», selezionando «Drift-diffusion» e scegliendo «Configura» – vedere DD Solver Open. Si aprirà la finestra mostrata in DD Solver Window, dove sarà possibile regolare il modo in cui il risolutore esegue le iterazioni e raggiunge la convergenza.

Quali funzioni controlla ciascuna sezione.Quali funzioni controlla ciascuna sezione.

Il pannello è suddiviso in quattro sezioni principali che regolano le diverse fasi di un ciclo di calcolo: prima iterazione, iterazioni successive, incremento della tensione e strategia di uscita. In tutte le fasi, l’idea di base è la stessa: partire da un’ipotesi iniziale, aggiornare le variabili sconosciute mediante passaggi di Newton e interrompere il processo quando l’errore globale è sufficientemente piccolo. Un limite massimo restringe l’entità massima dell’aggiornamento per ogni passaggio, evitando che il risolutore si sposti in regioni fisicamente irrealistiche. Limiti piccoli → processo più lento ma molto stabile; limiti grandi → processo più veloce ma potenzialmente instabile.Il pannello è suddiviso in quattro sezioni principali che regolano le diverse fasi di un ciclo di calcolo: prima iterazione, iterazioni successive, incremento della tensione e strategia di uscita. In tutte le fasi, l’idea di base è la stessa: partire da un’ipotesi iniziale, aggiornare le variabili sconosciute mediante passaggi di Newton e interrompere il processo quando l’errore globale è sufficientemente piccolo. Un limite massimo restringe l’entità massima dell’aggiornamento per ogni passaggio, evitando che il risolutore si sposti in regioni fisicamente irrealistiche. Limiti piccoli → processo più lento ma molto stabile; limiti grandi → processo più veloce ma potenzialmente instabile.

Prima versione.Prima versione.

Versioni successiveVersioni successive

Rampa di tensioneRampa di tensione

Quando si passa da una condizione di polarizzazione iniziale (ad esempio, 0 V) a un punto di funzionamento desiderato (possibilmente con alta tensione), le soluzioni intermedie spesso rappresentano semplicemente dei punti di passaggio. Questo blocco consente di utilizzare tolleranze più ampie o diverse soglie per attraversare più rapidamente la fase di transizione, mantenendo al contempo elevata la precisione nella soluzione del punto di funzionamento finale.Quando si passa da una condizione di polarizzazione iniziale (ad esempio, 0 V) a un punto di funzionamento desiderato (possibilmente con alta tensione), le soluzioni intermedie spesso rappresentano semplicemente dei punti di passaggio. Questo blocco consente di utilizzare tolleranze più ampie o diverse soglie per attraversare più rapidamente la fase di transizione, mantenendo al contempo elevata la precisione nella soluzione del punto di funzionamento finale.

Strategia di uscitaStrategia di uscita

Tipo di risolutore e strumentiTipo di risolutore e strumenti

Consigli praticiConsigli pratici

Se il caso è delicato (elevato livello di drogaggio, campi estremi, forte iniezione), abbassare il blocco di regolazione e ridurre la tolleranza del primo passaggio. Per i casi più semplici e stabili, alzare il blocco di regolazione per aumentare la velocità. Utilizzare il blocco di rampa per raggiungere rapidamente il punto di funzionamento desiderato, quindi applicare tolleranze più rigorose in quel punto.Se il caso è delicato (elevato livello di drogaggio, campi estremi, forte iniezione), abbassare il blocco di regolazione e ridurre la tolleranza del primo passaggio. Per i casi più semplici e stabili, alzare il blocco di regolazione per aumentare la velocità. Utilizzare il blocco di rampa per raggiungere rapidamente il punto di funzionamento desiderato, quindi applicare tolleranze più rigorose in quel punto.

Consultare anche: il punto di accesso alla configurazione mostrato in DD Solver Open e la finestra di dialogo completa in DD Solver Window.Consultare anche: il punto di accesso alla configurazione mostrato in DD Solver Open e la finestra di dialogo completa in DD Solver Window.

Stabilità del risolutoreStabilità del risolutore

OghmaNano è un simulatore numerico che risolve un sistema di equazioni differenziali strettamente correlate, relative alla carica, al potenziale e alla ricombinazione. Come tutti i risolutori numerici, richiede parametri di input fisicamente realistici per ottenere una convergenza ottimale. Valori esattamente pari a zero, infinitamente grandi o distribuiti su un intervallo di valori troppo ampio possono causare instabilità nelle operazioni matriciali sottostanti. Per aiutarvi a evitare questi problemi, questa sezione illustra alcune considerazioni pratiche da tenere presente quando si configurano le simulazioni.OghmaNano è un simulatore numerico che risolve un sistema di equazioni differenziali strettamente correlate, relative alla carica, al potenziale e alla ricombinazione. Come tutti i risolutori numerici, richiede parametri di input fisicamente realistici per ottenere una convergenza ottimale. Valori esattamente pari a zero, infinitamente grandi o distribuiti su un intervallo di valori troppo ampio possono causare instabilità nelle operazioni matriciali sottostanti. Per aiutarvi a evitare questi problemi, questa sezione illustra alcune considerazioni pratiche da tenere presente quando si configurano le simulazioni.

Evitare numeri eccessivamente grandi o eccessivamente piccoli.Evitare numeri eccessivamente grandi o eccessivamente piccoli.

Apri MATLAB (o Octave su Linux) e digita la seguente espressione: \(((1e-1+1e1)-1e1)/1e-1\). Prima di premere Invio, calcola mentalmente il risultato: \(1e1\) e \(-1e1\) si annullano a vicenda, lasciando \(\frac{1e-1}{1e-1}=1\). Ora sostituisci le potenze di 10 con 19 e prova: \(((1e-19+1e19)-1e19)/1e-19\). Anche in questo caso, il risultato dovrebbe essere \(1\).Apri MATLAB (o Octave su Linux) e digita la seguente espressione: \(((1e-1+1e1)-1e1)/1e-1\). Prima di premere Invio, calcola mentalmente il risultato: \(1e1\) e \(-1e1\) si annullano a vicenda, lasciando \(\frac{1e-1}{1e-1}=1\). Ora sostituisci le potenze di 10 con 19 e prova: \(((1e-19+1e19)-1e19)/1e-19\). Anche in questo caso, il risultato dovrebbe essere \(1\).

Tuttavia, quando si lascia che sia il computer a calcolare il risultato, la risposta sarà \(0\) e non \(1\). Questo accade perché i computer memorizzano i numeri con una precisione limitata (circa 15-16 cifre decimali in un computer moderno). Quando si somma \(1e-19\) a \(1e19\), il termine più piccolo viene perso a causa dell'arrotondamento, quindi il computer visualizza \(1.000000000000000e19\) invece di \(1.0000000000000000001e19\). Sottraendo \(1e19\), si ottiene esattamente zero e il contributo di \(1e-19\) scompare.Tuttavia, quando si lascia che sia il computer a calcolare il risultato, la risposta sarà \(0\) e non \(1\). Questo accade perché i computer memorizzano i numeri con una precisione limitata (circa 15-16 cifre decimali in un computer moderno). Quando si somma \(1e-19\) a \(1e19\), il termine più piccolo viene perso a causa dell'arrotondamento, quindi il computer visualizza \(1.000000000000000e19\) invece di \(1.0000000000000000001e19\). Sottraendo \(1e19\), si ottiene esattamente zero e il contributo di \(1e-19\) scompare.

La precisione numerica è importante.La precisione numerica è importante.

Se la simulazione prevede parametri che coprono un intervallo di valori eccessivamente ampio, il risolutore potrebbe perdere precisione. Cercate di evitare rapporti estremi, soprattutto in termini di mobilità o densità degli stati, per garantire la stabilità.Se la simulazione prevede parametri che coprono un intervallo di valori eccessivamente ampio, il risolutore potrebbe perdere precisione. Cercate di evitare rapporti estremi, soprattutto in termini di mobilità o densità degli stati, per garantire la stabilità.

Tutti i computer sono interessati da questo problema, indipendentemente dalla loro potenza. Nel caso delle simulazioni di dispositivi, ciò significa che è necessario evitare intervalli di parametri che generino matrici contenenti numeri molto grandi e molto piccoli affiancati. Ad esempio, l’utilizzo contemporaneo delle mobilità di \(1e-19\) e \(1e5\) può causare problemi numerici. Questo è particolarmente importante quando si simulano materiali isolanti.Tutti i computer sono interessati da questo problema, indipendentemente dalla loro potenza. Nel caso delle simulazioni di dispositivi, ciò significa che è necessario evitare intervalli di parametri che generino matrici contenenti numeri molto grandi e molto piccoli affiancati. Ad esempio, l’utilizzo contemporaneo delle mobilità di \(1e-19\) e \(1e5\) può causare problemi numerici. Questo è particolarmente importante quando si simulano materiali isolanti.

Evitare gli zeri.Evitare gli zeri.

I valori pari a zero causano errori di divisione per zero. Non impostare le mobilità, le sezioni d’urto di cattura, le pendenze della coda o le densità degli stati esattamente a zero. È accettabile utilizzare lo zero per le costanti di ricombinazione.I valori pari a zero causano errori di divisione per zero. Non impostare le mobilità, le sezioni d’urto di cattura, le pendenze della coda o le densità degli stati esattamente a zero. È accettabile utilizzare lo zero per le costanti di ricombinazione.

⚠️ Evitare l’uso di zeri esatti.⚠️ Evitare l’uso di zeri esatti.

Sostituire gli zeri con valori molto piccoli (ad esempio \(1e-30\)) per evitare instabilità numeriche, mantenendo comunque un’approssimazione di «quasi zero».Sostituire gli zeri con valori molto piccoli (ad esempio \(1e-30\)) per evitare instabilità numeriche, mantenendo comunque un’approssimazione di «quasi zero».

Notevoli progressi nell’ambito della ricerca sui semiconduttori.Notevoli progressi nell’ambito della ricerca sui semiconduttori.

Grandi variazioni di energia all’interno del gap di banda generano densità di portatori che sono o estremamente basse o estremamente alte, il che porta direttamente agli stessi problemi di precisione descritti in Evitare numeri molto grandi e molto piccoli. Mantenere una discretizzazione dell’energia sufficientemente fine per evitare salti non fisici.Grandi variazioni di energia all’interno del gap di banda generano densità di portatori che sono o estremamente basse o estremamente alte, il che porta direttamente agli stessi problemi di precisione descritti in Evitare numeri molto grandi e molto piccoli. Mantenere una discretizzazione dell’energia sufficientemente fine per evitare salti non fisici.

🔍 Controlla la tua rete.🔍 Controlla la tua rete.

Se la discretizzazione della banda proibita è troppo grossolana, è possibile che vengano generate densità di portatori non realistiche. Affina la griglia per mantenere i valori all’interno di un intervallo numericamente stabile.Se la discretizzazione della banda proibita è troppo grossolana, è possibile che vengano generate densità di portatori non realistiche. Affina la griglia per mantenere i valori all’interno di un intervallo numericamente stabile.