10
1
mirror of https://github.com/LCPQ/Cost_package.git synced 2024-11-18 20:12:45 +01:00
Cost_package/Manuals/schmudorb_emploi
2016-05-03 11:54:25 +02:00

902 lines
29 KiB
Plaintext
Executable File

******************************************************************************
schmudorb/schmudort : generalites
schmudorb : permet de construire un jeu d'orbitales locales non orthogonales
schmudort: effectue une orthogonalisation hierarchisee des orbitales de
schmudorb
classe 1 : (prioritaire) actives
classe 2 : coeur
classe 3 : les autres
******************************************************************************
***********************************
schmudorb/schmudort : mode d'emploi
***********************************
FICHIERS : Fichier de molcost (integrales en base atomique, matrice de recouvrement,...)
des orbitales ScfOrb ou autre (donc, un calcul d'integrales, seward si molcas)
===============================================================================================
************************
DONNEES GENERALES
************************
1) DONNEES DE DEBUT :
&smufil prefix='debut_des_noms_de_fichier' /
&smu nprint= 0,1,2 (def 0)
orb='fichier_d'orbitales_scf' (donnee obligatoire)
/
2) DONNEES CONCERNANT L'ORTHGONALISATION DE LA BASE D'ORBITALES ATOMIQUES
exemple :
&oao /
c1 1s(1) pr=1
c1 1s(2) pr=2
c1 2px(1) pr=2
c1 2py(1) pr=2
c1 2pz(1) pr=2
o1 1s(1) pr=1
o1 1s(2) pr=2
o1 2px(1) pr=2
o1 2py(1) pr=2
o1 2pz(1) pr=2
fin
priorite des orbitales dans l'orthogonalisation hierarchisee
sur cet exemple :
c1 1s(1) pr=1 : atome de nom c1 (dans les donnees du progr d'integrales)
1s(1) 1ere orbitale de nom 1s qui apparait dans les OA
pr=1 priorite 1 (orthogonalisee en priorite)
o1 2ps(2) pr=2 atome o1, 2eme orb 1s (donc orb 2s), priorite 2
o1 2px(1) pr=2 atome o1, 1ere orb 2px (donc orb 2px), priorite 2
etc...
remarques :
- Toutes les lettres sont indifferemment en majuscules ou en
minuscules
- on voit qu'on a vraiment interet a utiliser des bases d'ANO
pour que par ex 2px(1) corresponde bien a l'orbitale de valence
2px
- on donne autant de priorites qu'on veut
- les orbitales non donnees sont de priorite pmax+1
3) DONNEES DEFINISSANT LES ORBITALES MOLECULAIRES LOCALES
&orb /
c_c c1 1s(1) (1 0)
c_o o1 1s(1) (1 0)
o_odbt o1 1s(2) 2pz(1) (1 0) ref 1
o_cdbt c1 1s(2) 2pz(1) (1 0) ref 2
o_co c1 1s(2) 2pz(1) : o1 1s(2) 2pz(1) (3 1) proj 1,2
o_pico c1 2px(1) 2py(1) : o1 2px(1) 2py(1) (2 2)
fin
c'est la donnee des liaisons :
Analyse de la donnee "c_o o1 1s(1) (1 0)" :
c_o : max 12 caracteres. c="coeur". "_" obligatoire. puis 10 caracteres au choix
pour caracteriser la liaison. l'orbitale de liaison obtenue sera
caracterisee sous ce label (c_o) dans la suite des programmes.
o1 1s(1) : comme dans &oao
(1 0) : occupations : 1 occupee, 0 antiliante
(on decrit ici le coeur 1s de o1)
Analyse de la donnee "o_odbt o1 1s(2) 2pz(1) (1 0) ref 1" :
on decrit le doublet de o1
o="orbitale" (en general, orbitale de valence)
1s(2) 2pz(1) : orbitales qui le decrivent (2eme s (la 1ere etait pour le
coeur), 1ere pz)
(1 0) : occupations : 1 occupee, 0 antiliante
ref 1 : voir plus loin
Analyse de la donnee "o_pico c1 2px(1) 2py(1) : o1 2px(1) 2py(1) (2 2)" :
systeme pi de CO
les atomes et leurs orb sont donnes a la suite les uns des autres, separes par
":". Il n'y a pas de limite au nombre d'atomes, ni au nombre d'orbitales.
Il y a 2 systemes pi, un x, un y
(2 2) : 2 liantes, 2 anti-liantes
o_co c1 1s(2) 2pz(1) : o1 1s(2) 2pz(1) (3 1) proj 1,2
systeme sigma de CO
il y a un probleme. On donne ici toutes les orb de valence de CO, donc on va
generer : 1. la liante et l'A-L CO
2. Le doublet O
3. Le doublet C
Pb1. on avait deja construit les doublets. On les a 2 fois
Pb2. toute cette partie sigma est melangee
---> solution :
on va donc eliminer les 2 doublets contenus dans o_co par soustraction de
o_odbt et o_cdbt. On projette donc les orbitales obtenues ici sur
o_odbt et o_cdbt pour faire cette soustraction.
D'ou les donnees proj 1,2 et ref 1 , ref 2
proj 1,2 signifie qu'on soustrait les references 1 et 2. Il n'y a pas de
limite au nombre de proj et de ref
rem : l'occupation donnee (3 1) est AVANT projection
PROJECTIONS ET REFERENCES
1. Quand en a-t-on besoin ?
2. Orbitales a la fois ref et proj
3. syntaxe et regles
1. Quand en a-t-on besoin ?
On en a besoin chaque fois qu'une orbitale inclut une orbitale deja donnee
.Exemple 1 : H2O
H1
\ (Un doublet hors du plan n'est pas represente)
O :
/
H2
Donnee des 2 doublets O
o_doub o 1s(2) 2p(1) (2 0) ref 1 (2 occ)
Donnees des liaisons CH
o_oh1 o 1s(2) 2p(1) : h1 1s(2) 2p(1) (3 1) proj 1 (2 Doub, 1 Liante, 1 A-L)
o_oh2 o 1s(2) 2p(1) : h2 1s(2) 2p(1) (3 1) proj 1 (2 Doub, 1 Liante, 1 A-L)
Chaque liaison CH genere necessairement les 2 doublets. On les soustraits
par projection sur o_doub
.Exemple 2 : donnees avec symetrie
C2 - C1
\
C4
| ---------> axe de symetrie
C4
/
C2 - C1
Donnee des 2 liaisons C1-C2
o_C1C2 c1 1s(2) 2p(1) : c2 1s(2) 2p(1) (2 2) (2, car 2 liaisons sont definies)
Donnee des 2 liaisons C1-C4
o_C1C4 c1 1s(2) 2p(1) : c4 1s(2) 2p(1) (3 3) (3, car 3 liaisons sont definies:
2 C1-C4, et C4-C4, puisque toute
la valence de C4 est presente)
On a alors un systeme delocalise sur C1-C4-C4-C1
Si on veut avoir ne liaison C4-C4 localisee, il faut la donner:
o_C4C4 c4 1s(2) 2p(1) (1 1) ref 1
...et la soustraire des C1-C4
o_C1C4 c1 1s(2) 2p(1) : c4 1s(2) 2p(1) (3 3) proj 1
2. Orbitales a la fois ref et proj
.Exemple
C3 - C2 doublet N:
/ \ o_n n 1s(2) 2p(1) (1 0) ref 1
C4 N : liaison C2-N: (contient 1 Liante, 1 A-L, le doublet)
\ / o_c2N C2 1s(2) 2p(1) : N 1s(2) 2p(1) (2 1) ref 2 proj 1
C5 - C6 liaison C6-N:
o_c6N C6 1s(2) 2p(1) : N 1s(2) 2p(1) (2 1) ref 3 proj 1
Autres liaisons sigma:
o_c2c3 C2 1s(2) 2p(1) : c3 1s(2) 2p(1) (1 1) ref 4
o_c3c4 C3 1s(2) 2p(1) : c4 1s(2) 2p(1) (1 1) ref 5
o_c4c5 C4 1s(2) 2p(1) : c5 1s(2) 2p(1) (1 1) ref 6
o_c5c6 C5 1s(2) 2p(1) : c6 1s(2) 2p(1) (1 1) ref 7
systeme pi:
o_pi n 1s(2) 2p(1) : c2 1s(2) 2p(1) : c3 1s(2) 2p(1) : &
c4 1s(2) 2p(1) : c5 1s(2) 2p(1) : c6 1s(2) 2p(1) (11 9) proj 2,3,4,5,6,7
explication: le systeme pi est defini comme:
[toutes les liaisons de valence des C et N]
- [toutes les liaisons sigma (les ref 2 a 7)]
on doit arriver a 3 Liantes et 3 A-L
les ref 2 a 7 contiennent 2+2+1+1+1+1 L, 1+1+1+1+1+1 A-L,
soit 8 et 6 orb. On doit donc donner (11 9) pour arriver a (3 3)
ATTENTION: on considere que les ref 2 et 3 ont 2 Liantes, malgre
leur projection sur ref 1. On projette ainsi aussi implicitement
sur ref 1.
3. syntaxe et regles
- bien mettre un blanc avant et apres ref ou proj
- on peut ecrire ref 3 proj 1 ou proj 1 ref 3
- l'ORDRE des orbitales n'importe pas. Les donnees sont mises en memoire,
puis traitees en bloc a la fin. Les ref peuvent donc arriver avant ou
apres les proj correspondantes.
===============================================================================================
************************
SIMPLICATION DES DONNEES
************************
(Valable pour &OAO et &ORB)
a) 2p(n) = 2px(n) 2py(n) 2pz(n)
3d(n) = 3d0(n) 3d1+(n) 3d1-(n) 3d2+(n) 3d2-(n)
etc...
les donnees precedentes deviennent alors :
&oao /
c1 1s(1) pr=1
c1 1s(2) pr=2
c1 2p(1) pr=2
o1 1s(1) pr=1
o1 1s(2) pr=2
o1 2p(1) pr=2
fin
b) c[1 1 2 2] 1s(2) pr=2 genere 4 lignes :
c1 1s(2) pr=2
c1 1s(2) pr=2
c2 1s(2) pr=2
c2 1s(2) pr=2
c) c* : (dans &oao)
genere autant de lignes que le nb d'atomes commencant par c, ou "*"
represente des chiffres (pour ne pas generer Cu, ou Cr ...)
===============================================================================
************************
ORIENTATION DES LIAISONS
************************
Quand on veut avoir une liaison directionnelle
O_C1C2 C1 1S(2) 2P(1) : C2 1S(2) 2P(1) (2,2) PARA(C1,C2)
elimine les composantes perpendiculaires a l'axe C1C2
O_C1C2 C1 1S(2) 2P(1) : C2 1S(2) 2P(1) (2,2) PARA(C1,C2,C3)
elimine les composantes perpendiculaires au plan C1C2C3
O_C1C2 C1 1S(2) 2P(1) : C2 1S(2) 2P(1) (2,2) ORTH(C1,C2,C3)
ne garde que les composantes orthogonales au plan C1C2C3
(pour obtenir des pi par exemple)
O_C1C2 C1 1S(2) 2P(1) : C2 1S(2) 2P(1) (2,2) ORTH(C1,C2)
ne garde que les composantes orthogonales a l'axe C1C2
(pour obtenir des pi par exemple)
Remarque : en phase de test : verifier les resultats, surtout dans
le dernier cas. Problemes quand il y a beaucoup de symetrie
=================================================================================
*************************
REGROUPEMENTS DE LIAISONS
*************************
Permet de creer apres &ORB, une serie de laiasons a partir d'un ligne de donnees
necessite la donnee de la symetrie dans la nameliste &orb
&orb sym='x xy' /
(ce sont les donnees "SYMMETRY" de seward)
a) sigma_ C* 1s(2) 2p(1) : H* 1s(1) dmax=1.6 angstrom
genere toutes les liaisons entre atomes commencant par C et
atomes commecant par H (le reste des noms etant des chiffres)
pour lesquelles la distance est < dmax
de meme pour des atomes identiques
sigma_ C* 1s(2) 2p(1) : C* 1s(2) 2p(1) dmax=1.6 angstrom
genere les donnees :
O_SIG.C1H13 C1 1S(2) 2P(1) : H13 1S(1) (2,2)
...
b) variante :
SIGMA_PARA C* 1S(2) 2P(1) : C* 1S(2) 2P(1) DMAX=1.6 ANGSTROM
genere :
O_SIG.C1C1 C1 1S(2) 2P(1) (1,1) PARA(0,C1)
O_SIG.C1C2 C1 1S(2) 2P(1) : C2 1S(2) 2P(1) (2,2) PARA(C1,C2)
c) PI_ C* 1S(2) 2P(1) : C* 1S(2) 2P(1) DMAX=1.4 ANGSTROM
genere :
O_PI.C1C1 C1 1S(2) 2P(1) (1,1)
O_PI.C2C3 C2 1S(2) 2P(1) : C3 1S(2) 2P(1) (2,2)
d) variante :
PI_ORTH C* 1S(2) 2P(1) : C* 1S(2) 2P(1) DMAX=1.4 ANGSTROM
genere :
O_PI.C1C1 C1 1S(2) 2P(1) (1,1) ORTH(0,C1,H13)
O_PI.C2C3 C2 1S(2) 2P(1) : C3 1S(2) 2P(1) (2,2) ORTH(C2,C3,H12)
...
ou H12 est un atome voisin de C2C3
e) CORE_ C* 1S(1)
genere :
C_COR.C1 C1 1S(1) (2,0)
C_COR.C2 C2 1S(1) (2,0)
C_COR.C3 C3 1S(1) (2,0)
...
f) LONEP_ natom=3,atom=N9,n8,c10,bas=3*'1s(1) 2p(1)',cond='para(c12,c5,d12)'
genere un doublet et ses deux liaisons adjacentes, avec les donnees
proj et ref associees. Attention, un seul double est genere ! (v. plus
bas)
- natom : nombre d'atomes concernes (celui du doublet, plus les voisins,
don 4 pour NH3)
- atom= : label des atomes (si les 2 atomes lies a celui du doublet
sont symetriques l'un de l'autre, et portent donc le meme
nom, les donner tous les deux noms).
exemple :
H1
\
O :
/
H1
LONEP_ natom=3,atom=O,H1,H1
- bas='...' bases des atomes correspondants
- cond='para(c12,c5,d12)' condition supplementaire (facultatif)
s'ajoute en fin de toutes les lignes generees
g) variante LONEPPARA_ natom=3,atom=n2,c3,c3,bas='1s(1) 2p(1)',lpdir='ru'
ajoute des donnees "PARA" en fin de ligne. Il faut un atome
supplementaire (ici 'Ru') pour definir la direction du doublet
ici, PAS de donnee COND='...'
h) MULT_ atom=c10,c11,c12,n8,c3,c4,c5,d4,d3,d12,d11,d10,bas=12*'1s(1) 2p(1)'
donnee d'une serie de liaisons simples c10-c11, c11-c12 etc...
comme pour LONEP_, on peut ajouter COND='...'
i) variante MULTPARA_
comme MULT_.
ici, PAS de donnee COND='...'
j) Labels.
Par defaut, les labels commencent tous par O_, sauf pour CORE_ (C_)
Si on veut changer des labels, on ajout la donnee
label='atom:l','atom2:l2',...
ou:
l=a,g,c...
atom=- changer tous les labels en l
atom=AT pour CORE_ changer le label de l'atome AT
pour LONEP_ AT doit correspondre au doublet
atom=AT1-AT2 pour la liaison AT1-AT2, changer le label en l
ex : label='C1-C1:g','c2-c3:a'
Remarques :
1. l'occupation (2,2) est calculee en fonction de la symetrie
du probleme
2. c'est en phase de test
3. on peut considerer cette possibilite comme un point de depart.
recuperer les donnees non contractees qui apparaissent sur la
sortie, et les modifier au besoin (faire des corrections,
remplacer o_ par a_, g_, etc...)
DONNEES DE SCHMUDORT :
En general, elles se limitent a
&ort /
(voir plus bas la correction eventuelle des numeros des actives)
DEFINITION DES ORBITALES ACTIVES
1. Les orbitales sont definies dans les labels des donnees &oao
Les orbitales actives ont pour label "A_...." (au lieu de "O_...." par ex)
A la fin de schmudorb, est cree un fichier NONORLOC contenant les orbitales
non orthogonales, leus occupations, et leurs labels. Les labels commencants
par "A_" definissent les actives pour la suite du calcul.
Cette information est transmise a schmudort, puis a locnats
(elle sert entre autres a definir les priorites d'orthogonalisation)
Pour locnats en particulier, elle est tres importante.
Pour ces 2 programmes, pas de donnees a preciser pour les actives,
elles sont transmises.
2. Il faut, dans casdi, faire un CAS correspondant a ces actives.
Malheureusement, elles ont un autre numero. Apres schmudort, il faut
donc faire "cp LOCORB INPORB", puis un motra et un molcost,
et regarder la sortie de molcost pour avoir les numeros des
orbitales a declarer actives dans casdi. On peut aussi utiliser le programme
noscf, qui genere toutes ces donnees automatiquement (voir mode
d'emploi de noscf).
3. Remarque
Il peut arriver que, parce qu'on genere plusieurs orbitales a la fois
(la donnee "(2 1)" genere 2 occupees et une anti-liante) on en veuille
que certaines actives. Si on donne le label "A_....", elle seront TOUTES
actives. Il faut alors les redefinir. Le methode est la suivante :
- faire un schmudort avec le label "A_...."
- reperer dans la sortie les orbitales a definir actives (leurs numeros)
- refaire passer schmudort, avec
&OAO noac=numeros des actives dans les orbitales qui apparaissent a la
fin du calcul
Attention, le label doit etre A_....
NIVEAU DE FERMI
Il est calcule a partir de l'occupation des orbitales du fichier orb
(orbitales scf en general). Les orbitales d'occupation superieures a 1.
sont considerees "occupees".
Cette methode peut etre mise en defaut (creant une erreur a la fin de
schmudorb).
Pour y remedier, on peut donner le niveau de Fermi a la main dans la
namelist &orb :
&orb fermi0=... /
REMARQUES :
1. le nombre de liaisons (L + A-L) DOIT etre egal au nombre d'OA qui
apparaissent dans les donnees. Sinon, le progr signale une erreur a la fin.
2. On peut simplifier les donnees comme dans oao, sauf en ce qui concerne
l'utilisation de l"*"
(C* ... est ignore)
3. (dans oao et ort) toutes les donnees sont transformees en majuscules
EXEMPLE DE DONNEES POUR UN CALCUL EN ORBITALES LOCALES
FABRICATION DES DONNEES PAS A PAS
MOLECULE ETUDIEE :
La geometrie a pour donnees seward :
&SEWARD &END
Title
cu2 OH2 por Mitchell et Bernard
Symmetry
xy yz
Basis set
Cu.ECP.Barandiaran.9s6p6d.2s2p2d.17e-CG-AIMP
Cu1 0.000000 0.000000 1.499885 Angstrom
End of basis
Basis set
C.ANO-L...2s1p.
C1 0.585570 0.412890 -4.223275 Angstrom
C3 2.185730 -1.082860 -3.005535 Angstrom
C5 2.299940 1.311480 -2.825985 Angstrom
End of basis
Basis set
O.ANO-L...2s1p.
O2 1.170290 0.000000 0.000000 Angstrom
End of basis
Basis set
N.ANO-L...2s1p.
N1 1.386250 0.141940 -2.975525 Angstrom
End of basis
Basis set
H.ANO-L...1s.
H1 0.273150 1.441600 -4.257905 Angstrom
H2 1.212110 0.203300 -5.078705 Angstrom
H3 1.536480 -1.940610 -3.026705 Angstrom
H4 2.833950 -1.071960 -3.860325 Angstrom
H5 1.741340 2.199360 -3.001055 Angstrom
H6 2.765660 -1.164370 -2.090475 Angstrom
H7 3.124180 1.238290 -3.501225 Angstrom
H8 2.714450 1.330700 -1.821155 Angstrom
H9 2.070290 0.000000 0.000000 Angstrom
End of basis
End of input
ce qui veut dire que le groupe de symetrie est D2, et on a
- 2 atomes CU1
- 2 atomes O2
- 2 atomes H9
- Les autres atomes (C3, C5, H1_8, N1) apparaissent 4 fois
- Pour dessiner la molecule, remarquer que :
CU est lie a O2
CU est lie a N1
O2 est lie a H9
N1 est lie a C1 C2 C3
C1 est lie a H1 H2
C2 est lie a H3 H4 H6
C3 est lie a H5 H7 H8
on a aussi une liaison C1-C1
Les donnees SCF sont :
&SCF &END
Title
cu2 OH2 mitchell
Occupied
24 23 23 22
Occnumbers
24*2
22*2 1
23*2
21*2 1
End of input
------------------------------------------------------------------
PROGRAMMES SCHMUD
-----------------------------------------------------------------
Il y a 2 programmes schmud a executer l'un apres l'autre
schmudorb < in
schmudort < in
ou in est le fichier de donnees
- schmudorb : 1) construit une base d'orbitales atomiques orthogonales
(OAO)
2) construit des orbitales de liaison
- parmi ces orbitales de liaison, on doit choisir les actives
- schmudort : orthogonalise et reordonne les orbitales, en fonction des
actives choisies
--------------------
DONNEES DE SCHMUDORB
--------------------
1)
&smufil prefix='mitchell.',progr='MOLCAS' /
&smu nprint=1,orb='mitchell.ScfOrb' /
progr='MOLCAS' signifie qu'on par de molcas. On peut aussi partir de
Dalton
2)
&oao /
CU1 2p0(1) pr=1
CU1 2p1-(1) pr=1
CU1 2p1+(1) pr=1
CU1 3d0(1) pr=2
CU1 3d1+(1) pr=2
CU1 3d1-(1) pr=2
CU1 3d2+(1) pr=2
CU1 3d2-(1) pr=2
O2 1s(1) pr=1
O2 1s(2) pr=2
O2 2px(1) pr=2
O2 2py(1) pr=2
O2 2pz(1) pr=2
C* 1s(1) pr=1
C* 1s(2) pr=2
C* 2px(1) pr=2
C* 2py(1) pr=2
C* 2pz(1) pr=2
N* 1s(1) pr=1
N* 1s(2) pr=2
N* 2px(1) pr=2
N* 2py(1) pr=2
N* 2pz(1) pr=2
H* 1s0(1) pr=2
fin
Ces donnees concernent l'orthogonalisation des OA entre elles. C'est une
orthogonalisation hierarchisee, obtenue par une suite de projections
(Schmidt) et d'orthogonalisations S**-1/2
On donne par exemple :
CU1 2p0(1) pr=1
ce qui veut dire que la premiere orbitale 2p0 (donc la moins diffuse) est
orthogonalisee en 1er (priorite 1, pr=1)
C'est un orbitale de coeur, qu'on veut modifier le moins possible.
De meme
C* 1s(1) pr=1
signifie que toutes les 1s de coeur de tous les C (C* = C1,C2,C3) sont en
priorite 1
N* 1s(2) pr=2 : la 2eme orbitale S est en priorite 2, etc...
REMARQUES :
- On peut mettre autant de priorites differentes qu'on veut
- Les orbitales absentes des donnees sont de priorite (prio max +1)
- Il y a les equivalences suivantes 1s = 1s0 ; 2p0 2p1+ 2p1- = 2px 2py 2pz
(attention pour molcas, la correspondance 2p1+=2px ou 2p1+=2py selon les
groupes de symetrie)
- les donnees peuvent etre en majuscules ou en minuscules
3)
&orb /
o_o2 O2 1s(2) 2px(1) 2py(1) 2pz(1) : H9 1s(1) (8 2)
c_cu1 CU1 2px(1) 2py(1) 2pz(1) (6 0)
c_o2 O2 1s(1) (2 0)
c_c1 c1 1s(1) (4 0)
c_c3 c3 1s(1) (4 0)
c_c5 c5 1s(1) (4 0)
c_N1 1s(1) (4 0)
a_cu1 CU1 3d0(1) 3d1+(1) 3d1-(1) 3d2+(1) 3d2-(1) (10 0)
o_C1 C1 1s(2) 2px(1) 2py(1) 2pz(1) (2 2) ref 1
o_N1 N1 1s(2) 2px(1) 2py(1) 2pz(1) (4 0)
o_N1 N1 1s(2) 2px(1) 2py(1) 2pz(1) : C3 1s(2) 2px(1) 2py(1) 2pz(1) (4 4)
o_N1 N1 1s(2) 2px(1) 2py(1) 2pz(1) : C5 1s(2) 2px(1) 2py(1) 2pz(1) (4 4)
o_N1 N1 1s(2) 2px(1) 2py(1) 2pz(1) : C1 1s(2) 2px(1) 2py(1) 2pz(1) (6 6) proj 1
o_C1 C1 1s(2) 2px(1) 2py(1) 2pz(1) : H1 1s(1) (6 6) proj 1
o_C1 C1 1s(2) 2px(1) 2py(1) 2pz(1) : H2 1s(1) (6 6) proj 1
o_C3 C3 1s(2) 2px(1) 2py(1) 2pz(1) : H3 1s(1) (4 4)
o_C3 C3 1s(2) 2px(1) 2py(1) 2pz(1) : H4 1s(1) (4 4)
o_C3 C3 1s(2) 2px(1) 2py(1) 2pz(1) : H6 1s(1) (4 4)
o_C5 C5 1s(2) 2px(1) 2py(1) 2pz(1) : H5 1s(1) (4 4)
o_C5 C5 1s(2) 2px(1) 2py(1) 2pz(1) : H7 1s(1) (4 4)
o_C5 C5 1s(2) 2px(1) 2py(1) 2pz(1) : H8 1s(1) (4 4)
fin
On va detailler maintenant ces donnees, qui sont plus complexes
Chaque ligne correspond a une "liaison". Le mot "liaison" a ici une
signification plus large que celle qu'on lui donne en general. "liaison"
signifie ici :
Toute orbitale de fragment fabriquee a partir des OA du fragment.
Par exemple, la donnee
o_o2 O2 1s(2) 2px(1) 2py(1) 2pz(1) : H9 1s(1) (8 2)
signifie
- on considere le fragment O2-H9
- dans ce fragment, on considere les orbitales :
- pour O2 1s(2) 2px(1) 2py(1) 2pz(1) ; pour H9 1s(1)
(ce sont les orbitales de valence)
ON VA MAINTENANT REGARDER TOUTES LES FORMES DE "LIAISONS" POSSIBLES
3A) COEUR
la donnee est du type
c_o2 O2 1s(1) (2 0)
- "c" pour coeur
- O2 1s(1) : l'OA est la 1ere s ce O2, don l'OA de coeur
- (2 0) avec ces OAn on cree 2 occupees (car il y a 2 atomes O2), et 0
virtuelle
Le programme repond :
donnee C_o2 O2 1S0(1) (2 0)
atome ====O2 ====
...
nombre d'orbitales occupees par symetrie 1 1 0 0
nombre d'orbitales anti-liantes par symetrie 0 0 0 0
(il a trouve 2 orbitales occupees, de sym 1 et 2)
3B) LIAISON COVALENTE
par exemple, la liaison C5-H5
o_o5 C5 1s(2) 2px(1) 2py(1) 2pz(1) : H5 1s(1) (4 4)
- "o" signifie "orbitale", c'est-a-dire non "coeur"
- C5 1s(2) 2px(1) 2py(1) 2pz(1) sont les orbitales de valence de C5
- H5 1s(1) de meme pour H5
- (4 4) Il y a 4 orbitales occupees (les liaisons des 4 C5H5 de la
molecule) et 4 anti-liantes fabriquees avec le OA donnees
Le programme repond :
donnee O_c5 C5 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : H5 1S0(1) (4 4)
atome ====C5 ====
atome ====H5 ====
puis fabrique, symetrie par symetrie, des orbitales de liaison et calcule
leur occupation. En symetrie 1, il extrait la matrice densite de fragment:
sym 1 matrice extraite
1 2 3 4 5
1 C5 1s0 1.0266 0.0564 0.0709 0.0029 0.5118
2 C5 2p1+ 0.0564 1.0842 -0.1577 -0.0148 -0.4338
3 C5 2p1- 0.0709 -0.1577 1.0079 -0.0204 0.6948
4 C5 2p0 0.0029 -0.0148 -0.0204 1.2084 -0.1417
5 H5 1s0 0.5118 -0.4338 0.6948 -0.1417 0.8361
(noter qu'il y a a peu pres 1 electron par OA)
Sa diagonalisation donne les occupations et les orbitales :
occupations, orbitales naturelles
1.9908 1.2100 1.1169 0.8384 0.0071
1 2 3 4 5
1 C5 1s0 0.3596 -0.0196 0.7332 -0.4467 -0.3650
2 C5 2p1+ -0.3788 -0.2227 0.6512 0.5616 0.2597
3 C5 2p1- 0.5448 0.0745 -0.0720 0.6933 -0.4602
4 C5 2p0 -0.1224 0.9718 0.1695 0.0665 0.0861
5 H5 1s0 0.6445 0.0017 0.0667 0.0059 0.7617
On a une orbitale occupee a 1.9908. C'est la liaison sigma. Il y a une
orbitale vide (0.0071). C'est l'antiliante. Les autres (proches de 1.)
n'ont pas de signification physique. Elles correspondent aux trois
"demi-liaisons" C-C et C-H avec d'autres centres. Elles seront eliminees.
Apres etude de toutes les symetries, le programme choisit les 4 orbitales
les plus occupees, et les 4 plus vides. Il trouve :
nombre d'orbitales occupees par symetrie 1 1 1 1
nombre d'orbitales anti-liantes par symetrie 1 1 1 1
3C) Fragment "isole" :
On ne connait pas bien la nature de la liaison O2-CU
on va supposer qu'on a un OH- "autonome"
Reprenons la donnee :
o_o2 O2 1s(2) 2px(1) 2py(1) 2pz(1) : H9 1s(1) (8 2)
- en debut de ligne, un "o" signifie que ces donnees ne concernent pas des
orbitales de coeur
- a la fin, le 8 signifie qu'on a 8 occupees (on OH-, donc 8 electrons,
donc 4 occupees. On a 2 OH donc 8 occupees)
- a la fin, le 2 signifie que la donnee des OA de valence generera une
anti-liante (2 sur les 2 OH-)
Schmudorb repond a cette donnee de la facon suivante :
donnee O O2 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : H9 1S0(1) (8 2)
atome ====O2 ====
atome ====H9 ====
puis fabrique, symetrie par symetrie, des orbitales de liaison et calcule
leur occupation. Les 8 plus occupees sont retenues, les 2 moins occupees
sont aussi retenues parmi les antiliantes. A la fin, on a :
nombre d'orbitales occupees par symetrie 2 2 2 2
nombre d'orbitales anti-liantes par symetrie 1 1 0 0
Les occupations, par symetrie, etaient :
1 1.9970 1.9524 0.0047
2 1.9974 1.8691 0.0040
3 1.9950 1.9284
4 1.9878 1.7254
On retenu 8 occupees, et 2 anti-liantes. Leurs occupations sont claires.
Notre hypothese d'un OH- "autonome" ou "isole" etait corrcte. L'orbitale
occupee par 1.7254 electron est une 2pz. Les electrons se sont
partiellement delocalises dans le CU.
3C') Autre exemple de systeme isole :
Supposons :
On n'a pas non plus une idee claire de la liaison CU-N1
On va supposer que N garde son doublet, et on donne :
O_n1 N1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) (4 0)
Le programme repond :
1 1.8882 1.1653 1.1622 1.1126
2 1.6941 1.2007 1.1544 1.1435
3 1.8967 1.1648 1.1617 1.1121
4 1.7382 1.2033 1.1542 1.1465
nombre d'orbitales occupees par symetrie 1 1 1 1
nombre d'orbitales anti-liantes par symetrie 0 0 0 0
L'hypothese n'etait pas absurde
- on a 4 occupees
- on n'a clairement aucune anti-liante
- on a 12 "demi-liaisons" (N-C) a rejeter
Remarque : c'est donc une solution qui marche, qui convient pour un point
de depart, mais on pourrait en essayer d'autre, par exemple entre des
entites N-C, etc...
3D) PROBLEMES LIES A LA SYMETRIE
3DA) Pour entrer la liaison C1-C1, on donne :
O_c1c1 C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) (2 2)
Il n'y a pas de difficulte particuliere
3DB) Mais si on entre la liaison C1-H1:
donnee : O_c1h1 C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : H1 1S0(1) (4 4)
(4 liaisons, 1 occupee et une anti-liante par liaison) on obtient les
occupations de fragment :
sym 1 1.9904 1.9823 1.2230 0.8455 0.0080
sym 2 1.9923 1.1948 0.7563 0.0176 0.0052
sym 3 1.9905 1.9822 1.2244 0.8458 0.0080
sym 4 1.9924 1.1951 0.7579 0.0180 0.0053
On a clairement 6 occupees et 6 anti-liantes !
C'est que, en donnant le centre C1, on genere automatiquement la liaison
C1-C1. Il faut donc donner
O_c1 C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : H1 1S0(1) (6 6)
et regenerer C1-C1
puis on va eliminer, par projection, C1-C1 de H1-C1-C1-H1
pour cela, les donnees de C1-C1 et H1-C1-C1-H1 sont
O C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) (2 2) ref 1
O C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : H1 1S0(1) (6 6) proj 1
On aura de meme pour N1-C1-C1-N1
O N1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) : C1 1S0(2) 2P1-(1) 2P1+(1) 2P0(1) &
(6 6) PROJ 1
("&" pour ligne suite)
REMARQUE :
- l'ordre pour donner ref et proj est sans importance
- si on doit projeter sur 2 liaisons, on donne :
................... ref 1
....................... ref 2
..............................proj 1,2
- si une orbitale est a la fois proj et ref, on entre :
................... ref 1 ; proj 2
4) TESTS DE BON FONCTIONNEMENT
Il faut avoir entre autant d'OA que d'orbitales de liaison dans chaque
symetrie. Si ce n'es pas le cas, le programme signale "ERREUR".
5) ORBITALES FINALES
A la fin du calcul, on obtient des orbitales de liaison (ou de fragments)
exprimees dans la base des OAO, et non orthogonalisees. Les orbitales de
coeur sont en tete. Il faut maintenant choisir les actives, selon le
probleme physique considere. C'est la qu'il faut "regarder" les orbitales.
Quand on a trouve les actives, on peut :
noter leurs numeros (ecrits au-dessus des
orbitales), et faire tourner schmudort en lui donnant ces numeros.
ou mieux, rfaire tourner schmudorb, en remplcant o_ par a_ en debut de ligne
pour les orbitales considerees
--------------------
DONNEES DE SCHMUDORT
--------------------
&ort numac=53,132 /
ou 53,132 sont les 2 actives trouvees dans l'examen de la sortie de
schmudorb.
On a maintenant, dans le fichier LOCORB, un jeu d'orbitales de fragment
orthogonalisees, exprimees dans la base des OA. On peut faire une IC dans
la base de ces orbitales