DIAGPT Manual Input#
The unified Python workflow normally validates HDF5 inputs and generates this namelist. This page is for controlled manual runs.
MPPT reconstruction is not generally unitarily invariant. Non-Kramers degeneracies can be lifted; their interpretation also depends on S and applicable L/J completeness and selection convergence. Use the scientific validation rules before comparing MPPT2 spectra across input functions, partitions or selected spaces.
Structure#
DIAGPT reads &cidfil and then scans for &cidinp:
&cidfil prefix='Ce_', &end
Ce scalar states
&cidinp
zbig=.false.,
thrpri=0.25,
wmupa=1.0,
gap=0.05,
zshift=.false.,
zcontr=.false.,
znocal=.false.,
zwh0=.true.,
zrh0=.false.,
paver=1.0,
&end
DIAGPT requires the title line syntactically but does not use it as a scientific
input. zbig is normalized to .false. during startup.
Standard Fields#
Field |
Meaning |
Source default |
|---|---|---|
|
Prefix for the optional zeroth-order restart and |
required for manual files |
|
CI coefficient print threshold |
|
|
Multipartitioning weight: |
|
|
Minimum denominator separation used by intruder handling |
|
|
Apply the configured level shift in the pure-MPPT case |
|
|
One state-average weight per model-space state |
first state |
|
Write |
|
|
Read |
|
|
Build/diagonalize the zeroth-order Hamiltonian and exit before the full PT calculation |
|
|
Use generalized hole/particle Fock diagonals for denominators |
|
|
Force model-space degeneracy |
|
|
Read orbital-equivalence records after the namelist |
|
|
Enable very verbose diagnostic output |
|
zrh0 and zwh0 cannot both be true. Explicit paver values are converted to
absolute values and normalized over metat; at least one nonzero weight is
therefore required.
Forced Orbital Equivalence Records#
zequif applies only when zrh0=.true. reads a previously written zeroth-order record.
When enabled, append the equivalence data immediately after &end:
2
2 5 6
3 7 8 9
The first line is the number of equivalence groups. Each following line gives the group size and then that many 1-based orbital indices; the current reader accepts at most five orbitals per group.
Current limitation: the application loop computes each group’s average
hole occupation, particle occupation, removal energy, attachment energy, and
Fock diagonal but applies those values only to the final listed orbital. Do not
enable zequif for scientific runs until that implementation is corrected.
Zeroth-Order Restart Record#
zwh0=.true. writes one compiler-native unformatted sequential record to
<prefix>h0.1; zrh0=.true. reads the same layout:
norb, upper_unshifted_limit, lower_unshifted_limit, record_weight,
(hole_occupation(i), particle_occupation(i), removal_energy_eoip(i),
attachment_energy_eoea(i), fock_diagonal(i), i=1,norb)
Orbital entries use DIAGPT’s symmetry-sorted record order. Treat this file as a same-build restart rather than a portable interchange format; HDF5 remains the portable model-space and integral contract.
The compiled target-state ceiling is metat <= 1000. DIAGPT allocates CI
coefficient storage for the active ncf * metat extent, not for the full
compiled ceiling. Inputs above 1000 states fail HDF5 preflight rather than being
truncated.
DIAGPT always uses the repository-pinned PRIMME eigensolver. PRIMME is a mandatory CMake dependency, so a binary without it is not produced.
When more than half of the spectrum is requested, DIAGPT automatically expands the PRIMME search basis and uses blocks of up to eight vectors, capped at one quarter of the matrix dimension. The dimension cap keeps PRIMME’s restart space valid for small full-spectrum problems while avoiding single-vector locking in larger near-full-spectrum model spaces. This is not a user setting.
HDF5 Manual Route#
DIAGPT requires both the model space and all scalar/two-electron integrals in
the configured HDF5 file. MPPT_SELECTED chooses between the selected and full
HDF5 contracts:
export MPPT_HDF5_FILE=/path/to/calculation.h5
export MPPT_SELECTED=false # true only for the selected integral contract
diagpt < diagpt.inp > diagpt.log 2> diagpt.err
The file must contain /mppt/model_space/quasi_restricted with a valid
content_hash_fnv1a64. With MPPT_SELECTED=true, scalar integrals come from
the compact full-labelled J/K slices and the four pair-packed ERI blocks. With
MPPT_SELECTED false or unset, DIAGPT loads fock_full_packed and
int2e_full, keeps the latter in dense packed bijkl, and serves it through
ai(). See the complete selected/full contract.
Odd-electron model spaces carry zion and an auxiliary electron-at-infinity
marker in the HDF5 model metadata; no additional YAML flag is required. After
full-orbital remapping, this marker is 2*norb+1, outside the physical ERI
tables. Indexed diagram caches retain it as a zero-valued placeholder, including
when a pair is prepared before the diagram’s symmetry rejection. It does not
add a physical orbital or require an extra row in any integral dataset.
Normal outputs are the optional <prefix>h0.1 restart file and the
mppt_heffso_handoff_v3 <prefix>heffso.h5 handoff described in the
output contract. The handoff stores ordered determinants,
metat, and packed CASCI/selected-CI and MPPT2 matrices.