Basis Set

Myttex Forum ha chiuso definitivamente. Non è più possibile inviare messaggi, ma il contenuto è ancora consultabile in questo archivio.

Chemistry4888

2012-03-06 18:41

Dopo aver visto in maniera molto semplificata un generico file Input per Gaussian, incominciamo a trattare l'argomento in maniera più specifica.

Incominciare con le "Basis Set", che insieme al metodo di calcolo, è la parte più importante della riga di comando nel file Input.

Come abbiamo già accennato nel theard "File Input", la Basis Set corrisponde alla semplificazione matematica-geometrica apportata al nostro sistema. Cerchiamo di chiarire meglio questo concetto.

Una generica struttura di una basis set è la seguente:

X - Y1 Y2 Y3 G Z Z (ad esempio 6-311G**)

La parte blu della basis set corrisponde ai parametri necessari per il calcolo degli elettroni interni del sistema, la parte gialla rappresenta il comando di calcolo per gli elettroni esterni del sistema, la lettera G corrisponde al tipo di funzione utilizzata (nel nostro caso gaussiana) per la semplificazione geometrica dell'orbitale Slater reale. Infine l'ultima parte della basis set, quella verde descrive la possibilità di calcolare la polarizzabilità del sistema.

Ora che sappiamo le varie zone della basis set, dobbiamo capire a cosa corrispondono i numeri che le formano. Iniziamo con calma in quanto la questione non è proprio semplicissima. Spero di riuscire a farvi comprendere il significato di quei numeri, in caso contrario mi scuso fin da ora.

Iniziamo con la prima parte della Basis Set, quella riguardante gli elettroni interni. Il numero nella posizione X, corrisponde alle funzioni Gaussiane utilizzate per simulare la funzione reale che descrive la natura degli elettroni interni. Naturalmente più è elevato il numero di gaussiane utilizzate per descrivere la funzione reale e più accurato sarà il risultato ottenuto. Inutile dire che più gaussiane significano più calcoli da effettuare e quindi più tempo per ottenere il risultato.

Il secondo blocco di numeri (Y1 Y2 ed Y3) corrisponde ai comando per semplificare gli elettroni di valenza del sistema. Questi possono essere suddivisi in due sottoblocchi che rappresentano operazioni matematiche differenti (blocco Y1 e bloco Y2-Y3). Il numero corrispondente ad Y1 corrisponde come in precedenza al numero di gaussiane utilizzare per approssimare l'orbitale Slater degli elettroni di valenza (Proprio come per gli elettroni interni in precedenza).

Quindi sorge spontanea una domanda:

A cosa servono gli altri numeri presenti in Y2 ed Y3? Perchè non sono necessari per gli elettroni interni?

Andiamo con ordine. I numeri in Y2 e in Y3 sono ulteriori funzioni gaussiane utilizzate per migliorare la semplificazione matematica effettuata con il numero di funzioni gaussiane presenti in Y1.

Perchè allora non aumenitamo il numero di funzioni che possano migliorare il calcolo derivante da Y1?

Come si può vedere dall'esempio sovrastante (6-311G**) c'è solo una funzione sia per Y2 che per Y3, perchè non di più?

La risposta sta nel tempo di calcolo, teoricamente possiamo aumentare il numero di funzioni utilizzate all'infinito ma dobbiamo scontrarci con i conseguenti tempi di calcolo immensamente lunghi. Quindi si è deciso di ottenere un compromesso fra accuratezza del calcolo e tempo di calcolo. Per gli elettroni interni si raggiunge una buona accuratezza senza l'utilizzo di funzioni gaussiane aggiuntive mentre questo è necessario per ottenere una buona accuratezza per gli elettroni esterni.

Rispondiamo ora alla seconda domanda posta in precedenza, perchè questa tecnica non viene utilizzata anche per gli elettroni interni?

Come ben sappiamo, la maggior parte delle proprietà di un sistema sono derivate dagli elettroni esterni, basti pensare alla struttura della tavola periodica che classifica appunto i vari atomi in funzione del loro guscio esterno e quindi in funzione delle loro proprietà. Con questo non voglio affermare che il guscio elettronico interno di un sistema non è importante. Se osserviamo infatti nuovamente l'esempio proposto (6-311G**), possiamo notare che per la simulazione della funzione che descrive gli elettroni interni sono utilizzate un numerose di gaussiane pari a 6 (il doppio di quelle utilizzate per la parte Y1). Questo proprio a conferma che per la simulazione degli elettroni interni è sufficiente un unica simulazione.

Come già detto nell'introduzione la lettera G presente nella basis set, corrisponde al tipo di funzioni che vengono utilizzate per simulare l'orbitale Slater reale del sistema. G corrisponde a gaussiane.

L'ultima parte della basis set (la parte Z), corrisponde alla polarizzazione del sistema. Di solito questa parte è sempre inserita per i lavori degni di nota (intendo pubblicazioni scientifiche e quant'altro), in quanto la polarizzabilità del sistema influisce sulle proprietà e sulla geometria del sistema.

Oltre alla polarizzabilità, possiamo simulare anche i vari stati eccitati del sistema e simulare così numerosi spettri di assorbimento e non. Questo comando viene indicato con due (ma anche una sola, a seconda del lavoro) segni + prima della lettera G. Ecco un piccolo esempio:

6-311G** (non permette il calcolo degli stati eccitati)

6-311++G** (permette il calcolo degli stati eccitati del sistema)

Naturalmente l'utilizzo della basis set che permette il calcolo degli stati eccitati del sistema, comporta un tempo di analisi molto lungo in quanto deve calcolarsi tutte le transizioni teoricamente possibili del nostro sistema.

Dopo questa piccola e superficiale spiegazione delle basis set, possiamo comprendere l'accuratezza (e i tempi di analisi) delle diverse basis set. Ad esempio:

3-21G = non molto accurata, 3 funzioni gaussiane per la simulazione della funzione che descrive gli elettroni interni, 2 funzioni gaussiane per la simulazione di quella che descrive gli elettroni interni e una gaussiana aggiuntiva per migliorare il risultato della simulazione per gli elettroni esterni.

6-311G = Molto più accurata, in quanto ha il doppio delle gaussiane per simulare la funzione per gli elettroni interni, una gaussiana in più, per la simulazione della funzione degli elettroni esterni e un altra per il miglioramento del risultato derivante dal precedente calcolo.

Vi allego un link contenente un pdf (http://www.files.chem.vt.edu/chem-dept/valeev/docs/basisset_notes.11082007.pdf), in cui potete trovare alcune nozioni matematiche sulle basis set.

Spero di essere stato chiaro e preciso nel riassumere in parole "più umane" il significato matematico alla base delle basis set!

Stay Computational ;-)

I seguenti utenti ringraziano Chemistry4888 per questo messaggio: Max Fritz, myttex, TheChef

al-ham-bic

2012-03-06 19:30

Stavolta leggo, prendo atto... e spero in un futuro migliore! Rolleyes

Ma azzardo una domanda: la Basis set si riferisce ad una specifica sostanza o a una "struttura" (che non mi è chiara)?

Se si riferisce ad una specifica sostanza è possibile allegare un esempio?

(Sostanza Tal dei Tali ===> Basis set?)

lorenzo

2012-03-06 20:30

Per costruire gli orbitali atomici/molecolari di un qualsiasi sistema, i metodi della chimica quantistica adottano la strategia di combinare linearmente (sommare con diversi coefficienti) delle funzioni, dette funzioni di base. L'insieme di queste funzioni è detto Basis Set. Una volta si pensava che queste funzioni dovessero essere quanto più simili possibile a quelle degli atomi idrogenoidi; per esempio, una funzione poteva essere l'orbitale 1s dell'atomo di idrogeno. Tuttavia, dato che per calcolare l'energia del sistema (e per risolvere l'equazione di Schroedinger corrispondente) bisogna fare degli integrali (MOLTI integrali!), si è pensato di usare delle funzioni gaussiane, per cui gli integrali sono analitici e non vanno calcolati numericamente. Il problema è che una gaussiana non assomiglia per niente a un orbitale! Infatti, gli orbitali hanno un punto angoloso in corrispondenza del nucleo, mentre la gaussiana è "piatta". Questo si può risolvere utilizzando delle funzioni di base che sono somme di gaussiane - alcune più strette, alcune più larghe - in modo da mimare il comportamento di un orbitale. Infine, dato che per la chimica del sistema sono importanti gli elettroni di valenza, non bisogna focalizzarsi troppo sugli elettroni di core. Per questo, si usa una sola funzione per ogni orbitale di core e piu di una per gli orbitali di valenza. C'è un'ultima questione: gli elettroni più vicini al nucleo avranno orbitali più "appuntiti"; per migliorare la descrizione di questi ultimi bisogna usare più gaussiane che per gli orbitali di valenza. In definitiva: Orbitali di core: UNA funzione composta da SEI (se siamo poveri, 3) gaussiane Orbitali di valenza: DUE o TRE funzioni composte da 1,2 o 3 gaussiane. Ad esempio, la base 6-311G ha una funzione composta da sei gaussiane per gli orbitali di core, e tre funzioni, composte rispettivamente da 3,1,1 gaussiana, per gli orbitali di valenza. I basis set qui descritti si chiamano "split-valence", e sono stati introdotti da Pople. http://en.wikipedia.org/wiki/Basis_set_%28chemistry%29#Split-valence_basis_sets

I seguenti utenti ringraziano lorenzo per questo messaggio: Chemistry4888

Chemistry4888

2012-03-07 12:29

Volevo proprio postare la parte diciamo "geometrica" delle bais set ma purtroppo quando scrissi il theard non trovavo il materiale, ma è andata bene così, in quanto lorenzo (a cui faccio i complimenti) ha spiegato in maniera molto semplice e chiara la questione, molto meglio di quanto avrei potuto fare io.

Grande Lorenzo ;-)

Per rispondere ad Al (che ormai è davvero un curiosone :-P), le basis set sono generiche per un qualsiasi sistema, nel senso è l'operatore a decide quale basis set utilizzare in funzione del sistema studiato.

Non esiste una specifica basis set per una specifica sostanza o struttura, in quanto in teoria posso effettuare il calcolo computazionale con qualsiasi basis set per qualsiasi molecola. Basis set diverse naturalmente risultati diversi. Voglio dire che l'accuratezza derivante dal calcolo computazionale di una molecola "A" con una basis set non accurata (3-21G**), è sicuramente minore dell'accuratezza derivante dal calcolo della stessa molecola "A", utilizzando una basis set più accurata (ad esempio 6-311G**).

Quindi la scelta della miglior basis set dipende dal tipo di lavoro che l'operatore deve svolgere e naturalmente dalla sua esperienza. Ad esempio una prima scansione del sistema può essere fatta con un metodo e una basis set non molto accurati (Ad esempio HF/6-21G**) in modo da avere un idea generale del sistema senza spendere molto tempo. In un secondo momento quando ho appreso che il calcolo arriva a qualcosa di "compiuto e concreto" (no fantachimica che a volte succede), effettuare lo stesso calcolo con metodi e basis set più accurati per ottenere risultati più vicini alla realtà.

Ringrazio ancora lorenzo per il suo chiarissimo intervento!

Stay Computational ;-)

quimico

2012-03-07 12:53

Aver avuto il piacere di conoscerti due anni fa sicuramente avrei avuto maggiori possibilità di passare Chimica Fisica Computazionale con un voto >20/30 asd Bel lavoro che fai... io non ci ho mai capito una cippa lippa. O forse non ho mai voluto capirci qualcosa asd

al-ham-bic

2012-03-07 13:23

Di questa riga:

#pbe1pbe/6-31g** opt test scf=(maxcycle=250) nosymm

allora la basis set è 6-31g** giusto?

E' lei la dannata che mi ha impegnato il 100% delle risorse CPU (P4-3GHz) per due ore e un quarto per il fenolo (copiato da te)?

(Se è lei, la prossima volta le taglio i viveri... i numeri volevo dire asd )

Concordo con Quimico (anche se io non ho mai avuto men che meno a che fare con questa cosa d'altro mondo), nelle cose d'altro mondo il segreto sta nell'avere un insegnante degno di questo nome (zitto Chem, accetta quel ch'è di Cesare :-P )

Grazie anche a Lorenzo!

Chemistry4888

2012-03-07 14:02

Vi ringrazio molto, accetto in silenzio ma come al solito siete troppo buoni :p

La basis set è proprio quella Al, ma probabilmente nel tuo caso è tutta colpa del metodo (PBE1PBE), è uno tra i più accurati ed utilizzati :p Anche se la basis set ha contribuito sicuramente ;-)

Potresti fare una semplice prova, lancia Gaussian cambiando basis set e lasciando invariato il metodo ( PBE1PBE/3-21G** + stessa riga di comando che hai utilizzato) e vedi il tempo di calcolo finale e la % di CPU utilizzata. Probabilmente qualcosa cambierà ma non molto :-P

Appena ho un pò di tempo posterò come costruire la Matrice Z di una molecola, in modo da permetterti/vi di costruire il sistema che desiderate e quindi iniziare a fare qualche esperimentino homemade. Siamo solo all'inizio, il bello della computazionale deve ancora venire ;-)

Alla fine delle due ore e un quarto hai ottenuto il risultato dell'ottimizzazione del fenolo? Non male vero ;-)

La funzione ottimizzazione è più visibile su molecole con molti centri sp3 in quanto il cambiamento geometrico è molto più accentuato ed evidente rispetto a sistemi sp2 come il fenolo. Le molecole sembrano vive ma che dico sono vive :-P

Stay Computational ;-)

al-ham-bic

2012-03-07 14:46

Chemistry4888 ha scritto:

...alla fine delle due ore e un quarto hai ottenuto il risultato dell'ottimizzazione del fenolo? Non male vero ;-) La funzione ottimizzazione è più visibile su molecole con molti centri sp3 in quanto il cambiamento geometrico è molto più accentuato ed evidente rispetto a sistemi sp2 come il fenolo. Le molecole sembrano vive ma che dico sono vive :-P ...

Sì, credo di aver ottenuto quanto dovuto, ovvero l'immagine con tutti i possibili "stiracchiamenti" della molecola (non animati però, ma visibili uno per uno). Per l'utilità pratica di tutto ciò (non capisco cosa si intenda per "ottimizzazione";-) mi preparo ad una lunga attesa... O:-)

lorenzo

2012-03-07 15:14

Ottimizzazione significa semplicemente trovare la geometria di equilibrio della molecola... ... o meglio, la geometria di equilibrio più vicina a quella che hai inserito tu in partenza. Per poter fare dei calcoli che ti restituiscano una proprietà del tuo sistema, la primissima cosa che devi fare è portarlo alla geometria di equilibrio! Senza questo passaggio, fare qualsiasi calcolo non ha senso. Immagina di dover prevedere con un calcolo computazionale quale, tra due isomeri E-Z, è il più stabile termodinamicamente: devi calcolare la differenza di energia tra i due. Se però non li hai messi alla geometria di equilibrio, il risultato che ottieni sarà quasi sicuramente sbagliato.

I seguenti utenti ringraziano lorenzo per questo messaggio: al-ham-bic

quimico

2012-03-07 16:19

Dico una cosa poi la chiudo qui perché sono OT. Ho avuto una prof.ssa della madonna, prima dottoranda poi moglie di un certo Clementi. Magari Chemistry4888 conosce... In caso contrario qui c'è il CV: http://www.webalice.it/enrico.clementi/ Un personaggio che ha conosciuto premi Nobel del calibro di Natta (post-doctoral position, Politecnico di Milano, Italy, 1954-1955) e di Mulliken (research associated, University of Chicago, 1960-1961). Nonostante la sua bravura non mi sono trovato bene, e ho avuto difficoltà. Con altri docenti potevo richiedere mille volte di farmi rispiegare, con lei no. All'esame sono andato nel panico dopo aver studiato da solo e mi ha promosso con 19 solo perché era Natale. Ok mi ero preparato male ma ho capito poco di alcune cose... A lezione andava come un treno, non dava appunti... I libri su cui studiare erano ad un livello troppo elevato. Ecco perché sarebbe stato meglio conoscere prima Chemistry asd

al-ham-bic

2012-03-07 16:32

Idem anch'io per l'OT, toccata e fuga.

Ecco esattamente il metodo esemplificato da Quimico con il quale NON si dovrebbe insegnare... *help*

Ci sono ovviamente anche esempi opposti: ho seguito qualche tempo fa una conferenza di Paolo De Bernardis (uno dei massimi astrofisici a livello internazionale) e lo capivano anche i cani e porci.

Chemistry4888

2012-03-07 16:47

al-ham-bic ha scritto:

Sì, credo di aver ottenuto quanto dovuto, ovvero l'immagine con tutti i possibili "stiracchiamenti" della molecola (non animati però, ma visibili uno per uno).

Per l'utilità pratica di tutto ciò (non capisco cosa si intenda per "ottimizzazione";-) mi preparo ad una lunga attesa... O:-)

L'operazione che hai fatto inserendo la riga di comando descritta nel messaggio precedente è l'ottimizzazione della struttura geometrica inserita con la matrice Z (nel tuo caso il fenolo). Se confronti la molecola che hai inserito nel file output (è sempre la numero 1 nell'elenco, vedere figura 1) con la molecola ottimizzata (quella con scritto "min" a fianco, vedere figura 1) noterai che la struttura macroscopicamente è la stessa ma se vai a controllare le lunghezze di legame, gli angoli e gli angoli diedri fra i vari atomi, noterai che non sono uguali, in quanto il programma ti ha calcolato la struttura più stabile (quella a minor energia, il punto di minimo nella PES) che non rispecchia quella da te inserita.

Come ha ben detto lorenzo, la struttura che hai inserito non è mai quella più stabile ma se sei fortunato una molto vicina (solo se sei fortunato però).

La matrice Z che hai inserito nell'input corrisponde a una determinata geometria della molecola, quindi si tratta di un generico vettore "q" all'interno della PES a cui è associata un energia potenziale. Con la funzione OPT hai ordinato al programma di esplorare la PES, partendo dal vettore "q" che hai inserito, al fine di trovare la struttura geometrica ad energia minore che consiste nella struttura più stabile, cioè quella all'equilibrio. Questa struttura è riconoscibile nel file di output con la parole "min" a fianco dell'energia della struttura (Vedere Figura 1 sottostante).

Fig.1 Output di ottimizzazione, ogni step corrisponde a un determinato punto della PES. La struttura con scritto "min" corrisponde alla struttura della molecola all'equilibrio.

Graficamente l'effetto non è ben visibile in quanto la differenza fra il "fenolo teorico" da te inserito con la matrice Z e il "fenolo reale" in termini di angoli e lunghezze di legame è davvero minima.

Ad esempio l'angolo di un carbonio sp2 dell'anello aromatico nel "fenolo teorico" è 120° (dato derivante dalle conoscienze chimiche dell'operatore) ma nella realtà quell'angolo non è proprio 120° ma è di circa 120,794° (dato ottenuto dall'ottimizzazione computazionale).

Notare questa differenza dall'output grafico non è così facile (direi quasi impossibile) e quindi all'apparenza può sembrare che il programma non abbia calcolato niente ma in relatà ha calcolato eccome ;-)

Concordo con voi quando affermate che non esiste materia difficile in quanto se si trova un bravo professore, il difficile diventa semplice. L'esempio di Al mi sembra più che sufficiente per far capire il concetto ;-) Non voglio dilungarmi per non andare ulteriormente OT.

Naturalmente vi ringrazio a tutti per le belle parole spese, come dico sempre siete troppo buoni ;-)

Stay Computational ;-)

al-ham-bic

2012-03-07 16:57

Poi mi rileggerò con calma tutto il discorso, per ora ti dico che ricadiamo nella solita rogna grafica: non si vedono le immagini (e non si rivedono più nemmeno quelle iniziali in Potential energy Surface).

(Che sia perchè io ce l'ho a morte con Imageshack? >_> )

Chemistry4888

2012-03-07 17:07

Non so perchè faccia così. L'immagine si vede per un certo lasso di tempo e poi non si vedono più. Io riesco a vedere tutte le immagini tranne le prime due del theard "Potential Energy Surface".

Lo conosco da poco ma sto iniziando ad avercela anche io con Imageshack >_>

Cercherò di vedere cosa posso fare, magari trovando qualche soluzione sul web e risolvere il problema ;-)

Forse ho scoperto dove era nascosto il problema, provvedo subito a risolverlo, sperando che sia davvero quello (ma credo proprio di si) ;-)


Dovrei aver risolto il problema e ora dovrebbero essere tutte visibili le immagini ma non vorrei dirlo troppo forte. Aspetto comunque una vostra conferma.

Stay Computational ;-)

Max Fritz

2012-03-07 19:47

Strano, ma fin qui penso di aver capito tutto! asd asd (strano per me, non per le vostre ottime spiegazioni). Però anch'io vorrei sollevare una questione; probabilmente Chemistry4888 aveva intenzione di rispondere successivamente a quanto sto per chiedere, ed in quel caso cancellerò la domanda ed aspetterò il momento debito. Per il momento la scrivo: una cattiva approssimazione, alla fine dei conti, si traduce nella probabilità che il risultato finale NON rispecchi ciò che accade o nella cattiva somiglianza tra il risultato finale e ciò che realmente accade? Più brevemente, mi potresti fare un esempio di cosa potrebbe accadere approssimando troppo?

al-ham-bic

2012-03-07 20:16

Con l'occasione di dire che adesso le immagini si vedono tutte perfettamente, mi associo alla domanda di Max ;-)

Chemistry4888

2012-03-07 22:07

Una cattiva approssimazione non è una minor probabilità di ottenere il risultato veritiero, in quanto anche con un metodo e una basis set non molto accurata, si riesce ad ottenere con una probabilità del 100% un risultato. Naturalmente in seguito bisogna vedere la veridicità di questo risultato (a volte esce qualcosa di fantachimico). Una cattiva approssimazione comporta "solo" una struttura che non si avvicina a quella reale.

Ad esempio se il valore reale di un generico legame A-B di una generica molecola, è 1.0876 amstrong, con un comando non molto accurato (ad esempio HF/3-21G**) ottengo 1.0734 amstrong, mentre utilizzando un comando più accurato (ad esempio PBE1PBE/6-31G**) ottengo 1.0853 amstrong.

L'unico "pericolo" che si corre approssimando troppo è appunto quello di ottenere un risultato lontano da quello reale, che ha ben poca validità scientifica. Questo tipo di approssimazione è utilissima per uno studio didattico del programma da parte dei novizi, in quanto hanno un tempo di calcolo molto basso.

Spero di aver risposto in modo esaustivo alla tua domanda Max!

Stay Computational ;-)

I seguenti utenti ringraziano Chemistry4888 per questo messaggio: Max Fritz

Max Fritz

2012-03-08 13:27

Perfetto, ora è tutto a posto, grazie :-D

Etioacca

2012-03-18 13:55

Ciao,

Vorrei fare delle considerazioni sui set di base che potrebbero esservi utili:

-la combinazione lineare di più orbitali si chiama contrazione;

-quando gli orbitali atomici sono rappresentati da 2 o 3 contrazioni si parla di doppia o tripla zeta;

-la singola gaussiana (elemento della contrazione) è detta primitiva;

-il numero di combinazioni lineari usato dipende dal tipo di orbitale considerato.

Alla luce di questo, la 6-31G sarà caratterizzata da:

-una contrazione formata da 6 primtive che descrive gli orbitali di core (questa contrazione viene indicata dal primo numero);

-avremo poi due contrazioni che descrivono gli orbitali di valenza (una da 1 primitiva e l'altra da 3 primitive).

Ad esempio se vogliamo descrivere il Carbonio con il set di Base 6-31G, avremo che:

-l'orbitale 1s viene descritto da una contrazione di 6 primitive (l'1s viene considerato di core);

-l'orbitale 2s viene descritto da 2 contrazioni (rispettivamente di 3 ed 1 contrazione);

-le 3 degenerazioni dell'orbitale p (px py pz) verranno descritte ciascuna da due contrazioni di 3 ed 1 contrazione rispettivamente.

In totale quindi il Carbonio con la 6-31G verrà descritto da 1+2+2+2+2=9 contrazioni.

Spero possa esservi utile.

Antonio

I seguenti utenti ringraziano Etioacca per questo messaggio: Chemistry4888, lorenzo, Mercaptano