This chapter explains how to use Psi from MPQC.
PSIBIN/usr/local/psi/bin. Use PSIBIN environmental variable to point to the right location. mpqc section, mole MolecularEnergy object, etc.). In addition the following rules apply: psienv of type PsiExEnv. PsiExEnv contains job specific information, such as the directory in which Psi input, output, and checkpoint files will be kept, filename prefix, scratch directories, etc. It makes sense to define one such object and simply refer to it from all PsiWavefunction objects. See PsiExEnv class documentation for more info. psienv of type PsiExEnv. The following keywords are used by its KeyVal constructor: cwd/tmp. fileprefixname in Psi default:files:default section. Defaults to psi. stdoutpsi.stdout. stderrpsi.stderr. nscratchnvolume in Psi default:files:default section. Default is 1. scratchvolumex in Psi default:files:default section. There's no default. Here's an example:
psienv<PsiExEnv>: ( cwd = ./ fileprefix = psi.test nscratch = 2 scratch = [ "/scratch1/" "/scratch2/" ] )PsiWavefunction specializations
Class PsiWavefunction is derived from class Wavefunction, hence its KeyVal constructor uses all keywords that Wavefunction's KeyVal constructor uses (basis,molecule, etc.). In addition, PsiWavefunction's KeyVal constructor looks for the following keywords in the input file:
psienvdoccsoccfrozen_doccfrozen_uocctotal_chargedocc nor socc are given. multiplicitydocc nor socc are given. memorydocc, socc, frozen_docc, frozen_uocc, total_charge, and multiplicity are used by appropriate specializations of PsiWavefunctions, i.e. PsiCLHF only checks for docc, etc.
PsiWavefunction specializations PsiCCSD and PsiCCSD_T also look for keyword reference which specifies the reference wave function (an object of type PsiSCF). All classes for correlated Psi wave functions will require such an object.
Here are a few examples of PsiWavefunctions:
ROHF DZ on F atom mole<PsiHSOSHF>: ( docc = [ 2 0 0 0 0 1 1 0 ] socc = [ 0 0 0 0 0 0 0 1] memory = 10000000
Psi Environment data psienv<PsiExEnv>: ( cwd = ./ fileprefix = f.dz.test stdout = f.dz.test.stdout stderr = f.dz.test.stderr nscratch = 1 scratch = [ "/scratch/mpqc/" ] )
MolecularEnergy input molecule<Molecule>: ( {atoms geometry} = { F [ 0.0 0.0 0.0 ] } )
Basis input basis<GaussianBasisSet>: ( molecule = $..:molecule name = "DZ (Dunning)" )
)
RHF CCSD/cc-pVDZ on water mole<PsiCCSD>: ( frozen_docc = [1 0 0 0] memory = 40000000
Psi Environment data psienv<PsiExEnv>: ( cwd = ./ fileprefix = h2o.ccpvdz.ccsd.test nscratch = 1 scratch = [ "/tmp/" ] )
MolecularEnergy input molecule<Molecule>: ( {atoms geometry} = { H [ -1.5 0.0 -0.3 ] H [ 1.5 0.0 -0.3 ] O [ 0.0 0.0 1.0 ] } )
Basis input basis<GaussianBasisSet>: ( molecule = $..:molecule name = "cc-pVDZ" )
reference<PsiCLHF>: ( psienv = $..:psienv molecule = $..:molecule basis = $..:basis total_charge = 0 multiplicity = 1 ) )More examples
This section contains some examples of complete inputs that specify an MPQC/Psi computations.Here's an optimization + subsequent frequency analysis on water molecule at the RHF CCSD 6-311G** level:
Emacs should use -*- KeyVal -*- mode this file was automatically generated label: water test series molecule specification molecule<Molecule>: ( symmetry = C2V unit = angstrom { atoms geometry } = { O [ 0.000000000000 0.000000000000 0.369372944000 ] H [ 0.783975899000 0.000000000000 -0.184686472000 ] H [ -0.783975899000 0.000000000000 -0.184686472000 ] } ) basis set specification basis<GaussianBasisSet>: ( name = "6-311G**" molecule = $:molecule ) Psi environment specification psienv<PsiExEnv>: ( cwd = ./ fileprefix = mpqcpsi stdout = mpqcpsi.stdout stderr = mpqcpsi.stderr nscratch = 1 scratch = [ "/scratch/evaleev/" ] )
mpqc: ( checkpoint = no savestate = no restart = no coor<SymmMolecularCoor>: ( molecule = $:molecule generator<IntCoorGen>: ( molecule = $:molecule ) ) molecular coordinates for optimization do_energy = yes do_gradient = no method for computing the molecule's energy mole<PsiCCSD>: ( molecule = $:molecule basis = $:basis coor = $..:coor psienv = $:psienv memory = 32000000 reference<PsiCLHF>: ( psienv = $:psienv molecule = $:molecule total_charge = 0 multiplicity = 1 basis = $:basis memory = 32000000 ) hessian<FinDispMolecularHessian>: ( point_group<PointGroup>: symmetry = C2V checkpoint = no restart = no ) ) optimize = yes optimizer object for the molecular geometry opt<QNewtonOpt>: ( max_iterations = 20 function = $..:mole update<BFGSUpdate>: () convergence<MolEnergyConvergence>: ( cartesian = yes energy = $..:..:mole ) ) vibrational frequency input freq<MolecularFrequencies>: ( point_group<PointGroup>: symmetry = C2V molecule = $:molecule ) )
Generated at Tue Jan 6 14:23:57 2004 for MPQC 2.2.1 using the documentation package Doxygen 1.3.4.