OpenMolcas提取inporb轨道的问题
2022.5.18注:inporb与molden仅排序不同,基函数相同。
标量相对论计算使用Cartesian基函数,会出现数值不稳定,所以在标量相对论计算中只能使用球谐函数。
OpenMolcas的molden格式使用球谐函数(5D 7F),至于inporb的格式不太清楚,应该也是球谐函数(5D 7F)。源程序中有体现:rdvec是从文件里读取数据到数组(read vector)、wrvec是写入到文件(write vector)。
源程序太长,结合Multiwfn以及MOKIT可以完美转换inporb为fch。
#!/bin/bash
moldenname_molden=`ls *.guessorb.molden`
moldenname=${moldenname_molden%.*}
inporb=$1
echo -e "100\n2\n7\n$moldenname.fch\n0\nq" | Multiwfn $moldenname.molden -isilent #将含有坐标基组等信息的molden转为fch作为模板
mv $moldenname.fch $inporb.fch
orb2fch $inporb $inporb.fch #将inporb转为
用Multiwfn读入球谐函数的fch或molden时,把settings.ini里的iloadasCart设为1,则载入后将处于笛卡尔型基函数状态,之后可以用Multiwfn导出成笛卡尔基函数的fch或molden等文件。
Gaussian 对于3-21G、6-31G系列等少数基组,Gaussian默认用笛卡尔型D基函数,而对>=F角动量的默认用球谐型(6D,7F); 对于6-311G系列、def2系列、cc-pVnZ等系列,以及用gen的时候,Gaussian默认用球谐型(5D, 7F). NWChem中,无论输入啥基组,都默认用笛卡尔。 |