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