diff --git a/python/triqs_dftkit/wien2k/ctqmcout.py b/python/triqs_dftkit/wien2k/ctqmcout.py
new file mode 100644
index 0000000..009d456
--- /dev/null
+++ b/python/triqs_dftkit/wien2k/ctqmcout.py
@@ -0,0 +1,602 @@
+################################################################################
+#
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+#
+# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn
+#
+# TRIQS is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# TRIQS. If not, see .
+#
+################################################################################
+
+"""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 =
+ 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 coefficients are
+stored in dmftproj via a single-precision CMPLX cast (set_ang_trans.f:146);
+to match the committed file the transmat is cast to complex64 before use
+(the dft_tools #148 noise, e.g. 0.70710676908 for 1/sqrt2).
+"""
+
+import math
+import os
+import numpy as np
+
+
+# --- list-directed token stream over a Fortran free-form text file -----------
+
+class _Reader:
+ def __init__(self, path):
+ with open(path) as fh:
+ self._lines = fh.read().splitlines()
+ self._i = 0
+
+ def skip(self):
+ self._i += 1
+
+ def record(self):
+ toks = self._lines[self._i].split()
+ self._i += 1
+ return toks
+
+
+def _to_float(tok):
+ return float(tok.replace('D', 'E').replace('d', 'e'))
+
+
+def _to_complex(s):
+ s = s.strip().lstrip('(').rstrip(')')
+ re_s, im_s = s.split(',')
+ return complex(_to_float(re_s), _to_float(im_s))
+
+
+def _read_complex(r):
+ """Read one list-directed complex `(re,im)` value, possibly split over
+ whitespace tokens."""
+ buf = list(r.record())
+ while ')' not in ''.join(buf):
+ buf += r.record()
+ return _to_complex(''.join(buf))
+
+
+def _read_two_complex(r):
+ """Read a record holding two list-directed complex values (Alm, Blm)."""
+ buf = list(r.record())
+ while ''.join(buf).count(')') < 2:
+ buf += r.record()
+ s = ''.join(buf)
+ cut = s.index(')') + 1
+ return _to_complex(s[:cut]), _to_complex(s[cut:])
+
+
+# --- angular basis: cubic d transform transmat = ------------------
+# Wien2k cubic d convention dz2, dx2-y2, dxy, dxz, dyz (set_ang_trans cubic);
+# identical to symqmc._CUBIC[2].
+
+_CUBIC = {
+ 2: np.array([
+ [0, 0, 1, 0, 0],
+ [2 ** -0.5, 0, 0, 0, 2 ** -0.5],
+ [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5],
+ [0, 2 ** -0.5, 0, -(2 ** -0.5), 0],
+ [0, 2 ** -0.5, 0, 2 ** -0.5, 0],
+ ], dtype=complex),
+}
+
+
+def _reptrans(basis, l):
+ """transmat = . dmftproj stores cubic/fromfile coefficients via a
+ single-precision CMPLX cast (set_ang_trans.f:146); reproduce the float32
+ truncation so the written numbers match bit-for-bit."""
+ if basis == 'cubic' and l in _CUBIC:
+ return _CUBIC[l].astype(np.complex64).astype(np.complex128)
+ return np.eye(2 * l + 1, dtype=complex)
+
+
+# --- Wigner D matrix (dmftproj convention, setsym.f dmat) --------------------
+
+def _small_d(l, m, n, b):
+ f1 = (math.factorial(l + m) * math.factorial(l - m)) / \
+ (math.factorial(l + n) * math.factorial(l - n))
+ s = 0.0
+ for t in range(0, 2 * l + 1):
+ if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0:
+ f2 = (math.factorial(l + n) * math.factorial(l - n)) / \
+ (math.factorial(l - m - t) * math.factorial(m + n + t) *
+ math.factorial(l - n - t) * math.factorial(t))
+ f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 \
+ else math.sin(b / 2) ** (2 * l - m - n - 2 * t)
+ f4 = 1.0 if (2 * t + n + m) == 0 \
+ else math.cos(b / 2) ** (2 * t + n + m)
+ s += (-1) ** (l - m - t) * f2 * f3 * f4
+ return math.sqrt(f1) * s
+
+
+def _dmat(l, a, b, c, det):
+ D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex)
+ for m in range(-l, l + 1):
+ for n in range(-l, l + 1):
+ v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b)
+ if det < -0.5:
+ v *= (-1) ** l
+ D[m + l, n + l] = v
+ return D
+
+
+def _tmat(l):
+ T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex)
+ for m in range(-l, l + 1):
+ T[-m + l, m + l] = (-1) ** m
+ return T
+
+
+def _sqrt_inv(O):
+ """O^{-1/2} of a Hermitian matrix (orthogonal.f sqrtm with inv=.TRUE.:
+ Z diag(w^{-1/2}) Z^H). dmftproj evaluates 1/sqrt of the eigenvalue as a
+ *complex* sqrt (W_comp = CMPLX(W,0)), so a (numerically) negative
+ eigenvalue contributes i/sqrt(|w|) rather than NaN; reproduce that with a
+ complex power. The final result D1 @ conj(Z).T matches sqrtm exactly."""
+ w, Z = np.linalg.eigh(O)
+ D1 = Z * (w.astype(complex) ** -0.5) # Z @ diag(w^{-1/2})
+ return D1 @ np.conj(Z).T
+
+
+# --- inputs ------------------------------------------------------------------
+
+def _read_indmftpr(indmftpr):
+ raw = [l.split('!')[0].strip() for l in open(indmftpr)]
+ raw = [l for l in raw if l != '']
+ nsort = int(raw[0].split()[0])
+ mult = [int(x) for x in raw[1].split()][:nsort]
+ lmax = int(raw[2].split()[0])
+ i = 3
+ so = 0
+ sorts = []
+ for isort in range(nsort):
+ basis = raw[i].split()[0]
+ i += 1
+ if basis == 'fromfile':
+ i += 1
+ l_inc = [int(x) for x in raw[i].split()]
+ i += 1
+ ireps = [int(x) for x in raw[i].split()]
+ i += 1
+ correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2]
+ included_ls = [l for l in range(len(l_inc)) if l_inc[l] in (1, 2)]
+ if any(n > 0 for n in ireps):
+ i += 1
+ if correlated_ls:
+ so = int(raw[i].split()[0])
+ i += 1
+ sorts.append(dict(basis=basis, correlated_ls=correlated_ls,
+ included_ls=included_ls))
+ last = raw[-1].split()
+ e_bot, e_top = _to_float(last[0]), _to_float(last[1])
+ proj_mode = int(last[2]) if len(last) >= 3 else 0
+ return dict(nsort=nsort, mult=mult, lmax=lmax, sorts=sorts, so=so,
+ e_bot=e_bot, e_top=e_top, proj_mode=proj_mode)
+
+
+def _read_dmftsym(path):
+ lines = open(path).read().split('\n')
+ nsym = int(lines[0].split()[0])
+ perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)]
+ starts = [i for i, l in enumerate(lines) if 'Sym. op.' in l]
+ ops = []
+ for k, s in enumerate(starts[:nsym]):
+ toks = lines[s + 1].split()
+ a, b, g = (math.radians(float(x)) for x in toks[:3])
+ iprop = int(toks[3])
+ krotm = np.array([[_to_float(x) for x in lines[s + 2 + r].split()]
+ for r in range(3)])
+ ops.append(dict(perm=perms[k], a=a, b=b, g=g, iprop=iprop,
+ krotm=krotm))
+ return nsym, ops
+
+
+# --- almblm parsing ----------------------------------------------------------
+
+def _read_almblm(path, info):
+ nsort = info['nsort']
+ lmax = info['lmax']
+ mult = info['mult']
+ nlm = (lmax + 1) ** 2
+ natom = sum(mult)
+
+ r = _Reader(path)
+ elecn = _to_float(r.record()[0])
+ nk = int(r.record()[0])
+ r.record() # nloat
+ eferm = _to_float(r.record()[0])
+
+ nLO = {}
+ ovl_LO_u = {}
+ kp = [None] * nk
+
+ for isrt in range(1, nsort + 1):
+ for l in range(lmax + 1):
+ r.record() # u_dot_norm(l)
+ n = int(r.record()[0])
+ nLO[(l, isrt)] = n
+ for ilo in range(1, n + 1):
+ toks = r.record()
+ ovl_LO_u[(ilo, l, isrt)] = _to_float(toks[0])
+ for ik in range(nk):
+ r.skip() # "IK = .." banner
+ r.skip() # 3-int line
+ head = r.record()
+ nbmin, nbmax = int(head[1]), int(head[2])
+ nb = nbmax - nbmin + 1
+ if kp[ik] is None:
+ kp[ik] = dict(
+ nbmin=nbmin, nbmax=nbmax, eband=None, weight=None,
+ Alm=np.zeros((nlm, natom + 1, nb), dtype=complex),
+ Clm=np.zeros((1, nlm, natom + 1, nb), dtype=complex))
+ eband = np.empty(nb)
+ weight = None
+ for off in range(nb):
+ toks = r.record()
+ if off == 0:
+ weight = _to_float(toks[0])
+ eband[off] = _to_float(toks[1])
+ eband = eband - eferm
+ if kp[ik]['eband'] is None:
+ kp[ik]['eband'] = eband
+ kp[ik]['weight'] = weight
+ for imu in range(1, mult[isrt - 1] + 1):
+ iatom = sum(mult[:isrt - 1]) + imu
+ r.skip() # banner
+ r.record() # idum
+ for off in range(nb):
+ lm = 0
+ for l in range(lmax + 1):
+ for m in range(-l, l + 1):
+ alm, _blm = _read_two_complex(r)
+ kp[ik]['Alm'][lm, iatom, off] = alm
+ for ilo in range(nLO[(l, isrt)]):
+ clm = _read_complex(r)
+ kp[ik]['Clm'][ilo, lm, iatom, off] = clm
+ lm += 1
+
+ return dict(elecn=elecn, eferm=eferm, nk=nk, nlm=nlm, natom=natom,
+ nLO=nLO, ovl_LO_u=ovl_LO_u, kp=kp)
+
+
+# --- band-window selection (set_projections.f, proj_mode==0) -----------------
+
+def _select_window(nbmin, nbmax, eband, e1, e2):
+ included = False
+ nb_bot = nb_top = 0
+ for off, ib in enumerate(range(nbmin, nbmax + 1)):
+ e = eband[off]
+ if not included and e > e1 and e <= e2:
+ included = True
+ nb_bot = ib
+ elif included and e > e2:
+ nb_top = ib - 1
+ break
+ elif ib == nbmax and e > e1 and e <= e2:
+ nb_top = ib
+ included = True
+ if not included:
+ nb_bot = nb_top = 0
+ return included, nb_bot, nb_top
+
+
+# --- correlated / included orbital descriptors -------------------------------
+
+def _build_crorbs(info):
+ crorbs = []
+ for isort in range(1, info['nsort'] + 1):
+ sortinfo = info['sorts'][isort - 1]
+ for l in sortinfo['correlated_ls']:
+ for imu in range(1, info['mult'][isort - 1] + 1):
+ atom = sum(info['mult'][:isort - 1]) + imu
+ crorbs.append(dict(atom=atom, sort=isort, l=l,
+ basis=sortinfo['basis'], first=(imu == 1)))
+ return crorbs
+
+
+def _build_orbs(info):
+ orbs = []
+ for isort in range(1, info['nsort'] + 1):
+ sortinfo = info['sorts'][isort - 1]
+ for l in sortinfo['included_ls']:
+ for imu in range(1, info['mult'][isort - 1] + 1):
+ atom = sum(info['mult'][:isort - 1]) + imu
+ orbs.append(dict(atom=atom, sort=isort, l=l))
+ return orbs
+
+
+# --- Rloc spinor representation (set_rotloc.f / setsym.f) ---------------------
+
+def _rloc_rotrep(op, l, transmat):
+ """rotloc%rotrep(l)%mat, the 2(2l+1) spinor rotation in the new basis for a
+ non-mixing SO shell, with identity struct local rotation (rotloc_ref
+ Euler = 0). rotloc%rotl = blkdiag(ephase*D, conj(ephase)*D) with
+ D = D(R[isym])_{lm}, ephase = exp(i*phase/2); rotrep = S rotl S^H,
+ S = blkdiag(transmat, transmat). Returns (rotrep, timeinv)."""
+ a, b, g, iprop = op['a'], op['b'], op['g'], op['iprop']
+ krotm = op['krotm']
+ det2 = krotm[0, 0] * krotm[1, 1] - krotm[0, 1] * krotm[1, 0]
+ timeinv = det2 < 0.0
+ phase = (g - a) if timeinv else (a + g)
+ D = _dmat(l, a, b, g, float(iprop))
+ if timeinv:
+ D = _tmat(l) @ np.conj(D) # setsym.f:320-326 orbital time reversal
+ ephase = np.exp(1j * phase / 2)
+ d = 2 * l + 1
+ rotl = np.zeros((2 * d, 2 * d), dtype=complex)
+ rotl[:d, :d] = ephase * D
+ rotl[d:, d:] = np.conj(ephase) * D
+ S = np.zeros((2 * d, 2 * d), dtype=complex)
+ S[:d, :d] = transmat
+ S[d:, d:] = transmat
+ rotrep = S @ rotl @ np.conj(S.T)
+ return rotrep, timeinv
+
+
+# --- ctqmcout writer ---------------------------------------------------------
+
+def _fmt(x):
+ """One list-directed real, gfortran-style (leading sign space, ~17 sig)."""
+ return ' %.16E' % float(x)
+
+
+def _w(f, arr):
+ f.write(''.join(_fmt(x) for x in arr) + '\n')
+
+
+def _fmt_scalar(x):
+ x = float(x)
+ return '%.16f' % x if abs(x) < 1e5 else '%.16E' % x
+
+
+def write_ctqmcout(case):
+ """Read .almblm{up,dn}, .indmftpr, .struct,
+ .dmftsym and write .ctqmcout in the dmftproj format."""
+ info = _read_indmftpr(case + '.indmftpr')
+ nsym, ops = _read_dmftsym(case + '.dmftsym')
+
+ up, dn = case + '.almblmup', case + '.almblmdn'
+ if os.path.exists(up) and os.path.exists(dn):
+ spin_files = [up, dn]
+ else:
+ spin_files = [case + '.almblm']
+ ifSP = len(spin_files) == 2
+ ifSO = bool(info['so'])
+ ns = 2 if ifSP else 1
+
+ spins = [_read_almblm(p, info) for p in spin_files]
+ nk = spins[0]['nk']
+ elecn = spins[0]['elecn']
+
+ crorbs = _build_crorbs(info)
+ if any(cr['basis'] == 'fromfile' for cr in crorbs):
+ raise NotImplementedError(
+ 'ctqmcout for fromfile/mixing correlated bases is not yet covered '
+ 'by a test fixture; cubic and complex bases are supported')
+ orbs = _build_orbs(info)
+ ncrorb = len(crorbs)
+ norb = len(orbs)
+
+ # window in [e_bot, e_top]
+ windows = []
+ for ik in range(nk):
+ kp = spins[0]['kp'][ik]
+ windows.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'],
+ info['e_bot'], info['e_top']))
+
+ # window below e_bot (for qbbot)
+ win_below = []
+ for ik in range(nk):
+ kp = spins[0]['kp'][ik]
+ win_below.append(_select_window(kp['nbmin'], kp['nbmax'], kp['eband'],
+ -1e6, info['e_bot']))
+
+ # qbbot: point integration over bands below e_bot, is=1 only under SO
+ qbbot = 0.0
+ for ispin in range(ns):
+ for ik in range(nk):
+ incl, nb_bot, nb_top = win_below[ik]
+ if incl:
+ qbbot += (nb_top - nb_bot + 1) * spins[ispin]['kp'][ik]['weight']
+ if ifSO:
+ break
+
+ transmats = {(cr['l'], cr['sort']): _reptrans(cr['basis'], cr['l'])
+ for cr in crorbs}
+
+ # rotloc Euler angles per crorb: the symmetry op mapping the representative
+ # atom of the sort onto this atom (set_rotloc.f). With identity struct
+ # local rotation, rotloc%(a,b,g,iprop) are that op's Euler angles, and
+ # rot_projectmat applies dmat(l, a, b, g, iprop) in the |lm> basis
+ # (rot_projectmat.f:59-65). For atom 2 this is a non-trivial in-plane
+ # rotation (a=270) that mixes the m-rows; omitting it flips the m=1,2 rows.
+ rotloc_op = {}
+ for icr, cr in enumerate(crorbs):
+ iref = sum(info['mult'][:cr['sort'] - 1]) + 1
+ rotloc_op[icr] = next(o for o in ops
+ if o['perm'][iref - 1] == cr['atom'])
+
+ # ---- raw correlated projector mat_rep, then Loewdin orthonormalize ----
+ # mat_rep[(icr, ik, is)] -> (2l+1, nbsel)
+ mat_rep = {}
+ for icr, cr in enumerate(crorbs):
+ l = cr['l']
+ atom = cr['atom']
+ sort = cr['sort']
+ transmat = transmats[(l, sort)]
+ op = rotloc_op[icr]
+ rot = _dmat(l, op['a'], op['b'], op['g'], float(op['iprop']))
+ for ik in range(nk):
+ incl, nb_bot, nb_top = windows[ik]
+ if not incl:
+ continue
+ kp0 = spins[0]['kp'][ik]
+ off_bot = nb_bot - kp0['nbmin']
+ off_top = nb_top - kp0['nbmin']
+ for ispin in range(ns):
+ sp = spins[ispin]
+ kp = sp['kp'][ik]
+ nlo = sp['nLO'][(l, sort)]
+ nbsel = off_top - off_bot + 1
+ P = np.zeros((2 * l + 1, nbsel), dtype=complex)
+ for mi, m in enumerate(range(-l, l + 1)):
+ lm = l * l + (m + l) # 0-based packed index
+ for j, off in enumerate(range(off_bot, off_top + 1)):
+ val = kp['Alm'][lm, atom, off]
+ for ilo in range(nlo):
+ val += kp['Clm'][ilo, lm, atom, off] * \
+ sp['ovl_LO_u'][(ilo + 1, l, sort)]
+ P[mi, j] = val
+ # rot_projectmat (local rotation) then the basis transform
+ P = transmat @ (rot @ P)
+ mat_rep[(icr, ik, ispin)] = P
+
+ # Loewdin: per k stack all crorb rows (is=1 block then is=2 block per crorb)
+ for ik in range(nk):
+ incl, nb_bot, nb_top = windows[ik]
+ if not incl:
+ continue
+ blocks = []
+ layout = [] # (icr, is, nrows)
+ for icr, cr in enumerate(crorbs):
+ l = cr['l']
+ for ispin in range(ns):
+ blocks.append(mat_rep[(icr, ik, ispin)])
+ layout.append((icr, ispin, 2 * l + 1))
+ D = np.vstack(blocks) # ndim x nbnd
+ O = D @ np.conj(D.T)
+ S = _sqrt_inv(O)
+ D_orth = S @ D
+ row = 0
+ for icr, ispin, nrows in layout:
+ mat_rep[(icr, ik, ispin)] = D_orth[row:row + nrows, :]
+ row += nrows
+
+ # ---- Rloc rotrep per crorb ----
+ rloc_blocks = []
+ for cr in crorbs:
+ l = cr['l']
+ transmat = transmats[(l, cr['sort'])]
+ iref = sum(info['mult'][:cr['sort'] - 1]) + 1
+ op = next(o for o in ops if o['perm'][iref - 1] == cr['atom'])
+ rloc_blocks.append(_rloc_rotrep(op, l, transmat))
+
+ # ---- write ----
+ with open(case + '.ctqmcout', 'w') as f:
+ f.write('13.605698\n')
+ f.write('%6d\n' % nk)
+ f.write('%6d\n' % (1 if ifSP else 0))
+ f.write('%6d\n' % (1 if ifSO else 0))
+ f.write(' %s\n' % _fmt_scalar(qbbot))
+ f.write(' %s\n' % _fmt_scalar(elecn))
+
+ f.write('%6d\n' % norb)
+ for o in orbs:
+ dim = 2 * (2 * o['l'] + 1) if ifSO else 2 * o['l'] + 1
+ f.write('%6d %6d %6d %6d \n' % (o['atom'], o['sort'], o['l'], dim))
+
+ f.write('%6d\n' % ncrorb)
+ for cr in crorbs:
+ l = cr['l']
+ size = 2 * (2 * l + 1) if ifSO else 2 * l + 1
+ f.write('%6d %6d %6d %6d %6d %6d \n' %
+ (cr['atom'], cr['sort'], l, size, 1, 1))
+
+ # Rloc block per crorb (non-mixing SP+SO whole shell)
+ for rotrep, timeinv in rloc_blocks:
+ for m in range(rotrep.shape[0]):
+ _w(f, rotrep[m, :].real)
+ for m in range(rotrep.shape[0]):
+ _w(f, rotrep[m, :].imag)
+ f.write('%6d\n' % (1 if timeinv else 0))
+
+ # complex-harmonics -> basis transform block (crorb%first only)
+ for cr in crorbs:
+ if not cr['first']:
+ continue
+ l = cr['l']
+ transmat = transmats[(l, cr['sort'])]
+ d = 2 * l + 1
+ spinrot = np.zeros((2 * d, 2 * d), dtype=complex)
+ spinrot[:d, :d] = transmat
+ spinrot[d:, d:] = transmat
+ f.write('%6d %6d \n' % (1, 2 * d))
+ for m in range(2 * d):
+ _w(f, spinrot[m, :].real)
+ for m in range(2 * d):
+ _w(f, spinrot[m, :].imag)
+
+ # number of bands per k (skip is=2 under SO)
+ for ispin in range(ns):
+ if ifSP and ifSO and ispin == 1:
+ continue
+ for ik in range(nk):
+ incl, nb_bot, nb_top = windows[ik]
+ f.write('%6d\n' % abs(nb_top - nb_bot + 1))
+
+ # projector block: DO ik, DO icrorb (non-mixing SO whole-shell)
+ for ik in range(nk):
+ for icr, cr in enumerate(crorbs):
+ l = cr['l']
+ for ispin in range(ns):
+ P = mat_rep[(icr, ik, ispin)]
+ for mi in range(2 * l + 1):
+ _w(f, P[mi, :].real)
+ for ispin in range(ns):
+ P = mat_rep[(icr, ik, ispin)]
+ for mi in range(2 * l + 1):
+ _w(f, P[mi, :].imag)
+
+ # k-weights
+ for ik in range(nk):
+ f.write(' %s\n' % _fmt_scalar(spins[0]['kp'][ik]['weight']))
+
+ # H(k) eigenvalues (skip is=2 under SO)
+ for ispin in range(ns):
+ if ifSP and ifSO and ispin == 1:
+ continue
+ for ik in range(nk):
+ incl, nb_bot, nb_top = windows[ik]
+ kp = spins[ispin]['kp'][ik]
+ for ib in range(nb_bot, nb_top + 1):
+ f.write(' %s\n' % _fmt_scalar(kp['eband'][ib - kp['nbmin']]))
diff --git a/python/triqs_dftkit/wien2k/oubwin.py b/python/triqs_dftkit/wien2k/oubwin.py
new file mode 100644
index 0000000..46512ba
--- /dev/null
+++ b/python/triqs_dftkit/wien2k/oubwin.py
@@ -0,0 +1,267 @@
+################################################################################
+#
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+#
+# Copyright (C) 2011 by L. Pourovskii, V. Vildosola, C. Martins, M. Aichhorn
+#
+# TRIQS is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# TRIQS. If not, see .
+#
+################################################################################
+
+"""Pure-Python generation of the dmftproj band-window file (case.oubwin),
+replacing the corresponding output of the dmftproj Fortran executable.
+
+Given the alm/blm coefficient file (case.almblm, or the spin pair
+case.almblmup / case.almblmdn) and the projector definition (case.indmftpr),
+this selects, per k-point and spin, the contiguous band range whose Fermi-
+shifted Kohn-Sham eigenvalues fall in the energy window, and writes the
+result in the case.oubwin format read by the charge self-consistency.
+
+It reproduces the Fortran path: read elecn/nk/nloat/eferm from the almblm
+header (outbwin.f / dmftproj.f), parse the energy window (e_bot, e_top,
+proj_mode) from the last line of case.indmftpr, shift every band eigenvalue
+by eferm, and apply the proj_mode==0 selection of set_projections.f
+(strict lower bound e_bot < E, inclusive upper bound E <= e_top, yielding a
+single contiguous [nb_bot, nb_top] per k). The weight written per included
+k-point is the tetrahedron weight of the lowest band nbmin.
+
+Spin-polarization is detected from the input files: case.almblmup /
+case.almblmdn present => two spin files (case.oubwinup / case.oubwindn),
+otherwise the single case.oubwin. The spin-orbit flag (ifSO) comes from
+case.indmftpr; with -so the up and dn windows must coincide and dmftproj
+aborts otherwise, a check this generator also performs.
+"""
+
+import os
+import numpy as np
+
+
+# --- list-directed token stream over a Fortran free-form text file -----------
+
+class _Reader:
+ """Record-oriented reader mirroring Fortran list-directed and READ('()')
+ semantics on a free-form almblm file.
+
+ `record()` returns the whitespace tokens of the next physical line (the
+ common case: every almblm logical record fits on one line). `skip()`
+ consumes one physical line unconditionally, matching READ('()')."""
+
+ def __init__(self, path):
+ with open(path) as fh:
+ self._lines = fh.read().splitlines()
+ self._i = 0
+
+ def skip(self):
+ self._i += 1
+
+ def record(self):
+ toks = self._lines[self._i].split()
+ self._i += 1
+ return toks
+
+
+def _to_float(tok):
+ """Parse a Fortran real token, accepting D/d exponents (1.0D-3) and the
+ list-directed 4.57E-002 form. Python float already handles E/e and the
+ embedded sign in the exponent; only D/d needs translation."""
+ return float(tok.replace('D', 'E').replace('d', 'e'))
+
+
+# --- inputs ------------------------------------------------------------------
+
+def _read_window(indmftpr):
+ """Energy/band window from the last non-empty line of case.indmftpr.
+
+ Try list-directed `e_bot e_top proj_mode`; on failure fall back to
+ `e_bot e_top` with proj_mode=0 (dmftproj.f:182-197)."""
+ lines = [l for l in open(indmftpr).read().splitlines() if l.strip()]
+ toks = lines[-1].split()
+ e_bot, e_top = _to_float(toks[0]), _to_float(toks[1])
+ proj_mode = int(toks[2]) if len(toks) >= 3 else 0
+ return e_bot, e_top, proj_mode
+
+
+def _read_indmftpr_geometry(indmftpr):
+ """Return (nsort, lmax) from case.indmftpr. nsort is its first value and
+ lmax its third (dmftproj.f:95). Both are needed to walk the per-sort
+ almblm header up to the k-loop."""
+ raw = [l.split('!')[0].strip() for l in open(indmftpr)]
+ raw = [l for l in raw if l != '']
+ nsort = int(raw[0].split()[0])
+ lmax = int(raw[2].split()[0])
+ return nsort, lmax
+
+
+def _read_so_flag(indmftpr):
+ """Spin-orbit flag from case.indmftpr: the single integer line that
+ follows a correlated sort's irep specification (the value dmftproj stores
+ as ifSOflag). Returns 0 or 1."""
+ raw = [l.split('!')[0].strip() for l in open(indmftpr)]
+ raw = [l for l in raw if l != '']
+ nsort = int(raw[0].split()[0])
+ i = 3
+ so = 0
+ for _ in range(nsort):
+ basis = raw[i].split()[0]
+ i += 1
+ if basis == 'fromfile':
+ i += 1
+ l_inc = [int(x) for x in raw[i].split()]
+ i += 1
+ ireps = [int(x) for x in raw[i].split()]
+ i += 1
+ correlated = any(v == 2 for v in l_inc)
+ if any(n > 0 for n in ireps):
+ i += 1
+ if correlated:
+ so = int(raw[i].split()[0])
+ i += 1
+ return so
+
+
+# --- almblm parsing ----------------------------------------------------------
+
+def _read_almblm_windows(path, nsort, lmax):
+ """Read case.almblm and return (eferm, [(nbmin, nbmax, eband, weight) per
+ k-point]) for the FIRST atomic sort. nbmin/nbmax/eband/weight are identical
+ across sorts at a given k, so the first sort's k-loop suffices for window
+ selection.
+
+ Follows the dmftproj.f read order field by field: header, then the first
+ sort's per-l header (u_dot_norm, nLO, nLO overlap lines), then its k-loop
+ (two skipped banner lines, the idum/nbmin/nbmax line, the per-band
+ rtetr/eband lines)."""
+ r = _Reader(path)
+ r.record() # elecn
+ nk = int(r.record()[0])
+ r.record() # nloat
+ eferm = _to_float(r.record()[0]) # non-band path: eferm is header line 4
+
+ # First sort's per-l header: u_dot_norm, nLO, then nLO overlap lines.
+ for _ in range(lmax + 1):
+ r.record() # u_dot_norm(l)
+ nlo = int(r.record()[0])
+ for _ in range(nlo):
+ r.record() # ovl_LO_u, ovl_LO_udot
+
+ kpoints = []
+ for _ in range(nk):
+ r.skip() # "IK = .. jatom=.." banner
+ r.skip() # 3-int line
+ idum_nb = r.record()
+ nbmin, nbmax = int(idum_nb[1]), int(idum_nb[2])
+ eband = np.empty(nbmax - nbmin + 1)
+ weight = None
+ for off in range(nbmax - nbmin + 1):
+ toks = r.record()
+ rtetr = _to_float(toks[0])
+ eband[off] = _to_float(toks[1])
+ if off == 0: # tetrahedron weight of the lowest band
+ weight = rtetr
+ kpoints.append((nbmin, nbmax, eband, weight))
+ return eferm, kpoints
+
+
+# --- band-window selection (set_projections.f, proj_mode==0) -----------------
+
+def _select_window(nbmin, nbmax, eband, eferm, e_bot, e_top):
+ """proj_mode==0 contiguous band selection for one k-point.
+
+ Scan absolute band index ib = nbmin..nbmax over the Fermi-shifted energy
+ E = eband - eferm. The first ib with e_bot < E <= e_top opens the window;
+ the first ib above it with E > e_top closes it at ib-1 (scan exits). A
+ window reaching nbmax closes at nbmax. Returns (included, nb_bot, nb_top)
+ with nb_bot=nb_top=0 when no band qualifies."""
+ included = False
+ nb_bot = nb_top = 0
+ for off, ib in enumerate(range(nbmin, nbmax + 1)):
+ e = eband[off] - eferm
+ if not included and e_bot < e <= e_top:
+ included = True
+ nb_bot = ib
+ elif included and e > e_top:
+ nb_top = ib - 1
+ break
+ elif ib == nbmax and e_bot < e <= e_top:
+ nb_top = ib
+ included = True
+ if not included:
+ nb_bot = nb_top = 0
+ return included, nb_bot, nb_top
+
+
+def _windows_for_spin(almblm, indmftpr, nsort, lmax, e_bot, e_top, proj_mode):
+ """Per-k (included, nb_bot, nb_top, weight) for one spin's almblm file."""
+ if proj_mode != 0:
+ raise NotImplementedError(
+ 'oubwin generation is implemented for the energy-window '
+ 'projection mode (proj_mode==0); band-index modes 1 and 2 are '
+ 'not yet covered by a test fixture')
+ eferm, kpoints = _read_almblm_windows(almblm, nsort, lmax)
+ out = []
+ for nbmin, nbmax, eband, weight in kpoints:
+ incl, nb_bot, nb_top = _select_window(
+ nbmin, nbmax, eband, eferm, e_bot, e_top)
+ out.append((incl, nb_bot, nb_top, weight))
+ return out
+
+
+# --- output ------------------------------------------------------------------
+
+def _write_oubwin_file(path, ifso, windows):
+ """Write one case.oubwin spin file (outbwin.f). Integer fields are i6;
+ the per-k weight is a list-directed real. Not-included k-points emit only
+ the flag line."""
+ with open(path, 'w') as f:
+ f.write('%6d\n' % len(windows))
+ f.write('%6d\n' % (1 if ifso else 0))
+ for incl, nb_bot, nb_top, weight in windows:
+ f.write('%6d\n' % (1 if incl else 0))
+ if incl:
+ f.write('%6d%6d\n' % (nb_bot, nb_top))
+ f.write(' %.16f \n' % weight)
+
+
+def write_oubwin(case):
+ """Read .almblm{up,dn} (or .almblm) and write the matching
+ .oubwin{up,dn} (or .oubwin) in the dmftproj format.
+
+ Spin-polarization is inferred from the input files. The spin-orbit flag
+ written into every file comes from case.indmftpr; under -sp+-so the up/dn
+ windows must coincide (dmftproj aborts otherwise)."""
+ indmftpr = case + '.indmftpr'
+ nsort, lmax = _read_indmftpr_geometry(indmftpr)
+ ifso = _read_so_flag(indmftpr)
+ e_bot, e_top, proj_mode = _read_window(indmftpr)
+
+ up, dn = case + '.almblmup', case + '.almblmdn'
+ spin_polarized = os.path.exists(up) and os.path.exists(dn)
+
+ if spin_polarized:
+ win_up = _windows_for_spin(
+ up, indmftpr, nsort, lmax, e_bot, e_top, proj_mode)
+ win_dn = _windows_for_spin(
+ dn, indmftpr, nsort, lmax, e_bot, e_top, proj_mode)
+ if ifso:
+ for u, d in zip(win_up, win_dn):
+ if u[0] != d[0] or u[1] != d[1] or u[2] != d[2]:
+ raise ValueError(
+ 'spin-orbit run requires identical up/dn band '
+ 'windows at every k-point')
+ _write_oubwin_file(case + '.oubwinup', ifso, win_up)
+ _write_oubwin_file(case + '.oubwindn', ifso, win_dn)
+ else:
+ win = _windows_for_spin(
+ case + '.almblm', indmftpr, nsort, lmax, e_bot, e_top, proj_mode)
+ _write_oubwin_file(case + '.oubwin', ifso, win)
diff --git a/python/triqs_dftkit/wien2k/symqmc.py b/python/triqs_dftkit/wien2k/symqmc.py
new file mode 100644
index 0000000..22e9a2d
--- /dev/null
+++ b/python/triqs_dftkit/wien2k/symqmc.py
@@ -0,0 +1,293 @@
+################################################################################
+#
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+#
+# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola
+#
+# TRIQS is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# TRIQS. If not, see .
+#
+################################################################################
+
+"""Pure-Python generation of the dmftproj correlated-shell symmetry file
+(case.symqmc), replacing the corresponding output of the dmftproj Fortran
+executable.
+
+Given the dmftproj symmetry input (case.dmftsym), the projector definition
+(case.indmftpr) and the structure (case.struct), this builds the spinor symmetry
+matrices and writes them in the case.symqmc format the converter reads. It
+reproduces the Fortran construction: the Wigner D matrix (dmat), the orbital
+time-reversal operator for the magnetic (SP+SO) operations, the basis transform
+to the chosen angular harmonics, and the spin-1/2 phase blocks.
+
+Covers all dmftproj spin-orbit cases:
+
+- non-mixing spin-diagonal bases (complex, cubic, and a fromfile basis whose
+ spin-up and spin-down blocks coincide): the spin-reduced up/up block scaled
+ by the +-(a+g)/2 phase, with the orbital time-reversal operator on the
+ magnetic operations;
+- mixing bases (a fromfile basis that couples spin, e.g. the |j, m_j> basis):
+ the full 2(2l+1) spinor representation P spinrot P^dag, with the spinor
+ time-reversal operator -i sigma_y (x) T applied to the magnetic operations;
+- l = 0 (s) shells: the 2x2 spin phase block.
+
+The mixing fromfile path is the one dft_tools #148 singles out. dmftproj reads
+that basis with a single-precision CMPLX cast and a 250-column line cap (Fortran
+set_ang_trans.f), so its case.symqmc carries a ~1e-7 error there; this generator
+is full double precision.
+"""
+
+import math
+import os
+import numpy as np
+
+# --- angular bases (transpose(P) = , m = -l..l) -----------------------
+
+_COMPLEX = {l: np.eye(2 * l + 1, dtype=complex) for l in range(4)}
+
+# standard cubic harmonics, Wien2k convention
+_CUBIC = {
+ 1: np.array([[0, 1, 0], [-1j, 0, -1j], [1, 0, -1]], dtype=complex) / 1.0,
+ 2: np.array([
+ [0, 0, 1, 0, 0],
+ [2 ** -0.5, 0, 0, 0, 2 ** -0.5],
+ [-(2 ** -0.5), 0, 0, 0, 2 ** -0.5],
+ [0, 2 ** -0.5, 0, -(2 ** -0.5), 0],
+ [0, 2 ** -0.5, 0, 2 ** -0.5, 0],
+ ], dtype=complex),
+}
+
+
+def _reptrans(basis, l):
+ if basis == 'cubic' and l in _CUBIC:
+ return _CUBIC[l]
+ return _COMPLEX[l]
+
+
+# --- Wigner D matrix (dmftproj convention, setsym.f) -------------------------
+
+def _small_d(l, m, n, b):
+ f1 = (math.factorial(l + m) * math.factorial(l - m)) / \
+ (math.factorial(l + n) * math.factorial(l - n))
+ s = 0.0
+ for t in range(0, 2 * l + 1):
+ if (l - m - t) >= 0 and (l - n - t) >= 0 and (t + n + m) >= 0:
+ f2 = (math.factorial(l + n) * math.factorial(l - n)) / \
+ (math.factorial(l - m - t) * math.factorial(m + n + t) *
+ math.factorial(l - n - t) * math.factorial(t))
+ f3 = 1.0 if (2 * l - m - n - 2 * t) == 0 else math.sin(b / 2) ** (2 * l - m - n - 2 * t)
+ f4 = 1.0 if (2 * t + n + m) == 0 else math.cos(b / 2) ** (2 * t + n + m)
+ s += (-1) ** (l - m - t) * f2 * f3 * f4
+ return math.sqrt(f1) * s
+
+
+def _dmat(l, a, b, c, det):
+ D = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex)
+ for m in range(-l, l + 1):
+ for n in range(-l, l + 1):
+ v = np.exp(1j * n * a) * np.exp(1j * m * c) * _small_d(l, m, n, b)
+ if det < -0.5:
+ v *= (-1) ** l
+ D[m + l, n + l] = v
+ return D
+
+
+def _tmat(l):
+ """Complex-conjugation operator in the spherical-harmonic basis,
+ T[m, -m] = (-1)^m (timeinv.f)."""
+ T = np.zeros((2 * l + 1, 2 * l + 1), dtype=complex)
+ for m in range(-l, l + 1):
+ T[-m + l, m + l] = (-1) ** m
+ return T
+
+
+def _timeinv_orbital(l, mat):
+ return _tmat(l) @ np.conj(mat)
+
+
+# --- fromfile angular basis ---------------------------------------------------
+
+def _read_fromfile(path, l):
+ """Parse a dmftproj fromfile basis (each line: the coefficients of a new
+ basis vector in {|m,up>, |m,dn>}, m = -l..l, real/imag interleaved; '*'
+ marks the end of an irep). Return (P, mixing) where P = is the
+ transform matrix (reptrans.transmat), full 2(2l+1) for a spin-mixing basis
+ or the (2l+1) up/up block otherwise."""
+ n = 2 * (2 * l + 1)
+ rows = []
+ for line in open(path):
+ line = line.rstrip('\n')
+ if not line.strip():
+ continue
+ body = line[1:]
+ vals = [float(x) for x in body.split()][:2 * n]
+ rows.append([vals[2 * k] + 1j * vals[2 * k + 1] for k in range(n)])
+ if len(rows) == n:
+ break
+ R = np.array(rows) # R[i, :] = |new_i> in old basis
+ d = 2 * l + 1
+ up_up, up_dn = R[:d, :d], R[:d, d:]
+ dn_up, dn_dn = R[d:, :d], R[d:, d:]
+ mixing = not (np.allclose(dn_dn, up_up) and
+ np.allclose(up_dn, 0) and np.allclose(dn_up, 0))
+ P = np.conj(R) if mixing else np.conj(up_up) # = conj()
+ return P, mixing
+
+
+# --- input parsing -----------------------------------------------------------
+
+def _read_dmftsym(path):
+ lines = open(path).read().split('\n')
+ nsym = int(lines[0].split()[0])
+ perms = [[int(x) for x in lines[1 + i].split()] for i in range(nsym)]
+ rest = lines[1 + nsym:]
+ starts = [i for i, l in enumerate(rest) if 'Sym. op.' in l]
+ ops = []
+ for k, s in enumerate(starts):
+ ang = rest[s + 1].split()
+ a, b, c = (math.radians(float(x)) for x in ang[:3])
+ krotm = np.array([[float(x) for x in rest[s + 2 + r].split()] for r in range(3)])
+ ops.append(dict(perm=perms[k], a=a, b=b, c=c, krotm=krotm))
+ return nsym, ops
+
+
+def _read_correlated_shells(indmftpr, struct):
+ """Return the list of correlated shells, one entry per correlated atom, plus
+ the SO flag, from case.indmftpr and case.struct multiplicities. Each shell
+ carries l, the basis name, its transform matrix P = and a mixing
+ flag (True for a spin-coupling fromfile basis)."""
+ raw = [l.split('!')[0].strip() for l in open(indmftpr)]
+ raw = [l for l in raw if l != '']
+ nsort = int(raw[0].split()[0])
+ mult = [int(x) for x in raw[1].split()][:nsort]
+ i = 3
+ so = 0
+ shells = []
+ for isort in range(nsort):
+ basis = raw[i].split()[0]
+ i += 1
+ sourcefile = None
+ if basis == 'fromfile':
+ sourcefile = os.path.join(os.path.dirname(indmftpr), raw[i])
+ i += 1
+ l_inc = [int(x) for x in raw[i].split()]
+ i += 1
+ ireps = [int(x) for x in raw[i].split()]
+ i += 1
+ correlated_ls = [l for l in range(len(l_inc)) if l_inc[l] == 2]
+ if any(n > 0 for n in ireps):
+ i += 1 # skip the correps line
+ if correlated_ls:
+ so = int(raw[i].split()[0]) # SO flag follows a correlated sort
+ i += 1
+ for l in correlated_ls:
+ if basis == 'fromfile':
+ P, mixing = _read_fromfile(sourcefile, l)
+ else:
+ P, mixing = _reptrans(basis, l), False
+ for _ in range(mult[isort]):
+ shells.append(dict(l=l, basis=basis, P=P, mixing=mixing))
+ return shells, so
+
+
+def write_symqmc(case):
+ """Write .symqmc from .dmftsym, .indmftpr, .struct."""
+ nsym, ops = _read_dmftsym(case + '.dmftsym')
+ shells, so = _read_correlated_shells(case + '.indmftpr', case + '.struct')
+ natom = len(ops[0]['perm'])
+
+ timeinv = []
+ for op in ops:
+ det2 = op['krotm'][0, 0] * op['krotm'][1, 1] - op['krotm'][0, 1] * op['krotm'][1, 0]
+ timeinv.append(1 if (so and det2 < 0.0) else 0)
+
+ with open(case + '.symqmc', 'w') as f:
+ f.write('%6d %6d\n' % (nsym, natom))
+ for op in ops:
+ f.write(''.join('%6d ' % p for p in op['perm']) + '\n')
+ if so:
+ f.write(''.join('%6d ' % t for t in timeinv) + '\n')
+ for isym, op in enumerate(ops):
+ for sh in shells:
+ f.write(_format_matrix(_shell_matrix(op, sh, timeinv[isym])))
+
+
+def _shell_matrix(op, shell, ti):
+ """Spinor symmetry matrix for one correlated shell under one operation."""
+ l = shell['l']
+ if l == 0:
+ return _l0_matrix(op, ti)
+ if shell['mixing']:
+ return _mixing_matrix(op, shell, ti)
+ return _nonmixing_matrix(op, shell, ti)
+
+
+def _phase(op, ti):
+ a, c = op['a'], op['c']
+ return (c - a) if ti else (a + c) # (g-a) on magnetic ops, else (a+g)
+
+
+def _l0_matrix(op, ti):
+ """s shell: 2x2 spin phase block diag(e, conj(e)) (outputqmc.f l==0)."""
+ e = np.exp(1j * _phase(op, ti) / 2)
+ return np.array([[e, 0], [0, np.conj(e)]], dtype=complex)
+
+
+def _nonmixing_matrix(op, shell, ti):
+ """Spin-diagonal basis: the up/up block scaled by +-(a+g)/2, with the
+ orbital time-reversal operator on the magnetic operations."""
+ l, P = shell['l'], shell['P']
+ rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm']))
+ if ti:
+ rotl = _timeinv_orbital(l, rotl)
+ rotrep = P @ rotl @ np.conj(P.T)
+ e = np.exp(1j * _phase(op, ti) / 2)
+ d = 2 * l + 1
+ mat = np.zeros((2 * d, 2 * d), dtype=complex)
+ mat[:d, :d] = e * rotrep
+ mat[d:, d:] = np.conj(e) * rotrep
+ return mat
+
+
+def _mixing_matrix(op, shell, ti):
+ """Spin-coupling basis: full 2(2l+1) spinor representation. The orbital
+ rotation enters block-diagonal (beta=0) or block-antidiagonal (beta=pi, the
+ magnetic operations); the spinor time-reversal -i sigma_y (x) T is then
+ applied to the magnetic operations (setsym.f, timeinv.f)."""
+ l, P = shell['l'], shell['P']
+ rotl = _dmat(l, op['a'], op['b'], op['c'], np.linalg.det(op['krotm']))
+ e = np.exp(1j * _phase(op, ti) / 2)
+ d = 2 * l + 1
+ spinrot = np.zeros((2 * d, 2 * d), dtype=complex)
+ if ti: # beta = pi, block-antidiagonal
+ spinrot[:d, d:] = e * rotl
+ spinrot[d:, :d] = -np.conj(e) * rotl
+ else: # beta = 0, block-diagonal
+ spinrot[:d, :d] = e * rotl
+ spinrot[d:, d:] = np.conj(e) * rotl
+ rotrep = P @ spinrot @ np.conj(P.T)
+ if ti:
+ tm = _tmat(l)
+ tinv = np.zeros((2 * d, 2 * d), dtype=complex)
+ tinv[:d, d:] = -tm
+ tinv[d:, :d] = tm
+ rotrep = (P @ tinv @ P.T) @ np.conj(rotrep)
+ return rotrep
+
+
+def _format_matrix(mat):
+ out = []
+ for part in (mat.real, mat.imag):
+ for row in part:
+ out.append(''.join(' %.14E' % x for x in row) + '\n')
+ return ''.join(out)
diff --git a/test/python/wien2k/CMakeLists.txt b/test/python/wien2k/CMakeLists.txt
index d9968e3..c651c72 100644
--- a/test/python/wien2k/CMakeLists.txt
+++ b/test/python/wien2k/CMakeLists.txt
@@ -11,3 +11,55 @@ add_test(NAME Py_wien2k_convert
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_property(TEST Py_wien2k_convert APPEND PROPERTY ENVIRONMENT
PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
+
+# Spin-orbit + spin-polarized converter test (CaOs2: cubic, two equivalent
+# correlated atoms, 8 time-reversal symmetry operations).
+file(COPY CaOs2.ctqmcout CaOs2.symqmc CaOs2.struct CaOs2.outputs
+ CaOs2.oubwinup CaOs2.oubwindn wien2k_soc_convert.ref.h5
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+
+add_test(NAME Py_wien2k_soc_convert
+ COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_soc_convert.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+set_property(TEST Py_wien2k_soc_convert APPEND PROPERTY ENVIRONMENT
+ PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
+
+# Pure-Python case.symqmc generator vs the dmftproj Fortran output (reuses the
+# SOC reference h5; adds only the small text inputs the generator reads).
+file(COPY CaOs2.dmftsym CaOs2.indmftpr DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+add_test(NAME Py_wien2k_symqmc_python
+ COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_symqmc_python.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+set_property(TEST Py_wien2k_symqmc_python APPEND PROPERTY ENVIRONMENT
+ PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
+
+# Generator on the two paths the cubic test does not reach: the spin-mixing
+# fromfile (|j,m_j>) basis and an l=0 shell. Reuses CaOs2.dmftsym/struct; the
+# references are the dmftproj matrix data (single precision, ~26 kB total).
+file(COPY CaOs2_jbasis.indmftpr CaOs2_l0.indmftpr jbasis_d.dat
+ wien2k_symqmc_jbasis.ref.npy wien2k_symqmc_l0.ref.npy
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+add_test(NAME Py_wien2k_symqmc_mixing
+ COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_symqmc_mixing.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+set_property(TEST Py_wien2k_symqmc_mixing APPEND PROPERTY ENVIRONMENT
+ PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
+
+# Pure-Python case.oubwin band-window generator vs the dmftproj Fortran output.
+# Reuses the committed CaOs2.oubwin{up,dn} references and the gzipped CaOs2
+# almblm inputs (shared with the ctqmcout test).
+file(COPY CaOs2.almblmup.gz CaOs2.almblmdn.gz DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+add_test(NAME Py_wien2k_oubwin_python
+ COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_oubwin_python.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+set_property(TEST Py_wien2k_oubwin_python APPEND PROPERTY ENVIRONMENT
+ PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
+
+# Pure-Python case.ctqmcout correlated-shell projector generator vs the dmftproj
+# Fortran output. Reuses CaOs2.ctqmcout / indmftpr / struct / dmftsym and the
+# gzipped almblm; floats compared at 1e-6 (dmftproj single-precision floor).
+add_test(NAME Py_wien2k_ctqmcout_python
+ COMMAND ${TRIQS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wien2k_ctqmcout_python.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+set_property(TEST Py_wien2k_ctqmcout_python APPEND PROPERTY ENVIRONMENT
+ PYTHONPATH=${PROJECT_BINARY_DIR}/python:$ENV{PYTHONPATH} ${SANITIZER_RT_PRELOAD})
diff --git a/test/python/wien2k/CaOs2.almblmdn.gz b/test/python/wien2k/CaOs2.almblmdn.gz
new file mode 100644
index 0000000..b8fabd6
Binary files /dev/null and b/test/python/wien2k/CaOs2.almblmdn.gz differ
diff --git a/test/python/wien2k/CaOs2.almblmup.gz b/test/python/wien2k/CaOs2.almblmup.gz
new file mode 100644
index 0000000..b8a7d3d
Binary files /dev/null and b/test/python/wien2k/CaOs2.almblmup.gz differ
diff --git a/test/python/wien2k/CaOs2.ctqmcout b/test/python/wien2k/CaOs2.ctqmcout
new file mode 100644
index 0000000..f8eceb3
--- /dev/null
+++ b/test/python/wien2k/CaOs2.ctqmcout
@@ -0,0 +1,134 @@
+13.605698
+ 1
+ 1
+ 1
+ 59.000000000000000
+ 65.999999999899998
+ 2
+ 2 2 2 10
+ 3 2 2 10
+ 2
+ 2 2 2 10 1 1
+ 3 2 2 10 1 1
+ -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4710455076283324E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4940054162198066E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4710455076283324E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4940054162198066E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4940054162198066E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 1.4710455076283324E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.4710455076283324E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4940054162198066E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -7.4940054162198066E-015
+ 0
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0
+ 1 10
+ 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 -0.70710676908493042 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.70710676908493042 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 17
+ -8.3299679140668938E-010 -3.5057042301671724E-009 -9.0778752951110879E-011 4.3994421658180770E-009 -0.22604524201885492 1.0252359371842728E-009 -2.5885195722099340E-010 -1.7703903665814329E-006 0.63346497200953678 4.7085772120157830E-009 3.2168261973412012E-010 6.8086940399583740E-009 -1.4336687194883592E-009 -8.6465192714255539E-009 -7.9289581186997688E-010 -1.2643135952078624E-008 -0.19390348449684927
+ 2.7875320957046725E-002 -7.3845757203589953E-011 -3.3416871606259615E-009 -1.5097375409670037E-009 8.7834224456321541E-010 3.5023907154183279E-009 -1.0960999111772395E-009 -5.1944668126119510E-002 7.2545203300412573E-007 7.0739484934453384E-009 3.7982939037925732E-009 1.5089887658752093E-008 3.2864269746920833E-009 1.1800270817920332E-008 -2.2396654374342643E-010 4.0329883612251065E-009 2.6366512075195883E-009
+ 0.19110210146926443 -3.4436533064337062E-008 -2.6683237742250913E-008 1.6138811151545152E-008 -5.8742261833616966E-009 -2.0314134946061775E-008 2.4106529625787708E-009 -3.4444091184561601E-003 4.9463237746716913E-008 2.2659456512881252E-009 3.2533425080388864E-009 -3.7371461066871586E-008 -1.6173701722363227E-008 -1.3288306691953403E-007 -2.5767148098387525E-008 -1.2860252369440123E-007 -3.4279981637971879E-008
+ -6.3360927468246183E-010 0.29092641044527373 -1.6477291307334632E-009 -0.26186268654086892 1.5477325823317174E-008 0.13228898130385094 -6.5521444396587446E-009 -8.2791955663305931E-010 3.7056060740662385E-010 -2.3840145058860160E-002 -1.0608104666099270E-002 0.14437182985321692 -2.6426299240781399E-009 -4.7709287571015731E-003 -1.1239829313273361E-008 2.1963783981507640E-002 9.4289349906196928E-009
+ 1.4961467982546612E-009 0.29092646333998567 9.5975253636800232E-009 0.26186265908420431 3.1747904727937180E-008 -0.13228900642366040 4.1464334170642749E-009 2.7986631787690147E-009 -3.6187674597597083E-010 -2.3840147091004005E-002 1.0608105105972935E-002 -0.14437181976884197 -3.7281336600102403E-009 -4.7707542969127508E-003 -7.2797947955948550E-009 -2.1963849360600005E-002 4.4167589902492833E-008
+ 1.0039589913984849E-009 0.18297860178968400 8.7659236444506661E-010 1.5855880537716929E-009 -6.0035755532783913E-009 7.0213346959298328E-010 -4.9178382618002181E-009 -6.9226548234801613E-009 4.6307842930149818E-009 -0.44807657873110213 -5.8815852134525494E-009 -1.6402268060583112E-009 -4.7987551701168416E-009 1.5170820152346831E-002 2.2229040750045391E-009 1.2424973519047697E-010 -9.2881616556298885E-009
+ 3.5373657277014276E-010 6.2332107169847930E-010 2.1689739315318539E-009 0.16250577372197955 -3.8616292225916767E-009 0.11724038767226909 -1.7122215996122070E-008 -2.5187434186782653E-009 1.1619110792842111E-009 -5.2710969837603278E-009 0.35421161489594100 8.7769739897989266E-002 -1.7384549110945082E-008 -2.9982643379309126E-009 6.2293012892351294E-009 0.14251485666180103 -8.0952132391343457E-009
+ 3.2265677954116015E-010 2.9084882731672920E-008 -7.4809575289557740E-010 -0.15563645342054747 -6.8938741857066284E-009 -0.49211256005692877 9.7702556418361562E-009 2.5741460899789715E-012 1.8138595920421220E-011 4.2183745426848146E-009 -2.4850487137840646E-002 -0.14074228859154700 -9.9646589278844428E-009 8.6626000939887052E-008 -6.2187767533370221E-009 5.9909763791093834E-002 4.2328438196510027E-009
+ -0.40614675191198857 -1.2201415619873962E-008 -5.0778743172647521E-009 5.4428234621562731E-009 0.35500913497411135 -3.1204110106636236E-009 -7.3980575523277595E-009 -2.5927895277863214E-003 -4.4846237416844778E-002 -4.8276326086368341E-010 1.6318623080302618E-009 -1.4286625163694114E-008 -6.1254078291712071E-009 -5.1338547227842901E-008 -9.3593679260922174E-009 -4.9024165651568930E-008 -6.1732169886954437E-002
+ -0.40614674520930860 -4.2493903148634571E-009 -4.6192522377311604E-009 2.8026941708637719E-009 -0.35500913878544688 -1.2437135157761745E-009 -4.4061968035356253E-009 -2.5930386582233961E-003 4.4846310241099877E-002 2.2204433219579400E-009 4.7620757146208721E-010 -3.7917169368684442E-009 5.4884755119931811E-009 -1.1909913386479099E-008 3.5767044187481123E-010 -1.1475479522502086E-008 6.1732154622804354E-002
+ 4.3837502409173806E-010 -1.2069046077572535E-009 4.5607855886780769E-010 -1.2052649755254989E-009 -0.18214494426849240 -5.3621258141555078E-009 -1.6311530041349841E-010 -8.0210618934773325E-008 -0.30620242876026471 5.0246184737694380E-010 1.0730103905250364E-009 3.2243999570428951E-011 -2.2053123986745525E-010 4.4101536309430388E-009 -2.3235184699365617E-009 -2.8425597984922128E-009 -0.61492130318258065
+ 1.6762972887265609E-002 5.1827077079243715E-009 -0.27082885808175988 1.0521384205224081E-008 -1.6622730964325055E-009 -8.2077503935203481E-009 -7.3945720284099070E-002 0.70189400889294717 1.6170428114531511E-006 -1.5271333965654951E-009 -1.7503913657430100E-009 2.7982824193395947E-009 0.13535439377510053 6.6039258000866135E-009 0.63471485587785181 1.3017401939907034E-010 -2.8449714520381681E-009
+ 0.11492027885010124 -2.4047276832549414E-008 -0.62205400368739472 -4.2599831828169497E-008 1.0399672317010063E-008 -1.4149985824883871E-008 0.15344527971029964 4.6541891096153754E-002 1.1095481347637038E-007 2.2088828844447553E-009 6.4139738650325561E-010 -1.9303405974296217E-008 -0.22237926263754706 -4.8687336089975644E-009 -0.20012700922787482 9.0355596375230946E-008 1.8401263411644663E-008
+ -6.8610767262250032E-011 -0.35224927253460986 -1.9825037313949780E-008 -0.32529743139417566 1.2897506711506551E-008 7.8572465495299657E-002 -1.0785888749646738E-008 -8.9641214449424737E-009 5.4878692231778805E-010 -2.8967090906579382E-002 1.8246442430606694E-002 -0.14705803473474219 1.1258717131017391E-008 0.20312441045024937 7.4135048352683751E-008 -9.4783001201539069E-002 5.7073238002914006E-008
+ -2.5086072562117885E-010 -0.35224924646448746 5.0469322704829116E-008 0.32529737984881296 2.5062885675841260E-008 -7.8572508764394366E-002 2.1707500351952256E-008 2.9316799603189222E-009 -1.1749541068909464E-009 -2.8967105047732991E-002 -1.8246443486593402E-002 0.14705806305024458 -2.6114495525480216E-008 0.20312436810216816 -1.6555054768660104E-007 9.4783179624406383E-002 9.9487133677350929E-008
+ -2.2063352845771332E-010 -0.22154768334481009 -6.3042745669445578E-009 2.7005887744251005E-009 -2.9063207929608116E-010 2.1488924888596998E-009 -3.4506175550819407E-009 3.3536261365153001E-009 1.6351745591338704E-009 -0.54443778965806056 -8.7241644668895284E-010 -2.0021126734768195E-009 -1.5063791969541749E-009 -0.64591433613615201 1.1164114332395333E-008 -1.1310898537066399E-008 -1.1217631733907829E-008
+ 7.2913698959286745E-011 -2.5611254737974581E-010 -9.2929422419518749E-010 0.20187186581904454 5.0496420276272970E-009 6.9634422469070728E-002 -2.6898941495831632E-009 -4.1561131132327149E-009 3.4398084293356818E-010 2.6830013046855405E-009 -0.60926071611138766 -8.9402799293602633E-002 -2.4096341478056873E-009 1.3485349002152279E-009 2.1262341458105618E-008 -0.61501098919122033 2.5197152618226495E-009
+ -9.6388212521149193E-010 8.2918722190767037E-009 -2.0641479835418408E-008 -0.19333845419887349 -9.5651365493208182E-009 -0.29228814680462101 -7.6704394798460981E-009 -1.0107369447802224E-009 -5.6639379821640123E-010 5.1141187506059893E-009 4.2744007170702154E-002 0.14336097342757043 1.0130585477106605E-008 -1.0821989659467784E-008 7.6187073990721425E-008 -0.25853528479334242 -3.0340749308132834E-008
+ -0.24423851284230236 -9.6155883758618136E-009 -0.12760980788501020 -1.7439329975127749E-008 0.28606273689723316 -1.6224296939787636E-008 -0.41400168738077581 3.5036323816719880E-002 2.1677741335387517E-002 -3.0901874000658984E-010 -7.4347262977335866E-010 -1.4213548070969048E-008 0.20257530193220008 -3.0147670339452186E-009 -0.14588211300457646 3.4157790714657123E-008 -0.19576966629829526
+ -0.24423851127462287 -3.1002437592927778E-009 -0.12760981350147563 -5.9073264387075969E-009 -0.28606273164405227 -1.0447780036287766E-008 -0.41400168257437203 3.5036312007608345E-002 -2.1677578806517522E-002 -6.4105671242936678E-010 4.7375350888110749E-010 -4.9882386014146498E-009 0.20257529569692234 1.0267331351637828E-009 -0.14588209568237315 2.7215975006503735E-009 0.19576967466443063
+ 9.0679959717190494E-010 -2.2008400003486777E-009 9.2035868261477254E-010 3.3288764885573450E-009 -0.22604523984136474 1.5637625703876123E-009 1.9593894887330856E-010 1.7704037111927574E-006 -0.63346497199144092 -4.7103098826979136E-009 -3.1788027507582721E-010 8.4249310197293698E-009 1.3205661308364376E-010 -3.0045809786992074E-009 9.2010441555505037E-010 -6.9960449757271001E-009 -0.19390348258411713
+ -2.7875320742772505E-002 -5.5652216619116035E-009 -5.3919198104982360E-009 1.7979462905085161E-009 -3.1360491633054101E-010 -3.4506668900795779E-011 -1.6636890545135745E-009 5.1944668296159922E-002 -7.2545506761884178E-007 -7.0677779442959870E-009 -3.8064223125941971E-009 8.7475938961619824E-009 8.1208549121748724E-010 -1.1984587475102177E-008 -4.4623233150022333E-009 -1.8937803252982954E-008 -3.4118403903437977E-009
+ -0.19110210185571147 3.2098355548141706E-008 2.9850241838703112E-009 -1.8243118650007592E-008 8.0058531325819546E-009 1.8019168709954248E-008 -2.3321667059186324E-009 3.4444086962004640E-003 -4.9325673696455648E-008 -2.3537665498847274E-009 -3.3061871902567654E-009 3.6242792700179439E-008 1.0953769709190307E-008 1.3292529535615360E-007 2.7598304079520308E-008 1.2991079651253922E-007 3.2786491579603253E-008
+ 2.3374181877352316E-009 0.29092645352944940 6.0312934310529206E-009 -0.26186270339587536 -1.2943019679467309E-008 0.13228898707758815 -8.0343754450769576E-009 9.9056370928967718E-010 -4.2365989890189233E-010 2.3840145004905076E-002 1.0608104553252604E-002 0.14437182045626487 5.7301941859411843E-009 -4.7707832008221981E-003 1.5615679002047344E-008 2.1963836398739948E-002 -8.4581837067390464E-009
+ -1.6476810471490893E-009 0.29092641826824844 -3.3404472711913858E-009 0.26186273496277812 -3.6569188267729177E-008 -0.13228898258792449 3.9411462919995131E-009 -2.9978139337362623E-009 2.0435246999474907E-010 2.3840147308039506E-002 -1.0608105330102667E-002 -0.14437183758378880 -1.1663541875049487E-010 -4.7709545207769433E-003 8.3870793607462596E-009 -2.1963765092619086E-002 -4.3226822835084896E-008
+ -1.0418574039701412E-009 0.18297860155812268 1.1484244496900985E-009 -1.6890924387014436E-009 -8.9450289709911508E-010 -7.4209721155303773E-010 -4.7176463909255783E-009 6.9341190906076067E-009 -4.6300413394911136E-009 0.44807657870630990 5.8726380651018723E-009 -4.5069432250077972E-010 -5.3983655029008815E-009 1.5170823084105606E-002 -6.3989030029144390E-011 -7.2331199761342548E-009 -3.7048777346235618E-009
+ -3.4450609640268585E-010 -2.3492461177066976E-010 2.9677098891881702E-009 0.16250576895511321 -1.8392566431204764E-009 0.11724038654236243 -1.6900495974753669E-008 2.5369876577508581E-009 -1.1517017232773736E-009 5.2515884722091468E-009 -0.35421161491741920 8.7769736485274918E-002 -1.6442313055607173E-008 -5.0652239911959127E-009 7.4271871553378331E-009 0.14251484250139418 -6.5750405118294949E-009
+ -1.8855836694504242E-010 -2.1040698381036500E-008 -2.5236665009274601E-009 -0.15563647740207270 4.6934585134236764E-009 -0.49211257035103367 1.3923516256101850E-008 -5.0536015268481205E-011 -4.7560119836804341E-011 -4.1424021447722052E-009 2.4850486814616497E-002 -0.14074234035153330 1.8907298256623521E-009 -8.9619446025855078E-008 5.6435029576626218E-009 5.9909581218084366E-002 -3.7148206597465794E-009
+ 0.40614675120082444 1.2997943938488268E-008 8.3657743690829842E-009 -8.5070193002980489E-009 0.35500915446013603 9.3244147324613229E-009 -5.1446667626781596E-009 2.5927897837433036E-003 4.4846237491878028E-002 5.1309145986880473E-010 -1.6966586512037322E-009 1.4399171769292269E-008 1.4851373378450752E-008 5.0014954769297710E-008 1.4589832093235581E-008 5.0822710813470125E-008 -6.1732141171463896E-002
+ 0.40614674597945394 1.5781094763172180E-009 1.5653401164845076E-009 1.9210785193353018E-009 -0.35500915288868584 4.0274777028046712E-009 -7.2910595461953055E-009 2.5930386966897790E-003 -4.4846310572172622E-002 -2.2160852569940781E-009 -4.6931890970976455E-010 1.5220150672891460E-009 1.5711335669818199E-009 9.7168031884898235E-009 7.8740436311457900E-010 8.5323588652117350E-009 6.1732157170305016E-002
+ -3.9574553229144208E-010 8.6974434992783100E-011 -3.2734043700568200E-010 6.8488724456921905E-010 -0.18214494227915443 -5.0631468638144217E-009 3.0377601513418316E-010 8.0210113088572794E-008 0.30620242875715253 -4.9929895677420183E-010 -1.0720966614833382E-009 1.3900744402695991E-009 -1.1855906063073843E-009 5.0302758990648091E-009 1.5466556279300948E-011 -7.2738549646613615E-009 -0.61492129806347584
+ -1.6762973009369166E-002 1.0836612877683691E-010 -0.27082885484593716 7.4621304188467907E-010 9.1402418052358922E-010 -1.1263526508468045E-008 -7.3945718973022448E-002 -0.70189400887955866 -1.6170645019239372E-006 1.5300763815350784E-009 1.7356474169187969E-009 -1.2044768808134150E-009 0.13535439164257576 5.6453665311754195E-009 0.63471484630532748 1.6997038090569337E-008 3.3351835515760884E-010
+ -0.11492027969985288 3.1697756855716351E-008 -0.62205404016623855 5.5363910264751692E-008 -1.1351717665261505E-008 2.1195254044855871E-008 0.15344526559194852 -4.6541891054502363E-002 -1.1130483340715734E-007 -2.2288441476278565E-009 -7.2630585956928035E-010 2.7149105814925575E-008 -0.22237923822447400 6.2228461722933433E-009 -0.20012690201569222 -9.7501242006243981E-008 -1.7242424919294614E-008
+ -4.0513742066645548E-009 -0.35224924279837649 1.3463913611148244E-008 -0.32529741356733882 -1.5709872784958772E-008 7.8572485881360621E-002 8.4980573756536786E-009 8.9495474200250719E-009 -6.5262706897084931E-010 2.8967090644634326E-002 -1.8246442215921543E-002 -0.14705802443644461 -1.5332806187234664E-008 0.20312433191514159 -6.9283105628942235E-008 -9.4783007358669569E-002 -5.6125141528545545E-008
+ -1.1532429341588326E-009 -0.35224929352112549 -5.2798190762740624E-008 0.32529746529464437 -1.9380389672850138E-008 -7.8572456713884561E-002 -1.4126967956908924E-008 -3.0578201952579793E-009 8.1358752011917108E-010 2.8967104694346171E-002 1.8246443881922807E-002 0.14705800478036199 3.7364755952798559E-008 0.20312437712091169 1.5962309522891740E-007 9.4782827036815648E-002 -9.9025226357374557E-008
+ 2.1299158910158361E-010 -0.22154768191422422 -2.4750723025704329E-009 -2.8659928856953602E-009 3.5740684375069561E-009 -1.7175908117087390E-009 -2.5007897188534218E-009 -3.3557564066314483E-009 -1.6296956823415182E-009 0.54443778968121725 8.8990042975629124E-010 4.1851783341140154E-010 -3.4879465618082223E-009 -0.64591433231307815 1.5067229522957532E-009 7.6018394582859758E-009 5.3805137926965139E-009
+ -1.0598699429996071E-010 7.7134402605760225E-011 5.8292503697917106E-009 0.20187185885980286 7.0190349448783808E-009 6.9634420922647197E-002 5.6205284764449031E-010 4.1504309623553247E-009 -3.4135989366755027E-010 -2.6938579289149447E-009 0.60926071610766075 -8.9402795057407849E-002 -6.3417020086222932E-009 4.3686766941523182E-010 -2.8362662670884689E-009 -0.61501096620745832 9.3448702992217342E-009
+ 1.2441597619438833E-009 -1.6538459018641143E-008 1.6821870042303133E-008 -0.19333854486782040 1.1633189650359068E-008 -0.29228816742295732 1.4738565647031249E-008 1.0633883021185138E-009 5.6928291285678825E-010 -5.0750192863357723E-009 -4.2744007647320573E-002 0.14336100501680429 -6.6735901246573234E-009 1.5745556932365030E-008 -6.6596699671902497E-008 -0.25853510343471031 3.0603943956483639E-008
+ 0.24423851347702183 1.1796410324744897E-008 -0.12760982192851061 2.1172803094302839E-008 0.28606274182397395 -5.2744044210568111E-009 -0.41400168710922308 -3.5036323872070299E-002 -2.1677741287455074E-002 2.4789952767997181E-010 7.5151242756730389E-010 6.5822327705578110E-009 0.20257530132277951 4.3604120108252495E-009 -0.14588207184133795 -4.0418820004883398E-008 -0.19576963825055146
+ 0.24423851152907769 1.4490126594049515E-009 -0.12760981581860137 4.4841925557596892E-009 -0.28606274746068738 -4.2085331345566214E-009 -0.41400169122870312 -3.5036312051076199E-002 2.1677578858922079E-002 6.3461307469453046E-010 -4.6812706070410901E-010 -4.0596300792422499E-009 0.20257530833187692 -8.8338485037074876E-010 -0.14588208766544986 -9.6266154426627010E-009 0.19576963039007630
+ 1.0000000000000000
+ -0.14719728634143203
+ -6.2687483552602008E-002
+ -5.6791699157407005E-002
+ -4.6939855280641041E-002
+ -2.3731054975468013E-002
+ -5.9289132889430718E-003
+ 0.0000000000000000
+ 7.0047796896619996E-002
+ 7.0116347318387007E-002
+ 0.10027100453936799
+ 0.10379476904357798
+ 0.14516977295802591
+ 0.15348172411197192
+ 0.20481842207514100
+ 0.21209028506752292
+ 0.21406914507310593
+ 0.22096001200155491
diff --git a/test/python/wien2k/CaOs2.dmftsym b/test/python/wien2k/CaOs2.dmftsym
new file mode 100644
index 0000000..aa6f374
--- /dev/null
+++ b/test/python/wien2k/CaOs2.dmftsym
@@ -0,0 +1,124 @@
+ 16
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+ 1 2 3
+ 1 3 2
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+ 1 3 2
+ 1 2 3
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+
+Sym. op. : 1
+ 0.0 0.0 0.0 -1 - euler angles: a,b,c; iprop
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 2
+ 270.0 0.0 0.0 -1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 3
+ 90.0 0.0 0.0 -1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 4
+ 180.0 0.0 0.0 -1 - euler angles: a,b,c; iprop
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 5
+ 180.0 0.0 0.0 1 - euler angles: a,b,c; iprop
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 6
+ 90.0 0.0 0.0 1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 7
+ 270.0 0.0 0.0 1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 8
+ 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+
+Sym. op. : 9
+ 0.0 180.0 180.0 1 - euler angles: a,b,c; iprop
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 10
+ 0.0 180.0 90.0 1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 11
+ 0.0 180.0 270.0 1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 12
+ 0.0 180.0 0.0 1 - euler angles: a,b,c; iprop
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 13
+ 0.0 180.0 0.0 -1 - euler angles: a,b,c; iprop
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 14
+ 0.0 180.0 270.0 -1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ -1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 15
+ 0.0 180.0 90.0 -1 - euler angles: a,b,c; iprop
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+
+Sym. op. : 16
+ 0.0 180.0 180.0 -1 - euler angles: a,b,c; iprop
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 -1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 -1.00000000000000
+ Global->local coordinates rotation matrices
+ 1
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+ 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop
+ 2
+ 1.00000000000000 0.000000000000000E+000 0.000000000000000E+000
+ 0.000000000000000E+000 1.00000000000000 0.000000000000000E+000
+ 0.000000000000000E+000 0.000000000000000E+000 1.00000000000000
+ 0.0 0.0 0.0 1 - euler angles: a,b,c; iprop
diff --git a/test/python/wien2k/CaOs2.indmftpr b/test/python/wien2k/CaOs2.indmftpr
new file mode 100644
index 0000000..abca02f
--- /dev/null
+++ b/test/python/wien2k/CaOs2.indmftpr
@@ -0,0 +1,11 @@
+2
+1 2
+3
+complex
+0 0 0 0
+0 0 0 0
+cubic
+0 0 2 0
+0 0 0 0
+1
+-0.15 0.30
diff --git a/test/python/wien2k/CaOs2.oubwindn b/test/python/wien2k/CaOs2.oubwindn
new file mode 100644
index 0000000..778773d
--- /dev/null
+++ b/test/python/wien2k/CaOs2.oubwindn
@@ -0,0 +1,5 @@
+ 1
+ 1
+ 1
+ 60 76
+ 1.0000000000000000
diff --git a/test/python/wien2k/CaOs2.oubwinup b/test/python/wien2k/CaOs2.oubwinup
new file mode 100644
index 0000000..778773d
--- /dev/null
+++ b/test/python/wien2k/CaOs2.oubwinup
@@ -0,0 +1,5 @@
+ 1
+ 1
+ 1
+ 60 76
+ 1.0000000000000000
diff --git a/test/python/wien2k/CaOs2.outputs b/test/python/wien2k/CaOs2.outputs
new file mode 100644
index 0000000..e97a1f8
--- /dev/null
+++ b/test/python/wien2k/CaOs2.outputs
@@ -0,0 +1,562 @@
+CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00
+ Bravais Matrix:
+ 0.00000 0.50000 0.50000
+ 0.50000 0.00000 0.50000
+ 0.50000 0.50000 0.00000
+ ATOMIC POSITIONS:
+ 1 0.00000000 0.00000000 0.00000000
+ 2 3.00000000 3.00000000 3.00000000
+ 3 9.00000000 9.00000000 9.00000000
+ PGLSYM: THE CRYSTAL SYSTEM IS CUBIC
+ PGLSYM: ORDER OF LATTICE POINT GROUP (NO BASE) = 48
+ PGBSYM: ORDER OF LATTICE SPACE GROUP (WITH BASE) = 48
+ PGBSYM: SPACE GROUP IS SYMMORPHIC
+ PGBSYM: SPACE GROUP CONTAINS INVERSION
+ Symmetry operation 1
+ 1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 1 in struct file
+ Symmetry operation 2
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 2 in struct file
+ Symmetry operation 3
+ -1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 3 in struct file
+ Symmetry operation 4
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 4 in struct file
+ Symmetry operation 5
+ 0.00000 -1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 5 in struct file
+ Symmetry operation 6
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 6 in struct file
+ Symmetry operation 7
+ 0.00000 1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 7 in struct file
+ Symmetry operation 8
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 8 in struct file
+ Symmetry operation 9
+ 0.00000 0.00000 -1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 9 in struct file
+ Symmetry operation 10
+ 0.00000 0.00000 -1.00000
+ 0.00000 -1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 10 in struct file
+ Symmetry operation 11
+ 0.00000 0.00000 1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 11 in struct file
+ Symmetry operation 12
+ 0.00000 0.00000 1.00000
+ 0.00000 -1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 12 in struct file
+ Symmetry operation 13
+ 0.00000 -1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 13 in struct file
+ Symmetry operation 14
+ 0.00000 1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 14 in struct file
+ Symmetry operation 15
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 15 in struct file
+ Symmetry operation 16
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 16 in struct file
+ Symmetry operation 17
+ 1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 17 in struct file
+ Symmetry operation 18
+ -1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ this is operation 18 in struct file
+ Symmetry operation 19
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 19 in struct file
+ Symmetry operation 20
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 -1.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ this is operation 20 in struct file
+ Symmetry operation 21
+ 0.00000 0.00000 -1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 21 in struct file
+ Symmetry operation 22
+ 0.00000 0.00000 -1.00000
+ 0.00000 -1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 22 in struct file
+ Symmetry operation 23
+ 0.00000 0.00000 1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 23 in struct file
+ Symmetry operation 24
+ 0.00000 0.00000 1.00000
+ 0.00000 -1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 24 in struct file
+ Symmetry operation 25
+ 0.00000 0.00000 -1.00000
+ 0.00000 1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 25 in struct file
+ Symmetry operation 26
+ 0.00000 0.00000 -1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 26 in struct file
+ Symmetry operation 27
+ 0.00000 0.00000 1.00000
+ 0.00000 1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 27 in struct file
+ Symmetry operation 28
+ 0.00000 0.00000 1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 28 in struct file
+ Symmetry operation 29
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 29 in struct file
+ Symmetry operation 30
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 30 in struct file
+ Symmetry operation 31
+ 1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 31 in struct file
+ Symmetry operation 32
+ -1.00000 0.00000 0.00000
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 32 in struct file
+ Symmetry operation 33
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 33 in struct file
+ Symmetry operation 34
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 34 in struct file
+ Symmetry operation 35
+ 0.00000 -1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 35 in struct file
+ Symmetry operation 36
+ 0.00000 1.00000 0.00000
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 36 in struct file
+ Symmetry operation 37
+ 0.00000 0.00000 -1.00000
+ 0.00000 1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 37 in struct file
+ Symmetry operation 38
+ 0.00000 0.00000 -1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ this is operation 38 in struct file
+ Symmetry operation 39
+ 0.00000 0.00000 1.00000
+ 0.00000 1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 39 in struct file
+ Symmetry operation 40
+ 0.00000 0.00000 1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ this is operation 40 in struct file
+ Symmetry operation 41
+ 0.00000 -1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 41 in struct file
+ Symmetry operation 42
+ 0.00000 -1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 42 in struct file
+ Symmetry operation 43
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 0.0000 -1.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 43 in struct file
+ Symmetry operation 44
+ 0.00000 1.00000 0.00000
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 0.0000 -1.0000 0.0000 0.0000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 44 in struct file
+ Symmetry operation 45
+ 1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 45 in struct file
+ Symmetry operation 46
+ 1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ 1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 46 in struct file
+ Symmetry operation 47
+ -1.00000 0.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ this is operation 47 in struct file
+ Symmetry operation 48
+ -1.00000 0.00000 0.00000
+ 0.00000 1.00000 0.00000
+ 0.00000 0.00000 1.00000
+ 0.00000 0.00000 0.00000
+ -1.0000 0.0000 0.0000 0.0000
+ 0.0000 1.0000 0.0000 0.0000
+ 0.0000 0.0000 1.0000 0.0000
+ this is operation 48 in struct file
+
+
+
+DETERMINATION OF POINTGROUP FOR ALL POSITIONS
+CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00
+ 1 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
+ 2 6.0000000 6.0000000 0.0000000 0.5000000 0.5000000 0.0000000
+ 3 6.0000000 0.0000000 6.0000000 0.5000000 0.0000000 0.5000000
+ 4 0.0000000 6.0000000 6.0000000 0.0000000 0.5000000 0.5000000
+Ca : 4 Atoms, Index 1 to 4
+ 5 3.0000000 3.0000000 3.0000000 0.2500000 0.2500000 0.2500000
+ 6 9.0000000 9.0000000 3.0000000 0.7500000 0.7500000 0.2500000
+ 7 9.0000000 3.0000000 9.0000000 0.7500000 0.2500000 0.7500000
+ 8 3.0000000 9.0000000 9.0000000 0.2500000 0.7500000 0.7500000
+ 9 9.0000000 9.0000000 9.0000000 0.7500000 0.7500000 0.7500000
+ 10 3.0000000 3.0000000 9.0000000 0.2500000 0.2500000 0.7500000
+ 11 3.0000000 9.0000000 3.0000000 0.2500000 0.7500000 0.2500000
+ 12 9.0000000 3.0000000 3.0000000 0.7500000 0.2500000 0.2500000
+Os : 8 Atoms, Index 5 to 12
+number of atoms: 12
+
+ ATOM: 1
+Ca operation # 1 1
+Ca operation # 2 -1
+Ca operation # 3 2 || x
+Ca operation # 4 2 || y
+Ca operation # 5 2 || z
+Ca operation # 6 m n z
+Ca operation # 7 m n y
+Ca operation # 8 m n x
+Ca operation # 9 4 || x
+Ca operation # 10 4 || y
+Ca operation # 11 4 || z
+Ca operation # 12 m n 110
+Ca operation # 13 m n -110
+Ca operation # 14 m n 101
+Ca operation # 15 m n 011
+Ca operation # 16 m n -101
+Ca operation # 17 m n 0-11
+Ca operation # 18 2 || 110
+Ca operation # 19 2 || -110
+Ca operation # 20 2 || 101
+Ca operation # 21 2 || 011
+Ca operation # 22 2 || -101
+Ca operation # 23 2 || 0-11
+Ca operation # 24 3 || 111
+Ca operation # 25 3 || 11-1
+Ca operation # 26 3 || -111
+Ca operation # 27 3 || 1-11
+Ca operation # 28 S6 || 111
+Ca operation # 29 S6 || -1-11
+Ca operation # 30 S6 || 1-1-1
+Ca operation # 31 S6 || 1-11
+Ca operation # 32 S4 || x
+Ca operation # 33 S4 || y
+Ca operation # 34 S4 || z
+Ca operation # 35 4 || x
+Ca operation # 36 4 || y
+Ca operation # 37 4 || z
+Ca operation # 38 3 || 111
+Ca operation # 39 3 || 11-1
+Ca operation # 40 3 || -111
+Ca operation # 41 3 || 1-11
+Ca operation # 42 S6 || 111
+Ca operation # 43 S6 || -1-11
+Ca operation # 44 S6 || 1-1-1
+Ca operation # 45 S6 || 1-11
+Ca operation # 46 S4 || x
+Ca operation # 47 S4 || y
+Ca operation # 48 S4 || z
+ pointgroup is m3m (pos. iatnr!!)
+ axes should be: any
+ z-rotation vector: 0.0000 0.0000 1.0000
+ y-rotation vector: 0.0000 0.0000 0.0000 0
+LOCAL ROT MATRIX: NEW OLD
+ 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000
+ 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000
+ 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000
+lm: 0 0 4 0 4 4 6 0 6 4
+ ==============================================
+
+ ATOM: 2
+Os operation # 1 1
+Os operation # 3 2 || x
+Os operation # 4 2 || y
+Os operation # 5 2 || z
+Os operation # 12 m n 110
+Os operation # 13 m n -110
+Os operation # 14 m n 101
+Os operation # 15 m n 011
+Os operation # 16 m n -101
+Os operation # 17 m n 0-11
+Os operation # 24 3 || 111
+Os operation # 25 3 || 11-1
+Os operation # 26 3 || -111
+Os operation # 27 3 || 1-11
+Os operation # 32 S4 || x
+Os operation # 33 S4 || y
+Os operation # 34 S4 || z
+Os operation # 38 3 || 111
+Os operation # 39 3 || 11-1
+Os operation # 40 3 || -111
+Os operation # 41 3 || 1-11
+Os operation # 46 S4 || x
+Os operation # 47 S4 || y
+Os operation # 48 S4 || z
+ pointgroup is -43m (pos. iatnr!!)
+ axes should be: any
+ z-rotation vector: 0.0000 0.0000 1.0000
+ y-rotation vector: 1.0000 0.0000 0.0000 0
+LOCAL ROT MATRIX: NEW OLD
+ 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000
+ 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000 0.0000000
+ 0.0000000 0.0000000 1.0000000 0.0000000 0.0000000 1.0000000
+lm: 0 0 4 0 4 4 6 0 6 4 -3 2
+ ==============================================
diff --git a/test/python/wien2k/CaOs2.struct b/test/python/wien2k/CaOs2.struct
new file mode 100644
index 0000000..0db2f5f
--- /dev/null
+++ b/test/python/wien2k/CaOs2.struct
@@ -0,0 +1,82 @@
+CaOs2 fluorite test s-o calc. M|| 0.00 0.00 1.00
+F 2
+ RELA
+ 12.000000 12.000000 12.000000 90.000000 90.000000 90.000000
+ATOM -1: X=0.00000000 Y=0.00000000 Z=0.00000000
+ MULT= 1 ISPLIT=-2
+Ca NPT= 781 R0=.000010000 RMT= 2.30000 Z: 20.00000
+LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
+ 0.0000000 1.0000000 0.0000000
+ 0.0000000 0.0000000 1.0000000
+ATOM -2: X=0.25000000 Y=0.25000000 Z=0.25000000
+ MULT= 2 ISPLIT=-2
+ -2: X=0.75000000 Y=0.75000000 Z=0.75000000
+Os NPT= 781 R0=.000005000 RMT= 2.00000 Z: 76.00000
+LOCAL ROT MATRIX: 1.0000000 0.0000000 0.0000000
+ 0.0000000 1.0000000 0.0000000
+ 0.0000000 0.0000000 1.0000000
+ 16 NUMBER OF SYMMETRY OPERATIONS
+-1 0 0 0.00000000
+ 0-1 0 0.00000000
+ 0 0-1 0.00000000
+ 1 A 3 so. oper. type orig. index
+ 0 1 0 0.00000000
+-1 0 0 0.00000000
+ 0 0-1 0.00000000
+ 2 A 5
+ 0-1 0 0.00000000
+ 1 0 0 0.00000000
+ 0 0-1 0.00000000
+ 3 A 14
+ 1 0 0 0.00000000
+ 0 1 0 0.00000000
+ 0 0-1 0.00000000
+ 4 A 17
+-1 0 0 0.00000000
+ 0-1 0 0.00000000
+ 0 0 1 0.00000000
+ 5 A 32
+ 0 1 0 0.00000000
+-1 0 0 0.00000000
+ 0 0 1 0.00000000
+ 6 A 35
+ 0-1 0 0.00000000
+ 1 0 0 0.00000000
+ 0 0 1 0.00000000
+ 7 A 44
+ 1 0 0 0.00000000
+ 0 1 0 0.00000000
+ 0 0 1 0.00000000
+ 8 A 46
+ 1 0 0 0.00000000
+ 0-1 0 0.00000000
+ 0 0-1 0.00000000
+ 9 B 1
+ 0 1 0 0.00000000
+ 1 0 0 0.00000000
+ 0 0-1 0.00000000
+ 10 B 7
+ 0-1 0 0.00000000
+-1 0 0 0.00000000
+ 0 0-1 0.00000000
+ 11 B 13
+-1 0 0 0.00000000
+ 0 1 0 0.00000000
+ 0 0-1 0.00000000
+ 12 B 18
+ 1 0 0 0.00000000
+ 0-1 0 0.00000000
+ 0 0 1 0.00000000
+ 13 B 31
+ 0 1 0 0.00000000
+ 1 0 0 0.00000000
+ 0 0 1 0.00000000
+ 14 B 36
+ 0-1 0 0.00000000
+-1 0 0 0.00000000
+ 0 0 1 0.00000000
+ 15 B 42
+-1 0 0 0.00000000
+ 0 1 0 0.00000000
+ 0 0 1 0.00000000
+ 16 B 48
diff --git a/test/python/wien2k/CaOs2.symqmc b/test/python/wien2k/CaOs2.symqmc
new file mode 100644
index 0000000..69009e9
--- /dev/null
+++ b/test/python/wien2k/CaOs2.symqmc
@@ -0,0 +1,658 @@
+ 16 3
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+ 1 2 3
+ 1 3 2
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+ 1 3 2
+ 1 2 3
+ 1 3 2
+ 1 2 3
+ 1 2 3
+ 1 3 2
+ 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015
+ -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015
+ -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822
+ -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822
+ -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822
+ -4.3711388286737929E-008 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -4.3711386790560848E-008 -1.3965924877339274E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -1.3965924877339274E-014 -4.3711386790560848E-008 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 4.3711386790560848E-008 -6.9829624386696371E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -6.9829624386696371E-015 4.3711386790560848E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711386790560848E-008 1.3965924877339274E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3965924877339274E-014 -4.3711386790560848E-008 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.3711386790560848E-008 6.9829624386696371E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.9829624386696371E-015 4.3711386790560848E-008
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 -6.1046996509678984E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -6.1046996509678984E-022 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.99999996577145822 -3.0523498254839492E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -3.0523498254839492E-022 -0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.99999996577145822 -6.1046996509678984E-022 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -6.1046996509678984E-022 -0.99999996577145822 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.99999996577145822 -3.0523498254839492E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -3.0523498254839492E-022 0.99999996577145822
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -4.9377000086491133E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.4688500043245567E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 -2.4688500043245567E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -4.9377000086491133E-015 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9377000086491133E-015 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.4688500043245567E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 2.4688500043245567E-015
+ -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015
+ -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -1.4813100025947342E-014 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.4813100025947342E-014 0.70710674488169678 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -7.4065500129736708E-015 0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710674488169678 -7.4065500129736708E-015
+ 0.70710676908493042 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 -0.70710674488169678 1.4813100025947342E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 1.4813100025947342E-014 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.4065500129736708E-015 -0.70710674488169678 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710674488169678 7.4065500129736708E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 0.70710674488169678 1.4813100025947342E-014 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 1.4813100025947342E-014 0.70710674488169678 -0.0000000000000000 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -7.4065500129736708E-015 -0.70710674488169678
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.0000000000000000 -0.70710674488169678 -7.4065500129736708E-015
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999996577145822
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766
+ -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015
+ -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015
+ -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2228927443677766E-029 0.99999993154291766 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.99999993154291766 0.0000000000000000 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 0.0000000000000000 0.99999993154291766 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.9829621996530154E-015 0.0000000000000000 0.99999993154291766
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015
+ -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -1.4813099518916527E-014 -4.9376998396388427E-015 -1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.2554134762303971E-043 -1.4813099518916527E-014 0.70710672067846414 1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 -4.9376998396388427E-015 -7.4065497594582636E-015 0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5523471411463592E-015 4.9376998396388427E-015 5.1719660540723250E-029 0.70710672067846414 -7.4065497594582636E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 1.4813099518916527E-014 4.9376998396388427E-015 1.0343932108144650E-028 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 6.2554134762303971E-043 1.4813099518916527E-014 -0.70710672067846414 -1.0343932108144650E-028 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.9581081339862810E-029 5.1719660540723250E-029 4.9376998396388427E-015 7.4065497594582636E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 -5.1719660540723250E-029 -0.70710672067846414 7.4065497594582636E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 -0.0000000000000000 -8.5523474338807404E-015 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 1.4813099518916527E-014 -4.9376998396388427E-015 1.0343932108144650E-028
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.2554134762303971E-043 1.4813099518916527E-014 0.70710672067846414 -1.0343932108144650E-028 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.9581081339862810E-029 -5.1719660540723250E-029 4.9376998396388427E-015 -7.4065497594582636E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 5.1719660540723250E-029 -0.70710672067846414 -7.4065497594582636E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 4.9376998396388427E-015 4.9376998396388427E-015 3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.0851378254101321E-043 4.9376998396388427E-015 -0.70710672067846414 -3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 -4.9376998396388427E-015 -2.4688499198194213E-015 0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -8.5523471411463592E-015 4.9376998396388427E-015 1.7239886846907753E-029 0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015
+ 0.70710676908493042 2.9860361468697568E-029 0.0000000000000000 8.5523474338807404E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.9860360446620933E-029 -0.70710672067846414 -4.9376998396388427E-015 4.9376998396388427E-015 -3.4479773693815506E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.0851378254101321E-043 -4.9376998396388427E-015 -0.70710672067846414 3.4479773693815506E-029 -4.9376998396388427E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 2.9860360446620933E-029 -1.7239886846907753E-029 4.9376998396388427E-015 -2.4688499198194213E-015 -0.70710672067846414 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.5523471411463592E-015 -4.9376998396388427E-015 1.7239886846907753E-029 -0.70710672067846414 -2.4688499198194213E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710676908493042 -2.9860361468697568E-029 0.0000000000000000 -8.5523474338807404E-015 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.9860360446620933E-029 0.70710672067846414 -4.9376998396388427E-015 -4.9376998396388427E-015 -3.4479773693815506E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.0851378254101321E-043 -4.9376998396388427E-015 0.70710672067846414 3.4479773693815506E-029 4.9376998396388427E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.9860360446620933E-029 1.7239886846907753E-029 4.9376998396388427E-015 2.4688499198194213E-015 -0.70710672067846414
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5523471411463592E-015 -4.9376998396388427E-015 -1.7239886846907753E-029 -0.70710672067846414 2.4688499198194213E-015
+ -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766
+ -4.3711388286737929E-008 -1.8458851076050378E-036 -0.0000000000000000 -5.2868250706923520E-022 -0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -1.8458850444230821E-036 -4.3711385294383820E-008 -1.3965924399306031E-014 3.0523497210064655E-022 -9.7523528839742015E-029 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.8976604851584635E-043 -1.3965924399306031E-014 -4.3711385294383820E-008 9.7523528839742015E-029 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -5.2868248897320393E-022 3.0523497210064655E-022 4.8761764419871008E-029 4.3711385294383820E-008 -6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 8.4457854887355532E-029 -4.8761764419871008E-029 -3.0523497210064655E-022 -6.9829621996530154E-015 4.3711385294383820E-008 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.3711388286737929E-008 -1.8458851076050378E-036 0.0000000000000000 -5.2868250706923520E-022 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.8458850444230821E-036 -4.3711385294383820E-008 1.3965924399306031E-014 3.0523497210064655E-022 9.7523528839742015E-029
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.8976604851584635E-043 1.3965924399306031E-014 -4.3711385294383820E-008 -9.7523528839742015E-029 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.2868248897320393E-022 3.0523497210064655E-022 -4.8761764419871008E-029 4.3711385294383820E-008 6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.4457854887355532E-029 4.8761764419871008E-029 -3.0523497210064655E-022 6.9829621996530154E-015 4.3711385294383820E-008
+ 1.0000000000000000 4.2228928889112424E-029 0.0000000000000000 1.2094845938115352E-014 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 4.2228927443677766E-029 0.99999993154291766 -6.1046994420129310E-022 -6.9829621996530154E-015 -4.2628888362068480E-036 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ -2.5779492745011281E-050 -6.1046994420129310E-022 0.99999993154291766 4.2628888362068480E-036 6.9829621996530154E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 1.2094845524126412E-014 -6.9829621996530154E-015 2.1314444181034240E-036 -0.99999993154291766 -3.0523497210064655E-022 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 3.6917700888461642E-036 -2.1314444181034240E-036 6.9829621996530154E-015 -3.0523497210064655E-022 -0.99999993154291766 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0000000000000000 -4.2228928889112424E-029 -0.0000000000000000 -1.2094845938115352E-014 -0.0000000000000000
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.2228927443677766E-029 -0.99999993154291766 -6.1046994420129310E-022 6.9829621996530154E-015 -4.2628888362068480E-036
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.5779492745011281E-050 -6.1046994420129310E-022 -0.99999993154291766 4.2628888362068480E-036 -6.9829621996530154E-015
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.2094845524126412E-014 6.9829621996530154E-015 2.1314444181034240E-036 0.99999993154291766 -3.0523497210064655E-022
+ 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 3.6917700888461642E-036 -2.1314444181034240E-036 -6.9829621996530154E-015 -3.0523497210064655E-022 0.99999993154291766
diff --git a/test/python/wien2k/CaOs2_jbasis.indmftpr b/test/python/wien2k/CaOs2_jbasis.indmftpr
new file mode 100644
index 0000000..5589430
--- /dev/null
+++ b/test/python/wien2k/CaOs2_jbasis.indmftpr
@@ -0,0 +1,12 @@
+2
+1 2
+3
+complex
+0 0 0 0
+0 0 0 0
+fromfile
+jbasis_d.dat
+0 0 2 0
+0 0 0 0
+1
+-0.15 0.30
diff --git a/test/python/wien2k/CaOs2_l0.indmftpr b/test/python/wien2k/CaOs2_l0.indmftpr
new file mode 100644
index 0000000..15ca9ef
--- /dev/null
+++ b/test/python/wien2k/CaOs2_l0.indmftpr
@@ -0,0 +1,11 @@
+2
+1 2
+3
+complex
+0 0 0 0
+0 0 0 0
+complex
+2 0 0 0
+0 0 0 0
+1
+-0.15 0.30
diff --git a/test/python/wien2k/jbasis_d.dat b/test/python/wien2k/jbasis_d.dat
new file mode 100644
index 0000000..95c4843
--- /dev/null
+++ b/test/python/wien2k/jbasis_d.dat
@@ -0,0 +1,10 @@
+ -0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 -0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 -0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000
+*0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 -0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.44721360 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.77459667 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.63245553 0.00000000 0.00000000 0.00000000
+ 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.89442719 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.44721360 0.00000000
+*0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
diff --git a/test/python/wien2k/wien2k_ctqmcout_python.py b/test/python/wien2k/wien2k_ctqmcout_python.py
new file mode 100644
index 0000000..5ee017d
--- /dev/null
+++ b/test/python/wien2k/wien2k_ctqmcout_python.py
@@ -0,0 +1,65 @@
+################################################################################
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+# (GPL-3.0-or-later)
+################################################################################
+
+# Verify the pure-Python case.ctqmcout generator (triqs_dftkit.wien2k.ctqmcout)
+# reproduces the dmftproj Fortran correlated-shell projectors: regenerate
+# case.ctqmcout from case.almblm{up,dn} + case.indmftpr + case.struct +
+# case.dmftsym and compare to the committed dmftproj reference.
+#
+# CaOs2 is spin-orbit + spin-polarized, cubic, two equivalent correlated d atoms.
+# Integer fields must match exactly; floats are compared at 1e-6: dmftproj stores
+# the cubic basis transform through a single-precision CMPLX cast, so its
+# projectors carry ~1e-7 noise that the double-precision generator reproduces to
+# the same floor (cf. the symqmc mixing test).
+
+import gzip
+import os
+import shutil
+import tempfile
+
+from triqs_dftkit.wien2k import ctqmcout
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+
+
+def _gunzip(src, dst):
+ with gzip.open(src, 'rb') as fi, open(dst, 'wb') as fo:
+ shutil.copyfileobj(fi, fo)
+
+
+def _compare(got_path, ref_path):
+ got = open(got_path).read().split()
+ ref = open(ref_path).read().split()
+ assert len(got) == len(ref), (len(got), len(ref))
+ max_int, max_float = 0, 0.0
+ for a, b in zip(got, ref):
+ ia, ib = a.lstrip('-').isdigit(), b.lstrip('-').isdigit()
+ if ia and ib:
+ max_int = max(max_int, abs(int(a) - int(b)))
+ else:
+ max_float = max(max_float, abs(float(a) - float(b)))
+ assert max_int == 0, f'integer field differs (max {max_int})'
+ assert max_float < 1e-6, f'float field differs (max {max_float:.2e})'
+
+
+def _check(case):
+ tmp = tempfile.mkdtemp()
+ try:
+ for ext in ('indmftpr', 'struct', 'dmftsym'):
+ shutil.copy(os.path.join(HERE, f'{case}.{ext}'),
+ os.path.join(tmp, f'{case}.{ext}'))
+ for ext in ('almblmup', 'almblmdn'):
+ _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'),
+ os.path.join(tmp, f'{case}.{ext}'))
+ ctqmcout.write_ctqmcout(os.path.join(tmp, case))
+ _compare(os.path.join(tmp, f'{case}.ctqmcout'),
+ os.path.join(HERE, f'{case}.ctqmcout'))
+ finally:
+ shutil.rmtree(tmp)
+
+
+_check('CaOs2')
+
+print('wien2k_ctqmcout_python: ok')
diff --git a/test/python/wien2k/wien2k_oubwin_python.py b/test/python/wien2k/wien2k_oubwin_python.py
new file mode 100644
index 0000000..bb80d2b
--- /dev/null
+++ b/test/python/wien2k/wien2k_oubwin_python.py
@@ -0,0 +1,49 @@
+################################################################################
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+# (GPL-3.0-or-later)
+################################################################################
+
+# Verify the pure-Python case.oubwin generator (triqs_dftkit.wien2k.oubwin)
+# reproduces the dmftproj Fortran output: regenerate case.oubwinup / case.oubwindn
+# from case.almblm{up,dn} + case.indmftpr and compare byte for byte to the
+# committed dmftproj references (the same files the SOC converter test consumes).
+#
+# CaOs2 is spin-orbit + spin-polarized. The almblm fixtures are gzipped to keep
+# the tree small (they are shared with the ctqmcout test, which needs the full
+# projector payload).
+
+import gzip
+import os
+import shutil
+import tempfile
+
+from triqs_dftkit.wien2k import oubwin
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+
+
+def _gunzip(src, dst):
+ with gzip.open(src, 'rb') as fi, open(dst, 'wb') as fo:
+ shutil.copyfileobj(fi, fo)
+
+
+def _check(case):
+ tmp = tempfile.mkdtemp()
+ try:
+ shutil.copy(os.path.join(HERE, f'{case}.indmftpr'),
+ os.path.join(tmp, f'{case}.indmftpr'))
+ for ext in ('almblmup', 'almblmdn'):
+ _gunzip(os.path.join(HERE, f'{case}.{ext}.gz'),
+ os.path.join(tmp, f'{case}.{ext}'))
+ oubwin.write_oubwin(os.path.join(tmp, case))
+ for ext in ('oubwinup', 'oubwindn'):
+ got = open(os.path.join(tmp, f'{case}.{ext}')).read()
+ ref = open(os.path.join(HERE, f'{case}.{ext}')).read()
+ assert got == ref, f'{case}.{ext} differs from dmftproj reference'
+ finally:
+ shutil.rmtree(tmp)
+
+
+_check('CaOs2')
+
+print('wien2k_oubwin_python: ok')
diff --git a/test/python/wien2k/wien2k_soc_convert.py b/test/python/wien2k/wien2k_soc_convert.py
new file mode 100644
index 0000000..dc2a426
--- /dev/null
+++ b/test/python/wien2k/wien2k_soc_convert.py
@@ -0,0 +1,39 @@
+################################################################################
+#
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+#
+# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola
+#
+# TRIQS is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+# details.
+#
+# You should have received a copy of the GNU General Public License along with
+# TRIQS. If not, see .
+#
+################################################################################
+
+# Spin-orbit + spin-polarized Wien2k converter test.
+#
+# CaOs2 is a cubic fluorite-type cell with two symmetry-equivalent correlated Os
+# atoms; its magnetic point group has 16 operations, 8 of them time-reversal.
+# This exercises the SOC path of dmftproj and the converter (combined-spin 'ud'
+# block, time-reversal symmetry operations) that the non-SOC SrVO3 test does not.
+
+from h5 import *
+from triqs.utility.h5diff import h5diff
+import triqs.utility.mpi as mpi
+from triqs_dftkit.wien2k import Converter
+
+Converter = Converter(filename='CaOs2')
+Converter.hdf_file = 'wien2k_soc_convert.out.h5'
+Converter.convert_dft_input()
+
+if mpi.is_master_node():
+ h5diff('wien2k_soc_convert.out.h5', 'wien2k_soc_convert.ref.h5')
diff --git a/test/python/wien2k/wien2k_soc_convert.ref.h5 b/test/python/wien2k/wien2k_soc_convert.ref.h5
new file mode 100644
index 0000000..e541e6b
Binary files /dev/null and b/test/python/wien2k/wien2k_soc_convert.ref.h5 differ
diff --git a/test/python/wien2k/wien2k_symqmc_jbasis.ref.npy b/test/python/wien2k/wien2k_symqmc_jbasis.ref.npy
new file mode 100644
index 0000000..b7e2e01
Binary files /dev/null and b/test/python/wien2k/wien2k_symqmc_jbasis.ref.npy differ
diff --git a/test/python/wien2k/wien2k_symqmc_l0.ref.npy b/test/python/wien2k/wien2k_symqmc_l0.ref.npy
new file mode 100644
index 0000000..679d0e0
Binary files /dev/null and b/test/python/wien2k/wien2k_symqmc_l0.ref.npy differ
diff --git a/test/python/wien2k/wien2k_symqmc_mixing.py b/test/python/wien2k/wien2k_symqmc_mixing.py
new file mode 100644
index 0000000..eb729a8
--- /dev/null
+++ b/test/python/wien2k/wien2k_symqmc_mixing.py
@@ -0,0 +1,88 @@
+################################################################################
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+# (GPL-3.0-or-later)
+################################################################################
+
+# Verify the pure-Python case.symqmc generator on the two paths the spin-diagonal
+# cubic test (wien2k_symqmc_python) does not exercise:
+#
+# - a spin-mixing fromfile basis (the |j, m_j> basis), which uses the full
+# 2(2l+1) spinor representation and the spinor time-reversal operator;
+# - an l = 0 (s) correlated shell, the 2x2 spin phase block.
+#
+# Both reuse the CaOs2 symmetry input (16 operations, 8 of them time-reversal).
+# The reference is the dmftproj Fortran case.symqmc for the same input, stored as
+# the matrix data in single precision: dmftproj reads the fromfile basis with a
+# single-precision CMPLX cast (set_ang_trans.f), so its output there carries a
+# ~1e-7 error. The generator is full double precision, so we compare at 1e-6 and
+# separately assert each Python spinor matrix is unitary.
+
+import os
+import shutil
+import tempfile
+import numpy as np
+
+from triqs_dftkit.wien2k import symqmc
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+
+
+def _matrix_data(symqmc_path, nsym, natom):
+ """Flat array of the matrix blocks, skipping header/perm/timeflag lines."""
+ toks = iter(open(symqmc_path).read().split())
+ assert int(next(toks)) == nsym and int(next(toks)) == natom
+ for _ in range(nsym * natom + nsym): # perm rows + the time-reversal flags
+ next(toks)
+ return np.array([float(x) for x in toks])
+
+
+def _run(indmftpr, extra=()):
+ """Generate case.symqmc in a scratch dir from the shared CaOs2 symmetry
+ input and the given indmftpr, returning (matrix data, shells, ops, so)."""
+ tmp = tempfile.mkdtemp()
+ try:
+ for src, dst in (('CaOs2.dmftsym', 'case.dmftsym'),
+ ('CaOs2.struct', 'case.struct'),
+ (indmftpr, 'case.indmftpr')) + extra:
+ shutil.copy(os.path.join(HERE, src), os.path.join(tmp, dst))
+ case = os.path.join(tmp, 'case')
+ symqmc.write_symqmc(case)
+ nsym, ops = symqmc._read_dmftsym(case + '.dmftsym')
+ shells, so = symqmc._read_correlated_shells(
+ case + '.indmftpr', case + '.struct')
+ natom = len(ops[0]['perm'])
+ return _matrix_data(case + '.symqmc', nsym, natom), shells, ops, so
+ finally:
+ shutil.rmtree(tmp)
+
+
+def _timeinv(op, so):
+ k = op['krotm']
+ return 1 if (so and k[0, 0] * k[1, 1] - k[0, 1] * k[1, 0] < 0.0) else 0
+
+
+def _check(indmftpr, ref_npy, extra=(), unit_tol=1e-7):
+ data, shells, ops, so = _run(indmftpr, extra)
+ ref = np.load(os.path.join(HERE, ref_npy))
+ assert data.shape == ref.shape, (data.shape, ref.shape)
+ assert np.max(np.abs(data - ref)) < 1e-6, np.max(np.abs(data - ref))
+ for op in ops:
+ for sh in shells:
+ mat = symqmc._shell_matrix(op, sh, _timeinv(op, so))
+ dev = np.max(np.abs(mat @ np.conj(mat.T) - np.eye(mat.shape[0])))
+ assert dev < unit_tol, ('not unitary', dev)
+
+
+# spin-mixing |j, m_j> basis: the path dft_tools #148 singles out
+data, shells, _, _ = _run('CaOs2_jbasis.indmftpr',
+ (('jbasis_d.dat', 'jbasis_d.dat'),))
+assert shells[0]['mixing'] and shells[0]['P'].shape == (10, 10)
+_check('CaOs2_jbasis.indmftpr', 'wien2k_symqmc_jbasis.ref.npy',
+ (('jbasis_d.dat', 'jbasis_d.dat'),))
+
+# l = 0 (s) correlated shell
+_, shells, _, _ = _run('CaOs2_l0.indmftpr')
+assert shells[0]['l'] == 0
+_check('CaOs2_l0.indmftpr', 'wien2k_symqmc_l0.ref.npy', unit_tol=1e-12)
+
+print('wien2k_symqmc_mixing: ok')
diff --git a/test/python/wien2k/wien2k_symqmc_python.py b/test/python/wien2k/wien2k_symqmc_python.py
new file mode 100644
index 0000000..c60b24a
--- /dev/null
+++ b/test/python/wien2k/wien2k_symqmc_python.py
@@ -0,0 +1,23 @@
+################################################################################
+# TRIQS: a Toolbox for Research in Interacting Quantum Systems
+# (GPL-3.0-or-later)
+################################################################################
+
+# Verify the pure-Python case.symqmc generator (triqs_dftkit.wien2k.symqmc)
+# reproduces the dmftproj Fortran output: regenerate case.symqmc in Python from
+# case.dmftsym + case.indmftpr + case.struct, convert, and compare the resulting
+# HDF5 to the reference produced from the Fortran dmftproj symqmc.
+
+from triqs_dftkit.wien2k.symqmc import write_symqmc
+from triqs_dftkit.wien2k import Converter
+from triqs.utility.h5diff import h5diff
+import triqs.utility.mpi as mpi
+
+write_symqmc('CaOs2')
+
+Converter = Converter(filename='CaOs2')
+Converter.hdf_file = 'wien2k_symqmc_python.out.h5'
+Converter.convert_dft_input()
+
+if mpi.is_master_node():
+ h5diff('wien2k_symqmc_python.out.h5', 'wien2k_soc_convert.ref.h5')