Repository navigation
Commit 5feeaa4
Add Quantum ESPRESSO code registration, phase 1 (scf only)
Implements phase 1 of docs/QE_ROADMAP.md: registration skeleton and
calculation='scf'. No relax, vc-relax, MD or phonons, and deliberately
no Vibration runtype -- ph.x needs pw.x -> ph.x -> dynmat.x, which
breaks ECCE's one-code-one-path model, so it is left out exactly as
MOPAC shipped without a TS runtype. No C++ changes.
Verified by generating decks and running them, not by inspection: all
four fixture inputs were produced by ai.qe from real .param/.frag pairs
and run through the installed pw.x (Debian 6.7) to JOB DONE -- bulk Si
(fixed occupations, forces+stress), water in a box (Gamma, two species),
fcc Al (smearing, the metal path), and triplet O2 (nspin=2, converging
to exactly 2.00 Bohr magneton). pw.x treats an unrecognised namelist
variable as fatal, so nothing passed silently. gensub was driven end to
end for both the serial and mpirun forms.
qe.desc declares six parse types and all six fire on the fixtures:
VERSION, TE, EWVEC, DELTAE, EGRADVEC, CPUSEC/ETIME. 865 -> 963 checks.
These fixtures test generation AND parsing as one pipeline, which is
not true of any other code's fixtures in this suite.
Pseudopotentials work differently from the roadmap's sketch, for a real
reason. A per-element combo in the dialog is not implementable: codereg
dialogs are standalone processes whose entire input is globals.py's
fixed argv, so nothing tells them which elements the structure contains.
The per-element resolution therefore lives in ai.qe, which reads the
.frag and scans /usr/share/espresso/pseudo (verified: 103 files, 103
elements, no collisions, coping with all four packaged naming shapes).
The dialog contributes pseudo_dir, a type preference applied with
fallback, and a live re-scanned status line. No filename is ever typed,
selection is driven by what is on disk, and a missing element is refused
by name -- the three actual requirements. That dialogs are never told
the fragment composition is a general gap worth recording; it blocks any
future per-element UI.
Two real bugs found while building it:
- ai.<code>'s template engine silently swallows die(). modifyInputFile
resolves each ##tag## through eval, so a die inside a resolver is
caught, the tag's line vanishes and the script exits 0 with a quietly
incomplete deck. Validation moved into the main flow. ai.mopac has the
same latent shape and should get its own issue.
- A bare top-level hash assignment placed after the main flow never runs,
so every atomic mass silently came out as the 1.0 placeholder.
Also verified against the binary: a "!" comment is fine inside a
namelist but fatal inside ATOMIC_SPECIES. Separately, no C++ in this
tree reads the .edml comment/commentstring attributes at all, so they
are dead everywhere.
NOT verified: nothing was run in the GUI. The New-Calculation menu
entry, save-to-dataserver, the CalcEd code-switch buttons and property
display are all untested, and testing the httpd.conf.ecce change needs
ecce-dataserver-stop first.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 99ab2ec commit 5feeaa4
29 files changed
Lines changed: 4251 additions & 0 deletions
File tree
- data/client
- cap
- config
- pixmaps
- packaging/dataserver
- scripts
- codereg
- parsers
- tests/parsers
- expected
- fixtures
- qe
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
0 commit comments