source: ThirdParty/mpqc_open/src/lib/chemistry/qc/psi/mpqcpsi.dox@ 72461c

Action_Thermostats Add_AtomRandomPerturbation Add_RotateAroundBondAction Add_SelectAtomByNameAction Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.0 Candidate_v1.6.1 ChangeBugEmailaddress ChangingTestPorts ChemicalSpaceEvaluator Combining_Subpackages Debian_Package_split Debian_package_split_molecuildergui_only Disabling_MemDebug Docu_Python_wait EmpiricalPotential_contain_HomologyGraph_documentation Enable_parallel_make_install Enhance_userguide Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Example_ManyWaysToTranslateAtom Exclude_Hydrogens_annealWithBondGraph FitPartialCharges_GlobalError Fix_ChronosMutex Fix_StatusMsg Fix_StepWorldTime_single_argument Fix_Verbose_Codepatterns ForceAnnealing_goodresults ForceAnnealing_oldresults ForceAnnealing_tocheck ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion GeometryObjects Gui_displays_atomic_force_velocity IndependentFragmentGrids_IntegrationTest JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks RotateToPrincipalAxisSystem_UndoRedo StoppableMakroAction Subpackage_levmar Subpackage_vmg ThirdParty_MPQC_rebuilt_buildsystem TremoloParser_IncreasedPrecision TremoloParser_MultipleTimesteps Ubuntu_1604_changes stable
Last change on this file since 72461c was 860145, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit '0b990dfaa8c6007a996d030163a25f7f5fc8a7e7' as 'ThirdParty/mpqc_open'

  • Property mode set to 100644
File size: 9.6 KB
Line 
1
2/** \page mpqcpsi Running Psi 3 from MPQC
3
4<a href="http://www.psicode.org/">Psi 3</a>
5is a suite of <i>ab initio</i> codes related to the
6original Psi package started in Prof. Fritz Schaefer's
7group at UC Berkeley. Current version of MPQC works with stable
8versions of Psi 3 starting with 3.2.0.
9From now on we will refer to Psi 3 as simply Psi.
10Psi is written primarily in C and executes
11in serial mode only.
12The interface between Psi and MPQC is intended mainly for
13Psi users who wish to exploit MPQC's geometry optimization and frequency analyses
14capabilities with Psi energies and gradients.
15
16The following sections explain how to use Psi from MPQC:
17
18<ul>
19 <li> \ref psiworks
20 <li> \ref psienv
21 <li> \ref psiinp
22 <li> \ref psiexenv
23 <li> \ref psiwfn
24 <li> \ref examples
25</ul>
26
27\section psiworks How the MPQC-Psi interface works
28
29The current version of the interface is rather slim. It is only possible to
30import energies and gradients computed with Psi into MPQC, i.e. wave functions
31cannot be imported. All MPQC-Psi interaction happens via text files and system calls.
32MPQC generates input file for Psi, calls appropriate Psi modules, and then
33parses the output files for energies and gradients.
34
35
36\section psienv Environmental Variables
37
38Several environmental variables are used to control MPQC-Psi interaction:
39<dl>
40<dt><tt>PSIBIN</tt><dd> By default, MPQC will try to find Psi binaries under <tt>/usr/local/psi/bin</tt>.
41Use <tt>PSIBIN</tt> environmental variable to point to the right location.
42</dl>
43The rest of the Psi environment is job specific and specified in the input file.
44
45
46\section psiinp Preparing an input file
47
48As noted above, MPQC parses the input file, and as such the input file has to be in the MPQC
49OO input format. All features of usual MPQC input files are there (<tt>mpqc</tt> section,
50<tt>mole</tt> MolecularEnergy object, etc.).
51In addition the following rules apply:
52<ul>
53 <li> instead of using MPQC Wavefunction objects (CLHF, MBPT2, etc.),
54the Psi specific Wavefunction types (i.e. specializations of PsiWavefunction) have to be used.
55Presently the following specializations are
56supported: PsiCLHF, PsiHSOSHF, PsiUHF, PsiCCSD, PsiCCSD_T . The first three are directly
57analogous to MPQC Wavefunction types CLHF, HSOSHF, and UHF. The latter two do not have
58MPQC analogs yet. See appropriate class documentation on how to specify them properly.
59 <li> each Psi-specific Wavefunction object has to have a member object <tt>psienv</tt> of type
60PsiExEnv. PsiExEnv contains job specific information, such as the directory in which
61Psi input, output, and checkpoint files will be kept, filename prefix, scratch directories, etc.
62It makes sense to define one such object and simply refer to it from all
63PsiWavefunction objects. See PsiExEnv class documentation for more info.
64</ul>
65
66\section psiexenv Psi Execution Environment
67
68Each PsiWavefunction-derived class has to have a member object called <tt>psienv</tt>
69of type PsiExEnv. The following keywords are used by its KeyVal constructor:
70<dl>
71<dt><tt>cwd</tt><dd> The directory where to keep Psi input, checkpoint, stdout, stderr, and other
72files. Default is <tt>/tmp</tt>.
73<dt><tt>fileprefix</tt><dd> The file prefix to use for Psi checkpoint, scratch, and some ASCII files.
74Equivalent to keyword <tt>name</tt> in Psi <tt>psi:files:default</tt> section.
75Defaults to <tt>psi</tt>.
76<dt><tt>stdout</tt><dd> The file into which to redirect standard output of Psi modules.
77Defaults to <tt>psi.stdout</tt>.
78<dt><tt>stderr</tt><dd> The file into which to redirect standard error of Psi modules.
79Defaults to <tt>psi.stderr</tt>.
80<dt><tt>nscratch</tt><dd> The number of locations over which to stripe Psi binary
81files. Equivalent to keyword <tt>nvolume</tt> in Psi <tt>psi:files:default</tt> section.
82Default is 1.
83<dt><tt>scratch</tt><dd> The locations over which to stripe Psi binary
84files. Equivalent to keyword <tt>volume<i>x</i></tt> in Psi <tt>psi:files:default</tt> section.
85There's no default.
86</dl>
87
88Here's an example:
89<pre>
90 psienv<PsiExEnv>: (
91 cwd = ./
92 fileprefix = psi.test
93 nscratch = 2
94 scratch = [ "/scratch1/" "/scratch2/" ]
95 )
96</pre>
97<br>
98
99
100\section psiwfn PsiWavefunction specializations
101
102Class PsiWavefunction is derived from class Wavefunction, hence its
103KeyVal constructor uses all keywords that Wavefunction's KeyVal
104constructor uses (<tt>basis</tt>, <tt>molecule</tt>, etc.).
105In addition, PsiWavefunction's KeyVal constructor
106looks for the following keywords in the input file:
107<dl>
108<dt><tt>psienv</tt><dd> The PsiExEnv object that provides job specific
109Psi environment. There's no default.
110<dt><tt>docc</tt><dd> An optional array of integers that specifies
111the number of doubly-occupied orbitals in each irrep.
112<dt><tt>socc</tt><dd> An optional array of integers that specifies
113the number of singly-occupied orbitals in each irrep.
114<dt><tt>frozen_docc</tt><dd> An optional array of integers that specifies
115the number of doubly-occupied orbitals in each irrep frozen in correlated
116computations.
117<dt><tt>frozen_uocc</tt><dd> An optional array of integers that specifies
118the number of unoccupied orbitals in each irrep frozen in correlated
119computations.
120<dt><tt>total_charge</tt><dd> The total charge of the system. This keyword is
121queried only if neither <tt>docc</tt> nor <tt>socc</tt> are given.
122<dt><tt>multiplicity</tt><dd> The spin multiplicity of the system (2*M_S+1).
123This keyword is queried only if neither <tt>docc</tt> nor <tt>socc</tt>
124are given.
125<dt><tt>memory</tt><dd> The number of bytes of memory Psi modules
126associated with this PsiWavefunction are allowed to use. Default is
1272000000 (2 million bytes, approximately 2 MB).
128</dl>
129Note that keywords <tt>docc</tt>, <tt>socc</tt>, <tt>frozen_docc</tt>, <tt>frozen_uocc</tt>,
130<tt>total_charge</tt>, and <tt>multiplicity</tt> are used by appropriate specializations
131of PsiWavefunctions, i.e. PsiCLHF only checks for <tt>docc</tt>,
132etc.
133
134PsiWavefunction specializations PsiCCSD and PsiCCSD_T also look for keyword
135<tt>reference</tt> which specifies the reference wave function
136(an object of type PsiSCF). All classes for correlated Psi wave functions
137will require such an object.
138
139Here are a few examples of PsiWavefunctions:
140<pre>
141 \%
142 \% ROHF DZ on F atom
143 \%
144 mole<PsiHSOSHF>: (
145 docc = [ 2 0 0 0 0 1 1 0 ] socc = [ 0 0 0 0 0 0 0 1]
146 memory = 10000000
147
148 \% Psi Environment data
149 psienv<PsiExEnv>: (
150 cwd = ./
151 fileprefix = f.dz.test
152 stdout = f.dz.test.stdout
153 stderr = f.dz.test.stderr
154 nscratch = 1
155 scratch = [ "/scratch/mpqc/" ]
156 )
157
158 \% MolecularEnergy input
159 molecule<Molecule>: (
160 {atoms geometry} = {
161 F [ 0.0 0.0 0.0 ]
162 }
163 )
164
165 \% Basis input
166 basis<GaussianBasisSet>: (
167 molecule = $..:molecule
168 name = "DZ (Dunning)"
169 )
170
171 )
172</pre>
173<br>
174
175<pre>
176 \%
177 \% RHF CCSD/cc-pVDZ on water
178 \%
179 mole<PsiCCSD>: (
180 frozen_docc = [1 0 0 0]
181 memory = 40000000
182
183 \% Psi Environment data
184 psienv<PsiExEnv>: (
185 cwd = ./
186 fileprefix = h2o.ccpvdz.ccsd.test
187 nscratch = 1
188 scratch = [ "/tmp/" ]
189 )
190
191 \% MolecularEnergy input
192 molecule<Molecule>: (
193 {atoms geometry} = {
194 H [ -1.5 0.0 -0.3 ]
195 H [ 1.5 0.0 -0.3 ]
196 O [ 0.0 0.0 1.0 ]
197 }
198 )
199
200 \% Basis input
201 basis<GaussianBasisSet>: (
202 molecule = $..:molecule
203 name = "cc-pVDZ"
204 )
205
206 reference<PsiCLHF>: (
207 psienv = $..:psienv
208 molecule = $..:molecule
209 basis = $..:basis
210 total_charge = 0
211 multiplicity = 1
212 )
213 )
214</pre>
215<br>
216
217
218\section examples More examples
219
220This section contains some examples of complete inputs that specify an MPQC/Psi computations.
221
222Here's an optimization + subsequent frequency analysis on water molecule
223at the RHF CCSD 6-311G** level:
224<pre>
225\% Emacs should use -*- KeyVal -*- mode
226\% this file was automatically generated
227\% label: water test series
228\% molecule specification
229molecule<Molecule>: (
230 symmetry = C2V
231 unit = angstrom
232 { atoms geometry } = {
233 O [ 0.000000000000 0.000000000000 0.369372944000 ]
234 H [ 0.783975899000 0.000000000000 -0.184686472000 ]
235 H [ -0.783975899000 0.000000000000 -0.184686472000 ]
236 }
237)
238\% basis set specification
239basis<GaussianBasisSet>: (
240 name = "6-311G**"
241 molecule = $:molecule
242)
243\% Psi environment specification
244psienv<PsiExEnv>: (
245 cwd = ./
246 fileprefix = mpqcpsi
247 stdout = mpqcpsi.stdout
248 stderr = mpqcpsi.stderr
249 nscratch = 1
250 scratch = [ "/scratch/evaleev/" ]
251)
252
253mpqc: (
254 checkpoint = no
255 savestate = no
256 restart = no
257 coor<SymmMolecularCoor>: (
258 molecule = $:molecule
259 generator<IntCoorGen>: (
260 molecule = $:molecule
261 )
262 )
263 \% molecular coordinates for optimization do_energy = yes
264 do_gradient = no
265 \% method for computing the molecule's energy
266 mole<PsiCCSD>: (
267 molecule = $:molecule
268 basis = $:basis
269 coor = $..:coor
270 psienv = $:psienv
271 memory = 32000000
272 reference<PsiCLHF>: (
273 psienv = $:psienv
274 molecule = $:molecule
275 total_charge = 0
276 multiplicity = 1
277 basis = $:basis
278 memory = 32000000
279 )
280 hessian<FinDispMolecularHessian>: (
281 point_group<PointGroup>: symmetry = C2V
282 checkpoint = no
283 restart = no
284 )
285 )
286 optimize = yes
287 \% optimizer object for the molecular geometry
288 opt<QNewtonOpt>: (
289 max_iterations = 20
290 function = $..:mole
291 update<BFGSUpdate>: ()
292 convergence<MolEnergyConvergence>: (
293 cartesian = yes
294 energy = $..:..:mole
295 )
296 )
297\% vibrational frequency input
298 freq<MolecularFrequencies>: (
299 point_group<PointGroup>: symmetry = C2V
300 molecule = $:molecule
301 )
302)
303</pre>
304<br>
305
306*/
Note: See TracBrowser for help on using the repository browser.