mirror of
https://github.com/LCPQ/Cost_package.git
synced 2024-09-12 06:48:30 +02:00
Ajout des manuels
This commit is contained in:
parent
fb3cf25985
commit
45937de5a3
253
Manuals/calculs_cholesky_emploi
Executable file
253
Manuals/calculs_cholesky_emploi
Executable file
@ -0,0 +1,253 @@
|
|||||||
|
CALCULS CHOLESKY CALCULS CHOLESKY CALCULS CHOLESKY CALCULS CHOLESKY
|
||||||
|
16 dec 2010
|
||||||
|
|
||||||
|
|
||||||
|
I Calculs CASDI
|
||||||
|
|
||||||
|
I.1. Les integrales bi-electroniques sont obtenues dans motra.
|
||||||
|
=========================================================
|
||||||
|
La seule difference dans les fichiers de donnees est d'ajouter CHOL ou
|
||||||
|
HIGH ou LOW dans les donnees de seward.
|
||||||
|
|
||||||
|
- Le calcul motra est tres long, et cette methode n'est pas la meilleure.
|
||||||
|
|
||||||
|
|
||||||
|
I.2. Motra transforme les vecteurs de Cholesky, qui sont transformes en
|
||||||
|
integrales par un programme ulterieur (chol_X).
|
||||||
|
=========================================================
|
||||||
|
chol_X ne les calcule
|
||||||
|
pas toutes. Il commence par calculer les integrales d'echange, puis,
|
||||||
|
des seuils etant donnes, ne calcule que les integrales entre orbitales
|
||||||
|
en "interaction forte"
|
||||||
|
|
||||||
|
seward donnee supplementaire "CHOL" ou "HIGH" ou "LOW"
|
||||||
|
scf
|
||||||
|
(rasscf)
|
||||||
|
|
||||||
|
motra donnees supplementaires (2 lignes): CTONLY
|
||||||
|
(dans cet ordre !) KPQ
|
||||||
|
(Cholesky Transformation ONLY ; kpq : dans les
|
||||||
|
vecteurs cholesky V(k,pq) k sont les lignes
|
||||||
|
et pq les colonnes
|
||||||
|
PAS DE GEL EN DONNEE !
|
||||||
|
|
||||||
|
molcost donnees supplementaires : ychol=T
|
||||||
|
frozen, delete, fermi (apres gel) sont
|
||||||
|
donnes ICI
|
||||||
|
si on veut reordonner les orbitales en
|
||||||
|
Occ Act Virt (pour Nevpt2) donner ICI
|
||||||
|
act, ninact
|
||||||
|
|
||||||
|
chol_X donnees : &chol sli1=1.d-7,sli2=1.d-7 /
|
||||||
|
dans l'integrale (ij|kl):
|
||||||
|
sli1 : seuil pour considerer la distance i-j
|
||||||
|
sli2 : seuil pour considerer la distance ij-kl
|
||||||
|
|
||||||
|
casdet
|
||||||
|
casdi donnee obligatoire : itest(63)=1
|
||||||
|
(les integrales sont lues sur ijcl1,ijcl2,ijcl3)
|
||||||
|
|
||||||
|
|
||||||
|
II. Calculs en Orbitales Localisees
|
||||||
|
|
||||||
|
II.1. Calculs CASDI
|
||||||
|
|
||||||
|
seward donnee supplementaire "CHOL" ou "HIGH" ou "LOW"
|
||||||
|
scf
|
||||||
|
(rasscf)
|
||||||
|
|
||||||
|
dolo donner &smu ychol=T dans DOLOIN
|
||||||
|
(proj_scf)
|
||||||
|
schmudort
|
||||||
|
cp LOCORB INPORB
|
||||||
|
|
||||||
|
motra DOLO_MOTRAIN
|
||||||
|
DOLO_MOTRAIN a ete cree dans dolo
|
||||||
|
par rapport a motra, il a les 2 lignes
|
||||||
|
supplementaires :
|
||||||
|
CTONLY
|
||||||
|
KPQ
|
||||||
|
(Cholesky Transformation ONLY ; kpq : dans les
|
||||||
|
vecteurs cholesky V(k,pq) k sont les lignes
|
||||||
|
et pq les colonnes
|
||||||
|
pas de gel ni de del en donnee
|
||||||
|
|
||||||
|
molcost < DOLO_MOLCOSTIN
|
||||||
|
DOLO_MOLCOSTIN a ete cree dans dolo
|
||||||
|
avec la donnee supplementaire : ychol=T
|
||||||
|
frozen, delete, fermi (apres gel) sont
|
||||||
|
donnes ici
|
||||||
|
|
||||||
|
chol_X donnees : &chol sli1=1.d-7,sli2=1.d-7 /
|
||||||
|
dans l'integrale (ij|kl):
|
||||||
|
sli1 : seuil pour considerer la distance i-j
|
||||||
|
sli2 : seuil pour considerer la distance ij-kl
|
||||||
|
casdet
|
||||||
|
casdi donnee obligatoire : itest(63)=1
|
||||||
|
(les integrales sont lues sur ijcl1,ijcl2,ijcl3)
|
||||||
|
|
||||||
|
|
||||||
|
II.2. Calculs CASDILOC
|
||||||
|
|
||||||
|
Motra transforme les vecteurs de Cholesky. Puis molcost les reecrit
|
||||||
|
dans un fichier lu par ijkloc. ijkloc transforme les vecteurs de Cholesky
|
||||||
|
de la base atomique a la base moleculaire, puis calcule les integrales en
|
||||||
|
bas locale, conformement a ds seuils en donnee.
|
||||||
|
|
||||||
|
seward donnee supplementaire "CHOL" ou "HIGH" ou "LOW"
|
||||||
|
scf
|
||||||
|
(rasscf)
|
||||||
|
|
||||||
|
si localisation dolo :
|
||||||
|
dolo donner &smu ychol=T dans DOLOIN
|
||||||
|
(proj_scf)
|
||||||
|
schmudort
|
||||||
|
cp LOCORB INPORB
|
||||||
|
si localisation lewis :
|
||||||
|
lewis
|
||||||
|
cp LOCORB INPORB
|
||||||
|
donner ychol=T dans &lewis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
motra DOLO_MOTRAIN (DOLO_MOTRAIN a ete genere dans dolo ou lewis)
|
||||||
|
DOLO_MOTRAIN a ete cree dans dolo (ou lewis)
|
||||||
|
par rapport a motra, il a les 2 lignes
|
||||||
|
supplementaires (a cause de la donnee ychol=T
|
||||||
|
dans dolo ou lewis) :
|
||||||
|
CTONLY
|
||||||
|
KPQ
|
||||||
|
(Cholesky Transformation ONLY ; kpq : dans les
|
||||||
|
vecteurs cholesky V(k,pq) k sont les lignes
|
||||||
|
et pq les colonnes
|
||||||
|
pas de gel ni de del en donnee
|
||||||
|
|
||||||
|
molcost < DOLO_MOLCOSTIN (DOLO_MOLCOSTIN a ete genere dans dolo ou lewis)
|
||||||
|
DOLO_MOLCOSTIN a ete cree dans dolo (ou lewis)
|
||||||
|
avec la donnee supplementaire : ychol=T
|
||||||
|
frozen, delete, fermi (apres gel) sont
|
||||||
|
donnes ici
|
||||||
|
|
||||||
|
|
||||||
|
ijkloc donnee supplementaire : ychol=T
|
||||||
|
sli1 : seuil, dans (ijkl) pour les
|
||||||
|
distributions i-j et k-l
|
||||||
|
sli2 : seuil d'interaction de ij avec kl
|
||||||
|
|
||||||
|
casdiloc
|
||||||
|
|
||||||
|
|
||||||
|
exemple de fichier casdiloc
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
Project='acetone'
|
||||||
|
CurrDir=$PWD
|
||||||
|
WorkDir=$CurrDir/TMP
|
||||||
|
export Project WorkDir CurrDir
|
||||||
|
export PATH=$PATH:/home/daniel/cost2/bin
|
||||||
|
export MOLCAS=/home/daniel/7.7.dev
|
||||||
|
echo 'Start of job:' $Project
|
||||||
|
echo 'Current directory:' $CurrDir
|
||||||
|
echo 'Scratch directory:' $WorkDir
|
||||||
|
cd $WorkDir
|
||||||
|
#------------------------------------------------------------------------------#
|
||||||
|
# Start executing molcas job #
|
||||||
|
#------------------------------------------------------------------------------#
|
||||||
|
|
||||||
|
|
||||||
|
######################seward scf############
|
||||||
|
rm -fr $WorkDir
|
||||||
|
mkdir $WorkDir
|
||||||
|
cd $WorkDir
|
||||||
|
molcas $CurrDir/sewin
|
||||||
|
molcas $CurrDir/scfin
|
||||||
|
cp ../TMP0/acetone.ScfOrb .
|
||||||
|
############################################
|
||||||
|
|
||||||
|
##############interface#####################
|
||||||
|
molcost << EOF
|
||||||
|
&cost prefix='acetone.', ymo=f /
|
||||||
|
EOF
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
######## LOCALISATION ###################################
|
||||||
|
dolo
|
||||||
|
proj_scf << EOF
|
||||||
|
&pscf prefix='acetone.' /
|
||||||
|
EOF
|
||||||
|
mv NONORLOC_scf NONORLOC
|
||||||
|
schmudort << EOF
|
||||||
|
&ort /
|
||||||
|
EOF
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
############# motra ########################
|
||||||
|
cp LOCORB INPORB
|
||||||
|
molcas DOLO_MOTRAIN
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
############# molcost ########################
|
||||||
|
molcost < DOLO_MOLCOSTIN
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
############# ijkloc ########################
|
||||||
|
ijkloc << EOF
|
||||||
|
&ijkloc prefix='acetone.',ychol=t,nprint=1
|
||||||
|
symm='XY X',sli=0.d0 /
|
||||||
|
EOF
|
||||||
|
###########################################
|
||||||
|
|
||||||
|
############# casdiloc ##################
|
||||||
|
casdiloc << EOF
|
||||||
|
&locci prefix='acetone.',gener='CAS+SD'
|
||||||
|
/
|
||||||
|
EOF
|
||||||
|
###########################################
|
||||||
|
1,1 Haut
|
||||||
|
DOLOIN:
|
||||||
|
|
||||||
|
&smufil prefix='acetone.' /
|
||||||
|
&smu
|
||||||
|
nprint=0,ychol=t
|
||||||
|
orb='acetone.ScfOrb' /
|
||||||
|
/
|
||||||
|
&oao /
|
||||||
|
C* 1s(1) pr=1
|
||||||
|
O* 1s(1) pr=1
|
||||||
|
C* 1s(2) pr=2
|
||||||
|
O* 1s(2) pr=2
|
||||||
|
H* 1s(1) pr=2
|
||||||
|
C* 2p(1) pr=2
|
||||||
|
O* 2p(1) pr=2
|
||||||
|
fin
|
||||||
|
&orb symm='XY X' /
|
||||||
|
&smufil prefix='acetone.' /
|
||||||
|
&smu
|
||||||
|
nprint=0,ychol=t
|
||||||
|
orb='acetone.ScfOrb' /
|
||||||
|
/
|
||||||
|
&oao /
|
||||||
|
C* 1s(1) pr=1
|
||||||
|
O* 1s(1) pr=1
|
||||||
|
C* 1s(2) pr=2
|
||||||
|
O* 1s(2) pr=2
|
||||||
|
H* 1s(1) pr=2
|
||||||
|
C* 2p(1) pr=2
|
||||||
|
O* 2p(1) pr=2
|
||||||
|
fin
|
||||||
|
&orb symm='XY X' /
|
||||||
|
|
||||||
|
|
||||||
|
OLD_DATA:
|
||||||
|
|
||||||
|
BOND_ BASREF='O:1S(2) 2P(1),C:1S(2) 2P(1),H:1S(1)'
|
||||||
|
BOND_ CHAIN='C1=O1(LP2)'
|
||||||
|
BOND_ CHAIN='C1-C2'
|
||||||
|
BOND_ CHAIN='C2-H1'
|
||||||
|
BOND_ CHAIN='C2-H2'
|
||||||
|
CORE_ C* 1S(1) label='G'
|
||||||
|
CORE_ O* 1S(1) label='G'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
178
Manuals/casdet_emploi
Executable file
178
Manuals/casdet_emploi
Executable file
@ -0,0 +1,178 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
XXXX XX XXXXX XXXXX XXXXXXX XXXXXXX
|
||||||
|
X X X X X X X X X X X X
|
||||||
|
X X X X X X X
|
||||||
|
X X X X X X X X X
|
||||||
|
X X X XXXXX X X XXXX X
|
||||||
|
X X X X X X X X X
|
||||||
|
X XXXXX X X X X X
|
||||||
|
X X X X X X X X X X X
|
||||||
|
XXXX XXX XXX XXXXX XXXXX XXXXXXX XXX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Le programme casdet permet de :
|
||||||
|
|
||||||
|
- generer un espace de determinants. Cet espace est forme d'un
|
||||||
|
espace modele (ou generateur) qui est un CAS ou un espace
|
||||||
|
selectionne et d'un espace plus vaste genere a partir de
|
||||||
|
l'espace modele (simples, simples et doubles, DDCI ...)
|
||||||
|
(Programme Casdet)
|
||||||
|
|
||||||
|
|
||||||
|
INPUT FILES:
|
||||||
|
|
||||||
|
"prefix"Info: created by molcost (ASCII file)
|
||||||
|
"prefix"Mono: created by molcost (binary file)
|
||||||
|
|
||||||
|
OUTPUT FILES:
|
||||||
|
"prefix"det: contains determinants (binary file)
|
||||||
|
"prefix"cdi: gives info to casdi (ASCII file)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
INPUT DATA:
|
||||||
|
2 namelists:
|
||||||
|
|
||||||
|
&cdfil
|
||||||
|
prefix= name of the project, with a point (.) at the end
|
||||||
|
ex: Project=PROJ in molcas
|
||||||
|
--> prefix='PROJ.' in casdet
|
||||||
|
this data MUST be given
|
||||||
|
Facultative data: input and output files have by default the names:
|
||||||
|
"prefix"Info, "prefix"Mono, "prefix"det
|
||||||
|
info='III' Info file's name is "prefix"III
|
||||||
|
Mono='MMM' Mono file's name is "prefix"MMM
|
||||||
|
det='DDD' det file's name is "prefix"DDD
|
||||||
|
info1='III' Info file's name is III
|
||||||
|
info1='MMM' Mono file's name is MMM
|
||||||
|
info1='DDD' Det file's name is DDD
|
||||||
|
/
|
||||||
|
|
||||||
|
&cd
|
||||||
|
gener= 'CAS+SD' 'CAS+SD' (CAS + Simples et Doubles) (defaut)
|
||||||
|
'CAS+S' (CAS + Simples)
|
||||||
|
'CAS+DDCI' (CAS + espace DDCI)
|
||||||
|
'CAS+DDC2' (CAS + espace DDCI2)
|
||||||
|
'CAS' (CAS seul)
|
||||||
|
'SEL+SD' (esp selectionne+Simples et Doubles)
|
||||||
|
'SEL+S' (esp selectionne + Simples)
|
||||||
|
'SEL+DDCI' (esp selectionne + espace DDCI)
|
||||||
|
'SEL+DDC2' (esp selectionne + espace DDCI2)
|
||||||
|
'SEL' (esp selectionne seul)
|
||||||
|
'SEL','SEL+S','SEL+DDC2','SEL+DDCI','SEL+SD'
|
||||||
|
noac 0 number of active orbitals
|
||||||
|
nelac 0 number of active electrons
|
||||||
|
numac 16*0 active orbitals in the list of orb in molcost
|
||||||
|
ms2 double de la valeur de Sz
|
||||||
|
is0 groupe de symetrie des fonctions d'onde cherchees
|
||||||
|
nprint 0 0 ou 1
|
||||||
|
/
|
||||||
|
|
||||||
|
si gener = SEL...
|
||||||
|
|
||||||
|
une namelist &mr par determinant de reference fourni en donnee
|
||||||
|
&mr
|
||||||
|
ic= occupation du CAS. Si par exemple on veut occuper les
|
||||||
|
orbitales 3 et 4 par 2 et un electrons : ic=3,3,4.
|
||||||
|
ic=3,-3,-4 est aussi accepte, les signes '-' sont mis a +.
|
||||||
|
ce qui permet eventuellement d'utiliser les fichiers
|
||||||
|
ESSOUT ou ESCASOUT generes par le programme casdi, fichiers
|
||||||
|
pour lesquels les spins sont specifies.
|
||||||
|
Tous les equivalents de spin sont generes automatiquement
|
||||||
|
|
||||||
|
exemple
|
||||||
|
&cd gener='SEL+S,... /
|
||||||
|
&mr ic=2,2, /
|
||||||
|
&mr ic=3,3, /
|
||||||
|
...
|
||||||
|
|
||||||
|
it= trous dans les references (max=2 memes commentaires que pour ic)
|
||||||
|
|
||||||
|
ip= virtuelles occupees (max=2 memes commentaires que pour ic)
|
||||||
|
|
||||||
|
file= nom de fichier contenant les namelists &mr
|
||||||
|
si "file" est donne (donc different du defaut file=' '), le
|
||||||
|
programme cesse de chercher les determinants dans le
|
||||||
|
fichier de donner, et les cherche dans le fichier "file"
|
||||||
|
|
||||||
|
presel= fabrication d'un espace de determinants.
|
||||||
|
methode : 2 passages casdet
|
||||||
|
passage 1 : presel='S' ou 'SD' (defaut ' ')
|
||||||
|
' ' : pas de preselection
|
||||||
|
'S' : on genere tous les simples a partir d'un espace
|
||||||
|
de determinants donnes individuellement
|
||||||
|
'SD' : idem, generation SD
|
||||||
|
On donne ensuite les determinants generateurs
|
||||||
|
&mrsel ic=.... /
|
||||||
|
&mrsel ic=.... /
|
||||||
|
...
|
||||||
|
Attention, on ne peut donner que ic, les generateurs sont
|
||||||
|
donc definis a partir du CAS
|
||||||
|
passage 2 :
|
||||||
|
gener='SEL+S' out 'SEL+SD'
|
||||||
|
&mr file='PRESEL' /
|
||||||
|
|
||||||
|
exemple :
|
||||||
|
passage 1 :
|
||||||
|
&cdfil prefix='n2.' /
|
||||||
|
&cd gener='CAS+S',noac=7,numac=2,3,4,5,10,13,15,nelac=8,
|
||||||
|
presel='SD',nprint=0 /
|
||||||
|
&mrsel ic=2,2,3,3,4,4,5,5, /
|
||||||
|
&mrsel ic=2,2,3,3,4,4,5,10, /
|
||||||
|
passage 2 :
|
||||||
|
&cdfil prefix='n2.' /
|
||||||
|
&cd gener='SEL+S',noac=7,numac=2,3,4,5,10,13,15,nelac=8,
|
||||||
|
nprint=1 /
|
||||||
|
&mr file='PRESEL' /
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Remarques :
|
||||||
|
- On peut donner plusieurs fois le meme determinant. Les redondants
|
||||||
|
sont elimines
|
||||||
|
- Le programme casdet cree un fichier CASOUT qui contient tous
|
||||||
|
les determinants du CAS sous la forme des namelists &mr
|
||||||
|
- Le programme casdi cree un fichier ESSOUT de la forme :
|
||||||
|
&ess it=...,ic=...,ip=...,v=... /
|
||||||
|
on peut utiliser ce fichier en remplacant ess par mr. Les signes
|
||||||
|
"-" sont ignores, ainsi que les coefficients v
|
||||||
|
- TOUTES les orbitales qui, dans une donnee mr sont :
|
||||||
|
. non doublement occupees en dessous du niveau de fermi
|
||||||
|
. non vides au-dessus
|
||||||
|
sont considerees comme ACTIVES (attention donc a la limite de
|
||||||
|
16 actives)
|
||||||
|
|
||||||
|
yf_act=
|
||||||
|
.true. (defaut) les orbitales actives declarees dans
|
||||||
|
&cd restent les actives de casdi. Dans ce cas, on NE PEUT PAS
|
||||||
|
utiliser les donnees it et ip
|
||||||
|
|
||||||
|
.false. la liste des orbitales actives est modifiee. Sont
|
||||||
|
retirees celles toujours doublement occupees en-dessous
|
||||||
|
du niveau de Fermi, et celles toujours vides au-dessus.
|
||||||
|
Sont rajoutees toutes celles qui apparaissent dans it et ip.
|
||||||
|
|
||||||
|
&end
|
||||||
|
|
||||||
|
|
||||||
|
REMARQUE IMPORTANTE : quand gener = 'CAS+...', tous les determinants
|
||||||
|
possibles sont generes. La seule limitation est le nombre de trous
|
||||||
|
et particules. Par exemple, si gener = 'CAS+SD', tous les
|
||||||
|
determinants possibles ayant 2 trous et 2 particules au plus
|
||||||
|
sont presents, MEME S'ILS NE SONT PAS ENGENDRABLES A L'ORDRE 2
|
||||||
|
a partir du CAS.
|
||||||
|
|
||||||
|
Quand gener='SEL+...', c'est different. Seuls les determinants
|
||||||
|
dont un equivalent de spin peut etre genere a l'ordre 2 a partir
|
||||||
|
du CAS sont presents.
|
||||||
|
|
||||||
|
Ainsi, si, avec gener='SEL+SD', on donne le CAS complet en donnee,
|
||||||
|
on obtiendra MOINS de determinants que avec la donnee gener = 'CAS+SD'
|
||||||
|
|
||||||
|
|
313
Manuals/casdi_emploi
Executable file
313
Manuals/casdi_emploi
Executable file
@ -0,0 +1,313 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
XXXX XX XXXXX XXXXX XXXXX
|
||||||
|
X X X X X X X X
|
||||||
|
X X X X X X
|
||||||
|
X X X X X X X
|
||||||
|
X X X XXXXX X X X
|
||||||
|
X X X X X X X
|
||||||
|
X XXXXX X X X X
|
||||||
|
X X X X X X X X X
|
||||||
|
XXXX XXX XXX XXXXX XXXXX XXXXX
|
||||||
|
|
||||||
|
|
||||||
|
************
|
||||||
|
MRCI Program
|
||||||
|
************
|
||||||
|
|
||||||
|
--------------
|
||||||
|
I INPUT/OUTPUT
|
||||||
|
--------------
|
||||||
|
|
||||||
|
INPUT FILES:
|
||||||
|
|
||||||
|
"prefix"Info: created by molcost (ASCII file)
|
||||||
|
"prefix"Mono: created by molcost (binary file)
|
||||||
|
"prefix"det: contains determinants (binary file created by casdet)
|
||||||
|
"prefix"cdi: contains info from casdet (ASCII file created by casdet)
|
||||||
|
"prefix"ijcl: integral file (binary file created by molcost)
|
||||||
|
Facultative:
|
||||||
|
"prefix"ess: input vector used with nessai=2 (identical to "prefix"davec)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OUTPUT FILES:
|
||||||
|
"prefix"davec: contains eigenvector (binary file)
|
||||||
|
"prefix"dens: contains density matrix (binary file)
|
||||||
|
|
||||||
|
|
||||||
|
INPUT DATA:
|
||||||
|
2 namelists:
|
||||||
|
1)
|
||||||
|
&cdifil
|
||||||
|
prefix= name of the project, with a point (.) at the end
|
||||||
|
ex: Project=PROJ in molcas
|
||||||
|
--> prefix='PROJ.' in casdet
|
||||||
|
this data MUST be given
|
||||||
|
Facultative data:
|
||||||
|
ymatonly F T : lit la matrice sur disque et la diagonalise,
|
||||||
|
sans avoir besoin d'autre donnee ou
|
||||||
|
fichier supplementaires
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
input and output files have by default the names:
|
||||||
|
"prefix"Info, "prefix"Mono, "prefix"det
|
||||||
|
info='III' Info file's name is "prefix"III
|
||||||
|
Mono='MMM' Mono file's name is "prefix"MMM
|
||||||
|
det='DDD' det file's name is "prefix"DDD
|
||||||
|
ess='EEE' ess file's name is "prefix"EEE
|
||||||
|
dens='ddd' dens file's name is "prefix"ddd
|
||||||
|
info1='III' Info file's name is III
|
||||||
|
info1='MMM' Mono file's name is MMM
|
||||||
|
info1='DDD' Det file's name is DDD
|
||||||
|
ess1='EEE' ess file's name is EEE
|
||||||
|
dens1='ddd' dens file's name is ddd
|
||||||
|
/
|
||||||
|
|
||||||
|
|
||||||
|
2)
|
||||||
|
&dav
|
||||||
|
La namelist &dav contient un tres grand nombre de donnees
|
||||||
|
Cependant, toutes les donnees sont facultatives
|
||||||
|
D'autre part, seul un peiti nombre est a connaitre absolument
|
||||||
|
|
||||||
|
Donnees "tres utiles"
|
||||||
|
|
||||||
|
|
||||||
|
nvec= 1 nb of eigenvalues
|
||||||
|
ihab= 0 1 SC2 calculation (see SC2 part)
|
||||||
|
2 SC2 calculation for excited states (see SC2 part)
|
||||||
|
ihab= 1 if ihab>0: 1 ou 2 calcul SC2 (see SC2 part)
|
||||||
|
iprec= 6 precision : seuil d'arret a 10**(-iprec)
|
||||||
|
niter= nombre d'iterations (defaut 50)
|
||||||
|
nessai= 0 0: No trial vector
|
||||||
|
1: give trial vectors manually (see trial vect part)
|
||||||
|
2: reads vect from preceeding calculation
|
||||||
|
twvec= 0.03 seuil d'ecriture des coefficients des vecteurs
|
||||||
|
propres sur la sortie
|
||||||
|
twess= seuil d'ecriture des coefficients des vecteurs
|
||||||
|
propres dans le fichier ESSOUT (en clair)
|
||||||
|
syspin= '0' (defaut) pour avoir tous les vecteurs propres
|
||||||
|
'+' pour avoir les vecteurs symetriques par
|
||||||
|
retournement des spins (singulets, quintuplets...)
|
||||||
|
'-' pour avoir les vecteurs antisymetriques par
|
||||||
|
retournement des spins (triplets...)
|
||||||
|
Attention, si ms2 est different de 0, syspin='0'
|
||||||
|
ydens= 1 1: calcul et ecriture sur file de la matrice densite
|
||||||
|
ywcas= F T ecriture en sortie de tous les determinants du
|
||||||
|
CAS. Creation d'un fichier ESCASOUT
|
||||||
|
(en clair, comme ESSOUT)
|
||||||
|
twcas= 0.03 seuil d'ecriture en sortie des determinants du CAS.
|
||||||
|
|
||||||
|
|
||||||
|
Autres donnees :
|
||||||
|
|
||||||
|
maxda2 nombre max de vecteurs gardes sur file
|
||||||
|
calcul= 'M', 'D' ou 'MD'
|
||||||
|
- calcul= 'M' : calcule seulement la matrice et la stocke sur
|
||||||
|
file a la maniere Moyen ou Inidet (reels en
|
||||||
|
simple precision)
|
||||||
|
- calcul= 'D' : diagonalise la matrice calculee par un passage
|
||||||
|
calcul= 'M' ou toute autre matrice ecrite de
|
||||||
|
la meme facon
|
||||||
|
- calcul= 'MD' : diagonalisation directe (defaut)
|
||||||
|
stop= 'FIN', 'DEL', 'ORDET', 'ITERNAT'
|
||||||
|
- stop='FIN' : (par defaut) le calcul va jusqu'a la fin
|
||||||
|
- stop='DEL' : le calcul va jusqu'a la fin, et n'efface pas les fichiers
|
||||||
|
temporaires. Pour faire un restart
|
||||||
|
- stop='ITERNAT' : le calcul va jusqu'a la fin, et n'efface pas certains
|
||||||
|
fichiers temporaires. Pour les calculs iternat. Voir
|
||||||
|
le mode d'emploi de ITERNAT
|
||||||
|
- stop='ORDET' : s'arrete apres avoir reordonnee les determinants en
|
||||||
|
fonction de leur adresse et avoir cree le fichier
|
||||||
|
correspondant ORDET.
|
||||||
|
restart= 'INT', 'DET', 'INTDET' ( apres un calcul stop='del' ou
|
||||||
|
eventuellment un calcul mal fini)
|
||||||
|
- restart= 'INT'. On ne reordonne pas les integrales, parce que
|
||||||
|
ce sont les memes pour 2 calculs (ex. meme geometrie,
|
||||||
|
2 symetries differentes)
|
||||||
|
- restart= 'DET'. On ne recalcule pas les listes de determinants. (CAS
|
||||||
|
de 2 calculs avec meme espace IC, mais 2 geometries
|
||||||
|
differentes par exemple)
|
||||||
|
- restart= 'INTDET'. Tout est conserve. Les 2 calculs sont identiques.
|
||||||
|
(ex. le 1er n'a pas converge, ou on a oublie de demander
|
||||||
|
un habillage ...)
|
||||||
|
- irest=1 : equivalent a restart= 'INTDET' (defaut 0)
|
||||||
|
- sint : seuil en dessous duquel une integrale moleculaire est consideree
|
||||||
|
comme nulle (defaut 0.d0)
|
||||||
|
- ydens : T ecriture de la matrice densite dans un fichier prefixdens
|
||||||
|
(defaut T)
|
||||||
|
|
||||||
|
/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------
|
||||||
|
II additional information
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1. VECTEURS D'ESSAI
|
||||||
|
|
||||||
|
&dav
|
||||||
|
|
||||||
|
nessai= 0, 1, 2 (defaut 0)
|
||||||
|
- 0 les vecteurs d'essai ont la forme suivante :
|
||||||
|
|
||||||
|
1. 0. 0. 0.
|
||||||
|
0. 0. 0. 0.
|
||||||
|
0. 1. 0. 0.
|
||||||
|
0. 0. 0. 1.
|
||||||
|
0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0.
|
||||||
|
0. 0. 1. 0.
|
||||||
|
0. 0. 0. 0.
|
||||||
|
........
|
||||||
|
ou les "1" sont places sur les determinants dont les valeurs
|
||||||
|
diagonales sont les plus basses. Si on utilise la symetrie de spin
|
||||||
|
(donnee syspin), ces orbitales sont symetrisees, ce qui peut donner
|
||||||
|
un meilleur point de depart.
|
||||||
|
c'est un peu primaire, mais ca marche en general assez bien
|
||||||
|
|
||||||
|
On peut rajouter la donnee :
|
||||||
|
lvec= les numeros de vecteurs lus sur un fichier PREFIX.ess issu
|
||||||
|
d'un calcul precedent. Le fichier PREFIX.ess est le fichier binaire
|
||||||
|
resultat d'un calcul casdi precedent. On fai simplement :
|
||||||
|
cp PREFIX.davec PREFIX.ess
|
||||||
|
|
||||||
|
par exemple
|
||||||
|
a) 1er calcul nessai=0, nvec=2
|
||||||
|
b) On s'apercoit qu'on a besoin en fait de 5 vecteurs
|
||||||
|
cp PREFIX.davec PREFIX.ess
|
||||||
|
c) 2eme calcul casdi nessai=0,lvec=1,2,nvec=5
|
||||||
|
les vecteurs d'essai utilises par casdi sont alors :
|
||||||
|
- les 2 vecteurs du calcul precedent
|
||||||
|
- des vecteurs avec des "1" sur les plus basses valeurs diagonales
|
||||||
|
pour les 3 autres vecteurs,
|
||||||
|
comme pour un calcul nessai=0 standard
|
||||||
|
(utile quand on s'apercoit qu'on na pas demande assez de vecteurs).
|
||||||
|
|
||||||
|
- 1 les vecteurs d'essai sont donnes "en clair" :
|
||||||
|
|
||||||
|
|
||||||
|
1) en namelist sous la forme :
|
||||||
|
&ess it=... ic=... ip=... v=... /
|
||||||
|
&ess it=... ic=... ip=... v=... /
|
||||||
|
&ess it=... ic=... ip=... v=... /
|
||||||
|
&ess it=... ic=... ip=... v=... /
|
||||||
|
&ess it=... ic=... ip=... v=... /
|
||||||
|
...................
|
||||||
|
a raison d'une namelist par coefficient du vecteur pour
|
||||||
|
les coefficients importants
|
||||||
|
|
||||||
|
it : trous it=3 : trou alpha en 3
|
||||||
|
it=2,-4 : trou alpha en 2 et beta en 4
|
||||||
|
ip : particules meme principe
|
||||||
|
ic : CAS donne en OCCUPATION ic=2,-2,4 : 2 electrons
|
||||||
|
alpha en 2 et 4, un beta en 2
|
||||||
|
v : cofficients (estimes) du (des) vecteur(s) propre(s)
|
||||||
|
|
||||||
|
Un fichier contenant des vecteurs d'essai donnes sous cette
|
||||||
|
forme est genere au cours de chaque calcul. Son nom est ESSOUT.
|
||||||
|
Il suffit de le coller a la fin des donnees. Le premier calcul
|
||||||
|
peut etre par exemple un CAS_CI (gener='CAS' dans la namelist
|
||||||
|
cd de CASDET. Si ywcas=T, on genere aussi un fichier ESCASOUT,
|
||||||
|
qui contient tout les determinants du CAS
|
||||||
|
|
||||||
|
2) par le nom d'un fichier contenant les donnees &ess
|
||||||
|
c'est commode si on veut utiliser un calcul precedent
|
||||||
|
exemple : calcul CASCI avec ywcas=T
|
||||||
|
--> produit un fichier en clair "ESCASOUT"
|
||||||
|
calcul CAS+SD avec nessai=1 et
|
||||||
|
&ess file='ESCASOUT' /
|
||||||
|
|
||||||
|
|
||||||
|
- 2 les vecteurs d'essai sont lus a partir d'un calcul
|
||||||
|
precedent sur le fichier PREFIX.ess
|
||||||
|
cd fichier PREFIX.ess a la meme structure que le fichier
|
||||||
|
PREFIX.davec correspondant a la sortie d'un calcul precedent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VI CALCULS SC2
|
||||||
|
|
||||||
|
|
||||||
|
Les donnees sont dans la namelis &dav de casdi
|
||||||
|
|
||||||
|
La donnee qui gouverne les calculs SC2 est ihab
|
||||||
|
|
||||||
|
ihab = 0 diagonalisation simple
|
||||||
|
|
||||||
|
ihab = 1 calcul SC2
|
||||||
|
- si l'habillage se fait par rapport a l'etat fondamental
|
||||||
|
et que celui-ci est couches fermees, pas d'autre donnee
|
||||||
|
- dans le cas contraire, on doit remarquer que lhabillage
|
||||||
|
se fait par rapport :
|
||||||
|
* a un etat (on utilise ses coefficients)
|
||||||
|
* a un determinant (dominant en general dans cet etat)
|
||||||
|
|
||||||
|
- le determinant dominant est defini par la namelist deth
|
||||||
|
&deth ith=... ,iph=... /
|
||||||
|
ou ith et iph sont les trous et particules du
|
||||||
|
determinant de reference par rapport a la REFERENCE
|
||||||
|
COUCHES FERMEES occupee jusqu'au niveau de Fermi
|
||||||
|
|
||||||
|
exemple d'un systeme a 10 electrons, ou les orbitales
|
||||||
|
5 et 6 sont actives
|
||||||
|
le determinant donne dans ess par
|
||||||
|
&ess it=-2,3,ic=5,-6,ip=10,-12 /
|
||||||
|
sera ecrit
|
||||||
|
&deth ith=-2,3,-5,iph=-6,10,-12 /
|
||||||
|
pour un nombre impair d'electrons, on ecrit un particule en
|
||||||
|
moins
|
||||||
|
&deth ith=-2,3,-5,iph=-6,-10, /
|
||||||
|
de facon a avoir plus de spins beta que alpha
|
||||||
|
|
||||||
|
- l'etat de reference est CHOISI par le programme parmi
|
||||||
|
les ihvec etats les plus bas : c'est celui pour lequel
|
||||||
|
le determinant donne dans deth a le plus grand coefficient
|
||||||
|
ihvec = 1 par defaut. Il arrive que, au cours des
|
||||||
|
iterations d'habillage, l'etat de reference "descende"
|
||||||
|
au-dessous de ceux qui le precedaient. Il restera ainsi
|
||||||
|
le vecteur "habilleur"
|
||||||
|
|
||||||
|
maxith nombre maximal d'iterations d'habillage. (defaut 10)
|
||||||
|
|
||||||
|
sh seuil d'arret du processus SC2. Si le coefficient du
|
||||||
|
determinant de reference est inferieur a sh, le
|
||||||
|
programme s'arrete (defaut 0.5)
|
||||||
|
|
||||||
|
ihab = 2 calcul SC2 par rapport a une autre reference
|
||||||
|
ce calcul suit necessairement un calcul ihab=1, et se sert
|
||||||
|
du fichier PREFIX.sc2ex
|
||||||
|
Il permet d'obtenir les autres racines excitees de la
|
||||||
|
Matrice SC2 obtenue avec ihab=1
|
||||||
|
ATTENTION : par rapport au calcul ihab=1, seule la
|
||||||
|
symetrie de la fonction d'onde peut changer. En particulier,
|
||||||
|
ni le nombre d'electrons, ni l'espace actifs ne peuvent
|
||||||
|
etre modifies.
|
||||||
|
yfpspi : attention, peu teste !
|
||||||
|
pour un calcul SC2, oblige le vecteur a rester fonction
|
||||||
|
propre de spin (ce que n'assure pas SC2)
|
||||||
|
yhmono : habillage par rapport aux monoexcites
|
||||||
|
|
||||||
|
|
||||||
|
Autres donnees concernant l'habillage
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
hab= 'SC2', 'ACPF', 'AQCC' (si ihab=1)
|
||||||
|
(defaut='SC2') fait un calcul ACPF ou AQCC au lieu de SC2
|
||||||
|
ipresc= precision pour l'habillage (10**(-iprec))
|
||||||
|
ihprec= dans un calcul SC2 : abaissement de la precision de diagonalisation
|
||||||
|
pour les premieres iterations d'habillage (car on
|
||||||
|
peut converger la diagonalisation de facon approximative
|
||||||
|
quand on n'a pas encore habille)
|
||||||
|
(defaut : 3 soit un abaissement de precision de 10**(-3))
|
||||||
|
mettre ihprec=0 si on veut connaitre le resultat du calcul
|
||||||
|
SDCI
|
||||||
|
ihvec : nombre de vecteurs parmi lesquels on choisit le vecteur
|
||||||
|
d'habillage. (defaut 1)
|
243
Manuals/casdiloc_emploi
Executable file
243
Manuals/casdiloc_emploi
Executable file
@ -0,0 +1,243 @@
|
|||||||
|
|
||||||
|
|
||||||
|
==========================================================================
|
||||||
|
==========================================================================
|
||||||
|
|
||||||
|
CASDILOC CASDILOC CASDILOC CASDILOC
|
||||||
|
|
||||||
|
CI Program for localized orbitals. Long-range interactions between
|
||||||
|
occupied and virtual orbtals are neglected
|
||||||
|
|
||||||
|
==========================================================================
|
||||||
|
==========================================================================
|
||||||
|
|
||||||
|
|
||||||
|
Input files:
|
||||||
|
|
||||||
|
Files created by ijkloc:
|
||||||
|
~ijcllocinfo, ~ijclloc2, ~ijclloc3, ~ijclloc4
|
||||||
|
~Monoloc, ~Infoloc (identical to ~Mono and ~Info of molcost)
|
||||||
|
~LOinfo
|
||||||
|
(where ~ means prefix...)
|
||||||
|
ORB_IJKLOC
|
||||||
|
|
||||||
|
eventually:
|
||||||
|
topo: links between orbitals
|
||||||
|
|
||||||
|
|
||||||
|
Data:
|
||||||
|
&locci
|
||||||
|
|
||||||
|
Compulsory data:
|
||||||
|
prefix=
|
||||||
|
|
||||||
|
Facultative data:
|
||||||
|
noac= -1 number of active orbitals
|
||||||
|
if noac=-1, noac,numac are recalculated using
|
||||||
|
information from preceding programs.
|
||||||
|
numac= 16*0 active orbitals
|
||||||
|
ms2= 0 Sz*2
|
||||||
|
nessai= 0 trial vectors
|
||||||
|
0: on the lowest value(s) of the diagonal
|
||||||
|
1: given by the user. give &locess namelist(s)
|
||||||
|
2: read from previous calculation
|
||||||
|
3: CAS prediagonalization
|
||||||
|
nvec 1 number of vectors
|
||||||
|
dim_heff 50 maximal size of the effective hamiltonian, i.e.
|
||||||
|
which corresponds to the number of Psi and H*Psi
|
||||||
|
stored on disk. Mustbe larger than twice nvec
|
||||||
|
nprint 0 0,1,2,3 print option
|
||||||
|
ywcas F T: writes all coefficients of CAS determinants,
|
||||||
|
whatever the value of the coefficient
|
||||||
|
niter 50 number of iterations
|
||||||
|
prec 1.d-6 convergence precision
|
||||||
|
calcul 'MD' 'MD' normal. Direct diagonalization
|
||||||
|
'M' Matrix calculation, stored on mat file
|
||||||
|
diagonaliser ensuite avec casdi (calcul='D')
|
||||||
|
il faut alors :
|
||||||
|
- mettre ygendet=T dans &locci, pour avoir les det
|
||||||
|
- renommer la matrice MAT en Project.mat
|
||||||
|
gener 'CAS+SD' CAS+SD, CAS+S, CAS+DDCI, CAS+DDC2, CAS
|
||||||
|
'SEL+SD' Selected Active Space.
|
||||||
|
The Active Space is given with individual space
|
||||||
|
determinants. All spin distributions are
|
||||||
|
authomatically generated.
|
||||||
|
possible data: SEL+SD, SEL+S, SEL+DDCI, SEL+DDC2,
|
||||||
|
SEL
|
||||||
|
The determinants are given as follows:
|
||||||
|
after the &locci data: &locci ... /
|
||||||
|
&selec
|
||||||
|
for each determinant, a list of occupations in I1
|
||||||
|
format (noac numbers 0, 1 or 2, corresponding to
|
||||||
|
the occupation of active orbitals, according to
|
||||||
|
their position in the list of orbitals.
|
||||||
|
end the Data by a line FIN or END
|
||||||
|
example:
|
||||||
|
&locci ... /
|
||||||
|
&selec /
|
||||||
|
2200
|
||||||
|
1111
|
||||||
|
end
|
||||||
|
syspin '0' '0' no spin symmetry
|
||||||
|
'+' gives singlets, quintets...
|
||||||
|
'-' gives triplets...
|
||||||
|
is0 0 symmetry of the eigenvectors
|
||||||
|
does not consider symmetry
|
||||||
|
n computes vectors of symmetry n
|
||||||
|
liens 'KIJ' 'KIJ' links obtained from exchange integrals
|
||||||
|
'FILE' links given in toto ascii file
|
||||||
|
'ALL' all orbitals linked
|
||||||
|
'ATOM' see below "liens='ATOM'"
|
||||||
|
sl1 if liens='KIJ'.
|
||||||
|
threshold to consider 2 orbitals as bonded
|
||||||
|
LO1 bonded to LO2 if Kij(LO1,LO2)>sl1
|
||||||
|
(LO1 is occupied, LO2 is virtual)
|
||||||
|
sl2 threshold to consider 2 pairs of LOs as bonded
|
||||||
|
(LO1,LO2) bonded to i(LO3,LO4)
|
||||||
|
if any (Kij(LO1/LO2,LO3/LO4)>sl2)
|
||||||
|
(introduce dispersive terms)
|
||||||
|
sli as sl1 and sl2, for integrals
|
||||||
|
(LO1 LO2 || LO3 LO4)
|
||||||
|
(one threshold only: sli1=sli2)
|
||||||
|
zone ' ' To define different zones of the molecule with
|
||||||
|
different sl,sl2 and sli thresholds
|
||||||
|
default: one zone (the whole molecule),
|
||||||
|
same sl,sl2 and sli on the whole molecule.
|
||||||
|
|
||||||
|
1. The zones are defined using file .LOinfo
|
||||||
|
created at the localisation step
|
||||||
|
- Edit the file .LOinfo
|
||||||
|
structure of .LOinfo:
|
||||||
|
column 1: rank of LO in dolo or lewis
|
||||||
|
column 2: rank of LO in ijkloc (and casdiloc)
|
||||||
|
column 3: LO label
|
||||||
|
column 4: OCC/VIRT
|
||||||
|
column 5: type of LO: SIG/PI/LP/DIFF_S/DIFF/PX...
|
||||||
|
column 6: number of atoms in LO
|
||||||
|
column 7...: atoms of LO
|
||||||
|
example of 3 zones:
|
||||||
|
zone 0 contains active orbitals
|
||||||
|
add LOs to zone 0: example
|
||||||
|
zone(1)='+orb:PI;+N:10;+typ:DIFF_PX'
|
||||||
|
adds to zone 0:
|
||||||
|
. LOs for which the string "PI" is present
|
||||||
|
in label (column 3)
|
||||||
|
. LO of rank 10 in column 2
|
||||||
|
. LO for which the string "DIFF_PX" is present
|
||||||
|
in column 5
|
||||||
|
no other possibility for the moment
|
||||||
|
idem to fill zone 1. Give zone(2)=
|
||||||
|
Rem: LOs already defined in zone 0 remain in
|
||||||
|
zone 0!
|
||||||
|
Once given all zones until zone_n,
|
||||||
|
the remaining LOs are in zone_(n+1)
|
||||||
|
|
||||||
|
2. The zones are defined by the atoms A1,A2,A3.
|
||||||
|
example of 3 zones:
|
||||||
|
Zone 0: all atoms, unless redefined after
|
||||||
|
zone 1: a part of the molecule,
|
||||||
|
defined by atoms A1,A2,A3.
|
||||||
|
zone 1 = all orbitals on A1, A2 or A3
|
||||||
|
zone 2: another part of the molecule,
|
||||||
|
defined by atoms A4,A5
|
||||||
|
Data: zone='A1,A2,A3','A4,A5',sl=0.001,0.003,0.01
|
||||||
|
sli=0.0001,0.0003,0.001,sl2=0.0001,0.0003,0.001
|
||||||
|
zone 0: sl=0.001,sli=0.0001,sl2=0.0001
|
||||||
|
zone 1: sl=0.003,sli=0.0003,sl2=0.0003
|
||||||
|
zone 2: sl=0.01,sli=0.001,sl2=0.001
|
||||||
|
|
||||||
|
data of type "1." cannot be mixed with data "2."
|
||||||
|
The program finds whether types 1. or 2. is used
|
||||||
|
no further indicqtion is needed.
|
||||||
|
|
||||||
|
Warning: zones with lowests rank
|
||||||
|
correspond to the most important
|
||||||
|
parts of the molecule
|
||||||
|
|
||||||
|
itest(29)=0 : (defaut) zone de la liaison i-j = min((zone(i),zone(j))
|
||||||
|
itest(29)=1 zone de la liaison i-j = max((zone(i),zone(j))
|
||||||
|
itest(29)=2 zone de la liaison i-j = moyenne((zone(i),zone(j)),
|
||||||
|
Notice: itest(29)=0 corresponds to the LARGEST space, 1 to the smallest
|
||||||
|
2 is inbetween
|
||||||
|
et les seuils consideres sont la moyenne entre les seuils des zones de i et j
|
||||||
|
ysuiv,isuiv,suiv:
|
||||||
|
ysuiv F T: The converged eigenvectors correspond to the
|
||||||
|
trial ones, in the same order
|
||||||
|
suiv 0.8 in ysuiv, "correspond" means the overlap between
|
||||||
|
trial and converged vectors is larger or equal
|
||||||
|
to suiv
|
||||||
|
isuiv nvec+3 the maximum number of vectors to be computed in
|
||||||
|
the seach of vectors corresponding to the guess.
|
||||||
|
|
||||||
|
ycaspair F T: when two bonds (occ,virt) are linked to the
|
||||||
|
CAS, they authomatically form a bond pair
|
||||||
|
sl 0.01 when liens='KIJ': threshold of the exchange
|
||||||
|
integrals to consider two orbitals as linked.
|
||||||
|
s 0.03 threshold for printing of the determinants and
|
||||||
|
coefficients of the eigenvector(s)
|
||||||
|
stop 'fin' eventually stops the program before end
|
||||||
|
'fin': full calculation
|
||||||
|
'NDET': stops after calculation of the nb of det
|
||||||
|
'TOPO'; stops after calaculation of TOPO matrix
|
||||||
|
'SL': analyses thresholds and zones, then stops
|
||||||
|
'ESSAI': computes trial vectors and stops
|
||||||
|
info 'Infoloc' suffix of the name of infoloc file
|
||||||
|
info1 ' ' name of the infoloc file. If info1=' ', the name
|
||||||
|
is prefix//info
|
||||||
|
other file names: same rules
|
||||||
|
mono='Monoloc', topo, ijclloc2, ijclloc3, ijclloc4,
|
||||||
|
davec,
|
||||||
|
|
||||||
|
**************** Size Consistent Dressing
|
||||||
|
mhab 0 0: no dressing
|
||||||
|
1: CEPA_0 dressing (Correlation Energy)
|
||||||
|
2: improved CEPA_0 dressing (Correlation Energy,
|
||||||
|
without redondants)
|
||||||
|
3: Class Dressing
|
||||||
|
nhab 1 Reference eigenvector for dressing
|
||||||
|
iterh 2 davidson iteration after which dressing begins
|
||||||
|
note: if mhab/=0 nessai is put to 3
|
||||||
|
|
||||||
|
ytestgendet F T : et mprint(7)=1 : ecrit les determinants
|
||||||
|
|
||||||
|
|
||||||
|
***************if nessai=1:
|
||||||
|
for each vector:
|
||||||
|
&locess
|
||||||
|
it= holes
|
||||||
|
ip= particles
|
||||||
|
c= active occupation
|
||||||
|
v= 0. coefficient
|
||||||
|
end of vector:
|
||||||
|
&locess c='FIN' / or
|
||||||
|
&locess c='END' /
|
||||||
|
|
||||||
|
example (nvec=2)
|
||||||
|
|
||||||
|
&locess c='20',v=1., /
|
||||||
|
&locess c='fin' /
|
||||||
|
&locess c='+-',v=1. /
|
||||||
|
&locess c='-+',v=-1. /
|
||||||
|
&locess c='fin' /
|
||||||
|
|
||||||
|
***************if nessai=2:
|
||||||
|
reads trial vector on file ess1
|
||||||
|
default: ess1="prefix"ess
|
||||||
|
the name ess1 may be modified in namelist &cdifil
|
||||||
|
|
||||||
|
|
||||||
|
***************if liens='ATOM':
|
||||||
|
|
||||||
|
1. Condition: each bond name (O_....) must contain the name of the atoms
|
||||||
|
involved in the bond. No other information must contain
|
||||||
|
the name of an atom (be careful with "sigma" if there is a "Si" atom...)
|
||||||
|
2. all couple of bonds containing the same atom are authomatically linked
|
||||||
|
3. links with the CAS: data:
|
||||||
|
|
||||||
|
&loc_at
|
||||||
|
CAS
|
||||||
|
list of atoms
|
||||||
|
end
|
||||||
|
|
||||||
|
all bonds containing an atom of the list are linked to the CAS
|
||||||
|
|
43
Manuals/casdint_emploi
Executable file
43
Manuals/casdint_emploi
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#####################################################################
|
||||||
|
CASDINT CASDINT CASDINT CASDINT CASDINT CASDINT
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
c--------------------------------------------------------------------
|
||||||
|
c CALCUL DES INTEGRALES DIRECTE + ECHANGE
|
||||||
|
c--------------------------------------------------------------------
|
||||||
|
|
||||||
|
Programme se placant avan casdi, qui calcule les integrales "Direct - Echange"
|
||||||
|
a partir des integrales "Directes"
|
||||||
|
|
||||||
|
|
||||||
|
En donnees :
|
||||||
|
|
||||||
|
&casdint prefix='n2.', /
|
||||||
|
|
||||||
|
donnees facultatives :
|
||||||
|
mono1,info1,ijcl1,
|
||||||
|
ijcl21,ijcl31,ijcl41
|
||||||
|
ijcl,ijcl2,ijcl3
|
||||||
|
ijcl4 : Donnees pour renommer les fichiers
|
||||||
|
mem : memoire disponible (en Mb)
|
||||||
|
maxlong : longueur max d'un fichier
|
||||||
|
|
||||||
|
mem et maxlong dependent de la machine, et le defaut est mis a la compilation
|
||||||
|
|
||||||
|
|
||||||
|
En entree :
|
||||||
|
|
||||||
|
integrales moleculaires (ijcl)
|
||||||
|
Info
|
||||||
|
Mono
|
||||||
|
|
||||||
|
|
||||||
|
En sortie :
|
||||||
|
|
||||||
|
Integrales moleculaires a 2 indices : ijcl2
|
||||||
|
Integrales moleculaires a 3 indices : ijcl3
|
||||||
|
Integrales moleculaires a 4 indices : ijcl4
|
||||||
|
|
||||||
|
|
||||||
|
Programme casdi qui suit : ajouter la donnee "&dav itest(63)=T"
|
||||||
|
|
22
Manuals/copie_ordre_emploi
Executable file
22
Manuals/copie_ordre_emploi
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
***********
|
||||||
|
copie_ordre
|
||||||
|
***********
|
||||||
|
|
||||||
|
Ce que fait le programme :
|
||||||
|
1. Il lit 2 fichiers d'orbitales (sous leur forme en clair) fich1 et fich_ref
|
||||||
|
2. De "fich1", on gardera les coefficients des orbitales.
|
||||||
|
3. De "fich_ref", on gardera l'ordre des orbitales, leurs occupations
|
||||||
|
et leurs labels.
|
||||||
|
4. Le nom du fichier de sortie (reordonne) est "fich2"
|
||||||
|
|
||||||
|
Le reordonnancement se fait par la lecture des labels A PARTIR DU 3eme
|
||||||
|
caractere (on ne tient pas compte du debut du label A_, C_ ...)
|
||||||
|
---> Les deux fichiers doivent avoir les memes labels (ils peuvent differer
|
||||||
|
par les 2 premiers caracteres)
|
||||||
|
|
||||||
|
|
||||||
|
donnees :
|
||||||
|
|
||||||
|
&cop fich1='...',fich2=' ',fich_ref=' ' /
|
||||||
|
|
||||||
|
|
39
Manuals/desymorb_emploi
Executable file
39
Manuals/desymorb_emploi
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
DESYMORB
|
||||||
|
!
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
! Desymetrisation des orbitales molcas (fichier type INPORB)
|
||||||
|
! 1) execute un rasscf CIONLY
|
||||||
|
! 2) recupere le fichier molden, lit les orbitales desymetrisees
|
||||||
|
! 3) recupere les labels des OA, les reordonne
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
!
|
||||||
|
Donnees
|
||||||
|
|
||||||
|
&desymorb prefix=
|
||||||
|
basis= atome par atome, donner le nombre de s,p,d...
|
||||||
|
basis='h1:1s',C3:3s2p1d',... (obligatoire)
|
||||||
|
symm= symetries comme donnees dans seward
|
||||||
|
ex : symm='X XY'
|
||||||
|
mono1 nom du fichier Mono (def. prefixMono)
|
||||||
|
info1 nom du fichier Info (def. prefixInfo)
|
||||||
|
rasscf T: le fichier molden n'exixte pas, on
|
||||||
|
execute rasscf (def. T)
|
||||||
|
|
||||||
|
|
||||||
|
Utilisation
|
||||||
|
|
||||||
|
cp "nom_du_fichier_a_desymetriser" INPORB
|
||||||
|
desymorb
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Fichiers
|
||||||
|
|
||||||
|
en entree :
|
||||||
|
Info1
|
||||||
|
Mono1
|
||||||
|
INPORB (orb en clair, a desymetriser)
|
||||||
|
|
||||||
|
en sortie
|
||||||
|
DESYMORB (orb en clair, desymetriseees)
|
||||||
|
DESYMORB2 (fichier binaire pour ijkloc)
|
493
Manuals/dolo_emploi
Executable file
493
Manuals/dolo_emploi
Executable file
@ -0,0 +1,493 @@
|
|||||||
|
!
|
||||||
|
!
|
||||||
|
! Program dolo
|
||||||
|
!
|
||||||
|
!
|
||||||
|
|
||||||
|
Files to be read : - molcost files
|
||||||
|
- an orbital file (RasOrb, ScfOrb...)
|
||||||
|
|
||||||
|
output files : - NONORLOC
|
||||||
|
(Local Orbitals: they are not orthogonal, and are
|
||||||
|
written in the basis of the OAO (Orthogonalized
|
||||||
|
Atomic Orbitals))
|
||||||
|
|
||||||
|
|
||||||
|
I.
|
||||||
|
##############
|
||||||
|
Preliminairies
|
||||||
|
##############
|
||||||
|
|
||||||
|
design the molecule, with atom names
|
||||||
|
|
||||||
|
II.
|
||||||
|
####
|
||||||
|
Data
|
||||||
|
####
|
||||||
|
|
||||||
|
1. A DOLOIN file (see "DOLOIN" part)
|
||||||
|
|
||||||
|
2. The data to generate local Orbitals (LO) can be given
|
||||||
|
- interactively
|
||||||
|
- or can be prepared in the file 'OLD_DATA'
|
||||||
|
OLD_DATA can be obtained from an interactive run
|
||||||
|
|
||||||
|
|
||||||
|
##############
|
||||||
|
How it works
|
||||||
|
##############
|
||||||
|
|
||||||
|
---------------------------------------------------
|
||||||
|
a. Interactive run (program idolo)
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
enter:
|
||||||
|
export CurrDir=...
|
||||||
|
export WorkDir=...
|
||||||
|
export Project=...
|
||||||
|
export PATH=$PATH:...cost/bin
|
||||||
|
|
||||||
|
prepare a DOLOIN file
|
||||||
|
eventually copy an old OLD_DATA_nn file (of a previous run) to OLD_DATA
|
||||||
|
|
||||||
|
|
||||||
|
- enter: idolo
|
||||||
|
The program starts, and asks for a data to generate one or several LO's
|
||||||
|
(see below list of commands)
|
||||||
|
|
||||||
|
- In the same time, the program generates a new file OLD_DATA_1,
|
||||||
|
or OLD_DATA_2, or OLD_DATA_n+1, if OLD_DATA_n is the last existing one
|
||||||
|
In this file, it writes the data you just entered
|
||||||
|
|
||||||
|
If the program crashes, or if you stop it, data already entered are
|
||||||
|
in OLD_DATA_x. Copy OLD_DATA_x to OLD_DATA, verify if everything is OK,
|
||||||
|
and re-enter "dolo"
|
||||||
|
|
||||||
|
----------------------------------------------------
|
||||||
|
b. background run (program dolo)
|
||||||
|
----------------------------------------------------
|
||||||
|
|
||||||
|
the script looks like:
|
||||||
|
|
||||||
|
export CurrDir=...
|
||||||
|
export WorkDir=...
|
||||||
|
export Project=...
|
||||||
|
export PATH=$PATH:...cost/bin
|
||||||
|
molcost < INPUT
|
||||||
|
dolo
|
||||||
|
(proj_scf < INPUT ; cp NONORLOC_scf NONORLOC)
|
||||||
|
schmudort < INPUT
|
||||||
|
|
||||||
|
prepare a DOLOIN file
|
||||||
|
dolo needs a correct OLD_DATA file
|
||||||
|
|
||||||
|
#############
|
||||||
|
Possible Data
|
||||||
|
#############
|
||||||
|
|
||||||
|
Many possibilities exist to enter a data line which will generate
|
||||||
|
one or several LO's.
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
a. Basic generation of one or several LO
|
||||||
|
-----------------------------------------
|
||||||
|
The "basic data" correspond to those read by the program
|
||||||
|
it is easier to use "macro data" (see below)
|
||||||
|
The program transforms the "macro data" into "basic data"
|
||||||
|
|
||||||
|
example:
|
||||||
|
O_C2H1 C2 1S(2) 2P(1) : H1 1S(1) (1,1)
|
||||||
|
(not case sensitive)
|
||||||
|
|
||||||
|
explanation:
|
||||||
|
|
||||||
|
O_C2H1 is the label of the LO('s).
|
||||||
|
- The first letter (here: O), can be
|
||||||
|
A: active. C: core. G: frozen. O: other
|
||||||
|
- _ character number 2: compulsory
|
||||||
|
- characters 3 to 12. Name of the LO, chosen by the user
|
||||||
|
|
||||||
|
C2 1S(2) 2P(1) , H1 1S(1)
|
||||||
|
atoms and AO's that describe the LO. Here, the LO is described by
|
||||||
|
atoms C2 and H1. The AO's for C2 are 1S(2) (i.e. the second S in the
|
||||||
|
ANO basis set, corresponding to the valence shell), and for H1 it is
|
||||||
|
1S(1)
|
||||||
|
|
||||||
|
the atoms are separated by ":"
|
||||||
|
There is in theory no limitation in the number of atoms/AO.
|
||||||
|
|
||||||
|
(1,1): first number: 1 bonding LO
|
||||||
|
second number: 1 anti-bonding LO
|
||||||
|
for a double bond, we would have (2,2)
|
||||||
|
for a core orbital, there would be only one atom, and (1,0)
|
||||||
|
Warning! For a SINGLE bond, appearing TWICE for symmetry reasons
|
||||||
|
we would have (2,2)!
|
||||||
|
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
Macro data
|
||||||
|
-----------------
|
||||||
|
The "macro data" are easier to use. In the code, they generate
|
||||||
|
basic data
|
||||||
|
There are two main "macro data". Ther names are "bond_" and "deloc_"
|
||||||
|
Almost everything can be done with these two data
|
||||||
|
|
||||||
|
There are other kinds of data (core_, sigma_ etc...)
|
||||||
|
They may produce errors, if there is symmetry. Be careful, and verify
|
||||||
|
that you really obtained what you wanted.
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
b. An macro data: BOND_
|
||||||
|
-----------------------------------------
|
||||||
|
a subset of the Lewis structure is given by:
|
||||||
|
|
||||||
|
chain='AT1-AT2-AT3...'
|
||||||
|
where:
|
||||||
|
ATi are labels of atoms
|
||||||
|
"-" can be -, =, ~ for single, double and triple bonds
|
||||||
|
An information may be added to ATi:
|
||||||
|
ATi(LPn) or ATi(SYn) (lone pairs, bonds invariant under
|
||||||
|
a symmetry transformation) (see below the examples)
|
||||||
|
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
Give basis set for atoms
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
|
||||||
|
bond_ basref='...'
|
||||||
|
|
||||||
|
These is a preliminary data, which defines the default basis set for all
|
||||||
|
following bond_ data. The default may be changed by another "bas" data.
|
||||||
|
It can be ignored for a particular bond_ data, by giving "bas=" (as in
|
||||||
|
many examples below)
|
||||||
|
|
||||||
|
example: BOND_ BASREF='O:1S(2) 2P(1),C:1S(2) 2P(1),H:1S(1)'
|
||||||
|
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
Change suffix to ".PI"
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
|
||||||
|
if the suffix of the LO label is ".SG" and it corresponds to a pi LO
|
||||||
|
it is possible to change the label
|
||||||
|
|
||||||
|
Add label='P' to the BOND_ data
|
||||||
|
bond_ chain='...',label='P'
|
||||||
|
the name of the generated LO will be:
|
||||||
|
O_"...".PI
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
example 1: (single bond)
|
||||||
|
::::::::::::::::::::::::
|
||||||
|
|
||||||
|
the example of (a) can be written:
|
||||||
|
bond_ chain='C2-H1',bas='1S(2) 2P(1)','H1 1S(1)'
|
||||||
|
The label of the LO is chosen by the program (O_C2H1.SG)
|
||||||
|
n=2: there are 2 atoms (default value: 2)
|
||||||
|
|
||||||
|
::::::::::::::::::::::::::::::::::::
|
||||||
|
example 2: (double and triple bond)
|
||||||
|
::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
a) bond_ n=2,chain='C2=C1',bas=2*'1S(2) 2P(1)'
|
||||||
|
generated labels: O_C2H1.SG O_C2H1.PI
|
||||||
|
b) bond_ n=2,chain='C2~C1',bas=2*'1S(2) 2P(1)'
|
||||||
|
generated labels: O_C2H1.SG O_C2H1.P1 O_C2H1.P2
|
||||||
|
|
||||||
|
::::::::::::::::::::::::::::::::::
|
||||||
|
example 3: (bonds and lone pairs)
|
||||||
|
::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
HO H7
|
||||||
|
\ _ /
|
||||||
|
H2-C1 - C3H3 = C4H4 - C5H5 = N - C6H6 = C7
|
||||||
|
/ \
|
||||||
|
H1 H8
|
||||||
|
chain C1-C3=C4-C5=N-C6=C7:
|
||||||
|
bond_ n=7,chain='C1-C3=C4-C5-N(lp1)=C6-C7',bas=7*'1S(2) 2P(1)',
|
||||||
|
N(lp1) : atom N has 1 Lone Pair (no limit to n in lpn)
|
||||||
|
|
||||||
|
:::::::::::::::::::::::::
|
||||||
|
example 4: (3 lone pairs)
|
||||||
|
:::::::::::::::::::::::::
|
||||||
|
|
||||||
|
bond_ chain='S1(lp3)-C13',bas=2*'1s(1) 2p(1)'
|
||||||
|
|
||||||
|
/
|
||||||
|
We have: | S1-C13
|
||||||
|
\
|
||||||
|
The programm generate the following basic data::
|
||||||
|
o_s1c13 s1 1s(1) 2p(1) : c13 1s(1) 2p(1) (4 1)
|
||||||
|
o_s1lp s1 1s(1) 2p(1) (3 0)
|
||||||
|
The lone pairs were generated twice (once by each basic data).
|
||||||
|
In o_s1c13, they are "spread" over the 4 occupied
|
||||||
|
To correct that, the program generates:
|
||||||
|
|
||||||
|
subs o_s1c13 o_s1lp
|
||||||
|
|
||||||
|
which substracts the lone pairs from the set (LP+sig+sig*). The sigma
|
||||||
|
appears then to be pure, the LP are unchanged
|
||||||
|
these generated data appear in OLD_DATA_x
|
||||||
|
|
||||||
|
::::::::::::::::::::::::::::::::::::::::
|
||||||
|
example 5: (bonds invariant by symmetry)
|
||||||
|
::::::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
C1
|
||||||
|
/ \
|
||||||
|
C2 C3
|
||||||
|
------ | ---- | ---------------- symmetry plane
|
||||||
|
C2 C3
|
||||||
|
\ /
|
||||||
|
C1
|
||||||
|
|
||||||
|
bond_ n=2,chain='C1-C3(sy1)'
|
||||||
|
|
||||||
|
sy1 means that There is a C3-C3 bond, invariant by symmetry. The program
|
||||||
|
will generate the following basic data:
|
||||||
|
o_C1C3 C1 1s(2) 2p(1) : C3 1s(2) 2p(1) (3 3) (3 occ, 3 anti bonding
|
||||||
|
corresponding to C1-C3-C3-C1)
|
||||||
|
O_C3 C3 1s(2) 2p(1) (1 1) (C3-C3 bond)
|
||||||
|
subs o_C1C3 c_C3 (substract c_C3 from o_C1C3)
|
||||||
|
|
||||||
|
After substraction, The orbitals with the label o_C1C3 are really on
|
||||||
|
the C1-C3 bond, and not on C3-C3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
:::::::::::::::::::::
|
||||||
|
example 6: (pi bonds)
|
||||||
|
:::::::::::::::::::::
|
||||||
|
|
||||||
|
C1 C1
|
||||||
|
/ /
|
||||||
|
C2 C3 C2 C3
|
||||||
|
a) | b) ------ ---- | ---------
|
||||||
|
C4 C6 C2 C3
|
||||||
|
\ \
|
||||||
|
C5 C1
|
||||||
|
|
||||||
|
a) bond_ n=2,chain='C1=C2',orth='c1,c2,c3'
|
||||||
|
b) bond_ n=1,chain='C3(sy2)',orth='c1,c3,c3' (bond invariant by symmetry)
|
||||||
|
|
||||||
|
only double bonds are represented (Kékulé).
|
||||||
|
The 3 centers c1,c2,c3 define a plane.
|
||||||
|
The pi orbitals are orthogonal to this plane.
|
||||||
|
(orth='c1,c2,c3' means: no component in plane c1,c2,c3)
|
||||||
|
|
||||||
|
|
||||||
|
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
example 7: (All p, or d orbitals of an atom. Here: closed shell Fe)
|
||||||
|
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
3d of an iron atom:
|
||||||
|
a) 3 filled LO's
|
||||||
|
bond_ n=1,chain='fe(lp3)',bas='3d(1)'
|
||||||
|
b) 2 empty LO's
|
||||||
|
bond_ n=1,chain='fe',bas='3d(1)',vi=2
|
||||||
|
|
||||||
|
:::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
example 8 (several subgraphs in one "bond_" data)
|
||||||
|
:::::::::::::::::::::::::::::::::::::::::::::::::
|
||||||
|
|
||||||
|
This possibility is sometimes mandatory, if the data (SYn) is used
|
||||||
|
|
||||||
|
example of butadiene:
|
||||||
|
|
||||||
|
\ /
|
||||||
|
H1 C2 -
|
||||||
|
\ //
|
||||||
|
C1 - C1
|
||||||
|
// \
|
||||||
|
- C2 H1
|
||||||
|
/ \
|
||||||
|
|
||||||
|
1. C2-C1-C1-C2 bond: bond_ chain='C1(sy1)=c2'
|
||||||
|
2. C1-H1 bond: bond_ chain='C1(sy1)-H1'
|
||||||
|
|
||||||
|
an atom with (SY.) CANNOT appear in two different bond_ lines
|
||||||
|
use instead:
|
||||||
|
bond_ chain='C1(sy1)=c2;C1(sy1)-H1'
|
||||||
|
|
||||||
|
NOTE: in general, all bonds can be generated with the BOND_ command
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
c. An macro data: DELOC_
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
build a set of orbitals that are deloclized on several atoms
|
||||||
|
|
||||||
|
example:
|
||||||
|
deloc_ n=3,chain='c1-c6-c11',bas=3*'2pz(1)',noc=3,nvirt=3,label='a'
|
||||||
|
means:
|
||||||
|
n : number of atoms (can be more by symmetry)
|
||||||
|
c1-c6-c11 : list of the atoms, separated by "-"
|
||||||
|
noc, nvirt : number of occupied and anti-bondings (in this example,
|
||||||
|
we have a 6-atom ring)
|
||||||
|
label='a' : these orbitals will be active in the MRCI
|
||||||
|
bas=3*'2pz(1)' : in this example, the Pz pi orbitals were seeked
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
d. SIGMA_
|
||||||
|
-----------------------------------------
|
||||||
|
A set of sigma bonds
|
||||||
|
sigma_ c* 1S(2) 2P(1) : h* 1S(1) dmax=1.2 ANGSTROM
|
||||||
|
generates all CH bonds for all (C,H) couples, separated by less
|
||||||
|
than 1.2 Angstrom.
|
||||||
|
Note. in C*..., * replaces only NUMBERS, and not letters. So Cu is
|
||||||
|
not considered as a Carbon atom. Do not call the C atoms Ca, Cb...
|
||||||
|
|
||||||
|
NOTE: This data makes sometimes problems if there is symmetry. In this
|
||||||
|
case, better use BOND_
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
e. CORE_ , DIFF_
|
||||||
|
-----------------------------------------
|
||||||
|
A set of core or diffuse orbitals
|
||||||
|
CORE_ C* 1S(1) ---> occupation is (1 0)
|
||||||
|
DIFF_ C* 1S(1) ---> occupation is (0 1)
|
||||||
|
|
||||||
|
#############################################
|
||||||
|
Other macro data (do not une for the moment)
|
||||||
|
#############################################
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
f. PI_
|
||||||
|
-----------------------------------------
|
||||||
|
similar to SIGMA_, for pi orbitals
|
||||||
|
example:
|
||||||
|
PI_ C* 2P(1) : C* 2P(1) DMAX=1.4 ANGSTROM
|
||||||
|
|
||||||
|
NOTE: This data makes somtiomes problems if there is symmetry. In this
|
||||||
|
case, use BOND_c1,c2,c3
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
g. SUBS
|
||||||
|
-----------------------------------------
|
||||||
|
subtraction (or projection) of a set of LO from another set of LO,
|
||||||
|
as it appears in B. example 4
|
||||||
|
|
||||||
|
subs o_s1c13 o_s1lp (the space of o_s1c13 is larger than the space
|
||||||
|
of o_s1lp)
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
h. RENAME
|
||||||
|
-----------------------------------------
|
||||||
|
If one enters for example
|
||||||
|
o_s1lp s1 1s(1) 2p(1) (3 0) (basic data)
|
||||||
|
/
|
||||||
|
| S1
|
||||||
|
\
|
||||||
|
3 lone pairs are generated, with the same name. The names need to
|
||||||
|
be different in the following of the calculation
|
||||||
|
|
||||||
|
a solution is to use BOND_ instead
|
||||||
|
bond _ n=1,chain='S1(lp3)',bas='1s(2) 2p(1)'
|
||||||
|
|
||||||
|
or to rename the bonds
|
||||||
|
REN o_s1lp o_s1lp1 o_s1lp2 o_s1lp3
|
||||||
|
(REN common_name individual_names)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
i. Multiple data
|
||||||
|
-----------------------------------------
|
||||||
|
- using "[", "]"
|
||||||
|
ex.
|
||||||
|
BOND_ CHAIN='W1',BAS='3D[0 1+ 2+ 2-](1) 3D[0 1+ 2+ 2-](2)',LP=1,VI=1
|
||||||
|
generates 4 bond data:
|
||||||
|
BOND_ CHAIN='W1',BAS='3D0(1) 3D0(2)',LP=1,VI=1
|
||||||
|
BOND_ CHAIN='W1',BAS='3D1+(1) 3D1+(2)',LP=1,VI=1
|
||||||
|
...
|
||||||
|
- using "[["
|
||||||
|
ex:
|
||||||
|
BOND_ CHAIN='O[1 2 3 4 5 6 7 11 13 15](LP1)',BAS='2P[[X Y Z]](1) 2P[[X Y Z]](2)'
|
||||||
|
generates all combinations of the 10 data due to [1 2 3 4 5 6 7 11 13 15]
|
||||||
|
and the 3 due to [[X Y Z]]
|
||||||
|
(a total of 30 bond_data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
j. ROT_
|
||||||
|
-----------------------------------------
|
||||||
|
- replaces a set of AOs (in general Px,Py,Pz orbitals of an atome) by a
|
||||||
|
combination of these orbitals
|
||||||
|
-example
|
||||||
|
ROT_ ATOM='C1',PARA='0,C1'
|
||||||
|
for Atom C1, the three AOs Px,Py,Pz are replaced by a combination,
|
||||||
|
the axis is given by the direction 0 (zero)-C1, where 0 is the Origin.
|
||||||
|
the AO basis is reduced, to eliminate unwihed LOs
|
||||||
|
- you can give several ROT_ commands
|
||||||
|
-example
|
||||||
|
ROT_ ATOM='C1',PARA='0,C1'
|
||||||
|
ROT_ ATOM='C2',PARA='0,C2'
|
||||||
|
ROT_ ATOM='C3',PARA='0,C3'
|
||||||
|
ROT_ ATOM='C4',PARA='0,C4'
|
||||||
|
ROT_ ATOM='C5',PARA='0,C5'
|
||||||
|
DELOC_ CHAIN='C3-C1-C5-C2-C4',BAS=5*'2P(1)',NOC=8,NVIRT=8
|
||||||
|
ROT_ CLOSE
|
||||||
|
|
||||||
|
The DELOC command uses the reduced AOs. The Rot_ commands are valid for all
|
||||||
|
following commands
|
||||||
|
ROT_ CLOSE cancels all preceding ROT_ data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
####################
|
||||||
|
Details of Data
|
||||||
|
####################
|
||||||
|
|
||||||
|
--------------
|
||||||
|
DOLOIN file:
|
||||||
|
--------------
|
||||||
|
|
||||||
|
All data are compulsory
|
||||||
|
|
||||||
|
&smufil prefix='Project.' /
|
||||||
|
&smu
|
||||||
|
nprint=0,
|
||||||
|
orb='test.RasOrb' orbital file name, as a result
|
||||||
|
or a SCF or CASSCF calculation
|
||||||
|
loc_actives default:T T: localizes active orbitals
|
||||||
|
F: active orbitals remain unlocal
|
||||||
|
/
|
||||||
|
|
||||||
|
&oao /
|
||||||
|
Concerns data to build OAO (Orthogonalized Atomic Orbitals)
|
||||||
|
list of Atomic Orbitals, with priority in the orthogonalization
|
||||||
|
example:
|
||||||
|
Fe 1s(1) pr=1
|
||||||
|
--> first s orbital of atom Fe in the list of AO's
|
||||||
|
the AO is orthogonalized with highest priority (pr=1)
|
||||||
|
Fe 2p(1) pr=1
|
||||||
|
--> idem for all 2px, 2py and 2pz AO's
|
||||||
|
Fe 3d(1) pr=2
|
||||||
|
--> idem for the 5 d orbitals. (pr=2: will be orthogonalized, for example,
|
||||||
|
to the 1s of C which has (pr=1) (projection orthogonalization)
|
||||||
|
-- etc...
|
||||||
|
C* 1s(1) pr=2
|
||||||
|
N* 1s(1) pr=2
|
||||||
|
H* 1s(1) pr=2
|
||||||
|
S 1s(1) pr=2
|
||||||
|
C* 2p(1) pr=2
|
||||||
|
N* 2p(1) pr=2
|
||||||
|
H* 2p(1) pr=2
|
||||||
|
S* 2p(1) pr=2
|
||||||
|
fin end of AO data
|
||||||
|
&orb symm='XY' / symm: as given in seward after the line
|
||||||
|
SYMMetry
|
||||||
|
|
||||||
|
|
||||||
|
|
44
Manuals/ecrimat_emploi
Executable file
44
Manuals/ecrimat_emploi
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
**************************************************************************
|
||||||
|
ecrimat ecrimat ecrimat ecrimat ecrimat ecrimat ecrimat
|
||||||
|
**************************************************************************
|
||||||
|
|
||||||
|
Programme d'ecriture sur papier de la matrice d'IC calculee par CASDI
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
call LECNAM('&ECRM',namel,5,ierr,1)
|
||||||
|
call namela(namel,prefix,'PREFIX')
|
||||||
|
call namela(namel,DET,'DET')
|
||||||
|
call namela(namel,MAT,'MAT')
|
||||||
|
call namela(namel,CDI,'CDI')
|
||||||
|
call namela(namel,INFO,'INFO')
|
||||||
|
call namela(namel,DAVEC,'DAVEC')
|
||||||
|
call nameli(namel,PRECIS,'PRECIS',4)
|
||||||
|
call namell(namel,YDETV,'YDETV',1)
|
||||||
|
call nameli(namel,NPRINT,'NPRINT',4)
|
||||||
|
|
||||||
|
|
||||||
|
Fichiers en entree :
|
||||||
|
|
||||||
|
davec de casdi: calcul='MD' ou calcul='D'
|
||||||
|
det de casdet
|
||||||
|
mat de casdi: calcul='M'
|
||||||
|
info de molcost
|
||||||
|
cdi de casdet
|
||||||
|
|
||||||
|
|
||||||
|
exemple :
|
||||||
|
|
||||||
|
seward sewin
|
||||||
|
scf scfin
|
||||||
|
motra motrain
|
||||||
|
molcost < molcostin
|
||||||
|
casdet < casdetin
|
||||||
|
casdi90 < casdiinM
|
||||||
|
casdi90 < casdiinD
|
||||||
|
ecrimat << EOF
|
||||||
|
&ECRM prefix='...' /
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- ou, dans casdiinM, on calcul='M' (creation d'un fichier .mat contenant la matrice)
|
||||||
|
- dans casdiinD, on calcul='D' (lecture du fichier .mat, diagonalisation)
|
||||||
|
- dans ecrimat, la seule donnée obligatoire est prefix
|
132
Manuals/faiano_emploi
Executable file
132
Manuals/faiano_emploi
Executable file
@ -0,0 +1,132 @@
|
|||||||
|
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
faiano
|
||||||
|
fabrication d'ANO
|
||||||
|
Utilisation :
|
||||||
|
1. faire un calcul scf ou casscf SANS SYMETRIE sur l'atome pour
|
||||||
|
obtenir les OM a partir
|
||||||
|
desquelles on construira les ANO. Pour un calcul sur un atome,
|
||||||
|
il y a en general des orbitales degenerees (3p, 5d,...) Les OM correspondantes
|
||||||
|
DOIVENT etre degenerees. pour cela utiliser des occupations egales
|
||||||
|
(fractionnaires en general).
|
||||||
|
ex : pour C, entrer :
|
||||||
|
occu
|
||||||
|
4
|
||||||
|
occn
|
||||||
|
2. 3*0.66666666666666
|
||||||
|
pour avoir 3 p degenerees
|
||||||
|
Pour les metaux de transition, il faut reussir a avoir les D degenerees.
|
||||||
|
Ce n'est pas toujours facile, la S s'intercalant quelquefois. Au besoin, mettre
|
||||||
|
a la S la meme occupation que les D. ex pour Ru
|
||||||
|
occu
|
||||||
|
10
|
||||||
|
occn
|
||||||
|
2. 2. 2. 2. 6*1.3333333333333 (s,px,py,pz,5d+s) peu importe si la S
|
||||||
|
s'intercale
|
||||||
|
|
||||||
|
2. Copier le fichier d'orbitales
|
||||||
|
dans un fichier nomme ORB.
|
||||||
|
|
||||||
|
3. extraire du fichier dans baslib_library de molcas
|
||||||
|
la base qui nous interesse (extraire TOUT ce qui concerne
|
||||||
|
l'atome, c.a.d. jusqu'a la ligne qui precede la donnee de
|
||||||
|
l'atome suivant)
|
||||||
|
4. l'ecrire dans le fichier nomme BAS
|
||||||
|
5. Editer le fichier BAS. Il faut lui donner une forme bien
|
||||||
|
definie (car les differentes base donnees dans baslib_library
|
||||||
|
ont des formats tres variables)
|
||||||
|
! ligne 1 definition de la base
|
||||||
|
! lignes 2,3 commentaires
|
||||||
|
! ligne 4 charge, lmax
|
||||||
|
! ligne 5 : vide
|
||||||
|
! ligne 6 : ngauss, ncont pour les s
|
||||||
|
! ngauss lignes exposants (1 par ligne !)
|
||||||
|
! ngauss lignes de ncont coefs (les ncont coefs peuvent etre
|
||||||
|
! sur plusieurs lignes). Completer les lignes si necessaire,
|
||||||
|
! pour bien avoir ncont coefs, comme dans l'exemple donne
|
||||||
|
! ngauss, ncont pour les p
|
||||||
|
! ...
|
||||||
|
!
|
||||||
|
! exemple qui marche :
|
||||||
|
!
|
||||||
|
! /Ni.ECP.Seijo.9s6p6d.3s3p4d.16e-NR-AIMP.
|
||||||
|
! L.Seijo, Z.Barandiaran, and S. Huzinaga, J.Chem.Phys. 91(1989)7011
|
||||||
|
! core[Mg] val[3p,4s,3d] (711/411*/3111d)=3s3p4d recomended
|
||||||
|
! 16.000000 2
|
||||||
|
!
|
||||||
|
! 9 3
|
||||||
|
! 4285.323290
|
||||||
|
! 651.9116660
|
||||||
|
! 148.4310420
|
||||||
|
! 14.61565810
|
||||||
|
! 5.084914950
|
||||||
|
! 2.695829830
|
||||||
|
! .9637774780
|
||||||
|
! .1247067220
|
||||||
|
! .4440127210E-01
|
||||||
|
! -.001291434550 0. 0.
|
||||||
|
! -.008765641940 0. 0.
|
||||||
|
! -.026885866400 0. 0.
|
||||||
|
! .120663572000 0. 0.
|
||||||
|
! .088548487800 0. 0.
|
||||||
|
! -.211511413000 0. 0.
|
||||||
|
! -.300423481000 0. 0.
|
||||||
|
! .616312812000 1. 0.
|
||||||
|
! .514892857000 0. 1.
|
||||||
|
! 6 3
|
||||||
|
! 335.2111400
|
||||||
|
! 78.05211610
|
||||||
|
! 23.61618700
|
||||||
|
! 2.862374010
|
||||||
|
! .9462498720
|
||||||
|
! .1110000000
|
||||||
|
! -.017329090100 .000000000000 .000000000000
|
||||||
|
! -.105886106000 .000000000000 .000000000000
|
||||||
|
! -.251733492000 .000000000000 .000000000000
|
||||||
|
! .623521318000 .000000000000 .000000000000
|
||||||
|
! .470407510000 1.000000000000 0.000000000000
|
||||||
|
! .000000000000 0.000000000000 1.000000000000
|
||||||
|
! 47.29662940
|
||||||
|
! 13.20797580
|
||||||
|
! 4.435978690
|
||||||
|
! 1.482292030
|
||||||
|
! .4385855920
|
||||||
|
! .1316000000
|
||||||
|
! .028692884000 .000000000000 .000000000000 .000000000000
|
||||||
|
! .153696374000 .000000000000 .000000000000 .000000000000
|
||||||
|
! .374873996000 .000000000000 .000000000000 .000000000000
|
||||||
|
! .473227536000 1.000000000000 .000000000000 .000000000000
|
||||||
|
! .312182257000 .000000000000 1.000000000000 .000000000000
|
||||||
|
! .000000000000 .000000000000 .000000000000 1.000000000000
|
||||||
|
! *
|
||||||
|
! * Core AIMP: NI3F-3S
|
||||||
|
! *
|
||||||
|
! * Local Potential Paramenters : (ECP convention)
|
||||||
|
! * A(AIMP)=-Zeff*A(ECP)
|
||||||
|
! M1
|
||||||
|
! 10
|
||||||
|
! 305000.0000
|
||||||
|
! 40270.00000
|
||||||
|
! ...
|
||||||
|
|
||||||
|
6. lancer faiano, sans donnees
|
||||||
|
si le programme donne une erreur du genre :
|
||||||
|
on selectionne trop d'orbitales
|
||||||
|
ou
|
||||||
|
stop kk.ne.nbcon
|
||||||
|
c'est que le OM sont tres impure (melanges Px/Py par exemple) et
|
||||||
|
n'ont pas pu etre reconnues.
|
||||||
|
Les purifier d'abord :
|
||||||
|
lancer purigom (sans donnees, il lit les fichiers BAS et ORB,
|
||||||
|
il cree le fichier "PUR") ; mv PUR ORB ; lancer faiano
|
||||||
|
7. La base ANO est dans un fichier nomme ANO
|
||||||
|
copier ce fichier dans un fichier dont le nom est celui du
|
||||||
|
fichier dans lequel on a pris la base dans baslib_library
|
||||||
|
exemple: cp ANO ECP
|
||||||
|
8. ajouter dans le script l'emplacement de la nouvelle base
|
||||||
|
exemple :
|
||||||
|
mkdir BASLIB
|
||||||
|
ln -sf $CurrDir/ECP BASLIB/ECP
|
||||||
|
9. ajouter dans l'input de seward " / BASLIB" a la fin de la ligne definissant la base puis verifier en relancant seward, scf
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
120
Manuals/gcas_emploi
Executable file
120
Manuals/gcas_emploi
Executable file
@ -0,0 +1,120 @@
|
|||||||
|
GCAS GCAS GCAS GCAS GCAS GCAS GCAS GCAS GCAS GCAS
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
fait la reunion de plusieurs fichiers RasOrb pour creer un fichier
|
||||||
|
d'orbitales ou :
|
||||||
|
- les occupees, actives et virtuelles
|
||||||
|
sont prises dans les differents RasOrb
|
||||||
|
|
||||||
|
Methode :
|
||||||
|
Aller prendre les occupees, actives et virtuelles
|
||||||
|
dans tous les fichiers RasOrb
|
||||||
|
Certaines actives peuvent etre "en double", ayant
|
||||||
|
ete generees par plusiurs rasscf differents. Elles ne
|
||||||
|
sont alors pas identiques, mais presque.
|
||||||
|
|
||||||
|
Etape 1 Actives :
|
||||||
|
Construire la matrice de recouvrement entre toutes les actives
|
||||||
|
la diagonaliser. On obtient des valeurs propres presque entieres.
|
||||||
|
valeur propre 1. Correspond a une active generee 1 fois
|
||||||
|
dans les calculs rasscf precedents. Le vecteur propre correspond
|
||||||
|
a l'orbitale active
|
||||||
|
valeur propre ~n. L'active etait presente n fois dans les Rasorb
|
||||||
|
le vecteur propre est une moyenne de toutes les actives similaires
|
||||||
|
valeur propre ~0. pour chaque valeur propre ~n, il y a n-1
|
||||||
|
valeurs propres ~0. Les vecteurs correspondants sont a eliminer.
|
||||||
|
|
||||||
|
Etape 2 L'espace actif etant construit, on va fabriquer les occupees
|
||||||
|
et les virtuelles
|
||||||
|
Occupees :
|
||||||
|
On voudrait employer la meme metrhode que pour les actives, mais
|
||||||
|
le nombre d'occupees cumule pour tous les fichiers est trop grand.
|
||||||
|
On ne pourrait pas diagonaliser.
|
||||||
|
Donc :
|
||||||
|
- on prend le fichier numero 1
|
||||||
|
- on boucle sur les occupees
|
||||||
|
- pour l'occupee n, on cherche son equivalent dans tous les autres
|
||||||
|
fichiers
|
||||||
|
- si on tombe sur une active dans un des fichiers, on laisse tomber
|
||||||
|
l'orbitale
|
||||||
|
- sinon, on a nf orbitales, nf etant le nombre de fichiers.
|
||||||
|
On applique la meme methode que pour les actives (mat de
|
||||||
|
recouvrement, diag, on ne retient que l'orbitale de valeur
|
||||||
|
propre ~nf
|
||||||
|
Virtuelles : comme les occupees
|
||||||
|
|
||||||
|
Etape 4 orthogonalisation hierarchisee act, puis occ+virt
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
En entree (tous fichiers sur $WorkDir) :
|
||||||
|
- Un fichier GINPORB d'orbitales localisees
|
||||||
|
(GINPORB est en general la copie de LOCORB obtenu par dolo)
|
||||||
|
- Les fichiers Info et Mono
|
||||||
|
- le fichier SCH_FERMI cree par dolo
|
||||||
|
|
||||||
|
|
||||||
|
En donnee :
|
||||||
|
- Une ligne
|
||||||
|
&gcas prefix='...',nprint=..,symm= /
|
||||||
|
prefix : obligatoire
|
||||||
|
symm : obligatoire sur les vieilles versions de molcas, si on
|
||||||
|
veut une file molden.
|
||||||
|
|
||||||
|
- Une ligne de donnee pour le calcul rasscf
|
||||||
|
&ras name='...',symmetry=.,spin=.,nactel=. /
|
||||||
|
cette ligne servira a generer les donnees de rasscf. "name" est le
|
||||||
|
nom donne au calcul
|
||||||
|
|
||||||
|
- Pour chaque ligne &ras name=..., il y a plusieurs lignes
|
||||||
|
&ras isy=.,occvir='...',label='...........' /
|
||||||
|
(une par orbitale active) label est le nom de l'orbitale active
|
||||||
|
telle qu'elle apparait dans LOCORB
|
||||||
|
|
||||||
|
En sortie :- Un fichier d'orbitales, genre de RasOrb avec beaucoup d'actives.
|
||||||
|
($Project.GCasOrb)
|
||||||
|
- Un fichier d'orbitales locales, correspondant a LOCORB
|
||||||
|
projete sur $Project.GCasOrb ($Project.LocGCasOrb)
|
||||||
|
- un fichier rasscf de sortie pour chaque calcul rasscf
|
||||||
|
(OUT_LOC_RASSCFname, name etant la donnee de & ras)
|
||||||
|
- un fichier d'orbitales rasscf par calcul rasscf
|
||||||
|
(Project.Orb.T)
|
||||||
|
si on a deja fait tourner gcas pour quelques rasscf mais pas tous, le
|
||||||
|
programme teste l' existence fichiers OUT_LOC_RASSCFname et Project.Orb.name
|
||||||
|
et, si tout est bon, ne reexecute pas rasscf.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Exemple de donnees :
|
||||||
|
|
||||||
|
gcas << EOF
|
||||||
|
&gcas prefix='FeL2.',nprint=0
|
||||||
|
&ras name='GS1',symmetry=1,spin=1,nactel=6 /
|
||||||
|
&ras isy=2,occvir='OCC',label='O_FE.D.LP03' /
|
||||||
|
&ras isy=3,occvir='OCC',label='O_FE.D.LP02' /
|
||||||
|
&ras isy=4,occvir='OCC',label='O_FE.D.LP01' /
|
||||||
|
|
||||||
|
&ras name='GS5',symmetry=1,spin=5,nactel=6 /
|
||||||
|
&ras isy=2,occvir='OCC',label='O_FE.D.LP03' /
|
||||||
|
&ras isy=3,occvir='OCC',label='O_FE.D.LP02' /
|
||||||
|
&ras isy=4,occvir='OCC',label='O_FE.D.LP01' /
|
||||||
|
&ras isy=1,occvir='VIR',label='O_FE.D.VI01' /
|
||||||
|
&ras isy=1,occvir='VIR',label='O_FE.D.VI02' /
|
||||||
|
|
||||||
|
&ras name='MLCT2',symmetry=1,spin=3,nactel=2 /
|
||||||
|
&ras isy=2,occvir='OCC',label='O_FE.D.LP03' /
|
||||||
|
&ras isy=2,occvir='VIR',label='O_N2~C5.DL01' /
|
||||||
|
|
||||||
|
&ras name='MLCT3',symmetry=1,spin=3,nactel=2 /
|
||||||
|
&ras isy=3,occvir='OCC',label='O_FE.D.LP02' /
|
||||||
|
&ras isy=3,occvir='VIR',label='O_N18~C21.DL01' /
|
||||||
|
|
||||||
|
&ras name='MLCT4',symmetry=1,spin=3,nactel=2,ciroot=2,2,1 /
|
||||||
|
&ras isy=4,occvir='OCC',label='O_FE.D.LP01' /
|
||||||
|
&ras isy=4,occvir='VIR',label='O_N2~C5.DL' /
|
||||||
|
&ras isy=4,occvir='VIR',label='O_N18~C21.DL' /
|
||||||
|
|
||||||
|
/
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
86
Manuals/gcasdeloc_emploi
Executable file
86
Manuals/gcasdeloc_emploi
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
GCASdeloc GCASdeloc GCASdeloc GCASdeloc GCASdeloc
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Note: If you know GCAS, GCASdeloc is a simplified version, without
|
||||||
|
reference to use of local orbitals
|
||||||
|
|
||||||
|
|
||||||
|
Definition: merge the orbitals or several rasscf orbital files, to
|
||||||
|
get average orbitals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Method:
|
||||||
|
Get Occupied, Active and Virtuals from several RasOrb files. Some of
|
||||||
|
them appear more than once, as they were generated by different
|
||||||
|
rasscf calculations. In that case they are almost identical.
|
||||||
|
|
||||||
|
Step 1 Actives:
|
||||||
|
Buils overlap matrix between actives, diagonalise. One gets almost
|
||||||
|
integer eigenvalues. If ~1: the active was generated once. The
|
||||||
|
eigenvector corresponds to the active orbital. If eigenvalue ~n (n>0)
|
||||||
|
the state was present in n rasscf calculations. The eingenvector will
|
||||||
|
result in an average vector of the n states. If eigenvalue ~0, the
|
||||||
|
eigenvector should be eliminated, as it is the result or a linear
|
||||||
|
dependency. there are n-1 eliminated vectors for a eigen value equal
|
||||||
|
to n.
|
||||||
|
|
||||||
|
Step 2 Once constructed the Active space, one must build the occupied and
|
||||||
|
virtual spaces
|
||||||
|
Occupied :
|
||||||
|
It would be convenient to use the same method, but the number of
|
||||||
|
cumulated occupied orbitals could be to large. it would be impossible
|
||||||
|
to diagonalise
|
||||||
|
Then:
|
||||||
|
- take RasOrb file number 1
|
||||||
|
- loop on orbitals
|
||||||
|
- for occupied n, look for an equivalent in all other files
|
||||||
|
if one equivalent is found, and if it corresponds to an active,
|
||||||
|
forget the orbital
|
||||||
|
- Otherwise, one has nf orbitals, where nf is the number of RasOrb files
|
||||||
|
- Apply same method, as it was done for actives (overlap matrix,
|
||||||
|
diagonalisation, get only eigenvalue equal to nf.
|
||||||
|
Virtuelles : as for occupied
|
||||||
|
|
||||||
|
Step 4 hierarchised orthogonalisation act, then occ+virt
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
Input files: (on $WorkDir) :
|
||||||
|
- Info et Mono files
|
||||||
|
- RasOrb files
|
||||||
|
Input files: (on $CurrDir)
|
||||||
|
- rasin files (data files for rasscf calculations.
|
||||||
|
|
||||||
|
|
||||||
|
Input data:
|
||||||
|
1.
|
||||||
|
&gcas prefix='...',nprint=..,symm= ,ninac= ,noac= ,nelac= /
|
||||||
|
prefix : compulsory
|
||||||
|
symm : needed on old molcas versions, if one wants a molden file.
|
||||||
|
ninac,noac: number of doubly occupied, and active orbitals in each
|
||||||
|
symmetry.
|
||||||
|
nelac: number of active electrons.
|
||||||
|
ninac,numac and nelac correspond to the final active space, once merged
|
||||||
|
all active orbitals.
|
||||||
|
2.
|
||||||
|
&ras namelists, one for each RasOrb file
|
||||||
|
&ras input= ,'rasorb= /
|
||||||
|
input: name of rasscf input file (is on CurrDir!)
|
||||||
|
rasorb: name of rasOrb file (is on WorkDir!)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Output: sortie :- A RasOrb file with many actives ($Project.GCasOrb)
|
||||||
|
|
||||||
|
|
||||||
|
Example of data:
|
||||||
|
|
||||||
|
gcasdeloc << EOF
|
||||||
|
&gcas prefix='Ni.',nprint=0,ninac=35,24,35,24,31,21,31,21,
|
||||||
|
noac=1,0,1,0,1,0,1,0,nelac=6 /
|
||||||
|
&ras input='rasin_357S',rasorb='Ni.RasOrb_357S' /
|
||||||
|
&ras input='rasin_1357T',rasorb='Ni.RasOrb_1357T' /
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
49
Manuals/hieror_emploi
Executable file
49
Manuals/hieror_emploi
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
HIEROR
|
||||||
|
|
||||||
|
Programme d'orthogonalisation d'orbitales exprimees dans une base d'OA
|
||||||
|
|
||||||
|
S'execute apres molcost, lit le fichier "Mono"
|
||||||
|
|
||||||
|
Fichiers en entree :
|
||||||
|
Mono (de molcost)
|
||||||
|
INPORB (orb a orthogonaliser)
|
||||||
|
|
||||||
|
Fichiers en sortie :
|
||||||
|
ORTORB (orb orthonormales)
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
&hieror prefix'...',yoa_ort= /
|
||||||
|
pr1
|
||||||
|
is1 io1 io2 io3 io4 ...
|
||||||
|
is1 io5 io6 ...
|
||||||
|
is2 io1 io2 ...
|
||||||
|
...
|
||||||
|
pr2
|
||||||
|
is1 io1 io2 io3 io4 ...
|
||||||
|
is2 io1 io2 ...
|
||||||
|
pr3
|
||||||
|
...
|
||||||
|
FINHIEROR
|
||||||
|
|
||||||
|
avec : yoa_ort=T : les OA sont deja orthogonales, la matrice de recouvrement
|
||||||
|
est remplacee par la matrice unite (defaut F)
|
||||||
|
|
||||||
|
pr1,pr2,pr3 : priorites des orbitales (1,2,3...) (pas de limitation)
|
||||||
|
les priorites doivent etre donnees par valeurs croissantes, 1
|
||||||
|
correspondant aux orbitales les plus prioritaires
|
||||||
|
puis on donne les orbitales une a une
|
||||||
|
is1,is2,is3 : symetrie des orbitales donnees
|
||||||
|
io1,io2,io3 : numero des orbitales dans leur symetrie
|
||||||
|
|
||||||
|
on finit les donnees par :
|
||||||
|
finhieror
|
||||||
|
|
||||||
|
donnees compactees :
|
||||||
|
au lieu de
|
||||||
|
pr1
|
||||||
|
1 3 4 5 6 7 9 12
|
||||||
|
on peut donner
|
||||||
|
pr1
|
||||||
|
1 3-7 9 12
|
||||||
|
|
||||||
|
|
39
Manuals/ijkl_emploi
Executable file
39
Manuals/ijkl_emploi
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
ijkl : Programme de transformations d'integrales
|
||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
En entree :
|
||||||
|
- file d'integrales monoelectroniques atomiques prefixAO_ONE
|
||||||
|
- file d'integrales bielectroniques atomiques prefixAO_TWO
|
||||||
|
- file d'orbitales (INPORB)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
Donnee (maj: correspond a des donnees obligatoires)
|
||||||
|
&ijkl PREFIX='...'
|
||||||
|
inforef1 file Info en entree prefixInfo
|
||||||
|
info1 file Info en sortie prefixInfo
|
||||||
|
(iforef1 sera donc remplacee par info1. En fait on ajoute a
|
||||||
|
inforef1 la partie concernant les orbitales moleculaires)
|
||||||
|
mono1 file Mono en sortie prefixMono
|
||||||
|
|
||||||
|
inforef,
|
||||||
|
monoref,
|
||||||
|
info,
|
||||||
|
mono suffixes des 4 files precedentes Inforef...
|
||||||
|
|
||||||
|
ORB1 file des nouvelles orbitales
|
||||||
|
ORB_SORT numerotation des OM (indices des integrales 'OV'
|
||||||
|
moleculaires)
|
||||||
|
SYM : ordonnes par symetries
|
||||||
|
OV : ordonnees Occupees, puis virtuelles
|
||||||
|
OAV : ordonnees inactives occupees, actives,
|
||||||
|
inactives virtuelles
|
||||||
|
frozen nb d'orbitales gelees par symetrie nsym*0
|
||||||
|
delete nb d'orbitales virtuelles gelees par symetrie nsym*0
|
||||||
|
ycl les integrales sont generees en clair F
|
||||||
|
|
||||||
|
|
75
Manuals/ijkloc_emploi
Executable file
75
Manuals/ijkloc_emploi
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
******************************************************************************
|
||||||
|
ijkloc : Programme de transformations d'integrales moleculaires ecrites
|
||||||
|
en orbitales de symetrie a des integrales moleculaires ecrites
|
||||||
|
en orbitales desymetrisees
|
||||||
|
|
||||||
|
2 etapes : 1. desymetrisation des orbitales. C'est une partie
|
||||||
|
completement independante
|
||||||
|
2. transformation des integrales, obtention des orbitales
|
||||||
|
locales
|
||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
Utilisation :
|
||||||
|
- Etape scf
|
||||||
|
- Etape localisation --> orbitales locales
|
||||||
|
- motra-molcost --> files ijcl,Info,Mono
|
||||||
|
- ijkloc
|
||||||
|
- exsci
|
||||||
|
|
||||||
|
Fichiers :
|
||||||
|
|
||||||
|
En entree : ('~' =PREFIX)
|
||||||
|
- ~Mono
|
||||||
|
- ~Info
|
||||||
|
- SCH_FERMI (creee par schmud)
|
||||||
|
- Input Orbitals (inporb)
|
||||||
|
- calcul non cholesky:
|
||||||
|
- file d'integrales ~ijcl
|
||||||
|
- calcul cholesky:
|
||||||
|
- CHOL_VEC
|
||||||
|
- MO_ONEINT
|
||||||
|
|
||||||
|
En sortie : - ~Ijcllocinfo (information pour exxci)
|
||||||
|
- ~ijclloc2 (integrales bielectroniques a 2 indices
|
||||||
|
differents)
|
||||||
|
- ~ijclloc3 (3 indices differents)
|
||||||
|
- ~ijclloc4 (4 indices differents)
|
||||||
|
- ~Infoloc (fichier de type Info, pour les orbitales
|
||||||
|
locales)
|
||||||
|
- ~ijclloc (eventuellement) fichier ijcl pour casdi
|
||||||
|
- ~IJCLLOC (eventuellement) fichier IJCL pour casdi
|
||||||
|
- DESYMORB orbitales desymetrisees
|
||||||
|
- ORB_IJKLOC orbitales locales
|
||||||
|
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
Donnee (maj: correspond a des donnees obligatoires)
|
||||||
|
&ijkloc
|
||||||
|
|
||||||
|
Donnees obligatoires :
|
||||||
|
PREFIX='...'
|
||||||
|
|
||||||
|
Donnees facultatives :
|
||||||
|
nprint 0,1,2 0
|
||||||
|
symm donnees de seward qui suivent la
|
||||||
|
ligne "SYMMETRY" (dans le meme ordre !)
|
||||||
|
si symm='SEWARD', la donnee est lue
|
||||||
|
dans les donnees de seward (a condition
|
||||||
|
que les donnees de seward et de ijkloc
|
||||||
|
soient dans le meme fichier) 'SEWARD'
|
||||||
|
info1 file Info en entree ~Info
|
||||||
|
mono1 file Mono en entree ~Mono
|
||||||
|
ijcl1 file ijcl en entree ~ijcl
|
||||||
|
inporb orbitales locales symetriques INPORB
|
||||||
|
mem memoire demandee en Mo 500
|
||||||
|
ycdloc creation des files ijclloc* pour
|
||||||
|
excci T
|
||||||
|
ycd T : genere des fichiers (ijclloc, Infoloc, Monoloc)
|
||||||
|
pour enchainer sur casdi
|
||||||
|
il faut renommer les files ijclloc, Infoloc, Monoloc
|
||||||
|
en ijcl, Info, Mono F
|
||||||
|
ycl1 (si ycd) T : ecriture en clair
|
||||||
|
sur IJCLLOC F
|
||||||
|
|
||||||
|
|
46
Manuals/inserorb_emploi
Executable file
46
Manuals/inserorb_emploi
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
!
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
! lit deux fichiers d'obitales sur orbin1 et orbin2
|
||||||
|
! choisit des orbitales dans un et l'autre fichier pour creer un
|
||||||
|
! troisieme fichier
|
||||||
|
! orthogonalise par Schmidt les secondes au premieres
|
||||||
|
! fichiers lus : orbin1 et orbin2
|
||||||
|
! les ecrit sur orbout
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
!
|
||||||
|
donnees :
|
||||||
|
&insor
|
||||||
|
orbin1='nom_fich_1'
|
||||||
|
orbin2='nom_fich_2'
|
||||||
|
orbout='nom_fich_sortie'
|
||||||
|
/
|
||||||
|
|
||||||
|
puis une suite de lignes de 3 nombres entiers
|
||||||
|
|
||||||
|
is1 if1 n1 [label=****]
|
||||||
|
is2 if2 n2 [label=****]
|
||||||
|
|
||||||
|
ou :
|
||||||
|
|
||||||
|
la ligne numero i (isi ifi ni) definit l'orbitale i du fichier orbout
|
||||||
|
isi est la symetrie de l'orbitale
|
||||||
|
ifi est le fihier ou elle est a lire (orbin1 ou orbin2)
|
||||||
|
ni est son numero dans la symetrie, dans le fichier lu
|
||||||
|
|
||||||
|
Les symetries doivent arriver en ordre
|
||||||
|
|
||||||
|
|
||||||
|
Contraction des donnees
|
||||||
|
On peut donner plusieurs ligne a la fois. Par exemple :
|
||||||
|
la donnee :
|
||||||
|
2 1 3-6
|
||||||
|
genere les lignes :
|
||||||
|
2 1 3
|
||||||
|
2 1 4
|
||||||
|
2 1 5
|
||||||
|
2 1 6
|
||||||
|
|
||||||
|
Donnees des labels :
|
||||||
|
Si label= n'est pas donne a la fin de la ligne, le label est lu dans le
|
||||||
|
fichier des orbitales
|
||||||
|
Sinon, le label est pris dans les donnees
|
112
Manuals/iternat_emploi
Executable file
112
Manuals/iternat_emploi
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
|
||||||
|
# ##### ###### ##### # # ## #####
|
||||||
|
# # # # # ## # # # #
|
||||||
|
# # ##### # # # # # # # #
|
||||||
|
# # # ##### # # # ###### #
|
||||||
|
# # # # # # ## # # #
|
||||||
|
# # ###### # # # # # # #
|
||||||
|
|
||||||
|
|
||||||
|
Programme d'optimisation d'orbitales moleculaires par moyenne
|
||||||
|
d'orbitales naturelles.
|
||||||
|
|
||||||
|
Le programme est un script ecrit en kshell
|
||||||
|
|
||||||
|
|
||||||
|
UTILISATION
|
||||||
|
|
||||||
|
|
||||||
|
1) Appel du programme
|
||||||
|
On fait tourner une chaine molcas ordinaire, jusqu'a obtenir des
|
||||||
|
orbitales moleculaires. par exemple :
|
||||||
|
|
||||||
|
molcas run seward
|
||||||
|
molcas run scf
|
||||||
|
molcas run rasscf
|
||||||
|
molcas run rasread
|
||||||
|
|
||||||
|
puis on doit rajouter les 2 lignes :
|
||||||
|
|
||||||
|
cp $Project.RasOrb INPORB
|
||||||
|
iternat < iter_in
|
||||||
|
|
||||||
|
ou : - le script iternat doit etre dans le path
|
||||||
|
- le fichier de donnees iter_in contient :
|
||||||
|
|
||||||
|
NITER
|
||||||
|
10 (nombre max d'iterations sur les OM)
|
||||||
|
MOTRA
|
||||||
|
motra.in (fichier de donnees de motra)
|
||||||
|
MOLCSD
|
||||||
|
molcsd.in (fichier de donnees de molcsd)
|
||||||
|
NATU
|
||||||
|
natu.in (fichier de donnees de naturalt)
|
||||||
|
MOLCSDX
|
||||||
|
/work0/daniel/babel/exe/molcsd (programme molcsd a executer)
|
||||||
|
CASDETX
|
||||||
|
det16s (programme casdet a executer)
|
||||||
|
CASDIX
|
||||||
|
di16s (programme casdi a executer)
|
||||||
|
NATUX
|
||||||
|
naturalt (programme naturalt a executer)
|
||||||
|
FIN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
2) Conditions de fonctionnement
|
||||||
|
on doit - avoir necessairement la ligne :
|
||||||
|
export Project WorkDir CurrDir
|
||||||
|
- appeler Project, WorkDir et CurrDir par ces noms-la,
|
||||||
|
avec ces orthographes
|
||||||
|
- avoir n fichiers de donnees pour l'ensemble casdet/casdi,
|
||||||
|
si on optimise les orbitales sur n calculs differents.
|
||||||
|
- ces fichiers doivent OBLIGATOIREMENT s'appeler
|
||||||
|
cdin1, cdin2 ... cdinn
|
||||||
|
- chaque fichier cdini ressemble a :
|
||||||
|
|
||||||
|
&cdfil prefix='co.' /
|
||||||
|
&cd noac=2,nelac=2,numac=3,6,is0=1,ms2=0,gener='DDCI' /
|
||||||
|
&cdifil prefix='co.' /
|
||||||
|
&dav nessai=0,iternat=0 /
|
||||||
|
|
||||||
|
en particulier les donnees nessai=(0,1, ou 2) et
|
||||||
|
iternat=0 sont OBLIGATOIRES.
|
||||||
|
|
||||||
|
- avoir des donnees pour motra et molcsd
|
||||||
|
- avoir un fichier de donnees pour naturalt. Ce fichier doit
|
||||||
|
s'appeler $Project.natu. par exemple :
|
||||||
|
|
||||||
|
&natfil prefix='co.', /
|
||||||
|
&mixdat
|
||||||
|
nsym=2,metat=1,1,coef=0.5,0.5,ymolcas=t,
|
||||||
|
ywrm=t, ywrn=t,ngel=2,0,0,0,ndel=2,0,0,0, /
|
||||||
|
seuil=1.d-6
|
||||||
|
(voir plus bas les donnees de naturalt)
|
||||||
|
- les fichiers ijnam et ijcl pour casdet/casdi doivent
|
||||||
|
s'appeler Project.ijnam et Project.ijcl (dans l'exemple ici :
|
||||||
|
co.ijcl et co.ijnam).
|
||||||
|
|
||||||
|
|
||||||
|
3) Interventions sur le script iternat :
|
||||||
|
PATH=$PATH: ... : mettre dans le path casdet, casdi et naturalt
|
||||||
|
alias molcas=$MOLCAS/ksh/molcas.ksh (a changer eventuellement)
|
||||||
|
|
||||||
|
|
||||||
|
4) Donnees de Naturalt
|
||||||
|
&mixdat
|
||||||
|
nsym= nombre de calculs casdet/casdi en parallele (M caluls, M fichiers
|
||||||
|
cdin)
|
||||||
|
netat=m,n,p,... nombre de val/vect propres par calcul
|
||||||
|
(nsym valeurs donnees, pour N=m+n+p+... val/vect propres)
|
||||||
|
metat= numeros des racines dans chaque calcul
|
||||||
|
(m+n+p+... valeurs)
|
||||||
|
coef= m+n+p+... valeurs : coefficients relatifs de chaque val/vect propre
|
||||||
|
ymolcas=t,
|
||||||
|
ngel= donnees "FROZEN" de motracsd
|
||||||
|
ndel= donnees "DELETE" de motracsd
|
||||||
|
yw... donnees pour l'impression
|
||||||
|
seuil= (seuil de convergence. (= recouvrement max des orbitales)
|
||||||
|
defaut=1.d-4)
|
||||||
|
|
||||||
|
|
||||||
|
|
544
Manuals/lewis_emploi
Executable file
544
Manuals/lewis_emploi
Executable file
@ -0,0 +1,544 @@
|
|||||||
|
****************************************************************************
|
||||||
|
lewis lewis lewis lewis lewis lewis lewis lewis lewis lewis
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Fabrication d'orbitales locales d'essai sans calcul SCF prealable
|
||||||
|
|
||||||
|
Files to be read : - molcost files: Info and Mono
|
||||||
|
- if necessary (see data),
|
||||||
|
an orbital file (RasOrb, ScfOrb...)
|
||||||
|
- A molden file corresponding to this study
|
||||||
|
(facultative, if you want to get a molden file of
|
||||||
|
localised orbitals). This model file can be
|
||||||
|
scf.molden, ras.molden, guess.molden, etc...
|
||||||
|
|
||||||
|
output files : - LOCORB
|
||||||
|
(Local symmetrical Orbitals written in
|
||||||
|
symmetrised AO's (to be transferred to further steps))
|
||||||
|
- $Project.lewis.molden : corresponding molden file
|
||||||
|
|
||||||
|
Other orbital files, corresponding to molden output files:
|
||||||
|
- LEWORB_LOC
|
||||||
|
(Local symmetrical Orbitals written in
|
||||||
|
desymmetrised AO's)
|
||||||
|
- LEWORB_LOCLOC
|
||||||
|
(Local non symmetrical Orbitals written in
|
||||||
|
desymmetrised AO's)
|
||||||
|
- $Project.lewis.LOC.molden : corresponding molden file
|
||||||
|
|
||||||
|
Generalities:
|
||||||
|
In general, a lot of run will be necessary to build the data
|
||||||
|
The program is not time consuming, and needs small input files
|
||||||
|
It is convenient to copy these files to a local directory.
|
||||||
|
|
||||||
|
I.
|
||||||
|
##############
|
||||||
|
Preliminairies
|
||||||
|
##############
|
||||||
|
|
||||||
|
design the molecule, with atom names.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
II.
|
||||||
|
##############
|
||||||
|
Data 1
|
||||||
|
##############
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
1. namelist &lewis
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
&lewis
|
||||||
|
prefix='locbenzfe-CAS_7-5.',
|
||||||
|
scforbin=' ', ' ' --> no ScfOrb nor RasOrb file
|
||||||
|
'name_of_Orb_File'
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
If scforbin/=' ':
|
||||||
|
ref_inac= nsym*0 nsym integers (nsym is the number of
|
||||||
|
symmetries of the problem)
|
||||||
|
= nb of inactive occupied orbitals in
|
||||||
|
input ScfOrb or RasOrb data
|
||||||
|
ref_act= nsym*0 nsym integers. = nb of active orbitals in
|
||||||
|
input RasOrb data
|
||||||
|
---------------------------
|
||||||
|
Facultative data:
|
||||||
|
|
||||||
|
symm='y x', read from as given is seward
|
||||||
|
info file
|
||||||
|
nprint 0 print level
|
||||||
|
ychol F T: cholesky calculation
|
||||||
|
|
||||||
|
|
||||||
|
Fermi0 nsym*0 fermi level. If not given, is computed
|
||||||
|
by reading input file ScfOrb or RasOrb
|
||||||
|
|
||||||
|
/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
III.
|
||||||
|
##############
|
||||||
|
Data 2
|
||||||
|
##############
|
||||||
|
|
||||||
|
Suite of data after the "/" of namelis lewis.
|
||||||
|
The suite of data ends by a line with a slash:
|
||||||
|
"/ "
|
||||||
|
|
||||||
|
Each line begins with a keyword
|
||||||
|
The different keywords are:
|
||||||
|
BOND, C, B, DS1, DP1, D2, D3, T, GROUP, STOP
|
||||||
|
|
||||||
|
STOP: Read data and treat them until "stop" is encountered
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
III.1. Get information about connectivity
|
||||||
|
This data has no influence on the calculation. It only give informations
|
||||||
|
concerning connectivity that help to write the data.
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
keyword: BOND
|
||||||
|
|
||||||
|
example
|
||||||
|
BOND C C 1.6
|
||||||
|
BOND C H 1.2
|
||||||
|
|
||||||
|
writes all pairs (Cn,Cm) where n,m ar numbers for which the bond length
|
||||||
|
Cn-Cm < 1.6 gives C-C bonds
|
||||||
|
idem for Cn-Hm < 1.2 gives C-H bonds
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------
|
||||||
|
III.2. Give details of Connectivity data: Generating Orbitals
|
||||||
|
------------------------------------------------------
|
||||||
|
|
||||||
|
One data per line
|
||||||
|
|
||||||
|
c C1
|
||||||
|
b C1-C2
|
||||||
|
DP1 AT1 AT2 AT3
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=================================
|
||||||
|
III.2. A. 1-center orbital:
|
||||||
|
Occupied Orbital, Virtual Orbital
|
||||||
|
=================================
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
CORE: keyword "C"
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
c C1 1s core of C1 atom
|
||||||
|
C FE 1s core of FE atom
|
||||||
|
c FE;shell=1s(2) 2s core of FE atom
|
||||||
|
c FE;shell=2px(1) 2px core of FE atom
|
||||||
|
c FE;shell=2p(1) 2px,2py,2pz cores of FE atom
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
other than core: Same syntax as for "CORE"
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
O FE;shell=1s(3) defines 3s of Fe as doubly occupied orbital
|
||||||
|
but not labeled as "core"
|
||||||
|
V FE;shell=3D1+(1) defines 3d1+ of Fe as empty orbital
|
||||||
|
|
||||||
|
T C1;shell=1s(3),label='G' generates the 3s diffuse of atom C1 and freeze it
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
multiple data:
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
c c* 1s core of all Cijk atoms, where ijk are numbers
|
||||||
|
(not letters!)
|
||||||
|
C C[1 2 3] 1s core of all C1, C2, C3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
==========
|
||||||
|
III.2. BONDS
|
||||||
|
==========
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
keyword: "B"
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
b C1-C2 single C1-C2 bond
|
||||||
|
b C2-C2 single C2-C2 bond (two C2 atoms, due to symmetry)
|
||||||
|
b C1=C2 double C1-C2 bond Axis of pi bond
|
||||||
|
is given by a 3rd atom close to C1 or C2
|
||||||
|
This 3rd atom is found by the program
|
||||||
|
b C1~C2 triple C1-C2 bond
|
||||||
|
b C1^C2 only pi bond. Axis of pi bond is found as for C1=C2
|
||||||
|
b C1^C2;pi=0.,0.,1. only pi bond, axis of pi is 0.,0.,1.
|
||||||
|
|
||||||
|
WARNING! To define a triple bond as 3 bonds (-,^,^), it is necessary
|
||||||
|
to change the suffix of BOTH pi orb: ex:
|
||||||
|
b C1^C2;pi=1.,0.,0.,pi=PIX
|
||||||
|
b C1^C2;pi=0.,0.,1.,pi=PIZ
|
||||||
|
(see in manual comments about additional data)
|
||||||
|
|
||||||
|
-----------------
|
||||||
|
multiple data:
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
A"*" generates all Aijk. ijk are numbers (not letters!)
|
||||||
|
|
||||||
|
|
||||||
|
b c1-c* ; dist=1.6 generates all c1-cijk orbitals for which
|
||||||
|
dist(C1,C*)<=1.6 angstrom
|
||||||
|
b c*^n* ; dist=1.6 generates all cijk^Nlmn orbitals
|
||||||
|
b c*-h* ; dist=1.2
|
||||||
|
b c*-c* ; dist=1.6
|
||||||
|
b c[1 2 3]-c[4 5 6] generates C1-C4, C2-C5, C3-C6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
===============
|
||||||
|
III,2. C. Lone Pairs
|
||||||
|
===============
|
||||||
|
|
||||||
|
keywords: DS1 DP1 VP1 D2 D3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DS1 AT1 AT2 [AT3 [AT4]] one sigma lone pair on AT1. The direction is the
|
||||||
|
AT1-AT2 vector, or the sum of {AT1-ATi} vectors
|
||||||
|
|
||||||
|
|
||||||
|
DP1 AT1 AT2 AT3 [AT4]
|
||||||
|
|
||||||
|
one pi lone pair on AT1. AT3
|
||||||
|
/
|
||||||
|
AT2 AT3 AT2
|
||||||
|
\ / or |
|
||||||
|
AT1(:) AT1(:)
|
||||||
|
|
||||||
|
|
||||||
|
1. AT4 is not given:
|
||||||
|
the lone pair is orthogonal to the plane AT1 AT2 AT3
|
||||||
|
(pi lone pair)
|
||||||
|
2. + INPLANE, "DP1 AT1 AT2 AT3; INPLANE"
|
||||||
|
the lone pair is in the plane AT1 AT2 AT3
|
||||||
|
(n lone pair)
|
||||||
|
3. AT4 is given:
|
||||||
|
the lone pair is orthogonal to the plane AT2 AT3 AT4
|
||||||
|
(example: NH3)
|
||||||
|
DP1 AT1 ; NVOIS=2 The neighbour atoms are not given, but found by the program
|
||||||
|
(they are the nearest atoms). nvois=2 or 3
|
||||||
|
|
||||||
|
VP1 AT1 AT2 AT3 [AT4] as DP1, with no electrons
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
D2 AT1 AT2 [AT3] Two lone pairs (one sigma, one pi)
|
||||||
|
|
||||||
|
1. D2 AT1 AT2: AT2 - AT1 (:) sigma lone pair
|
||||||
|
search atom AT5, closest to AT2
|
||||||
|
AT5
|
||||||
|
\
|
||||||
|
AT2 - AT1
|
||||||
|
the pi lone pair is in
|
||||||
|
the plane, on AT1
|
||||||
|
(n lone pair)
|
||||||
|
|
||||||
|
2. D2 AT1 AT2 AT3
|
||||||
|
AT2 AT3
|
||||||
|
\ /
|
||||||
|
AT1
|
||||||
|
sigma lone pair (:)
|
||||||
|
|
||||||
|
the pi lone pair is orthogonal
|
||||||
|
to the plane, on AT1
|
||||||
|
|
||||||
|
|
||||||
|
D3 AT1 AT2 Three lone pairs (one sigma, two pi)
|
||||||
|
|
||||||
|
(:)
|
||||||
|
AT2 - AT1(:)
|
||||||
|
(:)
|
||||||
|
|
||||||
|
----------------
|
||||||
|
multiple data:
|
||||||
|
----------------
|
||||||
|
|
||||||
|
DS1 C* N* ; dist=1.4 : search all C-N with dist<1.4, make sigma
|
||||||
|
Lone Pair on C
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
================
|
||||||
|
III,2. D. GROUP
|
||||||
|
================
|
||||||
|
|
||||||
|
keyword: "GROUP"
|
||||||
|
|
||||||
|
- Only if scforbin is given!
|
||||||
|
- give a set of orbitals
|
||||||
|
- the program computes the local corresponding
|
||||||
|
density matrix, diagonalises
|
||||||
|
- extracts local eigenvectors
|
||||||
|
syntax:
|
||||||
|
|
||||||
|
GROUP
|
||||||
|
- 4 integers: noc,nvir,nact,nelac
|
||||||
|
(nb of occupied, nb of virtuals, nb of active orb, nb of active
|
||||||
|
electrons (total number, IN ALL symmetries)
|
||||||
|
- if nact>0: nact integers: position of active orb in local eigenvectors
|
||||||
|
this data is not straightforword. A first lewis run can be necessary
|
||||||
|
to find the correct numbers
|
||||||
|
- nAO character strings: (nAO is the nb of AO's that define the group)
|
||||||
|
name of atom (symmetrised list)
|
||||||
|
on the same line: n character strings:
|
||||||
|
shells corresponding to added orb
|
||||||
|
- END GROUP
|
||||||
|
|
||||||
|
Note: noc+nvir+nact = nb of given orbitals
|
||||||
|
|
||||||
|
example of GROUP data: (define pi orbitals of a C=C, as active)
|
||||||
|
group
|
||||||
|
1 1 2 2 (noc=1,nvir=1,(1 sigma, 1sigma*),nact=2,nelac=2)
|
||||||
|
1 8 (The 2 lines below define 8 AOs, it generates
|
||||||
|
8 LOs, the active should be the first and
|
||||||
|
the last LOs)
|
||||||
|
C1 1S(2) 2PX 2PY 2PZ
|
||||||
|
C2 1S(2) 2PX 2PY 2PZ
|
||||||
|
end group
|
||||||
|
|
||||||
|
Important remark: noc,nvir,nact and nelac are the TOTAL number of orbitals
|
||||||
|
and electron over ALL symmetries!
|
||||||
|
|
||||||
|
example: 2 FE atoms, 5 el/atom, corresponding by symmetry
|
||||||
|
|
||||||
|
group
|
||||||
|
0 0 10 10
|
||||||
|
1 2 3 4 5 6 7 8 9 10
|
||||||
|
FE 3d0(1) 3d1+(1) 3d1-(1) 3d2+(1) 3d2-(1)
|
||||||
|
end group
|
||||||
|
|
||||||
|
5 orb given: 3d0(1) 3d1+(1) 3d1-(1) 3d2+(1) 3d2-(1)
|
||||||
|
but 10 active and 10 electrons!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=========================
|
||||||
|
III,2.E. ADDITIONAL DATA
|
||||||
|
=========================
|
||||||
|
|
||||||
|
These data are added at the end of the lines:
|
||||||
|
"line" ; "additional data"
|
||||||
|
example: b C1~C2 ; label='A'
|
||||||
|
|
||||||
|
different data:
|
||||||
|
label='A' the created orbitals are active
|
||||||
|
label='G' the created orbitals will be frozen
|
||||||
|
pi='PIX' (resp. 'PIY' 'PIZ') the created pi orbital
|
||||||
|
has an X (resp. Y Z) axis
|
||||||
|
shell='1s(2)' only for 1-center LOs
|
||||||
|
the shell is 2s instead of 1s default
|
||||||
|
nvois= / inline for "DP1" data: see DP1
|
||||||
|
OCCONLY / VIRONLY for sigma or pi bonds: generates only
|
||||||
|
(bonding / anti-bonding) orbitals
|
||||||
|
suffix='SUFF' pi orbitals: replaces .PI suffix by .SUFF
|
||||||
|
|
||||||
|
several additional data are separated by ","
|
||||||
|
o FE;shell=3d(2),label='A'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
III.3. (UN)ACTIVATION of LOs , (UN)FREEZE LOs
|
||||||
|
after the "/" that ends the suite of data
|
||||||
|
----------------------------------------------
|
||||||
|
Beta version!
|
||||||
|
|
||||||
|
- transforms active LOs into non active, and non active into active.
|
||||||
|
- transforms frozen LOs into non frozen, and non frozen into frozen.
|
||||||
|
1. UN... replaces beginning of label: 'A_' or 'G'
|
||||||
|
--> 'x_' where "x" is given in data (O, T, or C)
|
||||||
|
2. reorder LOs to put actives and frozen into the right place
|
||||||
|
|
||||||
|
data
|
||||||
|
|
||||||
|
ACTI label='LAB',sym=SYM
|
||||||
|
where:
|
||||||
|
LAB is a substring of the label to be modified
|
||||||
|
(it is not necessary to give the entire label)
|
||||||
|
SYM is the symmetry of the orbital
|
||||||
|
|
||||||
|
ACTI label='LAB',sym=SYM,equal
|
||||||
|
where:
|
||||||
|
if 'equal' is added at the end of the data, LAB is tested to be IDENTICAL to
|
||||||
|
the label to be modified.
|
||||||
|
the rest of data is the same
|
||||||
|
|
||||||
|
UNAC label='LAB',sym=SYM,[newlabel='NEWLABEL']
|
||||||
|
where:
|
||||||
|
difference with respect to ACTI:
|
||||||
|
NEWLABEL if A_--> x_ 'O', 'T', or 'C' (default 'O')
|
||||||
|
|
||||||
|
UNAC label='LAB',sym=SYM,[newlabel='NEWLABEL'],equal
|
||||||
|
if 'equal' is added at the end of the data, LAB is tested to be IDENTICAL to
|
||||||
|
the label to be modified.
|
||||||
|
|
||||||
|
FREEZE: like ACTI
|
||||||
|
|
||||||
|
UNFREEZE: like UNACT
|
||||||
|
|
||||||
|
Supplementary data:
|
||||||
|
all (ex: FREEZE label='LAB',sym=SYM,all)
|
||||||
|
freeze all orbitals containing strin "LAB"
|
||||||
|
(stops with error if "all" is not given and more tah one orbital is found)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------
|
||||||
|
III.4. RENAME
|
||||||
|
after the "/" that ends the suite of data
|
||||||
|
--------------------------
|
||||||
|
Beta version!
|
||||||
|
|
||||||
|
Change nature of OL by editing a file.
|
||||||
|
|
||||||
|
Data:
|
||||||
|
|
||||||
|
RENAME
|
||||||
|
keywork
|
||||||
|
END RENAME
|
||||||
|
|
||||||
|
A. keyword=LIST or MOD
|
||||||
|
|
||||||
|
a) if keywork=LIST: (first run)
|
||||||
|
The program generates a file RENAME_LIST with the rank and the
|
||||||
|
list of the Local Orbitals and stops
|
||||||
|
|
||||||
|
b) edit file RENAME_LIST:
|
||||||
|
for example change the name of an orbital from O_... to A_... to
|
||||||
|
activate it. The unchanged orbitals can be removed from the list, since
|
||||||
|
the LO's are givent with their position in the orbital basis.
|
||||||
|
Save the file in RENAME_MOD
|
||||||
|
|
||||||
|
c) if keyword=MOD
|
||||||
|
The program reads the file RENAME_MOD and ends the calculation, it takes
|
||||||
|
account of the modifications in the nature of orbitals.
|
||||||
|
|
||||||
|
|
||||||
|
example of data:
|
||||||
|
lewis << EOF
|
||||||
|
&lewis prefix='acetone.',symm='XY X',nprint=1,scforbin='acetone.RasOrb',
|
||||||
|
mprint=0,0,0,0,ref_inac=8,5,1,1,ref_act=0,0,0,2 /
|
||||||
|
D2 O1 C1
|
||||||
|
b c*-h* ; dist=1.2
|
||||||
|
b c*-c* ; dist=1.6
|
||||||
|
b c1=O1
|
||||||
|
C C* ; label='g'
|
||||||
|
C O* ; label='g'
|
||||||
|
/
|
||||||
|
RENAME
|
||||||
|
mod
|
||||||
|
end rename
|
||||||
|
EOF
|
||||||
|
|
||||||
|
B. keyword='STRING'=
|
||||||
|
|
||||||
|
data: STRING string string1 string2
|
||||||
|
|
||||||
|
string: part of the label of the LO present if the label is to be modified
|
||||||
|
string1,string2: modification: string1 --> string2
|
||||||
|
|
||||||
|
example of data:
|
||||||
|
lewis << EOF
|
||||||
|
&lewis prefix='chaine.', /
|
||||||
|
c C*
|
||||||
|
b C1=C2
|
||||||
|
b C1-H1
|
||||||
|
b C1-H2
|
||||||
|
b C2-H3
|
||||||
|
b C2-H4
|
||||||
|
/
|
||||||
|
rename
|
||||||
|
string PI O_ A_
|
||||||
|
end rename
|
||||||
|
EOF
|
||||||
|
(activate pi orbitals)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------
|
||||||
|
III.5. COPY
|
||||||
|
--------------------------
|
||||||
|
Copy of reference orbitals to the final localised orbitals.
|
||||||
|
N.B. They are not re-localised
|
||||||
|
|
||||||
|
cp ; atom='AT1 [AT2]' ; shell='sh',label='ll',sym=is,num=nu,type='ty'
|
||||||
|
|
||||||
|
where:
|
||||||
|
- sh= 1s, sh=2PX, sh=3D1+ ... for example
|
||||||
|
- ll='O', label='A', label='V' for occupied, active or virtual
|
||||||
|
- "is" is the symmetry of the MO
|
||||||
|
- nu=position of MO in its symmetry
|
||||||
|
- ty = type of the created LO as is appears in LOinfo, 5th column (CORE,
|
||||||
|
SIG,LP,ATOM,PI). No influence on the result. Is written in LOinfo
|
||||||
|
|
||||||
|
|
||||||
|
Falcultative: label (generated from num)
|
||||||
|
shell (see remark below)
|
||||||
|
|
||||||
|
|
||||||
|
Important remark concerning atom and shell
|
||||||
|
|
||||||
|
These data permit to generate 1 or 2 AO name(s) [AT1 sh], [AT2 sh]
|
||||||
|
Once this AO was encountered, it is marked. At the end of the program,
|
||||||
|
all non-marked AOs are used to generate diffuse LOs. After generating all
|
||||||
|
LOs (and before generating diffuse orb), the number of marked AOs should
|
||||||
|
be equal to the number of generated LOs.
|
||||||
|
|
||||||
|
If one wants to generate a LO with dominating weight on FE 3D1+ for example,
|
||||||
|
he does not want to create a diffuse FE 3D1+ at the end!
|
||||||
|
in this case, atom='FE',shell='3D1+'
|
||||||
|
|
||||||
|
The AO [AT1 sh] must not be used in another bond!
|
||||||
|
It is in general the AO of dominating weight in the copied MO
|
||||||
|
|
||||||
|
shell can be omitted, which simplifies a bit the problem.
|
||||||
|
In this case, the marked AO corresponds authomatically to the largest
|
||||||
|
coefficient of the copied MO. It is not a secure method! Verify that the
|
||||||
|
correct AO has been found! If not, the program gives in general an error.
|
||||||
|
|
70
Manuals/locas_emploi
Executable file
70
Manuals/locas_emploi
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
locas : obtention d'orbitales optimisees par relocalisation d'orbitales
|
||||||
|
casscf
|
||||||
|
|
||||||
|
variables necessaires :
|
||||||
|
Il faut avoir exporte les variables : molcas, PATH
|
||||||
|
(instruction: export molcas PATH)
|
||||||
|
|
||||||
|
genere les donnees et appelle les programmes :
|
||||||
|
|
||||||
|
rasscf
|
||||||
|
rasread
|
||||||
|
proj_scf
|
||||||
|
schmudort
|
||||||
|
|
||||||
|
! en entree:
|
||||||
|
! liste de donnees (voir plus bas)
|
||||||
|
! un fichier d'orbitales locales non orthogonales de nom "NONORLOC"
|
||||||
|
! un fichier d'orbitales locales orthogonales de nom "INPORB"
|
||||||
|
! - le fichier INPORB va servir pour demarrer le RASSCF
|
||||||
|
! - le fichier NONORLOC sert a la fin pour relocaliser la solution
|
||||||
|
! trouvee par RASSCF
|
||||||
|
! Rem 1 : les orbitales de INPORB son necessairement orthogonales,
|
||||||
|
! mais il n'y a aucune condition pour NONORLOC. Rien n'empeche de
|
||||||
|
! recopier INPORB dans NONORLOC et de donner donc deux fois le meme
|
||||||
|
! fichier.
|
||||||
|
! Rem 2 : en general, INPORB est obtenu a partir de NONORLOC par
|
||||||
|
! orthogonalisation (par schmudort par exemple)
|
||||||
|
!
|
||||||
|
! Les labels des orbitales moleculaires sont indispensables. Ils
|
||||||
|
! determinent les orbitales actives, gelees, etc..., c'est-a-dire
|
||||||
|
! les classes pour l'orthogonalisation schmudort. Il sont lus dans
|
||||||
|
! inporb et doivent donc necessairement y figurer.
|
||||||
|
!
|
||||||
|
! en sortie:
|
||||||
|
! un fichier d'orbitales locales orthogonales INPORB2
|
||||||
|
!
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
|
Donnees:
|
||||||
|
2 types :
|
||||||
|
|
||||||
|
1. une namelist &locas sans aucune donnee obligatoire
|
||||||
|
2. &ras /, puis toutes les donnees pour rasscf, dont seules 3 sont
|
||||||
|
obligatoires. Elles seront lues sous cette forme par rasscf
|
||||||
|
|
||||||
|
&LOCAS
|
||||||
|
data='AUTO' 'AUTO' lit quelques donnees d'un fichier de schmudorb
|
||||||
|
les donnees de schmudorb pilotent ainsi une grande partie de
|
||||||
|
x la suite du calcul
|
||||||
|
FERMI=0 par sym, nb d'orb occupees
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
frozen=0 donne par sym
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
delete=0 donne par sym
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
&ras /
|
||||||
|
symmetry
|
||||||
|
.
|
||||||
|
spin
|
||||||
|
.
|
||||||
|
nactel
|
||||||
|
. . .
|
||||||
|
ras1
|
||||||
|
.
|
||||||
|
ras2
|
||||||
|
.
|
||||||
|
ras3
|
||||||
|
.
|
||||||
|
...
|
||||||
|
|
88
Manuals/loccasscf_emploi
Executable file
88
Manuals/loccasscf_emploi
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
|
||||||
|
*******************************************************
|
||||||
|
=======================================================
|
||||||
|
LOCCASCF'
|
||||||
|
=======================================================
|
||||||
|
*******************************************************
|
||||||
|
|
||||||
|
Local CASSCF
|
||||||
|
|
||||||
|
The program executes a succession of steps
|
||||||
|
|
||||||
|
1. Orbital transformation
|
||||||
|
- 2 possibilities:
|
||||||
|
- motra/molcost
|
||||||
|
- ijkl
|
||||||
|
|
||||||
|
2. CASCI calculation
|
||||||
|
- casdet/casdi
|
||||||
|
|
||||||
|
3. Density matrix calculation
|
||||||
|
- 2 possibilities:
|
||||||
|
- casdet/casdi (diagonalization of CAS+S)
|
||||||
|
- costnevpt/rodyall (contracted perturbation)
|
||||||
|
|
||||||
|
4. Diagonalization of the Density Matrix --> natural Orbitals
|
||||||
|
locnats
|
||||||
|
|
||||||
|
--> iterate: goto 1.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Input Files:
|
||||||
|
One Electron Atomic Integrals prefix_One
|
||||||
|
Two Electron Atomic Integrals prefix_Two
|
||||||
|
Orbitals INPORB
|
||||||
|
|
||||||
|
Output Files
|
||||||
|
LOCORB2
|
||||||
|
|
||||||
|
|
||||||
|
Data: (case letters: compulsory)
|
||||||
|
&LOCCASSCF
|
||||||
|
Default
|
||||||
|
PREFIX
|
||||||
|
SYMM data SYMMetry of seward
|
||||||
|
transf IJKL IJKL to run ijkl (step 1.)
|
||||||
|
MOTRA to run motra
|
||||||
|
CHOLESKY
|
||||||
|
|
||||||
|
density RODYALL RODYALL to perform contracted perturbation
|
||||||
|
CASDI to perform CAS+S
|
||||||
|
|
||||||
|
nmat 1 number of different matrices (= nb of
|
||||||
|
symmetries...)
|
||||||
|
netat nmat*1 number of states for each one of the nmat
|
||||||
|
matrices
|
||||||
|
metat rank of the nmat states
|
||||||
|
coef n*1.
|
||||||
|
|
||||||
|
example: 2 singlets (1st and 2nd), 3 triplets (2n,3rd and 5th)
|
||||||
|
weights: 2.,1., 1.,0.5,2.
|
||||||
|
nmat=2,netat==2,3,metat=1,2, 2,3,5, coef= 2.,1., 1.,0.5,2.
|
||||||
|
|
||||||
|
frozen,delete nsym*0
|
||||||
|
maxit 30 max number of iterations
|
||||||
|
conv 1.d-6 Energy convergence
|
||||||
|
|
||||||
|
inac nsym*0 nb of core orbitals in each symmetry
|
||||||
|
act nsym*0 nb of active orbitals in each symmetry
|
||||||
|
nactel 0 nb of active electrons
|
||||||
|
|
||||||
|
casdet 'casdet'
|
||||||
|
casdi 'casdi90'
|
||||||
|
costnevpt 'costnevpt'
|
||||||
|
rodyall 'rodyall
|
||||||
|
locnat 'locnat'
|
||||||
|
ijkl 'ijkl'
|
||||||
|
reordens 'reordens'
|
||||||
|
(location of the programs to be used)
|
||||||
|
|
||||||
|
|
||||||
|
&casdi
|
||||||
|
Among the data of namelist &dav of casdi:
|
||||||
|
gener,ms2,is0,iprec,niter,syspin
|
||||||
|
|
||||||
|
nessai= two different data for the corresponding one of &dav
|
||||||
|
nessai: nessai of the first iteration of casdi (default: 0)
|
||||||
|
nessai2: nessai of the other iterations of casdi (default: 2)
|
22
Manuals/locnat_emploi
Executable file
22
Manuals/locnat_emploi
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
&locn
|
||||||
|
|
||||||
|
obligatoires :
|
||||||
|
prefix=
|
||||||
|
orbv='orbitales_d'entree'
|
||||||
|
orbn='orbitales_de_sortie'
|
||||||
|
|
||||||
|
facultatives
|
||||||
|
noac,numac : nb d'orbitales actives, numeros des orbitales actives
|
||||||
|
noac et numac sont retrouvees a partir des donnees de la loclisation
|
||||||
|
(les orbitales actives sont reperees par leur label A_...)
|
||||||
|
Si ca ne correspond pas a ce qu'on veut, donner noac et numac (c'est meme conseille !)
|
||||||
|
ngel= donnees frozen de motra
|
||||||
|
ndel= donnees delete de motra
|
||||||
|
nmat= nombre de fichiers de matrices densite
|
||||||
|
netat (1,nmat) nombre de vecteurs consideres dans chaque fichier
|
||||||
|
densmat (1,nmat) noms des fichiers
|
||||||
|
metat numeros des vecteurs consideres
|
||||||
|
coef poids sur les diff vecteurs
|
||||||
|
ex 3 fichiers, fich1 vect 2 ; fich2 vect 3 et 4 ; fich3 vect 1
|
||||||
|
nmat=3,netat=2,4,1,metat=2, 3,4, 1,
|
||||||
|
coef=1.,0.5,0.5, 1., 0.7, (par ex)
|
34
Manuals/modif_LOCORB_emploi
Executable file
34
Manuals/modif_LOCORB_emploi
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
!
|
||||||
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
! Lit locorb
|
||||||
|
! Le modifie et le reecrit LOCORB_new
|
||||||
|
!
|
||||||
|
! Donnees
|
||||||
|
! &modif_LOCORB
|
||||||
|
! prefix='pref.'
|
||||||
|
! string='T_' on va traiter les orbitales dont le nom
|
||||||
|
! contient "T_"
|
||||||
|
! old='T_',new='G_ Dans ces orbitales, on transforme 'T_' en "G_"
|
||||||
|
!
|
||||||
|
! On donne une serie de namelists &modif_LOCORB. Les modifs se font
|
||||||
|
! sequentiellement.
|
||||||
|
! Dans la 1ere namelist, on ajoute les donnees :
|
||||||
|
! locorb='FeL2.LocGCasOrb' nom du fichier locorb en entree (def: LOCORB)
|
||||||
|
! la derniere namelist est : string=' ', qui indique la fin des donnees
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! en entree : LOCORB, DOLO_MOTRAIN, SCH_FERMI
|
||||||
|
! en sortie : LOCORB_new, DOLO_MOTRAIN_new, DOLO_MOLCOSTIN_new
|
||||||
|
!
|
||||||
|
! Exemple de donnees :
|
||||||
|
! modif_LOCORB << EOF
|
||||||
|
! &modif_LOCORB string='T_',old='T_',new='G_',
|
||||||
|
! locorb='FeL2.LocGCasOrb',prefix='FeL2.' /
|
||||||
|
! &modif_LOCORB string='O_',old='O_',new='G_' /
|
||||||
|
! &modif_LOCORB string='PI',old='G_',new='O_' /
|
||||||
|
! &modif_LOCORB string='G_N2.S.LP01',old='G_',new='O_' /
|
||||||
|
! &modif_LOCORB string='G_N9.S.LP01',old='G_',new='O_' /
|
||||||
|
! &modif_LOCORB string='G_N18.S.LP01',old='G_',new='O_' /
|
||||||
|
! &modif_LOCORB string='G_N30.S.LP01',old='G_',new='O_' /
|
||||||
|
! &modif_LOCORB string=' ', /
|
||||||
|
!EOF
|
32
Manuals/modif_fermi_emploi
Executable file
32
Manuals/modif_fermi_emploi
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
==============================================================
|
||||||
|
modif_fermi
|
||||||
|
==============================================================
|
||||||
|
|
||||||
|
deplace des orbitales
|
||||||
|
1. depuis les occupees vers les virtuelles
|
||||||
|
2. depuis les virtuelles vers les occupees
|
||||||
|
|
||||||
|
|
||||||
|
En entree :
|
||||||
|
|
||||||
|
fich1 : fichier d'orbitales a modifier (en clair, format molcas)
|
||||||
|
SCH_FERMI : fichier cree par schmudorb, qui donne le niveau de Fermi
|
||||||
|
CE FICHIER RESORTIRA MODIFIE DE modif_fermi
|
||||||
|
|
||||||
|
|
||||||
|
En sortie :
|
||||||
|
|
||||||
|
fich2 : fichier d'orbitales reordonne (en clair, format molcas)
|
||||||
|
SCH_FERMI : qui a ete modifie
|
||||||
|
|
||||||
|
|
||||||
|
En donnees :
|
||||||
|
|
||||||
|
&modif_fermi fich1='FICH1',fich2='FICH2',
|
||||||
|
v_o='label1;s;n','label3;s;n','label3;s;n',...
|
||||||
|
labels des orbitales transferees depuis les virtuelles vers
|
||||||
|
les occupees.
|
||||||
|
avec : s=symetrie de l'orbitale transferee (1 caractere)
|
||||||
|
n=numero de l'orbitale dans sa symetrie (car pour un meme
|
||||||
|
label il peut y avoir plusieurs orbitales)
|
124
Manuals/molcost_emploi
Executable file
124
Manuals/molcost_emploi
Executable file
@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
***********
|
||||||
|
* MOLCOST *
|
||||||
|
***********
|
||||||
|
|
||||||
|
Interface between molcas and the toulouse programs
|
||||||
|
|
||||||
|
I What does the program?
|
||||||
|
|
||||||
|
1. After seward
|
||||||
|
- generates an formatted Info file containing various information about
|
||||||
|
the system studied
|
||||||
|
|
||||||
|
- generates an unformatted Mono file containing one-electron operators
|
||||||
|
|
||||||
|
2. After motra
|
||||||
|
generates the same files, with Molecular Orbital information if files
|
||||||
|
TraOne and TraInt exist.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
II. DATA
|
||||||
|
|
||||||
|
a namelist
|
||||||
|
|
||||||
|
&cost
|
||||||
|
prefix='Project.' (required data)
|
||||||
|
molcas= version of molcas: 4 or 5 or 54 (default 0: in that case, molcost
|
||||||
|
analizes the OneInt file to get the molcas value)
|
||||||
|
ycl= T: generates a formatted file of MO integrals (default F)
|
||||||
|
yao= T: reads and interfaces the AO integrals (default T)
|
||||||
|
ymo= T: reads and interfaces the OM integrals (default T)
|
||||||
|
ybas= T: reads and interfaces the COM file (default F)
|
||||||
|
ysym= T: the one-electron operators in the Mono file are
|
||||||
|
square matrices
|
||||||
|
F: the one-electron operators in the Mono file are
|
||||||
|
trianguler matrices (default F)
|
||||||
|
(see in paragraph IV the form of file Mono)
|
||||||
|
fermi= 0: fermi level (number of occupied orbitals in each symmetry)
|
||||||
|
(required if molcost runs after motra)
|
||||||
|
ychol= F: T in Cholesky calculation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
III. Aspect of the Info file (example of ethylene molecule) ("prefix"Info)
|
||||||
|
|
||||||
|
=============================================
|
||||||
|
File: C2H4.Info
|
||||||
|
created by molcost
|
||||||
|
date:
|
||||||
|
=============================================
|
||||||
|
&cost_AO
|
||||||
|
nsym=8
|
||||||
|
isym= 6, 6, 3, 3, 1, 1, 0, 0,
|
||||||
|
norb= 20
|
||||||
|
its=
|
||||||
|
1,2,3,4,5,6,7,8,
|
||||||
|
2,1,4,3,6,5,8,7,
|
||||||
|
3,4,1,2,7,8,5,6,
|
||||||
|
4,3,2,1,8,7,6,5,
|
||||||
|
5,6,7,8,1,2,3,4,
|
||||||
|
6,5,8,7,2,1,4,3,
|
||||||
|
7,8,5,6,3,4,1,2,
|
||||||
|
8,7,6,5,4,3,2,1,
|
||||||
|
enuc= 33.382397244601
|
||||||
|
natom= 2
|
||||||
|
coor=
|
||||||
|
1.2651715494, 0.0000000000, 0.0000000000,
|
||||||
|
2.2159663935, 1.8187044168, 0.0000000000,
|
||||||
|
atom=
|
||||||
|
'C ','H ',
|
||||||
|
label=
|
||||||
|
'C 1s ','C 1s ','C 1s ','C 2px ','H 1s ',
|
||||||
|
'H 1s ','C 1s ','C 1s ','C 1s ','C 2px ',
|
||||||
|
'H 1s ','H 1s ','C 2py ','H 1s ','H 1s ',
|
||||||
|
'C 2py ','H 1s ','H 1s ','C 2pz ','C 2pz ',
|
||||||
|
/
|
||||||
|
|
||||||
|
if Info is created after motra, a second namelist appears:
|
||||||
|
|
||||||
|
&cost_MO
|
||||||
|
nsym=8,norb= 20,noc= 8
|
||||||
|
itsym=
|
||||||
|
1,1,1,2,2,3,4,5,1,1,1,2,2,2,2,3,3,4,4,6,
|
||||||
|
isym= 6, 6, 3, 3, 1, 1, 0, 0,
|
||||||
|
frozen= 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
enuc= 0.333823972446E+02
|
||||||
|
ycl=F
|
||||||
|
&end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IV. How to read the unformatted Mono file ("prefix"Mono)
|
||||||
|
|
||||||
|
open(1,file=...)
|
||||||
|
|
||||||
|
1. ysym=F (one-eletron operators in triangular form)
|
||||||
|
|
||||||
|
a. seek the label:
|
||||||
|
- One-electrons integrals: label= '==ONEINT MATRIX (TOTAL)'
|
||||||
|
- Overlap matrix: label= '==OVERLAP MATRIX (SYM)'
|
||||||
|
|
||||||
|
character*80 aa
|
||||||
|
do
|
||||||
|
read(1) aa
|
||||||
|
if(trim(aa).eq.label) then
|
||||||
|
|
||||||
|
b. read the operator
|
||||||
|
- read the length of the operator, the number of symmetries,
|
||||||
|
the number of orbitals by symmetry
|
||||||
|
read(1) len,nsym,(isym(k),k=1,nsym)
|
||||||
|
- read the operator
|
||||||
|
read(1) hmono(1:len)
|
||||||
|
endif
|
||||||
|
enddo
|
||||||
|
|
||||||
|
other one electron operators must be added...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
20
Manuals/naturalt_emploi
Executable file
20
Manuals/naturalt_emploi
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
NATURALT
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
|
||||||
|
&natfil prefix='...' /
|
||||||
|
&mixdat
|
||||||
|
nsym= nombre de calculs casdet/casdi en parallele (M caluls, M fichiers
|
||||||
|
cdin)
|
||||||
|
netat=m,n,p,... nombre de val/vect propres par calcul
|
||||||
|
(nsym valeurs donnees, pour N=m+n+p+... val/vect propres)
|
||||||
|
metat= numeros des racines dans chaque calcul
|
||||||
|
(m+n+p+... valeurs)
|
||||||
|
coef= m+n+p+... valeurs : coefficients relatifs de chaque val/vect propre
|
||||||
|
ymolcas=t,
|
||||||
|
ngel= donnees "FROZEN" de molcost
|
||||||
|
ndel= donnees "DELETE" de molcost
|
||||||
|
yw... donnees pour l'impression
|
||||||
|
seuil= (seuil de convergence. (= recouvrement max des orbitales)
|
||||||
|
defaut=1.d-4). Si la convergences est atteinte, un fichier est cree
|
||||||
|
|
97
Manuals/noscf_emploi
Executable file
97
Manuals/noscf_emploi
Executable file
@ -0,0 +1,97 @@
|
|||||||
|
noscf : obtention d'orbitales optimisees par iterations sur la
|
||||||
|
matrice densite.
|
||||||
|
|
||||||
|
genere les donnees et appelle les programmes :
|
||||||
|
|
||||||
|
- motra
|
||||||
|
- molcost ou molcsd
|
||||||
|
- casdet
|
||||||
|
- casdi
|
||||||
|
- locnats
|
||||||
|
|
||||||
|
puis itere jusqu'a convergence
|
||||||
|
|
||||||
|
Utilisation :
|
||||||
|
cp "Orbitales" INPORB (avec schmud : cp LOCORB INPORB)
|
||||||
|
export CurrDir WorkDir Project
|
||||||
|
export PATH=$PATH:"lieu_de_cost"/bin
|
||||||
|
noscf donnees (ET NON i"noscf < donnees !!!)
|
||||||
|
orbitales de sortie : LOCORB2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
&nofil PREFIX=
|
||||||
|
/
|
||||||
|
&no
|
||||||
|
data=' ' 'AUTO' lit quelques donnees d'un fichier de schmudorb
|
||||||
|
les donnees de schmudorb pilotent ainsi une grande partie de
|
||||||
|
la suite du calcul (defaut ' ')
|
||||||
|
FERMI=0 par sym, nb d'orb occupees
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
MOLCAS=5 (ou 4)
|
||||||
|
frozen=0 donne par sym
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
delete=0 donne par sym
|
||||||
|
(lu de schmudorb si data='AUTO')
|
||||||
|
maxit=50 nb max de cycles motra...locnats
|
||||||
|
r=' > ' (les fichiers de sortie sont dans la
|
||||||
|
directory de travail (sinon r=' # ')
|
||||||
|
nmat=1 nb de fichiers de mat densite
|
||||||
|
netat= nb d'etats par fichier (nmat donnees)
|
||||||
|
metat= numeros des etats demandes (Somme(netat)) donnees
|
||||||
|
coef=1.d0 coefs des etats (Somme(netat)) donnees
|
||||||
|
stop=' ' ('MOLCOST' pour arret apres molcsd, donne la numerotation
|
||||||
|
des orbitales)
|
||||||
|
seuil=1.d-4 seuil de convergence du processus (sur les elements des
|
||||||
|
blocs exterieurs de la matrice densit)
|
||||||
|
/
|
||||||
|
&casdi (nmat fois)
|
||||||
|
syspin='0',
|
||||||
|
nessai=0,
|
||||||
|
iprec=6
|
||||||
|
noac=0, (lu de schmudorb si data='AUTO')
|
||||||
|
numac= (lu de schmudorb si data='AUTO')
|
||||||
|
NELAC=0, (Attention, non lu ! A donner imperativement)
|
||||||
|
gener='CAS+S',
|
||||||
|
is0=1
|
||||||
|
ms2=0
|
||||||
|
/
|
||||||
|
|
||||||
|
les variables en majuscules cont celles obligatoires
|
||||||
|
les valeurs donnees sont celles par defaut
|
||||||
|
|
||||||
|
|
||||||
|
Donnees supplementaires:
|
||||||
|
|
||||||
|
noscf genere, a partir de &nofil, &no et &casdi les donnees pour
|
||||||
|
motra, molcost, casdet, casdi et locnats.
|
||||||
|
|
||||||
|
Il peut arriver qu'on veuille donner a un de ces programmes un donnee
|
||||||
|
supplementaire. Par exemple, si on veut donner la donnee twvec a &dav
|
||||||
|
pour le 2eme calcul casdi (alors nmat >=2).
|
||||||
|
On ajoute a la fin du fichier :
|
||||||
|
DAV2
|
||||||
|
twvec=0.01
|
||||||
|
FIN
|
||||||
|
|
||||||
|
explication : DAV pour &dav, 2 pour 2eme casdi
|
||||||
|
la (les) donnee(s)
|
||||||
|
FIN (de l'ajout a &dav)
|
||||||
|
la ligne est ajoutee avant la fin de namelist "/"
|
||||||
|
|
||||||
|
Rem : si on veut ajouter un vecteur d'essai en donnee
|
||||||
|
DAV1
|
||||||
|
nessai=1
|
||||||
|
/
|
||||||
|
&ess file='ESSOUT0'
|
||||||
|
FIN
|
||||||
|
le fichier de donnees devient apres rajout des 3 lignes :
|
||||||
|
&dav
|
||||||
|
...
|
||||||
|
...
|
||||||
|
nessai=1 \
|
||||||
|
/ > 3 lignes supplementaires
|
||||||
|
&ess file='ESSOUT0' /
|
||||||
|
/ (deja present, donc pas a rajouter)
|
||||||
|
|
17
Manuals/oldorb_emploi
Executable file
17
Manuals/oldorb_emploi
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
=============================================================================
|
||||||
|
=============================================================================
|
||||||
|
|
||||||
|
oldorb oldorb oldorb oldorb
|
||||||
|
|
||||||
|
=============================================================================
|
||||||
|
=============================================================================
|
||||||
|
|
||||||
|
Transforme les fichiers d'orbitales molcas 6 dans le format des versions
|
||||||
|
precedentes
|
||||||
|
|
||||||
|
|
||||||
|
En entree : les orbitales molcas 6, sous le nom INPORB
|
||||||
|
En sortie : les orbitales anciennes versions, sous le nom OUTORB
|
||||||
|
|
||||||
|
pas de donnees
|
59
Manuals/proj_scf_emploi
Executable file
59
Manuals/proj_scf_emploi
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
PROGRAMME DE PROJECTION D'UN JEU D'ORBITALES DANS L'ESPACE D'UN AUTRE
|
||||||
|
JEU D'ORBITALES
|
||||||
|
|
||||||
|
Exemple : on a un jeu d'orbitales locales (occ, virt)
|
||||||
|
et un jeu d'orbitales SCF (occ, virt)
|
||||||
|
on projette les occupees locales dans les scf
|
||||||
|
on projette les virt locales dans les scf
|
||||||
|
on reorthogonalise
|
||||||
|
ainsi, on a un jeu d'orbitales locales de qualite SCF
|
||||||
|
|
||||||
|
|
||||||
|
ENCHAINEMENT DES PROGRAMMES
|
||||||
|
|
||||||
|
schmudorb
|
||||||
|
proj_scf
|
||||||
|
cp NONORLOC_scf NONORLOC
|
||||||
|
schmudort
|
||||||
|
|
||||||
|
Ce que fait le programme :
|
||||||
|
|
||||||
|
schmudorb cree un jeu d'orbitales locales non orthogonales (ds le fich NONORLOC)
|
||||||
|
|
||||||
|
proj_scf projette sur les orb scf (les met dans NONORLOC_scf,
|
||||||
|
ecrit comme NONORLOC)
|
||||||
|
cp NONORLOC_scf NONORLOC : on ecrase le fichier primitif
|
||||||
|
les fichiers NONORLOC et NONORLOC_scf sont exprimes dans une base d'OA
|
||||||
|
orthogonalisees (OAO)
|
||||||
|
le fichier contenant les OAO s'appelle "OAO"
|
||||||
|
les 3 fichiers OAO, NONORLOC et NONORLOC_scf sont donnes en clair sous
|
||||||
|
la forme des fichiers d'orbitales de Molcas, avec des labels
|
||||||
|
|
||||||
|
schmudort on orthogonalise
|
||||||
|
|
||||||
|
|
||||||
|
EN ENTREE
|
||||||
|
fichiers OAO et NONORLOC
|
||||||
|
un fichier d'orbitales scf ou casscf en orbitales delocalisees
|
||||||
|
(ScfOrb ou RasOrb), format en clair, orbitales Molcas.
|
||||||
|
EN SORTIE
|
||||||
|
fichier NONORLOC_scf, de meme type que NONORLOC
|
||||||
|
|
||||||
|
DONNEES
|
||||||
|
|
||||||
|
&pscf
|
||||||
|
prefix=
|
||||||
|
calcul='SCF' CASSCF : il y a des orbitales actives
|
||||||
|
fermi=0 donnee facultative si calcul='SCF'
|
||||||
|
obligatoire si calcul='CASSCF'
|
||||||
|
act='A_' alors les actives sont reconnues par le fait que
|
||||||
|
leur label commence apr A_
|
||||||
|
aucune autre donnee n'est testee pour le moment !
|
||||||
|
scf=' ' fichier contenant les orbitales de reference
|
||||||
|
(qui definissent les espaces sur lesquels on projette)
|
||||||
|
' ' : alors le nom est prefixScfOrb
|
||||||
|
si calcul='CASSCF', changer la valeur de scf!
|
||||||
|
|
||||||
|
/
|
||||||
|
|
||||||
|
|
901
Manuals/schmudorb_emploi
Executable file
901
Manuals/schmudorb_emploi
Executable file
@ -0,0 +1,901 @@
|
|||||||
|
******************************************************************************
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
24
Manuals/troncorb_emploi
Executable file
24
Manuals/troncorb_emploi
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
TRONCORB
|
||||||
|
|
||||||
|
Met des zeros dans un fichiers d'orbitales
|
||||||
|
|
||||||
|
Fichiers en entree :
|
||||||
|
Mono (de molcost)
|
||||||
|
orbin
|
||||||
|
|
||||||
|
Fichiers en sortie :
|
||||||
|
orbout
|
||||||
|
|
||||||
|
Donnees :
|
||||||
|
&troncorb orbin='****',orbout='****' /
|
||||||
|
une suite de lignes de 3 entiers, une par element a annuler
|
||||||
|
is il io
|
||||||
|
is il io
|
||||||
|
...
|
||||||
|
FIN
|
||||||
|
|
||||||
|
avec : is : symetrie de l'orbitale
|
||||||
|
il : ligne de l'element a annuler
|
||||||
|
io : colonne de l'element a annuler
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user