mirror of
https://github.com/LCPQ/Cost_package.git
synced 2024-11-18 20:12:45 +01:00
121 lines
4.7 KiB
Plaintext
121 lines
4.7 KiB
Plaintext
|
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
|
||
|
|
||
|
|