Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
franck-condon_calculations [2024/07/12 08:37] – external edit 127.0.0.1franck-condon_calculations [2025/02/07 13:01] (current) rauhut
Line 5: Line 5:
 ''FCON'',//options// [fcon] ''FCON'',//options// [fcon]
  
-The ''FCON'' program allows for the calculation of Franck-Condon factors based on potential energy surfaces obtained from the ''SURF'' and ''XSURF'' programs and vibrational wavefunctions as provided by the ''VSCF'' or ''VCI'' programs. Duschinsky effects may or may not be included. These can either be applied to the vibrational wavefunction (of the vibrational ground state) or the potential by using the ''PESTRANS'' program. The latter possibility is the recommended one as it is significantly faster. The ''FCON'' program including Duschinsky rotations can only be used with analytical representations of the potential energy surfaces. A prescreening of the Franck-Condon factors without Duschinsky effects at the ''VSCF'' level is used to reduce the computational effort for correlated levels, e.g. ''VCI''. Note that, Franck-Condon factors at the uncorrelated ''VSCF'' level including Duschinsky effects are usually of fairly poor quality. As the calculation of Franck-Condon factors often involves very high quantum numbers for the vibrational states of the final electronic state, very high excitation levels must be enabled in the ''VCI'' calculations, i.e. see keyword ''LEVEX''. As a consequence, the ''SCALE'' parameter in ''SURF'' calculations needs to be modified in most applications. For details see:\\+The ''FCON'' program allows for the calculation of Franck-Condon factors based on potential energy surfaces obtained from the ''XSURF'' program and vibrational wavefunctions as provided by the ''VSCF'' or ''VCI'' programs. Duschinsky effects may or may not be included. These can either be applied to the vibrational wavefunction (of the vibrational ground state) or the potential by using the ''PESTRANS'' program. The latter possibility is the recommended one as it is significantly faster. The ''FCON'' program including Duschinsky rotations can only be used with analytical representations of the potential energy surfaces. A prescreening of the Franck-Condon factors without Duschinsky effects at the ''VSCF'' level is used to reduce the computational effort for correlated levels, e.g. ''VCI''. Note that, Franck-Condon factors at the uncorrelated ''VSCF'' level including Duschinsky effects are usually of fairly poor quality. As the calculation of Franck-Condon factors often involves very high quantum numbers for the vibrational states of the final electronic state, very high excitation levels must be enabled in the ''VCI'' calculations, i.e. see keyword ''LEVEX''. For details see:\\
 P. Meier, G. Rauhut, //Comparison of methods for calculating Franck-Condon factors beyond the harmonic approximation: how important are Duschinsky rotations?//, [[https://dx.doi.org/10.1080/00268976.2015.1074740|Mol. Phys.]] **113**, 3859 (2015).\\ P. Meier, G. Rauhut, //Comparison of methods for calculating Franck-Condon factors beyond the harmonic approximation: how important are Duschinsky rotations?//, [[https://dx.doi.org/10.1080/00268976.2015.1074740|Mol. Phys.]] **113**, 3859 (2015).\\
 G. Rauhut, //Anharmonic Franck-Condon factors for the ˜X2B1˜X1A1 photoionization of ketene//, J. Phys. Chem. A **119**, (2015) 10264.\\ G. Rauhut, //Anharmonic Franck-Condon factors for the ˜X2B1˜X1A1 photoionization of ketene//, J. Phys. Chem. A **119**, (2015) 10264.\\
Line 14: Line 14:
 The following //options// are available: The following //options// are available:
  
-  * **''DUSCH''=//n//** This keyword controls the Duschinsky transformation. ''DUSCH=0'' entirely neglects the Duschinsky transformation - including the shift-vector. ''DUSCH=1'' switches the Duschinsky transformation on and the algorithm of Doktorov will be used. Note that this option is only limited to 3-atomic systems. ''DUSCH=3'' neglects the Duschinsky rotation, but includes the shift-vector. This is the default option as the Duschinsky rotation can be passed to the ''PESTRANS'' program, which is much more efficient.+  * **''DUSCH''=//n//** This keyword controls the Duschinsky transformation. ''DUSCH=0'' entirely neglects the Duschinsky transformation - including the shift-vector. ''DUSCH=3'' neglects the Duschinsky rotation, but includes the shift-vector. This is the default option as the Duschinsky rotation can be passed to the ''PESTRANS'' program, which is much more efficient.
   * **''ECKART''=//n//** ''ECKART=1'' (default) determines the Eckart transformation matrix as described in the literature. ''ECKART=0'' approximates the Eckart transformation matrix by a unit matrix, which is meaningless unless for debugging purposes or for some very special tests.   * **''ECKART''=//n//** ''ECKART=1'' (default) determines the Eckart transformation matrix as described in the literature. ''ECKART=0'' approximates the Eckart transformation matrix by a unit matrix, which is meaningless unless for debugging purposes or for some very special tests.
   * **''MAXSEL''=//n//** ''MAXSEL=n'' determines the maximum number of Franck-Condon factors to be selected. By default //n// is set to 100.   * **''MAXSEL''=//n//** ''MAXSEL=n'' determines the maximum number of Franck-Condon factors to be selected. By default //n// is set to 100.
Line 28: Line 28:
   * **''WF''=//type//** Defines the type of the wavefunction. ''WF=VSCF'' specifies state-specific ''VSCF'' wavefunctions for both levels, while ''WF=VCI'' denotes state-specific ''VCI'' wavefunctions. Alternatively, one may use ''WF=VSCFG'' for ground-state based VSCF wavefunctions and ''WF=VCIG'' for ground-state based VCI wavefunctions. The default is ''WF=VCI''.   * **''WF''=//type//** Defines the type of the wavefunction. ''WF=VSCF'' specifies state-specific ''VSCF'' wavefunctions for both levels, while ''WF=VCI'' denotes state-specific ''VCI'' wavefunctions. Alternatively, one may use ''WF=VSCFG'' for ground-state based VSCF wavefunctions and ''WF=VCIG'' for ground-state based VCI wavefunctions. The default is ''WF=VCI''.
  
-Some of the keywords as described for the ''VCI'' program are also valid for the ''FCON'' program, i.e. ''%%CITYPE, LEVEX, CIMAX, DIPOLE, NDIM, NBAS, NGRID, BASIS%%'' and ''INFO''.+Some of the keywords as described for the ''VCI'' program are also valid for the ''FCON'' program, i.e. ''%%CITYPE, LEVEX, CIMAX, NDIM, NBAS, BASIS%%'' and ''INFO''.
  
 ==== Information Handling ==== ==== Information Handling ====
Line 63: Line 63:
 hf hf
  
-{surf,start1D=label1,sym=auto           reads the PES of the final electronic +{xsurf,sym=auto                    read in the PES of the initial electronic state and assign it to surface label 1 
- disk,where=home,extern='final.pot'   ! state from 'final.pot' + disk,where=home,auto=1,extern='final.pot'
- +    
-poly +
-vscf,type=poly                          ! saves VSCF wavefunction in record 5750.2 +
-vci,type=poly,export=fcon               ! saves  VCI wavefunction in record 5800.2 +
- +
-{surf,start1D=label1,sym=auto           ! reads the PES of the initial electronic +
- disk,where=home,save=5601.2,extern='initial.pot'  ! state from 'initial.pot' +
 {poly {poly
- disk,save=5751.2+ disk,auto=1                     ! read surface 1 from disk and transform it to polynomials 
-{vscf,type=poly +{vscf,pot=poly                      
- disk,save=5751.2} + disk,auto=1                     ! read polynomials for surface from disk and perform a VSCF calculation  
- +     
-{fcon,wf=vscfg,sel=                   ! selection of the FCFs based on a VSCF calc. +{xsurf,sym=auto                    read in the PES of the final electronic state and assign it to surface label 2 
- disk,surf1=5600.2,surf2=5601.2} +  disk,where=home,auto=2,extern='initial.pot'       
- +    
-{poly,vam=0                             it is important to switch off VAM terms +
- disk,start=5601.2,save=5751.2}         ! for pestrans +
-{pestrans,umat=1                        ! rotate the PES of initial.pot in the +
-                                        ! coordinates of final.pot +
- disk,where=home,save=5601.           ! umat=1 save the Duschinsky matrix in the +
- disk,extern='final.pot'              ! U-matrix for the VCI program, the extern file +
-                                        ! provides the hessian of the other system +
- +
-{poly, +
- disk,start=5600.2,save=5750.2} +
-{vscf,type=poly                         ! saves VSCF wavefunction in record 5750.2 +
- disk,save=5750.2} +
-{vci,type=poly,export=fcon              ! saves  VCI wavefunction in record 5800.2 +
- disk,save=5800.2} +
 {poly {poly
- disk,start=5601.2,save=5751.2} + disk,auto=2}                      ! read surface 2 from disk and transform it to polynomials 
-{vscf,type=poly                       saves VSCF wavefunction in record 5751.+{vscf,pot=poly 
- disk,save=5751.2} + disk,auto=2}                      ! read polynomials for surface 2 from disk and perform a VSCF calculation 
-{vci,type=poly,export=fcon              saves  VCI wavefunction in record 5801.+  
- disk,save=5801.2}+{fcon,wf=vscfg,sel=1               perform a Franck-Condon calculation at the VSCF level in order to 
 + disk,initial=2,final=1}           ! identify important transitions, which shall be considered later in the VCI part 
 +  
 +{poly,vam=0                        ! transform PES 2 to polynomials without adding the Watson correction term 
 + disk,auto=2}                      ! as a pseudopotential to (this is needed for the subsequent transformation) 
 +  
 +{pestrans,transtype=fcf,umat=1     ! transform PES 2 (initial) to the axes (normal coordinates) of PES 1 (final state) 
 + disk,where=home,auto=2            ! (Duschinsky transformation) 
 + disk,extern='initial.pot'                  
 +                                          
 +{poly                              ! transform the transformed PES to polynomials        
 + disk,auto=2} 
 +{vscf,pot=poly                     ! do a VSCF calculation for surface 2 
 + disk,auto=2}                            
 +{vci,pot=poly,export=fcon          perform a VCI calculation for surface and export the VCI vectors for      
 + disk,auto=2}                      ! the Franck-Condon program      
 +                                          
 +{poly                              ! transform surface 1 to polynomials    
 + disk,auto=1}                            
 +{vscf,pot=poly                     ! perform a VSCF calculation for surface 1               
 + disk,auto=1}                              
 +{vci,pot=poly,export=fcon          ! perform a VCI calculation for surface 1 and export the VCI vectors for  
 + disk,auto=1}                      ! the Franck-Condon program 
 +  
 +{fcon                              ! perform a Franck-Condon calculation on the basis of the selected VCI states 
 + disk,initial=2,final=1}
  
-{fcon                                   ! calculate the selected FCFs +put,irspec,h2o_pe.gnu              generate a GNU file with the PE spectrum 
- disk,surf1=5600.2,surf2=5601.2         disk directive is not necessary here, +</code>
- disk,vscf1=5750.2,vscf2=5751.2         ! but one can see the standard values this way +
- disk,vci1=5800.2,vci2=5801.2}          ! 1 correspond to the final state; +
-                                        ! 2 correspond to the initial state+
  
-put,irspec,h2o_pe.gnu                   ! generate a GNU file with the PE spectrum +<!--
-</code>+
 ==== Example 2 ==== ==== Example 2 ====
  
Line 210: Line 209:
 put,irspec,keten-fcon.gnu put,irspec,keten-fcon.gnu
 </code> </code>
 +-->
 +
 ===== ELECTRONIC-VIBRATIONAL SPECTRA (EVSPEC) ===== ===== ELECTRONIC-VIBRATIONAL SPECTRA (EVSPEC) =====
  
Line 322: Line 323:
 The following example shows a general program flow involving the ''EVSPEC'' calculations. The following example shows a general program flow involving the ''EVSPEC'' calculations.
  
 +<code>
 +memory,40,m
 +
 +basis=vdz
 +geometry={
 +H   ,,     2.3971901752  ,    -2.3962403391   ,    0.0000000000
 +S   ,,    -0.0873406755  ,    -1.8178592700   ,    0.0000000000
 +S   ,,     0.0117763411  ,     1.8933936636   ,    0.0000000000
 +}
 +
 +basis=vdz
 +hf
 +
 +{xsurf                                            ! reads the PES of the initial electronic
 + disk,where=home,extern='initial.pot'           ! state from 'initial.pot'
 +
 +poly                                              ! Transform  the initial PES to the
 +vscf,pot=poly                                     ! representation in terms of the normal
 +vci,pot=poly                                      ! coordinates of the final PES
 +                                                  ! (stored in 'final.pot'), and fit it
 +{pestrans,info=1                                  ! with polynomial functions.
 + disk,where=home,auto=1,extern='final.pot'      ! All results for the initial surface
 +                                                  ! are stored with the reference number
 +{poly                                             ! given by the keyword auto=1.
 + disk,auto=1}
 +{vscf,pot=poly                                    ! Run VSCF calculations for initial states.
 + disk,auto=1}                                     
 +{vci,pot=poly,export='EVSPEC'                     ! Run VCI calculations for initial states.
 + disk,auto=1}
 +
 +{xsurf                                            ! Reads the PES of the final electronic
 + disk,where=home,auto=2,extern='final.pot'      ! state from 'final.pot'.
 +
 +{poly                                             ! Provides the polynomial representation
 + disk,auto=2}                                     ! of the final PES.
 +{vscf,pot=poly                                    ! Run VSCF calculations for generating
 + disk,auto=2}                                     ! vibrational modals for the final PES.
 +
 +{evspec,method=rwf,start=1,final=2,info=1         ! Simple input for the RWF calculation
 +graph, evsdump='hs2_rwf.gnu'}
 +</code>
 +
 +<!--
 <code> <code>
 memory,20,m memory,20,m
Line 413: Line 457:
  
 </code> </code>
 +-->