Codice YAMBO - YAMBO code
| Autori originali | Andrea Marini |
|---|---|
| Sviluppatore/i | Conor Hogan, Myrta Gruning, Daniele Varsano, Davide Sangalli, Andrea Ferretti, Pedro Melo, Ryan McMillan, Fabio Affinito, Alejandro Molina-Sanchez, Henrique Miranda |
| Versione iniziale | 2008 |
| Rilascio stabile | 4.5 / 2 gennaio 2020
|
| Repository | github |
| Scritto in | Fortran , C |
| Sistema operativo | Unix , simile a Unix |
| piattaforma | x86 , x86-64 |
| Disponibile in | inglese |
| Tipo | Teoria dei molti corpi |
| Licenza | GPL |
| Sito web | www |
Yambo è un pacchetto software per computer per lo studio degli aspetti della teoria a molti corpi dei solidi e dei sistemi molecolari . Calcola le proprietà dello stato eccitato dei sistemi fisici dai principi primi , ad esempio dalla legge della meccanica quantistica senza l'uso di dati empirici. È un software open source rilasciato sotto la GNU General Public License (GPL). Tuttavia, il repository di sviluppo principale è privato e solo un sottoinsieme delle funzionalità disponibili nel repository privato viene clonato nel repository pubblico e quindi distribuito.
Proprietà dello stato eccitato
Yambo può calcolare:
- Energie quasiparticellari : polo plasmonico, approssimazione COHSEX o asse reale
- Vite all'interno dell'approssimazione GW
- Assorbimento ottico : RPA, Bethe Salpeter con o senza approssimazione di Tamm-Dancoff, TDDFT in TD-LDA o LRC
- Spettroscopia di perdita di energia degli elettroni
- Polarizzabilità dinamica
- accoppiamento elettrone-fonone (teoria delle perturbazioni statiche e dinamiche)
- proprietà magneto-ottiche
- spettroscopia di superficie
Sistemi fisici
Yambo può trattare molecole e sistemi periodici (sia metallici che isolanti) in tre dimensioni (solidi cristallini) due dimensioni (superfici) e una dimensione (es. nanotubi , nanofili , catene polimeriche ). Può anche gestire sistemi magnetici collineari (cioè funzioni d'onda spin-polarizzate ) e non collineari ( spinori ).
I sistemi tipici sono della dimensione di 10-100 atomi, o 10-400 elettroni, per cella unitaria nel caso di sistemi periodici.
Metodi teorici e approssimazioni
Yambo si basa sulla teoria delle perturbazioni a molti corpi e sulla teoria del funzionale della densità dipendente dal tempo . Le energie quasiparticellari sono calcolate all'interno dell'approssimazione GW per l'energia propria. Le proprietà ottiche vengono calcolate risolvendo l' equazione di Bethe-Salpeter o utilizzando l'approssimazione adiabatica della densità locale all'interno della teoria del funzionale della densità dipendente dal tempo.
Dettagli numerici
Yambo utilizza una base di onde piane per rappresentare le funzioni d'onda elettroniche (a particella singola). Gli elettroni del nucleo sono descritti con pseudopotenziali che conservano la norma . La scelta di un set di basi per onde piane impone la periodicità dei sistemi. I sistemi isolati e i sistemi periodici solo in una o due direzioni possono essere trattati utilizzando un approccio a supercella. Per tali sistemi Yambo offre due tecniche numeriche per il trattamento degli integrali di Coulomb: il metodo del cut-off e dell'integrazione casuale.
Dettagli tecnici
- Yambo è interfacciato con i codici densità-funzionali d'onda piana : ABINIT , PWscf , CPMD e con la libreria ETSF-io. Le utilità che interfacciano questi codici con Yambo sono distribuite insieme al programma principale.
- Il codice sorgente è scritto in Fortran 95 e C
- Il codice viene parallelizzato utilizzando le librerie in esecuzione MPI
Interfaccia utente
- Yambo ha un'interfaccia utente a riga di comando. Richiamando il programma con opzione specifica si genera l'input con valori di default per i parametri coerenti con i dati presenti sul sistema.
- Uno strumento di post-elaborazione, distribuito insieme al programma principale, aiuta con l'analisi e la visualizzazione dei risultati.
Requisiti di sistema, portabilità
- Sistemi basati su Unix
- Compilatori per i linguaggi di programmazione Fortran 95 e C
- opzionale: compilatore PGI Fortran per versione GPU (a partire dalla versione 4.5)
- opzionale: netcdf , fftw , mpi (per l'esecuzione parallela), etsf-io , libxc , hdf5
- I requisiti hardware dipendono molto dal sistema fisico in studio e dal livello teorico scelto. Per la memoria ad accesso casuale (RAM) i requisiti possono variare da meno di 1 GB a pochi GB, a seconda del problema.
Imparare Yambo
Il team di Yambo fornisce una pagina Web wiki con un elenco di tutorial e note di lezione . Sul sito di yambo c'è anche un elenco di tutte le tesi fatte con il codice.
Parte non distribuita
Parte del codice YAMBO è conservata in un repository privato. Queste le funzionalità implementate e non ancora distribuite:
- energia totale usando il teorema di fluttuazione-dissipazione della connessione adiabatica
- campo magnetico
- GW autoconsistente
- dinamica Bethe-Salpeter
- momento finito Bethe-Salpeter
- spettroscopia in tempo reale
- kernel avanzati per la teoria del funzionale della densità dipendente dal tempo (kernel Nanoquanta).