triqs_dftkit.wien2k.ctqmcout

Pure-Python generation of the dmftproj correlated-shell projector file (case.ctqmcout), replacing the projector path of the dmftproj Fortran executable (outputqmc.f subroutine outqmc).

Given the alm/blm coefficient files (case.almblmup / case.almblmdn, one per spin), the projector definition (case.indmftpr), the structure (case.struct) and the symmetry input (case.dmftsym), this rebuilds the correlated (Wannier) projector pr_crorb%mat_rep and writes case.ctqmcout in the format the converter reads.

It follows the Fortran path field by field:

  • almblm read order (dmftproj.f:559-689): header, per-sort per-l overlap block, then per-k banners + idum/nbmin/nbmax + rtetr/eband lines, then the per-(l,m) (Alm,Blm) / Clm complex coefficients in the canonical Wien2k lm packing lm = l*l + (m+l) + 1.

  • band-window selection (set_projections.f:89-129, proj_mode==0).

  • raw correlated projector P(m,ib) = Alm(lm) + sum_ilo Clm(ilo,lm)*ovl_LO_u (set_projections.f:243-267); Blm and the radial s12 do not enter pr_crorb.

  • local rotation rot_projectmat (Wigner-D of rotloc, identity here) then the angular-basis transform mat_rep = transmat . (Rloc . P) where transmat = <new_i|lm> is the cubic-harmonics transform (set_projections.f:450-478).

  • Loewdin orthonormalization of the stacked correlated projectors, P <- O^{-1/2} P with O = D D^H over all correlated rows (orthogonal_wannier_SO, dmftproj.f:847). This step is what the ctqmcout numbers carry; it is applied per k over the full ndim x nbands stack.

  • the Rloc spinor block rotloc%rotrep (outputqmc.f:303-313), built from the symmetry operation mapping the representative atom onto each equivalent one (set_rotloc.f / setsym.f).

ctqmcout layout is outputqmc.f:66-613. The cubic transform uses the exact analytic harmonics; against a dmftproj with double-precision casts and full-precision templates the port reproduces case.ctqmcout to machine precision on a full-rank window.

Functions

write_ctqmcout(case)

Read <case>.almblm{up,dn}, <case>.indmftpr, <case>.struct, <case>.dmftsym and write <case>.ctqmcout in the dmftproj format.