|
| 1 | +<?xml version="1.0" encoding="utf-8" ?> |
| 2 | + |
| 3 | +<!-- |
| 4 | + ECCE-QM: the small HF/DFT engine bundled with ECCE (src/qm, program |
| 5 | + ecce-qm), for teaching-size molecules. Runs on the machine ECCE runs |
| 6 | + on; there is nothing to install or register. |
| 7 | +
|
| 8 | + Kept deliberately small, because it is for students: HF and DFT |
| 9 | + (SVWN, PBE, B3LYP, PBE0), Energy only so far (to add Opt, add its |
| 10 | + runtype to the theories below, teach ai.ecceqm's RunType() and the |
| 11 | + input format a gradient step), and a fixed list of basis sets chosen |
| 12 | + from the Calculation Editor's quick-pick menu. The Basis Set Tool is |
| 13 | + not used. |
| 14 | +
|
| 15 | + The code's name, ECCE-QM, appears here (the file name), in |
| 16 | + ResourceDescriptor*.xml, the machine lists (siteconfig/Machines), |
| 17 | + RefMachine.C's bundledCode(), scripts/gensub and the mimetypes. |
| 18 | +
|
| 19 | + Orbitals come from ecce-qm's own output (scripts/parsers/ecceqm.parse), |
| 20 | + columns in ECCE's order (atoms, then shells sorted by angular momentum); |
| 21 | + MOOrdering below gives the order within a shell, taken from libcint's |
| 22 | + real harmonics by fitting each function to monomials, and checked by |
| 23 | + trace(P S) equal to the electron count. |
| 24 | +--> |
| 25 | + |
| 26 | +<appdescriptor> |
| 27 | + |
| 28 | +<GaussianBasisSetRules> |
| 29 | + <MaxLValue>4</MaxLValue> |
| 30 | + <ECPS>False</ECPS> |
| 31 | + <GeneralContractions>False</GeneralContractions> |
| 32 | + <PreferOptimization> True</PreferOptimization> |
| 33 | + <MaxPrimitives>100 100 100 100 100 100</MaxPrimitives> |
| 34 | + <MaxSharedExponent> 1 </MaxSharedExponent> |
| 35 | + <SphericalCoordinates> True </SphericalCoordinates> |
| 36 | + <SphericalOnly>True</SphericalOnly> |
| 37 | + <DFTFitting> False</DFTFitting> |
| 38 | + <RecommendDFTCharge> False </RecommendDFTCharge> |
| 39 | + <RequireFullDFT> False </RequireFullDFT> |
| 40 | + <MaxTotalFunctions> 500</MaxTotalFunctions> |
| 41 | + <MaxTotalPrimitives> 7500</MaxTotalPrimitives> |
| 42 | + <MultipleOrbitals> false</MultipleOrbitals> |
| 43 | + <LibraryNames> False</LibraryNames> |
| 44 | + <AllowMultipleOrbitals>False</AllowMultipleOrbitals> |
| 45 | +</GaussianBasisSetRules> |
| 46 | + |
| 47 | +<SupportsConstraints>false</SupportsConstraints> |
| 48 | + |
| 49 | +<!-- Per-code switch for the MO correlation diagram. The students of the |
| 50 | + course this engine was written for are meant to construct the diagram |
| 51 | + themselves, so it is not offered; the MO list, energies, occupations |
| 52 | + and orbital pictures are. Delete the line (or say true) to lift it. --> |
| 53 | +<SupportsMODiagram>false</SupportsMODiagram> |
| 54 | + |
| 55 | +<!-- Cartesian orbitals are not offered (the engine takes spherical |
| 56 | + d and f), so this table is never read. --> |
| 57 | +<MOOrdering type="cartesian" > |
| 58 | + <lshell lval="0" a1="1"></lshell> |
| 59 | + <lshell lval="1" a1="x" a2="y" a3="z"></lshell> |
| 60 | + <lshell lval="2" a1="xx" a2="yy" a3="zz" a4="xy" a5="xz" |
| 61 | + a6="yz"></lshell> |
| 62 | + <lshell lval="3" a1="xxx" a2="yyy" a3="zzz" a4="xyy" a5="xxy" a6="xxz" |
| 63 | + a7="xzz" a8="yzz" a9="yyz" a10="xyz"></lshell> |
| 64 | + <lshell lval="4" a1="zzzz" a2="yzzz" a3="yyzz" a4="yyyz" a5="yyyy" |
| 65 | + a6="xzzz" a7="xyzz" a8="xyyz" a9="xyyy" a10="xxzz" |
| 66 | + a11="xxyz" a12="xxyy" a13="xxxz" a14="xxxy" |
| 67 | + a15="xxxx"></lshell> |
| 68 | +</MOOrdering> |
| 69 | + |
| 70 | +<!-- libcint's real solid harmonics, m = -l .. +l. p is x y z; d is |
| 71 | + xy yz z2 xz x2-y2; f is y(3x2-y2) xyz y(4z2-x2-y2) z(2z2-3x2-3y2) |
| 72 | + x(4z2-x2-y2) z(x2-y2) x(x2-3y2). Each function's own scale is |
| 73 | + irrelevant, its signs and ratios are not. --> |
| 74 | +<MOOrdering type="spherical" > |
| 75 | + <lshell lval="0" a1="1"></lshell> |
| 76 | + <lshell lval="1" a1="x" a2="y" a3="z"></lshell> |
| 77 | + <lshell lval="2" a1="xy" a2="yz" a3="-xx/2-yy/2+zz" a4="xz" |
| 78 | + a5="xx/2-yy/2"></lshell> |
| 79 | + <lshell lval="3" a1="3xxy/2-yyy/2" a2="xyz" a3="-xxy/2-yyy/2+2yzz" |
| 80 | + a4="-3xxz/2-3yyz/2+zzz" a5="-xxx/2-xyy/2+2xzz" a6="xxz/2-yyz/2" |
| 81 | + a7="xxx/2-3xyy/2"></lshell> |
| 82 | +</MOOrdering> |
| 83 | + |
| 84 | +<!-- The basis sets the Calculation Editor offers (its quick-pick menu, |
| 85 | + in this order), and the one a new calculation starts with. The Basis |
| 86 | + Set Tool is hidden for this code. One list, here. --> |
| 87 | +<Editor theorydialog="ecceqmtheory.py" |
| 88 | + basisSetPicks="STO-3G,3-21G,6-31G*,cc-pVDZ,def2-SVP" |
| 89 | + basisSetDefault="6-31G*" |
| 90 | + basisSetToolHidden="true"> |
| 91 | + <!-- DFT first: a new calculation starts as B3LYP. --> |
| 92 | + <Theory category="DFT" name="DFT"> |
| 93 | + <runtype>Energy</runtype> |
| 94 | + </Theory> |
| 95 | + <Theory category="SCF" name="HF"> |
| 96 | + <runtype>Energy</runtype> |
| 97 | + </Theory> |
| 98 | + |
| 99 | + <TheorySummary> |
| 100 | + <item key="ES.Theory.DFT.XCFunctionals" label="DFT Functional"></item> |
| 101 | + </TheorySummary> |
| 102 | +</Editor> |
| 103 | + |
| 104 | +<DataFiles> |
| 105 | + <Input type="primary" mimetype="chemical/x-ecceqm-input" comment="true" commentstring="#">ecceqm.qmin</Input> |
| 106 | + <Output type="primary" mimetype="chemical/x-ecceqm-output">ecceqm.qmout</Output> |
| 107 | + <Output type="parse" verifypattern="program ecce-qm" mimetype="chemical/x-ecceqm-output">ecceqm.qmout</Output> |
| 108 | +</DataFiles> |
| 109 | + |
| 110 | +<IntegrationFiles> |
| 111 | + <Template>ecceqm.tpl</Template> |
| 112 | + <InputGenerator>ai.ecceqm</InputGenerator> |
| 113 | + <Importer>ECCE-QM.expt</Importer> |
| 114 | + <ParseSpecification>ecceqm.desc</ParseSpecification> |
| 115 | + <BasisTranslationScript>std2ECCEQM</BasisTranslationScript> |
| 116 | + <LaunchPreprocessor>ecceqm.launchpp</LaunchPreprocessor> |
| 117 | +</IntegrationFiles> |
| 118 | + |
| 119 | +</appdescriptor> |
0 commit comments