XMVB 3.0 A Right Way To Do Valence Bond Calculations Zhenhua Chen Xiamen University
XMVB 3.0 Xiamen Valence Bond An Ab Initio Non-orthogonal Valence Bond Program Version 3.0 Lingchun Song, Zhenhua Chen, Fuming Ying, Jinshuai Song, Xun Chen, Peifeng Su, Yirong Mo, Qianer Zhang, Wei Wu* Center for Theoretical Chemistry, State Key laboratory for Physical Chemistry of Solid Surfaces, and Department of Chemistry Xiamen University, Xiamen Fujian 36005, CHINA weiwu@xmu.edu.cn
History 986 998 pregnancy of the program Algorithms: SGA, PPD etc. 999 Xiamen-99 VBSCF, BOVB, VBCI 003 XMVB Version.0 was released VBPT, DFVB, VBPCM, Parallelization, Modularization, RDM 0 XMVB Version.0 was released RDM, AFCG, icvbpt, CD Int, SN In 07, XMVB Version 3.0 was released 3
Abilities VB structure set: Covalent and ionic structures for the active electrons VBCI +CI HAOs Breathing Orbitals BOVB icvbpt +ic VBPT +PT +CASSCF VBSCF +DFT +QMC DFVB VBSCF(CAS) VB-QMC +PCM Add-ons for Condensed Phases: +SM +MM +EFP VBPCM VBSM VB/MM VBEFP All classical VB methods are available! 4
What s New in Version 3.0? Integrals can be calculated directly. More basis sets and elements are supported. Cholesky decomposition for ERI is available. Tensor transformation is implemented for RDM-based approach. Seniority number truncated VBSCF method 5
Abilities VB structure set: Covalent and ionic structures for the active electrons CD-VBSCF +CD VBCI +CI HAOs Breathing Orbitals BOVB snvb icvbpt +SN +ic VBPT +PT +CASSCF VBSCF +DFT +QMC DFVB VBSCF(CAS) VB-QMC +PCM Add-ons for Condensed Phases: +SM +MM +EFP VBPCM VBSM VB/MM VBEFP All classical VB methods are available! 6
Useful documents XMVB manual http://xmvb.org/docs/xmvb-3.0-manual.pdf Online Tutorials http://xmvb.org/tutorials.html 7
Distributions of XMVB 3.0 Stand-alone distribution A stand-alone program can be used to do most VB calculations. Module distribution A module embedded in GAMESS-US can be used to accomplish VB calculations in condense phase 8
How to Run An XMVB Job? For Stand-alone distribution For jobs use the same integrals.. Compose job.inp. Run preint job.inp 3. Compose job.xmi 4. Run XMVB job.xmi. job.xmi += job.inp. Run XMVB job.xmi To get /-electron integrals xe.int, xe.int do VB calculation to get XMVB output files: job.xmo, job.orb, job.den, job.xdat For jobs have large number of basis functions. 9
Part. How to compose input files? 0
Main structure of XMI file $BFI $GEO $FRAG $CTRL $STR $ORB Optional Essential $GUS
How to write INT File H cc-pvdz 0 H 0.000000 0.000000 0.000000 H 0.000000 0.000000 0.740000 preint H.inp Job name; basis set Charge; multiplicity Elements and Cartesian coordinates job.xmi += job.inp $GEO $END
$ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $frag spz spz $orb $str Example. H molecule $ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $str $frag spz spz $orb Flexible format 3
$ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $frag spz spz $orb $str Example. H molecule How to compose an input file? Ø Obtain molecular geometry Ø Divide molecule into fragments Ø Specify orbitals on each fragment Ø Distribute electrons on the orbitals to give structures. H H H H H H 4
$ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $frag spz Fragments are a series of basis function sets. frgtyp=atom or frgtyp=sao, fragments are defined with symmetrized atomic orbitals. orbtyp=hao, the hybrid atomic orbitals are used. spz MO Basis functions $orb H S 0.37976 H S H S 0.75854 H S 3 H X Frag orb 3 H X 0.000000 4 H Y 0.000000 4 H Y 5 H Z 0.087 5 H Z 6 H S 0.37976 6 H S $str 7 H S 0.75854 7 H S 8 H X 0.000000 8 H X Frag orb 9 H Y 0.000000 0 H Z -0.087 9 H Y 0 H Z 5
$ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= Fragments are a series of basis function sets. frgtyp=sao, fragments are defined with symmetrized atomic orbitals. $frag $frag: description for fragments Line : the number of atoms in each fragment. spz Line specifies which atoms and their basis functions: spz atom, and the s and pz types basis functions. Line 3 : the basis functions of s and pz types in atom. $orb $orb: description for VB orbitals Line : the number of fragments in each orbital. Line specifies orbital is localized on which fragments: fragment. $str Line 3 denotes orbital is localized on fragment. 6
$ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $frag spz spz $orb $str H Fragments are a series of basis function sets. frgtyp=sao, fragments are defined with symmetrized atomic orbitals. $frag: description for fragments Line : the number of atoms in each fragment. Line : the basis functions of s and pz types in atom. Line 3 : the basis functions of s and pz types in atom. $orb: description for VB orbitals Line : the number of fragments in each orbital. Line : orbital is localized on fragment. Line 3: orbital is localized on fragment. covalent ionic ionic H H H H H nstr =3, the number of structures In $str, a typical structure is written as: i i j j k k m n i j k: doubly occupied inactive orbitals. m n: variable occupied active orbitals.
Orbital optimization algorithms for VBSCF and BOVB: iscf options. $ctrl frgtyp=sao orbtyp=hao nstr=3 iscf=5 nao= nae= $frag spz spz $orb $str When iscf=5, the two keywords are necessary. nao: number of active orbitals nae: number of active electrons iscf Gradient Performance Numerical Slow Analytical Fast, but some time not stable 3 Numerical Slow 4 Numerical Very slow 5 Analytical Very Fast, but not for BOVB 6 Full Hessian Slow, quadratically converged
Summary () Ø $GEO Obtain molecular geometry Ø $FRA Divide molecule into fragments Ø $ORB Specify orbitals on each fragment Ø $STR Distribute electrons on the orbitals to give structures Ø $CTRL Assign an algorithm (i.e. iscf=5) to do the orbital optimization in valence bond calculation. Run the job by: XMVB job.xmi 9
Summary () Ø $GEO Obtain molecular geometry Ø $FRA Divide molecule into fragments Ø $ORB Specify orbitals on each fragment Ø $STR Distribute electrons on the orbitals to give structures Ø $CTRL Assign an algorithm (i.e. iscf=5) to do the orbital optimization in valence bond calculation. Run the job by: XMVB job.xmi Make modifications until XMVB terminates graciously. 0
Example. HF molecule hf.inp HF 6-3G 0 H.0 0.000000 0.000000 0.000000 F 9.0 0.000000 0.000000 0.97000
HF molecule, 3 structures $ctrl frgtyp=atom orbtyp=hao str=full iscf=5 nae= nao= iprint=3 guess=mo $orb $str? hf.xmi orbtyp=hao Line gives numbers of fragments for six orbitals. The first 5 orbitals are localized on the second fragment of F atom. The last orbital is localized on the first fragment of H atom. frgtyp=atom The fragments of system are defined with atoms. By Default, each atom forms one fragment. basis function H S H S 3 F S 4 F S 5 F X 6 F Y 7 F Z 8 F S 9 F X 0 F Y F Z Frag Frag BO(H) s (F) px(f) py(f) s(f) BO(F)
HF molecule, 3 structures $ctrl frgtyp=atom orbtyp=hao str=full iscf=5 nae= nao= iprint=3 guess=mo $orb $str? hf.xmi orbtyp=hao Line gives numbers of fragments for six orbitals. The first 5 orbitals are localized on the second fragment of F atom. The last orbital is localized on the first fragment of H atom. If keyword str is used, XMVB will automatically generate structures. str = full => all VB structures cov => only covalent ion => only ionic structures $STR section can be absent. frgtyp=atom The fragments of system are defined with atoms. By Default, each atom forms one fragment. basis function H S H S 3 F S 4 F S 5 F X 6 F Y 7 F Z 8 F S 9 F X 0 F Y F Z Frag Frag BO(H) s (F) px(f) py(f) s(f) BO(F) 3
HF molecule, 3 structures $ctrl frgtyp=atom orbtyp=hao str=full iscf=5 nae= nao= iprint=3 guess=mo $orb $gus 3 4 4 5 5 3 6 3 hf.xmi Iprint=3, full print-out message. guess=mo: Molecular Orbitals will be used as the initial guess for VB orbitals. VB orb MO s orbital of F atom s orbital of F atom 3 px pair of F atom 4 4 py pair of F atom 5 5 H-F bonding orbital on F atom 3 6 H-F bonding orbital on H atom 3 XMVB hf.xmi 3 4 5-6.757 -.5897-0.739-0.63-0.63 A A A A A H S 0.00030 0.343-0.93056 0.000000 0.000000 H S 0.0077-0.03969-0.07756 0.000000 0.000000 3 F S 0.99553-0.3056-0.06755 0.000000 0.000000 4 F S 0.0368 0.4970 0.3708 0.000000 0.000000 5 F X 0.000000 0.000000 0.000000 0.65468 0.0945 6 F Y 0.000000 0.000000 0.000000-0.0945 0.65468 7 F Z -0.00488-0.084307 0.54838 0.000000 0.000000 8 F S -0.00586 0.5948 0.4493 0.000000 0.000000 9 F X 0.000000 0.000000 0.000000 0.4855 0.067646 0 F Y 0.000000 0.000000 0.000000-0.067646 0.4855 F Z 0.00400-0.047087 0.349640 0.000000 0.000000
HF molecule, 3 structures $ctrl orbtyp=hao frgtyp=atom str=full bovb iscf= guess=read nae= nao= iprint=3 $orb Example b. L-BOVB calculation for HF For BOVB calculations, iscf= is most efficient; iscf = 4, 5, 6 are not available. Using VBSCF orbitals as guess orbitals for BOVB calculation by: cp hf.orb hf-bovb.gus XMVB hf-bovb.xmi 5
Summary (). Generate structures by str.. Set the fragment by FrgTyp=atom. 3. Set orbital guess by guess=mo and edit $gus. 4. Use VBSCF orbital as guess for BOVB calculation, and set guess=read. 6
ben.inp Example 3, benzene molecule C6H6 6-3G* 0 C 6.0 0.699346683.3039873 0.0000000000 C 6.0-0.699346683.3039873 0.0000000000 C 6.0 -.3986933663 0.0000000000 0.0000000000 C 6.0-0.699346683 -.3039873 0.0000000000 C 6.0 0.699346683 -.3039873 0.0000000000 C 6.0.3986933663 0.0000000000 0.0000000000 H.0.4703047.544760 0.0000000000 H.0 -.4703047.544760 0.0000000000 H.0 -.485406094 0.0000000000 0.0000000000 H.0 -.4703047 -.544760 0.0000000000 H.0.4703047 -.544760 0.0000000000 H.0.485406094 0.0000000000 0.0000000000 7
The benzene molecule locates on the XY plane. Only the π bonds are explored in VB manner. The σ electrons/orbitals can be treated in MO way. Only one fragment is assigned for σ-part. For π -part, pz-type basis functions on each atom forms one fragment. Frag 3 Frag 4 Frag Frag 5 Frag 7 Frag 6 Frag 8
ben.xmi (part) benzene $ctrl frgtyp=sao orbtyp=hao str=full iscf=5 nao=6 nae=6 iprint=3 guess=auto $frag *6 spxydxxyyzzxy - pzdxzyz pzdxzyz E pzdxzyz 3 pzdxzyz 4 pzdxzyz 5 pzdxzyz 6 nao=6, the 6 π-orbitals are selected as active orbitals. nae=6, the number of active VB electrons str = full => generate all VB structures cov => only covalence Ion => only ionic structures frgtyp=sao, fragments are defined with symmetrized atomic orbitals. All σ-type basis function of all atoms (-) form the first fragment. Here, pxy is a short hand notation of px and py; and dxxyyzzxy means Dxx, Dyy, Dzz, Dxy. pz-type basis functions (pz, dxz, dyz) on each atom forms one fragment. 9
$orb *8 *6 3 4 5 6 7 E ben.xmi (part) There are 4 VB orbitals, the first 8 orbitals are localized on frag ; the remain 6 orbitals are localized on frag to frag 7 respectively. 30
Part 3. How to get information from output files? 3
Information of XMO file Input message SCF iterative procedure (final energy) Basic Input, Integrals, Guess etc Iteration ** E = **.** DE = ** VBSCF converged in ** iterations Total Energy: ** S ij and H ij Matrices Information of VB wavefunction Coefficients and Weights of structures Optimized orbitals Properties Bond order, atomic charge, dipole moments Optional Default 3
hf.xmo Total Energy: -00.035880 First Excited: -98.67776 The Last Change in Energy: -0.000000 Number of Iteration: 3 SCF procedures (final energy) ****** MATRIX OF OVERLAP ****** 3.000000-0.694887-0.694887-0.694887.000000 0.3876 3-0.694887 0.3876.000000 ****** MATRIX OF HAMILTONIAN ****** S ij and H ij matrices 3 -.554856.0485.8769.0485 -.4738 -.0904 3.8769 -.0904 -.68575 ****** WEIGHTS OF STRUCTURES ****** 0.64395 ****** :4 5 6 0.30554 ****** :4 5 5 3 0.0505 ****** :4 6 6 Weights of VB structures 33
3 4 5 6 0.000000 0.000000 0.000000 0.000000 0.000000-0.83544 0.000000 0.000000 0.000000 0.000000 0.000000-0.755 3.0748-0.084340 0.084340-0.084340 0.04953 0.000000 4-0.05976 0.300588-0.300588 0.300588-0.65593 0.000000 5 0.000000-0.00440-0.477373-0.456933 0.000000 0.000000 6 0.000000 0.5394 0.500-0.8743 0.000000 0.000000 7-0.00873 0.069765-0.069765 0.069765 0.70583 0.000000 8-0.05403 0.36476-0.36475 0.36476-0.04957 0.000000 9 0.000000-0.0534-0.35344-0.338309 0.000000 0.000000 0 0.000000 0.399383 0.86585-0.797 0.000000 0.000000-0.006949 0.056493-0.056493 0.056493 0.4945 0.000000 Optimized orbitals ****** POPULATION AND CHARGE ****** ATOM MULL.POP. CHARGE LOW.POP. CHARGE H 0.744964 0.55036 0.855733 0.4467 F 9.55036-0.55036 9.4467-0.4467 ****** BOND ORDER ****** XMVB atomic population analysis ATOM ATOM DIST BOND ORDER H F 0.900 0.899 34
Availability of XMVB package To performs ab initio valence bond calculations XMVB version 3.0 is free. Send signed license agreement to: Professor Wei Wu Department of Chemistry Xiamen University, Xiamen, Fujian 36005 P. R. China Tel: 86-59-885 Fax: 86-59-84708 E-mail: weiwu@xmu.edu.cn 35
Thank you for your attentions!