See examples in BS.mw
BF::[center,angular,radial,C,label]=AO
basis function, see Atomic Orbitals.BL::[center,shell::string,radial,C,label]
shell of basis functions.shell::string=cat(L,t)
contains information about the angular quantum number and functional form of the basis functions.
For example, Dm=[XX,YY,ZZ,XY,XZ,YZ], Dt=[Z2,XZ,YZ,X2,XY], Dc=[X2,Z2,YZ,XZ,XY].L::{integer,string}
either orbital quantum number (-1 means SP) or its label as one SP,S,P,D,F,G,H.t::"mtc"
type of basis functions: "m" for monomials, "t" for trigonometric, "c" for cubic.Ltrig::integer:=-1
for mixed-type basis, it is min L from which trigonometric spherical harmonics are used.BS::list(BF)
Basis Set.FBS::list(BL)
Folded Basis Set.prefactor::procedure:=((a,l)->sqrt((2*a)^(l+3/2)*2/GAMMA(l+3/2)))
multiply each primitive gaussian by this factor when converting FBS to BS.N=|BS|
shell2LtN(shell,Ltrig)::[L::integer,t,N]
decode shell.LtN2shell(L,torN::{string,posint},$)::shell
encode shell.UnfoldBS(FBS,NorL::{N,-Ltrig},prefactor,labelformat::string:="%s",{program::string:="",printout},$)::BS
unfold basis set. Program-specific features can be switched by program
(currently not used).FoldBS(BS,prefactor)::FBS
fold basis set.ReadBS(filename,A,Ltrig,prefactor)::FBS
read folded basis set from file
in the format of Basis Set Exchange GAMESS-US, which is compatible with Firefly and Gaussian.
To read basis from program output use ReadOutput
.RewriteBasis(filename,filename1,lsi::list(posint),{maxgeodev::numeric:=1e-6,overwrite})::A1,N1,FBS1,BS1
read basis from Gaussian output filename
, reduce it to subset of atoms lsi
, and save subset of atoms and its basis to filename1
.
If filename1
begins with undescore then it is treated as suffix to filename
.