Repository: irreducible-representations/irrep (language: python)

Issue:
Adding hdf5 support
Hi,

Here's the modification for hdf5 support, little bit qnd but I think that's all it needs to be. Sets a flag for hdf5 if the wavefunctions are found in that format and reads them to the same variables as in the dat case. I've tested on .dat and .hdf5 with and without SOC, I'm pretty sure it's working. I personally also had to change the import of 'isround' in bandstructure.py to irrep.utility from irrep.__aux but I don't understand why.

Cheers,
Matthew


Discussion / hints:
@MSteggles ,
thank you for your contribution. As ypu can see, the automaed testys have failed with message `Python version >= 3.8 required.`

I disabnled checks on the old python 3.7, and enabled for python 3.8 and 3.9. Please, update your branch from the master branch, and we'll see if the checks work.

Further, we will need a small test to make sure the HDF5 support will not be broken in future. For that a minimal (not obligatore physically meaningful) example is needed. 
Oh dear, I'll fix this as soon as I have some free time. Thank you
Hi;

Apologies for the delay, I've been extremely busy with PhD work (handing in
~Christmas), thanks so much for your patience!
Hm yeah, just had a look - I'm a bit confused as h5py works from python
>=3.7, so I really don't know where the problem has come in. I'll have a
look and see if I can fix it. I'm also a little unsure of what you want:

1) Are you saying I just need to disable checks to see if the 3.8, 3.9
builds complete fine?
2) What would you like from a test? All it does is add the ability to read
that file format - would reading a given file and checking it's correct
against the .dat version suffice? The use of hdf5 comes from deep within
QEspresso

Looking forward to hearing from you

Best,
Matthew

On Sun, Apr 17, 2022 at 3:27 PM Stepan Tsirkin ***@***.***>
wrote:

> @MSteggles <https://github.com/MSteggles> ,
> thank you for your contribution. As ypu can see, the automaed testys have
> failed with message Python version >= 3.8 required.
>
> I disabnled checks on the old python 3.7, and enabled for python 3.8 and
> 3.9. Please, update your branch from the master branch, and we'll see if
> the checks work.
>
> Further, we will need a small test to make sure the HDF5 support will not
> be broken in future. For that a minimal (not obligatore physically
> meaningful) example is needed.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/stepan-tsirkin/irrep/pull/39#issuecomment-1100890014>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHO7MYYMUWZCVWAJKKZ7AWDVFQNWNANCNFSM5SNGG3FQ>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>

@MSteggles , no worries, we all contribute when we can

basically, the check on python 3.7 should be disabled in the file `.github/workflows)/tests.yml` , and it already is on the `master` branch:

https://github.com/stepan-tsirkin/irrep/blob/670328922afe4d78ef390cf83f1bc314ce1f5893/.github/workflows/tests.yml#L12

However, in your branch it is only 3.7, which is outdated:

https://github.com/MSteggles/irrep/blob/d74d4ebaaefd5bf14afdf607c86d76ca95d48c58/.github/workflows/tests.yml#L12

So, first of all merge my `master` branch into your branch, that should take incorporate my latest commits, including [this](https://github.com/stepan-tsirkin/irrep/commit/5f04724eba2a61c69038ef7e8656d7c7c18d3aea)

In principle, a test should read the data, run the calculation and make sure that the output is correct (i.e. compare with some output that you are sure to be correct). I just realized that we do not have any tests for QE, but have for other codes.

So, to create a test yopu need : 

1. in the `examples` folder create another folder with an example, containing all input data (output of DFT code required to run `irrep`). The size of this data should be kept at a minimum (not even required to be physically meaningful), so minimal system (1atom per unit cell), minimal cutoff, minimal number of k-points and bands  etc)
2. In https://github.com/MSteggles/irrep/blob/master/irrep/tests/test_cli.py  create another function with name starting from `test_` that will check the output for matching some key correct strings. All by analogy

You may create two folders, in one only hdf5 data, in the other only the `.dat` files in the `.save` directory. So, there will be two tests (but the output may be done the same)

If you struggle with that, do not hesitate to ask me again. 
Excellent stuff :-) Thanks for the help, I'll get on those and get in touch
if I have trouble.
Cheers,
Matthew

On Mon, May 2, 2022 at 7:49 PM Stepan Tsirkin ***@***.***>
wrote:

> @MSteggles <https://github.com/MSteggles> , no worries, we all contribute
> when we can
>
> basically, the check on python 3.7 should be disabled in the file
> .github/workflows)/tests.yml , and it already is on the master branch:
>
>
> https://github.com/stepan-tsirkin/irrep/blob/670328922afe4d78ef390cf83f1bc314ce1f5893/.github/workflows/tests.yml#L12
>
> However, in your branch it is only 3.7, which is outdated:
>
>
> https://github.com/MSteggles/irrep/blob/d74d4ebaaefd5bf14afdf607c86d76ca95d48c58/.github/workflows/tests.yml#L12
>
> So, first of all merge my master branch into your branch, that should
> take incorporate my latest commits, including this
> <https://github.com/stepan-tsirkin/irrep/commit/5f04724eba2a61c69038ef7e8656d7c7c18d3aea>
>
> In principle, a test should read the data, run the calculation and make
> sure that the output is correct (i.e. compare with some output that you are
> sure to be correct). I just realized that we do not have any tests for QE,
> but have for other codes.
>
> So, to create a test yopu need :
>
>    1. in the examples folder create another folder with an example,
>    containing all input data (output of DFT code required to run irrep).
>    The size of this data should be kept at a minimum (not even required to be
>    physically meaningful), so minimal system (1atom per unit cell), minimal
>    cutoff, minimal number of k-points and bands etc)
>    2. In
>    https://github.com/MSteggles/irrep/blob/master/irrep/tests/test_cli.py
>    create another function with name starting from test_ that will check
>    the output for matching some key correct strings. All by analogy
>
> You may create two folders, in one only hdf5 data, in the other only the
> .dat files in the .save directory. So, there will be two tests (but the
> output may be done the same)
>
> If you struggle with that, do not hesitate to ask me again.
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/stepan-tsirkin/irrep/pull/39#issuecomment-1115241905>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHO7MYYVGNFL6U255M333D3VIAPTDANCNFSM5SNGG3FQ>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>


Fix patch:
diff --git a/examples/espresso_hdf5/di.save/data-file-schema.xml b/examples/espresso_hdf5/di.save/data-file-schema.xml
new file mode 100644
index 000000000..79863bc4e
--- /dev/null
+++ b/examples/espresso_hdf5/di.save/data-file-schema.xml
@@ -0,0 +1,1013 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<qes:espresso xsi:schemaLocation="http://www.quantum-espresso.org/ns/qes/qes-1.0 http://www.quantum-espresso.org/ns/qes/qes_220603.xsd" Units="Hartree atomic units" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:qes="http://www.quantum-espresso.org/ns/qes/qes-1.0">
+  <!--All quantities are in Hartree atomic units unless otherwise specified-->
+  <general_info>
+    <xml_format NAME="QEXSD" VERSION="21.11.01">QEXSD_21.11.01</xml_format>
+    <creator NAME="PWSCF" VERSION="7.1">XML file generated by PWSCF</creator>
+    <created DATE="28Aug2024" TIME="20:25: 9">This run was terminated on:  20:25: 9  28 Aug 2024</created>
+    <job></job>
+  </general_info>
+  <parallel_info>
+    <nprocs>48</nprocs>
+    <nthreads>1</nthreads>
+    <ntasks>1</ntasks>
+    <nbgrp>1</nbgrp>
+    <npool>3</npool>
+    <ndiag>16</ndiag>
+  </parallel_info>
+  <input>
+    <control_variables>
+      <title></title>
+      <calculation>scf</calculation>
+      <restart_mode>from_scratch</restart_mode>
+      <prefix>di</prefix>
+      <pseudo_dir>./</pseudo_dir>
+      <outdir>./</outdir>
+      <stress>false</stress>
+      <forces>false</forces>
+      <wf_collect>true</wf_collect>
+      <disk_io>low</disk_io>
+      <max_seconds>10000000</max_seconds>
+      <nstep>1</nstep>
+      <etot_conv_thr>5.000000000000000e-5</etot_conv_thr>
+      <forc_conv_thr>5.000000000000000e-4</forc_conv_thr>
+      <press_conv_thr>5.000000000000000e-1</press_conv_thr>
+      <verbosity>low</verbosity>
+      <print_every>100000</print_every>
+      <fcp>false</fcp>
+      <rism>false</rism>
+    </control_variables>
+    <atomic_species ntyp="1">
+      <species name="C">
+        <mass>1.200000000000000e1</mass>
+        <pseudo_file>C.pz-vbc.UPF</pseudo_file>
+      </species>
+    </atomic_species>
+    <atomic_structure nat="2" alat="6.100000000000e0" bravais_index="2">
+      <atomic_positions>
+        <atom name="C" index="1">7.625000000000000e-1 -7.625000000000000e-1 -7.625000000000000e-1</atom>
+        <atom name="C" index="2">-7.625000000000000e-1 7.625000000000000e-1 7.625000000000000e-1</atom>
+      </atomic_positions>
+      <cell>
+        <a1>-3.050000000000000e0 0.000000000000000e0 3.050000000000000e0</a1>
+        <a2>0.000000000000000e0 3.050000000000000e0 3.050000000000000e0</a2>
+        <a3>-3.050000000000000e0 3.050000000000000e0 0.000000000000000e0</a3>
+      </cell>
+    </atomic_structure>
+    <dft>
+      <functional>PZ</functional>
+    </dft>
+    <spin>
+      <lsda>false</lsda>
+      <noncolin>false</noncolin>
+      <spinorbit>false</spinorbit>
+    </spin>
+    <bands>
+      <tot_charge>0.000000000000000e0</tot_charge>
+      <occupations>fixed</occupations>
+    </bands>
+    <basis>
+      <gamma_only>false</gamma_only>
+      <ecutwfc>1.000000000000000e1</ecutwfc>
+      <ecutrho>4.000000000000000e1</ecutrho>
+    </basis>
+    <electron_control>
+      <diagonalization>davidson</diagonalization>
+      <mixing_mode>plain</mixing_mode>
+      <mixing_beta>7.000000000000000e-1</mixing_beta>
+      <conv_thr>5.000000000000000e-14</conv_thr>
+      <mixing_ndim>8</mixing_ndim>
+      <max_nstep>100</max_nstep>
+      <real_space_q>false</real_space_q>
+      <real_space_beta>false</real_space_beta>
+      <tq_smoothing>false</tq_smoothing>
+      <tbeta_smoothing>false</tbeta_smoothing>
+      <diago_thr_init>0.000000000000000e0</diago_thr_init>
+      <diago_full_acc>false</diago_full_acc>
+      <diago_cg_maxiter>20</diago_cg_maxiter>
+      <diago_ppcg_maxiter>20</diago_ppcg_maxiter>
+      <diago_rmm_ndim>4</diago_rmm_ndim>
+      <diago_gs_nblock>16</diago_gs_nblock>
+      <diago_rmm_conv>false</diago_rmm_conv>
+    </electron_control>
+    <k_points_IBZ>
+      <monkhorst_pack nk1="2" nk2="2" nk3="2" k1="0" k2="0" k3="0">Monkhorst-Pack</monkhorst_pack>
+    </k_points_IBZ>
+    <ion_control>
+      <ion_dynamics>none</ion_dynamics>
+      <upscale>1.000000000000000e2</upscale>
+      <remove_rigid_rot>false</remove_rigid_rot>
+      <refold_pos>false</refold_pos>
+    </ion_control>
+    <cell_control>
+      <cell_dynamics>none</cell_dynamics>
+      <pressure>0.000000000000000e0</pressure>
+      <wmass>2.400000000000000e1</wmass>
+      <cell_do_free>all</cell_do_free>
+    </cell_control>
+    <symmetry_flags>
+      <nosym>false</nosym>
+      <nosym_evc>false</nosym_evc>
+      <noinv>false</noinv>
+      <no_t_rev>false</no_t_rev>
+      <force_symmorphic>false</force_symmorphic>
+      <use_all_frac>false</use_all_frac>
+    </symmetry_flags>
+  </input>
+  <output>
+    <convergence_info>
+      <scf_conv>
+        <convergence_achieved>true</convergence_achieved>
+        <n_scf_steps>9</n_scf_steps>
+        <scf_error>8.832104560991780e-15</scf_error>
+      </scf_conv>
+    </convergence_info>
+    <algorithmic_info>
+      <real_space_q>false</real_space_q>
+      <real_space_beta>false</real_space_beta>
+      <uspp>false</uspp>
+      <paw>false</paw>
+    </algorithmic_info>
+    <atomic_species ntyp="1" pseudo_dir="./">
+      <species name="C">
+        <mass>1.200000000000000e1</mass>
+        <pseudo_file>C.pz-vbc.UPF</pseudo_file>
+      </species>
+    </atomic_species>
+    <atomic_structure nat="2" alat="6.100000000000e0" bravais_index="2">
+      <atomic_positions>
+        <atom name="C" index="1">7.625000000000000e-1 -7.625000000000000e-1 -7.625000000000000e-1</atom>
+        <atom name="C" index="2">-7.625000000000000e-1 7.625000000000000e-1 7.625000000000000e-1</atom>
+      </atomic_positions>
+      <cell>
+        <a1>-3.050000000000000e0 0.000000000000000e0 3.050000000000000e0</a1>
+        <a2>0.000000000000000e0 3.050000000000000e0 3.050000000000000e0</a2>
+        <a3>-3.050000000000000e0 3.050000000000000e0 0.000000000000000e0</a3>
+      </cell>
+    </atomic_structure>
+    <symmetries>
+      <nsym>48</nsym>
+      <nrot>48</nrot>
+      <space_group>0</space_group>
+      <symmetry>
+        <info name="identity">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [0,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [0,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [1,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [1,-1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [0,0,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [0,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [1,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [-1,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [0,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [0,-1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [0,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="180 deg rotation - cart. axis [0,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [-1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name=" 90 deg rotation - cart. axis [1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [-1,-1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [-1,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [1,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [1,-1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [1,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [-1,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [1,-1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="120 deg rotation - cart. axis [-1,-1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inversion">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [0,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [0,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [1,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [1,-1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [0,0,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [0,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [1,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [-1,0,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [0,1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [0,-1,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [0,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 180 deg rotation - cart. axis [0,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [-1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv.  90 deg rotation - cart. axis [1,0,0]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 -1.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          1 2
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [-1,-1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [-1,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [1,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [1,-1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [1,1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 -5.000000000000000e-1</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [-1,1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          </rotation>
+        <fractional_translation>-5.000000000000000e-1 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [1,-1,-1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          0.000000000000000e0 0.000000000000000e0 -1.000000000000000e0
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+      <symmetry>
+        <info name="inv. 120 deg rotation - cart. axis [-1,-1,1]">crystal_symmetry</info>
+        <rotation rank="2" dims="3 3">
+          -1.000000000000000e0 0.000000000000000e0 0.000000000000000e0
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0
+          </rotation>
+        <fractional_translation>0.000000000000000e0 -5.000000000000000e-1 0.000000000000000e0</fractional_translation>
+        <equivalent_atoms size="2" nat="2">
+          2 1
+          </equivalent_atoms>
+      </symmetry>
+    </symmetries>
+    <basis_set>
+      <gamma_only>false</gamma_only>
+      <ecutwfc>1.000000000000000e1</ecutwfc>
+      <ecutrho>4.000000000000000e1</ecutrho>
+      <fft_grid nr1="16" nr2="16" nr3="16"></fft_grid>
+      <fft_smooth nr1="16" nr2="16" nr3="16"></fft_smooth>
+      <fft_box nr1="16" nr2="16" nr3="16"></fft_box>
+      <ngm>701</ngm>
+      <ngms>701</ngms>
+      <npwx>92</npwx>
+      <reciprocal_lattice>
+        <b1>-1.000000000000000e0 -1.000000000000000e0 1.000000000000000e0</b1>
+        <b2>1.000000000000000e0 1.000000000000000e0 1.000000000000000e0</b2>
+        <b3>-1.000000000000000e0 1.000000000000000e0 -1.000000000000000e0</b3>
+      </reciprocal_lattice>
+    </basis_set>
+    <dft>
+      <functional>PZ</functional>
+    </dft>
+    <magnetization>
+      <lsda>false</lsda>
+      <noncolin>false</noncolin>
+      <spinorbit>false</spinorbit>
+      <absolute>0.000000000000000e0</absolute>
+    </magnetization>
+    <total_energy>
+      <etot>-1.083428434536058e1</etot>
+      <eband>2.923489675870331e0</eband>
+      <ehart>8.021374179341294e-1</ehart>
+      <vtxc>-4.981511166947486e0</vtxc>
+      <etxc>-3.807841514768302e0</etxc>
+      <ewald>-1.412930639477395e1</ewald>
+    </total_energy>
+    <band_structure>
+      <lsda>false</lsda>
+      <noncolin>false</noncolin>
+      <spinorbit>false</spinorbit>
+      <nbnd>4</nbnd>
+      <nelec>8.000000000000000e0</nelec>
+      <num_of_atomic_wfc>8</num_of_atomic_wfc>
+      <wf_collected>true</wf_collected>
+      <fermi_energy>8.198949878609820e-1</fermi_energy>
+      <highestOccupiedLevel>8.198949878609820e-1</highestOccupiedLevel>
+      <starting_k_points>
+        <monkhorst_pack nk1="2" nk2="2" nk3="2" k1="0" k2="0" k3="0">Monkhorst-Pack</monkhorst_pack>
+      </starting_k_points>
+      <nks>3</nks>
+      <occupations_kind>fixed</occupations_kind>
+      <ks_energies>
+        <k_point weight="2.500000000000e-1">0.000000000000000e0 0.000000000000000e0 0.000000000000000e0</k_point>
+        <npw>65</npw>
+        <eigenvalues size="4">
+          -2.150238552905268e-1 8.198949878609760e-1 8.198949878609769e-1 8.198949878609820e-1
+          </eigenvalues>
+        <occupations size="4">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </occupations>
+      </ks_energies>
+      <ks_energies>
+        <k_point weight="1.000000000000e0">5.000000000000000e-1 -5.000000000000000e-1 5.000000000000000e-1</k_point>
+        <npw>90</npw>
+        <eigenvalues size="4">
+          7.612824776146038e-2 1.006389118221904e-1 6.243148674472816e-1 6.243148674472828e-1
+          </eigenvalues>
+        <occupations size="4">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </occupations>
+      </ks_energies>
+      <ks_energies>
+        <k_point weight="7.500000000000e-1">0.000000000000000e0 -1.000000000000000e0 0.000000000000000e0</k_point>
+        <npw>92</npw>
+        <eigenvalues size="4">
+          1.813669223933936e-1 1.813669223933942e-1 4.432514138192815e-1 4.432514138192821e-1
+          </eigenvalues>
+        <occupations size="4">
+          1.000000000000000e0 1.000000000000000e0 1.000000000000000e0 1.000000000000000e0
+          </occupations>
+      </ks_energies>
+    </band_structure>
+  </output>
+  <exit_status>0</exit_status>
+  <timing_info>
+    <total label="PWSCF">
+      <cpu>8.552400000000016e-2</cpu>
+      <wall>2.532429695129395e-1</wall>
+    </total>
+    <partial label="init_run" calls="1">
+      <cpu>1.564000000000010e-2</cpu>
+      <wall>2.330589294433594e-2</wall>
+    </partial>
+    <partial label="hinit0" calls="1">
+      <cpu>1.208100000000001e-2</cpu>
+      <wall>1.563096046447754e-2</wall>
+    </partial>
+    <partial label="init_vloc" calls="1">
+      <cpu>4.800000000004800e-5</cpu>
+      <wall>5.817413330078125e-5</wall>
+    </partial>
+    <partial label="init_us_1" calls="1">
+      <cpu>3.120000000000900e-4</cpu>
+      <wall>3.771781921386719e-4</wall>
+    </partial>
+    <partial label="fft" calls="29">
+      <cpu>1.170300000000024e-2</cpu>
+      <wall>1.557087898254395e-2</wall>
+    </partial>
+    <partial label="fft_scatter" calls="288">
+      <cpu>1.649799999999946e-2</cpu>
+      <wall>1.918244361877441e-2</wall>
+    </partial>
+    <partial label="potinit" calls="1">
+      <cpu>1.660000000001105e-4</cpu>
+      <wall>1.065015792846680e-3</wall>
+    </partial>
+    <partial label="v_of_rho" calls="10">
+      <cpu>5.840000000001400e-4</cpu>
+      <wall>9.915828704833984e-4</wall>
+    </partial>
+    <partial label="v_xc" calls="10">
+      <cpu>3.200000000000980e-4</cpu>
+      <wall>4.255771636962891e-4</wall>
+    </partial>
+    <partial label="v_h" calls="10">
+      <cpu>1.960000000000850e-4</cpu>
+      <wall>4.000663757324219e-4</wall>
+    </partial>
+    <partial label="wfcinit" calls="1">
+      <cpu>2.242999999999995e-3</cpu>
+      <wall>4.276990890502930e-3</wall>
+    </partial>
+    <partial label="init_us_2" calls="19">
+      <cpu>7.099999999993223e-5</cpu>
+      <wall>8.702278137207031e-5</wall>
+    </partial>
+    <partial label="init_us_2:cp" calls="19">
+      <cpu>5.300000000030280e-5</cpu>
+      <wall>6.651878356933594e-5</wall>
+    </partial>
+    <partial label="wfcinit:atom" calls="1">
+      <cpu>0.000000000000000e0</cpu>
+      <wall>5.006790161132813e-6</wall>
+    </partial>
+    <partial label="atomic_wfc" calls="1">
+      <cpu>0.000000000000000e0</cpu>
+      <wall>3.814697265625000e-6</wall>
+    </partial>
+    <partial label="wfcinit:wfcr" calls="1">
+      <cpu>2.241999999999855e-3</cpu>
+      <wall>3.691911697387695e-3</wall>
+    </partial>
+    <partial label="wfcrot" calls="1">
+      <cpu>2.240999999999937e-3</cpu>
+      <wall>3.690958023071289e-3</wall>
+    </partial>
+    <partial label="rotwfck" calls="1">
+      <cpu>2.239999999999798e-3</cpu>
+      <wall>3.687858581542969e-3</wall>
+    </partial>
+    <partial label="rotwfck:hpsi" calls="1">
+      <cpu>1.773999999999942e-3</cpu>
+      <wall>3.220081329345703e-3</wall>
+    </partial>
+    <partial label="h_psi_bgrp" calls="33">
+      <cpu>5.406999999999718e-3</cpu>
+      <wall>7.586002349853516e-3</wall>
+    </partial>
+    <partial label="h_psi" calls="33">
+      <cpu>5.378999999999579e-3</cpu>
+      <wall>7.551193237304688e-3</wall>
+    </partial>
+    <partial label="h_psi:pot" calls="33">
+      <cpu>5.338000000000731e-3</cpu>
+      <wall>7.499456405639648e-3</wall>
+    </partial>
+    <partial label="vloc_psi" calls="33">
+      <cpu>4.838999999999816e-3</cpu>
+      <wall>6.896972656250000e-3</wall>
+    </partial>
+    <partial label="fftw" calls="250">
+      <cpu>5.019999999997360e-3</cpu>
+      <wall>7.107019424438477e-3</wall>
+    </partial>
+    <partial label="h_psi:calbec" calls="33">
+      <cpu>3.579999999996364e-4</cpu>
+      <wall>4.243850708007813e-4</wall>
+    </partial>
+    <partial label="calbec" calls="33">
+      <cpu>3.269999999999662e-4</cpu>
+      <wall>3.895759582519531e-4</wall>
+    </partial>
+    <partial label="add_vuspsi" calls="33">
+      <cpu>5.900000000091943e-5</cpu>
+      <wall>7.724761962890625e-5</wall>
+    </partial>
+    <partial label="rotwfck:hc" calls="1">
+      <cpu>3.200000000003200e-5</cpu>
+      <wall>3.194808959960938e-5</wall>
+    </partial>
+    <partial label="rotwfck:diag" calls="1">
+      <cpu>4.170000000001117e-4</cpu>
+      <wall>4.169940948486328e-4</wall>
+    </partial>
+    <partial label="cdiaghg" calls="32">
+      <cpu>9.379999999996613e-4</cpu>
+      <wall>1.034736633300781e-3</wall>
+    </partial>
+    <partial label="rotwfck:evc" calls="1">
+      <cpu>1.499999999987622e-5</cpu>
+      <wall>1.502037048339844e-5</wall>
+    </partial>
+    <partial label="electrons" calls="1">
+      <cpu>1.152300000000017e-2</cpu>
+      <wall>7.456707954406738e-2</wall>
+    </partial>
+    <partial label="c_bands" calls="9">
+      <cpu>6.109999999999838e-3</cpu>
+      <wall>1.044321060180664e-2</wall>
+    </partial>
+    <partial label="cegterg" calls="9">
+      <cpu>5.399999999999849e-3</cpu>
+      <wall>7.746934890747070e-3</wall>
+    </partial>
+    <partial label="cegterg:init" calls="9">
+      <cpu>1.180000000002845e-4</cpu>
+      <wall>6.356239318847656e-4</wall>
+    </partial>
+    <partial label="cegterg:upda" calls="23">
+      <cpu>1.030000000001863e-4</cpu>
+      <wall>9.353160858154297e-4</wall>
+    </partial>
+    <partial label="g_psi" calls="23">
+      <cpu>1.999999999968693e-5</cpu>
+      <wall>2.694129943847656e-5</wall>
+    </partial>
+    <partial label="cegterg:over" calls="23">
+      <cpu>3.319999999999990e-4</cpu>
+      <wall>3.700256347656250e-4</wall>
+    </partial>
+    <partial label="cegterg:diag" calls="31">
+      <cpu>5.679999999994578e-4</cpu>
+      <wall>6.694793701171875e-4</wall>
+    </partial>
+    <partial label="cegterg:last" calls="17">
+      <cpu>4.099999999995774e-5</cpu>
+      <wall>4.100799560546875e-5</wall>
+    </partial>
+    <partial label="sum_band" calls="9">
+      <cpu>1.526000000000138e-3</cpu>
+      <wall>1.958847045898438e-3</wall>
+    </partial>
+    <partial label="sum_band:wei" calls="9">
+      <cpu>8.099999999955365e-5</cpu>
+      <wall>9.584426879882813e-5</wall>
+    </partial>
+    <partial label="sum_band:loo" calls="9">
+      <cpu>4.919999999999369e-4</cpu>
+      <wall>5.931854248046875e-4</wall>
+    </partial>
+    <partial label="sum_band:buf" calls="9">
+      <cpu>3.999999999892978e-6</cpu>
+      <wall>5.483627319335938e-6</wall>
+    </partial>
+    <partial label="sum_band:ini" calls="9">
+      <cpu>4.099999999973569e-5</cpu>
+      <wall>5.078315734863281e-5</wall>
+    </partial>
+    <partial label="ffts" calls="9">
+      <cpu>1.690000000000857e-4</cpu>
+      <wall>2.014636993408203e-4</wall>
+    </partial>
+    <partial label="sum_band:sym" calls="9">
+      <cpu>6.339999999993573e-4</cpu>
+      <wall>8.382797241210938e-4</wall>
+    </partial>
+    <partial label="mix_rho" calls="9">
+      <cpu>7.800000000006690e-4</cpu>
+      <wall>8.804798126220703e-4</wall>
+    </partial>
+    <partial label="ions" calls="1">
+      <cpu>9.999999999177334e-7</cpu>
+      <wall>9.536743164062500e-7</wall>
+    </partial>
+  </timing_info>
+  <closed DATE="28 Aug 2024" TIME="20:25: 9"></closed>
+</qes:espresso>
diff --git a/examples/espresso_hdf5/di.save/wfc1.hdf5 b/examples/espresso_hdf5/di.save/wfc1.hdf5
new file mode 100644
index 000000000..2a99bd662
Binary files /dev/null and b/examples/espresso_hdf5/di.save/wfc1.hdf5 differ
diff --git a/examples/espresso_hdf5/di.save/wfc2.hdf5 b/examples/espresso_hdf5/di.save/wfc2.hdf5
new file mode 100644
index 000000000..df19e462d
Binary files /dev/null and b/examples/espresso_hdf5/di.save/wfc2.hdf5 differ
diff --git a/examples/espresso_hdf5/di.save/wfc3.hdf5 b/examples/espresso_hdf5/di.save/wfc3.hdf5
new file mode 100644
index 000000000..59ad85c1a
Binary files /dev/null and b/examples/espresso_hdf5/di.save/wfc3.hdf5 differ
diff --git a/examples/espresso_hdf5/diamond.in b/examples/espresso_hdf5/diamond.in
new file mode 100644
index 000000000..ba7214daa
--- /dev/null
+++ b/examples/espresso_hdf5/diamond.in
@@ -0,0 +1,24 @@
+ &control
+    calculation = 'scf'
+    restart_mode='from_scratch',
+    prefix='di',
+    pseudo_dir = './',
+    outdir='./'
+ /
+ &system    
+    ibrav=  2, celldm(1) =6.1, nat=  2, ntyp= 1,
+    ecutwfc =20.0, 
+ /
+ &electrons
+    diagonalization='david'
+    mixing_mode = 'plain'
+    mixing_beta = 0.7 
+    conv_thr =  1.0d-13
+ /
+ATOMIC_SPECIES
+ C  12.0  C.pz-vbc.UPF
+ATOMIC_POSITIONS {crystal}
+C  -0.125 -0.125 -0.125
+C   0.125  0.125  0.125
+K_POINTS {automatic}
+ 2 2 2 0 0 0
diff --git a/examples/espresso_hdf5/diamond.out b/examples/espresso_hdf5/diamond.out
new file mode 100644
index 000000000..4f714306f
--- /dev/null
+++ b/examples/espresso_hdf5/diamond.out
@@ -0,0 +1,272 @@
+
+     Program PWSCF v.7.1 starts on 28Aug2024 at 20:25: 8 
+
+     This program is part of the open-source Quantum ESPRESSO suite
+     for quantum simulation of materials; please cite
+         "P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
+         "P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017);
+         "P. Giannozzi et al., J. Chem. Phys. 152 154105 (2020);
+          URL http://www.quantum-espresso.org", 
+     in publications or presentations arising from this work. More details at
+     http://www.quantum-espresso.org/quote
+
+     Parallel version (MPI & OpenMP), running on      48 processor cores
+     Number of MPI processes:                48
+     Threads/MPI process:                     1
+
+     MPI processes distributed on     1 nodes
+     233130 MiB available memory on the printing compute node when the environment starts
+ 
+     Reading input from diamond.in
+
+     Current dimensions of program PWSCF are:
+     Max number of different atomic species (ntypx) = 10
+     Max number of k-points (npk) =  40000
+     Max angular momentum in pseudopotentials (lmaxx) =  4
+ 
+     K-points division:     npool     =       3
+     R & G space division:  proc/nbgrp/npool/nimage =      16
+     Subspace diagonalization in iterative solution of the eigenvalue problem:
+     a serial algorithm will be used
+
+ 
+     Parallelization info
+     --------------------
+     sticks:   dense  smooth     PW     G-vecs:    dense   smooth      PW
+     Min           6       6      2                   43       43       9
+     Max           7       7      3                   45       45      12
+     Sum         109     109     37                  701      701     169
+ 
+     Using Slab Decomposition
+ 
+
+
+     bravais-lattice index     =            2
+     lattice parameter (alat)  =       6.1000  a.u.
+     unit-cell volume          =      56.7452 (a.u.)^3
+     number of atoms/cell      =            2
+     number of atomic types    =            1
+     number of electrons       =         8.00
+     number of Kohn-Sham states=            4
+     kinetic-energy cutoff     =      20.0000  Ry
+     charge density cutoff     =      80.0000  Ry
+     scf convergence threshold =      1.0E-13
+     mixing beta               =       0.7000
+     number of iterations used =            8  plain     mixing
+     Exchange-correlation=  SLA  PZ   NOGX NOGC
+                           (   1   1   0   0   0   0   0)
+
+     celldm(1)=   6.100000  celldm(2)=   0.000000  celldm(3)=   0.000000
+     celldm(4)=   0.000000  celldm(5)=   0.000000  celldm(6)=   0.000000
+
+     crystal axes: (cart. coord. in units of alat)
+               a(1) = (  -0.500000   0.000000   0.500000 )  
+               a(2) = (   0.000000   0.500000   0.500000 )  
+               a(3) = (  -0.500000   0.500000   0.000000 )  
+
+     reciprocal axes: (cart. coord. in units 2 pi/alat)
+               b(1) = ( -1.000000 -1.000000  1.000000 )  
+               b(2) = (  1.000000  1.000000  1.000000 )  
+               b(3) = ( -1.000000  1.000000 -1.000000 )  
+
+
+     PseudoPot. # 1 for C  read from file:
+     ./C.pz-vbc.UPF
+     MD5 check sum: 902016046bf83189dffe9ec1c2a452ce
+     Pseudo is Norm-conserving, Zval =  4.0
+     Generated by new atomic code, or converted to UPF format
+     Using radial grid of  269 points,  1 beta functions with: 
+                l(1) =   0
+
+     atomic species   valence    mass     pseudopotential
+        C              4.00    12.00000     C ( 1.00)
+
+     48 Sym. Ops., with inversion, found (36 have fractional translation)
+
+
+
+   Cartesian axes
+
+     site n.     atom                  positions (alat units)
+         1           C   tau(   1) = (   0.1250000  -0.1250000  -0.1250000  )
+         2           C   tau(   2) = (  -0.1250000   0.1250000   0.1250000  )
+
+     number of k points=     3
+                       cart. coord. in units 2pi/alat
+        k(    1) = (   0.0000000   0.0000000   0.0000000), wk =   0.2500000
+        k(    2) = (   0.5000000  -0.5000000   0.5000000), wk =   1.0000000
+        k(    3) = (   0.0000000  -1.0000000   0.0000000), wk =   0.7500000
+
+     Dense  grid:      701 G-vectors     FFT dimensions: (  16,  16,  16)
+
+     Estimated max dynamical RAM per process >       0.05 MB
+
+     Estimated total dynamical RAM >       1.93 MB
+     Message from routine sym_rho_init:
+     some processors have no G-vectors for symmetrization
+     Message from routine sym_rho_init:
+     some processors have no G-vectors for symmetrization
+     Message from routine sym_rho_init:
+     some processors have no G-vectors for symmetrization
+
+     Initial potential from superposition of free atoms
+
+     starting charge       7.9999, renormalised to       8.0000
+     Starting wfcs are    8 randomized atomic wfcs
+
+     total cpu time spent up to now is        0.1 secs
+
+     Self-consistent Calculation
+
+     iteration #  1     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  1.00E-02,  avg # of iterations =  2.0
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.65736872 Ry
+     estimated scf accuracy    <       0.22888640 Ry
+
+     iteration #  2     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  2.86E-03,  avg # of iterations =  1.0
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66770659 Ry
+     estimated scf accuracy    <       0.00735728 Ry
+
+     iteration #  3     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  9.20E-05,  avg # of iterations =  1.7
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66855327 Ry
+     estimated scf accuracy    <       0.00010054 Ry
+
+     iteration #  4     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  1.26E-06,  avg # of iterations =  2.7
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66856813 Ry
+     estimated scf accuracy    <       0.00000239 Ry
+
+     iteration #  5     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  2.98E-08,  avg # of iterations =  2.7
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66856869 Ry
+     estimated scf accuracy    <       0.00000001 Ry
+
+     iteration #  6     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  1.50E-10,  avg # of iterations =  3.3
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66856869 Ry
+     estimated scf accuracy    <          2.4E-09 Ry
+
+     iteration #  7     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  3.03E-11,  avg # of iterations =  1.0
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66856869 Ry
+     estimated scf accuracy    <          3.0E-12 Ry
+
+     iteration #  8     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  1.00E-13,  avg # of iterations =  4.0
+
+     total cpu time spent up to now is        0.1 secs
+
+     total energy              =     -21.66856869 Ry
+     estimated scf accuracy    <          1.6E-12 Ry
+
+     iteration #  9     ecut=    20.00 Ry     beta= 0.70
+     Davidson diagonalization with overlap
+     ethr =  1.00E-13,  avg # of iterations =  1.0
+
+     total cpu time spent up to now is        0.1 secs
+
+     End of self-consistent calculation
+
+          k = 0.0000 0.0000 0.0000 (    65 PWs)   bands (ev):
+
+    -5.8511  22.3105  22.3105  22.3105
+
+          k = 0.5000-0.5000 0.5000 (    90 PWs)   bands (ev):
+
+     2.0716   2.7385  16.9885  16.9885
+
+          k = 0.0000-1.0000 0.0000 (    92 PWs)   bands (ev):
+
+     4.9352   4.9352  12.0615  12.0615
+
+     highest occupied level (ev):    22.3105
+
+!    total energy              =     -21.66856869 Ry
+     estimated scf accuracy    <          1.8E-14 Ry
+
+     The total energy is the sum of the following terms:
+     one-electron contribution =      12.60145229 Ry
+     hartree contribution      =       1.60427484 Ry
+     xc contribution           =      -7.61568303 Ry
+     ewald contribution        =     -28.25861279 Ry
+
+     convergence has been achieved in   9 iterations
+
+     Writing all to output data dir ./di.save/
+ 
+     init_run     :      0.02s CPU      0.02s WALL (       1 calls)
+     electrons    :      0.01s CPU      0.07s WALL (       1 calls)
+
+     Called by init_run:
+     wfcinit      :      0.00s CPU      0.00s WALL (       1 calls)
+     potinit      :      0.00s CPU      0.00s WALL (       1 calls)
+     hinit0       :      0.01s CPU      0.02s WALL (       1 calls)
+
+     Called by electrons:
+     c_bands      :      0.01s CPU      0.01s WALL (       9 calls)
+     sum_band     :      0.00s CPU      0.00s WALL (       9 calls)
+     v_of_rho     :      0.00s CPU      0.00s WALL (      10 calls)
+     mix_rho      :      0.00s CPU      0.00s WALL (       9 calls)
+
+     Called by c_bands:
+     init_us_2    :      0.00s CPU      0.00s WALL (      19 calls)
+     init_us_2:cp :      0.00s CPU      0.00s WALL (      19 calls)
+     cegterg      :      0.01s CPU      0.01s WALL (       9 calls)
+
+     Called by *egterg:
+     cdiaghg      :      0.00s CPU      0.00s WALL (      32 calls)
+     h_psi        :      0.01s CPU      0.01s WALL (      33 calls)
+     g_psi        :      0.00s CPU      0.00s WALL (      23 calls)
+
+     Called by h_psi:
+     h_psi:calbec :      0.00s CPU      0.00s WALL (      33 calls)
+     vloc_psi     :      0.00s CPU      0.01s WALL (      33 calls)
+     add_vuspsi   :      0.00s CPU      0.00s WALL (      33 calls)
+
+     General routines
+     calbec       :      0.00s CPU      0.00s WALL (      33 calls)
+     fft          :      0.01s CPU      0.02s WALL (      29 calls)
+     ffts         :      0.00s CPU      0.00s WALL (       9 calls)
+     fftw         :      0.01s CPU      0.01s WALL (     250 calls)
+ 
+     Parallel routines
+ 
+     PWSCF        :      0.09s CPU      0.42s WALL
+
+ 
+   This run was terminated on:  20:25: 9  28Aug2024            
+
+=------------------------------------------------------------------------------=
+   JOB DONE.
+=------------------------------------------------------------------------------=
diff --git a/examples/espresso_hdf5/ref_output.json b/examples/espresso_hdf5/ref_output.json
new file mode 100644
index 000000000..c2d3d1021
--- /dev/null
+++ b/examples/espresso_hdf5/ref_output.json
@@ -0,0 +1,4840 @@
+{
+    "spacegroup": {
+        "name": "Fd-3m",
+        "number": 227,
+        "spinor": false,
+        "num symmetries": 48,
+        "cells match": true,
+        "symmetries": {
+            "1": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.36667028276223684,
+                        -0.9025730037224292,
+                        -0.22564325093060725
+                    ]
+                },
+                "angle str": " 0 ",
+                "angle pi": 0.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "2": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -2.465190328815662e-32,
+                        1.6653345369377348e-16,
+                        1.0
+                    ]
+                },
+                "angle str": "1/2 pi",
+                "angle pi": 0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000002,
+                        0.0,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000002,
+                        0.0,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "3": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.326672684688673e-17,
+                        -8.326672684688674e-17,
+                        -1.0
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.4999999999999999
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.4999999999999999
+                    ]
+                }
+            },
+            "4": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.6653345369377348e-16,
+                        4.930380657631324e-32,
+                        1.0
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.5000000000000002,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.5000000000000002,
+                        0.0
+                    ]
+                }
+            },
+            "5": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        1.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.4999999999999991,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.4999999999999991,
+                        0.0
+                    ]
+                }
+            },
+            "6": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.7071067811865475,
+                        -0.7071067811865475,
+                        3.925231146709437e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.0,
+                        0.5000000000000002
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.0,
+                        0.5000000000000002
+                    ]
+                }
+            },
+            "7": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.1102230246251563e-16,
+                        -1.0,
+                        5.5511151231257815e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999999,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999999,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                }
+            },
+            "8": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.7071067811865475,
+                        0.7071067811865475,
+                        3.925231146709437e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                }
+            },
+            "9": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896258,
+                        0.577350269189626,
+                        0.5773502691896255
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.4999999999999999
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.4999999999999999
+                    ]
+                }
+            },
+            "10": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.7071067811865475,
+                        1.570092458683775e-16,
+                        0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "11": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.5773502691896262,
+                        0.5773502691896255,
+                        -0.5773502691896255
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "12": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.6653345369377348e-16,
+                        -1.0,
+                        -5.551115123125778e-17
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.5000000000000004,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.5000000000000004,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "13": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.5773502691896253,
+                        -0.5773502691896263,
+                        0.5773502691896257
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.4999999999999991,
+                        8.881784197001252e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.4999999999999991,
+                        8.881784197001252e-16
+                    ]
+                }
+            },
+            "14": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.7071067811865475,
+                        -2.104171563618355e-32,
+                        0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000007,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000007,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "15": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896253,
+                        -0.577350269189626,
+                        -0.577350269189626
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "16": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        5.551115123125788e-17,
+                        1.0,
+                        -1.6653345369377358e-16
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.5000000000000004
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.5000000000000004
+                    ]
+                }
+            },
+            "17": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896252,
+                        0.5773502691896265,
+                        0.5773502691896258
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999999,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999999,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "18": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.0,
+                        -8.326672684688675e-17,
+                        -1.3877787807814457e-16
+                    ]
+                },
+                "angle str": "1/2 pi",
+                "angle pi": 0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                }
+            },
+            "19": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896257,
+                        -0.5773502691896257,
+                        -0.577350269189626
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                }
+            },
+            "20": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.962615573354721e-17,
+                        -0.7071067811865476,
+                        -0.7071067811865474
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.5000000000000002,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.5000000000000002,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "21": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.5773502691896261,
+                        0.5773502691896248,
+                        -0.5773502691896263
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.4999999999999991,
+                        5.551115123125783e-17
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.4999999999999991,
+                        5.551115123125783e-17
+                    ]
+                }
+            },
+            "22": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        1.3738309013483032e-16,
+                        0.7071067811865475,
+                        -0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                }
+            },
+            "23": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.577350269189626,
+                        -0.577350269189626,
+                        0.5773502691896255
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5
+                    ]
+                }
+            },
+            "24": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.0,
+                        -1.387778780781446e-16,
+                        8.326672684688674e-17
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": false,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "25": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.36667028276223684,
+                        -0.9025730037224292,
+                        -0.22564325093060725
+                    ]
+                },
+                "angle str": " 0 ",
+                "angle pi": 0.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "26": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        1.6653345369377348e-16,
+                        1.0
+                    ]
+                },
+                "angle str": "1/2 pi",
+                "angle pi": 0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "27": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -8.326672684688673e-17,
+                        8.326672684688674e-17,
+                        1.0
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                }
+            },
+            "28": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.6653345369377353e-16,
+                        2.465190328815662e-32,
+                        1.0
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.49999999999999956,
+                        4.440892098500626e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.49999999999999956,
+                        4.440892098500626e-16
+                    ]
+                }
+            },
+            "29": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        1.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.4999999999999999,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.4999999999999999,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "30": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.7071067811865475,
+                        -0.7071067811865475,
+                        3.925231146709437e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.4999999999999999
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.4999999999999999
+                    ]
+                }
+            },
+            "31": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        1.1102230246251563e-16,
+                        1.0,
+                        -5.5511151231257815e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "32": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.7071067811865475,
+                        -0.7071067811865475,
+                        -3.925231146709437e-17
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "33": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896258,
+                        0.577350269189626,
+                        0.5773502691896255
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                }
+            },
+            "34": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.7071067811865475,
+                        -1.570092458683775e-16,
+                        -0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        8.881784197001252e-16
+                    ]
+                }
+            },
+            "35": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896263,
+                        -0.5773502691896256,
+                        0.5773502691896253
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000004,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "36": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.6653345369377343e-16,
+                        -1.0,
+                        -5.551115123125783e-17
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.49999999999999956,
+                        5.551115123125783e-17
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        4.440892098500626e-16,
+                        0.49999999999999956,
+                        5.551115123125783e-17
+                    ]
+                }
+            },
+            "37": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.5773502691896253,
+                        -0.5773502691896263,
+                        0.5773502691896257
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.4999999999999999,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        2.220446049250313e-16,
+                        0.4999999999999999,
+                        0.0
+                    ]
+                }
+            },
+            "38": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -0.7071067811865475,
+                        -2.104171563618355e-32,
+                        0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999998,
+                        4.440892098500626e-16,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.4999999999999998,
+                        4.440892098500626e-16,
+                        0.0
+                    ]
+                }
+            },
+            "39": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896254,
+                        -0.5773502691896261,
+                        -0.5773502691896256
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "40": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        5.551115123125788e-17,
+                        1.0,
+                        -1.6653345369377358e-16
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5
+                    ]
+                }
+            },
+            "41": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896252,
+                        0.5773502691896265,
+                        0.5773502691896258
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000007,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5000000000000007,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "42": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.0,
+                        -8.326672684688675e-17,
+                        -1.3877787807814457e-16
+                    ]
+                },
+                "angle str": "1/2 pi",
+                "angle pi": 0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.0,
+                        0.4999999999999998
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        8.881784197001252e-16,
+                        0.0,
+                        0.4999999999999998
+                    ]
+                }
+            },
+            "43": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896257,
+                        -0.5773502691896257,
+                        -0.577350269189626
+                    ]
+                },
+                "angle str": "-2/3 pi",
+                "angle pi": -0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            -1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                }
+            },
+            "44": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        1.962615573354721e-17,
+                        0.7071067811865476,
+                        0.7071067811865474
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.49999999999999956,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            0,
+                            0,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.49999999999999956,
+                        0.0
+                    ]
+                }
+            },
+            "45": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896258,
+                        -0.5773502691896251,
+                        0.5773502691896264
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.5,
+                        2.220446049250313e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            -1,
+                            0
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.5,
+                        2.220446049250313e-16
+                    ]
+                }
+            },
+            "46": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.3738309013483032e-16,
+                        -0.7071067811865475,
+                        0.7071067811865475
+                    ]
+                },
+                "angle str": "1 pi",
+                "angle pi": 1.0,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.0
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            0,
+                            0,
+                            1
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        2.220446049250313e-16,
+                        0.0
+                    ]
+                }
+            },
+            "47": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5773502691896258,
+                        0.5773502691896261,
+                        -0.5773502691896256
+                    ]
+                },
+                "angle str": "2/3 pi",
+                "angle pi": 0.6666666666666666,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            0,
+                            -1
+                        ],
+                        [
+                            1,
+                            1,
+                            1
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.5000000000000004
+                    ]
+                }
+            },
+            "48": {
+                "axis": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        -1.0,
+                        -1.387778780781446e-16,
+                        8.326672684688674e-17
+                    ]
+                },
+                "angle str": "-1/2 pi",
+                "angle pi": -0.5,
+                "inversion": true,
+                "sign": 1,
+                "rotation matrix": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int32",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                },
+                "rotation matrix refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "int64",
+                    "data": [
+                        [
+                            -1,
+                            -1,
+                            -1
+                        ],
+                        [
+                            1,
+                            0,
+                            0
+                        ],
+                        [
+                            0,
+                            1,
+                            0
+                        ]
+                    ]
+                },
+                "translation refUC": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.5,
+                        0.0,
+                        4.440892098500626e-16
+                    ]
+                }
+            }
+        }
+    },
+    "characters and irreps": [
+        {
+            "subspace": {
+                "kpoints line": {
+                    "@module": "numpy",
+                    "@class": "array",
+                    "dtype": "float64",
+                    "data": [
+                        0.0,
+                        0.0,
+                        0.0
+                    ]
+                },
+                "k points": [
+                    {
+                        "symmetries": [
+                            1,
+                            2,
+                            3,
+                            4,
+                            5,
+                            6,
+                            7,
+                            8,
+                            9,
+                            10,
+                            11,
+                            12,
+                            13,
+                            14,
+                            15,
+                            16,
+                            17,
+                            18,
+                            19,
+                            20,
+                            21,
+                            22,
+                            23,
+                            24,
+                            25,
+                            26,
+                            27,
+                            28,
+                            29,
+                            30,
+                            31,
+                            32,
+                            33,
+                            34,
+                            35,
+                            36,
+                            37,
+                            38,
+                            39,
+                            40,
+                            41,
+                            42,
+                            43,
+                            44,
+                            45,
+                            46,
+                            47,
+                            48
+                        ],
+                        "energies_mean": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                -5.851097125518668,
+                                22.310478994150397
+                            ]
+                        },
+                        "energies_raw": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                -5.851097125518668,
+                                22.310478994150333,
+                                22.31047899415036,
+                                22.310478994150497
+                            ]
+                        },
+                        "dimensions": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "int64",
+                            "data": [
+                                1,
+                                3
+                            ]
+                        },
+                        "irreps": null,
+                        "characters": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        0.9999999999999999,
+                                        1.0000000000000004,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000007,
+                                        1.000000000000001,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000007,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.000000000000001,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        0.9999999999999998,
+                                        1.0000000000000009,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000007
+                                    ],
+                                    [
+                                        3.000000000000001,
+                                        -0.9999999999999891,
+                                        -0.9999999999999927,
+                                        -0.9999999999999892,
+                                        -0.9999999999999905,
+                                        0.9999999999999879,
+                                        -1.0000000000000173,
+                                        0.9999999999999885,
+                                        2.5146551507759796e-14,
+                                        1.0000000000000155,
+                                        -1.5987211554602254e-14,
+                                        -0.9999999999999848,
+                                        2.7755575615628914e-16,
+                                        0.9999999999999529,
+                                        -9.936496070395151e-15,
+                                        -0.9999999999999846,
+                                        2.5091040356528538e-14,
+                                        -0.9999999999999769,
+                                        -9.936496070395151e-15,
+                                        0.9999999999999793,
+                                        -1.5765166949677223e-14,
+                                        0.999999999999973,
+                                        2.220446049250313e-16,
+                                        -0.9999999999999767,
+                                        2.9999999999999507,
+                                        -1.0000000000000038,
+                                        -0.9999999999999725,
+                                        -1.0000000000000038,
+                                        -0.9999999999999972,
+                                        1.0000000000000298,
+                                        -0.9999999999999808,
+                                        0.9999999999999787,
+                                        -1.7763568394002505e-14,
+                                        0.9999999999999815,
+                                        -1.4210854715202004e-14,
+                                        -0.9999999999999913,
+                                        1.73749903353837e-14,
+                                        1.0000000000000009,
+                                        1.4516166046973922e-14,
+                                        -0.9999999999999913,
+                                        -1.7763568394002505e-14,
+                                        -1.0000000000000047,
+                                        1.4460654895742664e-14,
+                                        0.9999999999999893,
+                                        -1.4099832412739488e-14,
+                                        1.0000000000000198,
+                                        1.7319479184152442e-14,
+                                        -1.0000000000000049
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        -9.35761952442972e-20,
+                                        -4.913176479512508e-26,
+                                        9.357612031037766e-20,
+                                        3.534096855390133e-28,
+                                        -2.877764582246251e-27,
+                                        -7.94162050504097e-26,
+                                        -6.058451752097371e-27,
+                                        -2.899510530471288e-19,
+                                        8.683780844672898e-27,
+                                        -5.248752194210361e-19,
+                                        -7.355185843860548e-19,
+                                        1.10884226674048e-18,
+                                        -2.261821987449685e-26,
+                                        -3.449636183482019e-19,
+                                        7.355184563507745e-19,
+                                        2.8995105183543844e-19,
+                                        1.9502872086952723e-19,
+                                        3.44963410644281e-19,
+                                        -8.552514390044122e-26,
+                                        5.248752050827003e-19,
+                                        1.63578197306629e-26,
+                                        -1.1088422794632287e-18,
+                                        -1.95028746012102e-19,
+                                        8.532319550870464e-27,
+                                        -8.392827812967161e-19,
+                                        -8.936216334343622e-27,
+                                        8.392827858910421e-19,
+                                        -2.3215732634172818e-26,
+                                        -4.6578257096849654e-26,
+                                        -1.5305101223049988e-26,
+                                        -5.397852619680298e-26,
+                                        5.002346217087199e-19,
+                                        -1.001664023013432e-25,
+                                        2.048534369212198e-19,
+                                        7.910465789322862e-19,
+                                        -4.269244906684565e-19,
+                                        -7.451895655079766e-26,
+                                        -3.2547192530632474e-19,
+                                        -7.910465872121702e-19,
+                                        -5.002346461444753e-19,
+                                        -5.941943110383787e-19,
+                                        3.2547192530632474e-19,
+                                        -6.058451752097371e-27,
+                                        -2.0485348892293066e-19,
+                                        -4.6145207511808307e-26,
+                                        4.269244593664558e-19,
+                                        5.94194176641724e-19
+                                    ],
+                                    [
+                                        0.0,
+                                        -2.298161660974074e-14,
+                                        -4.716279450311924e-18,
+                                        2.3314683517128287e-14,
+                                        7.318364664277155e-18,
+                                        -6.5052130349130374e-18,
+                                        3.3610267347051023e-18,
+                                        1.047053139947105e-17,
+                                        6.800116025829084e-16,
+                                        -4.0115480381963664e-18,
+                                        -3.608224830031759e-15,
+                                        4.163336342344337e-16,
+                                        1.1213252548714081e-14,
+                                        -1.7686047938669945e-18,
+                                        -8.992806499463768e-15,
+                                        -3.122502256758253e-16,
+                                        -6.522560269672795e-16,
+                                        -1.6986412276764895e-14,
+                                        9.2148511043888e-15,
+                                        -1.502606332915597e-17,
+                                        3.469446951953614e-15,
+                                        6.830473686658675e-18,
+                                        -1.1213252548714081e-14,
+                                        1.687538997430238e-14,
+                                        3.8774091213122246e-25,
+                                        -1.2323475573339238e-14,
+                                        5.2041704279304136e-18,
+                                        1.2434497875801753e-14,
+                                        7.426784881525716e-18,
+                                        1.0842021724857702e-19,
+                                        6.830473686658672e-18,
+                                        -5.4690462970995344e-18,
+                                        3.094746681142624e-15,
+                                        -6.071532165918797e-18,
+                                        -3.3861802251067274e-15,
+                                        2.8796409701214998e-15,
+                                        1.9984014443252818e-14,
+                                        -1.6263032587282139e-18,
+                                        -2.0095036745715333e-14,
+                                        -2.824129818890242e-15,
+                                        -3.0253577421035516e-15,
+                                        -7.93809462606987e-15,
+                                        1.9984014443252818e-14,
+                                        1.3010426069826053e-18,
+                                        3.3861802251067274e-15,
+                                        -4.87890977618457e-19,
+                                        -1.9984014443252818e-14,
+                                        7.66053886991358e-15
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        0.9999999999999999,
+                                        1.0000000000000004,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000007,
+                                        1.000000000000001,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000007,
+                                        1.0000000000000002,
+                                        1.0000000000000002,
+                                        1.0000000000000009,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        1.000000000000001,
+                                        1.0000000000000007,
+                                        1.0000000000000007,
+                                        1.0,
+                                        1.0000000000000007,
+                                        1.0000000000000004,
+                                        0.9999999999999998,
+                                        1.0000000000000009,
+                                        1.0000000000000004,
+                                        1.0000000000000004,
+                                        1.0000000000000007
+                                    ],
+                                    [
+                                        3.000000000000001,
+                                        -0.9999999999999891,
+                                        -0.9999999999999927,
+                                        -0.9999999999999892,
+                                        -0.9999999999999905,
+                                        0.9999999999999879,
+                                        -1.0000000000000173,
+                                        0.9999999999999885,
+                                        2.5146551507759796e-14,
+                                        1.0000000000000155,
+                                        -1.5987211554602254e-14,
+                                        -0.9999999999999848,
+                                        2.7755575615628914e-16,
+                                        0.9999999999999529,
+                                        -9.936496070395151e-15,
+                                        -0.9999999999999846,
+                                        2.5091040356528538e-14,
+                                        -0.9999999999999769,
+                                        -9.936496070395151e-15,
+                                        0.9999999999999793,
+                                        -1.5765166949677223e-14,
+                                        0.999999999999973,
+                                        2.220446049250313e-16,
+                                        -0.9999999999999767,
+                                        2.9999999999999507,
+                                        -1.0000000000000038,
+                                        -0.9999999999999725,
+                                        -1.0000000000000038,
+                                        -0.9999999999999972,
+                                        1.0000000000000298,
+                                        -0.9999999999999808,
+                                        0.9999999999999787,
+                                        -1.7763568394002505e-14,
+                                        0.9999999999999815,
+                                        -1.4210854715202004e-14,
+                                        -0.9999999999999913,
+                                        1.73749903353837e-14,
+                                        1.0000000000000009,
+                                        1.4516166046973922e-14,
+                                        -0.9999999999999913,
+                                        -1.7763568394002505e-14,
+                                        -1.0000000000000047,
+                                        1.4460654895742664e-14,
+                                        0.9999999999999893,
+                                        -1.4099832412739488e-14,
+                                        1.0000000000000198,
+                                        1.7319479184152442e-14,
+                                        -1.0000000000000049
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        -9.35761952442972e-20,
+                                        -4.913176479512508e-26,
+                                        9.357612031037766e-20,
+                                        3.534096855390133e-28,
+                                        -2.877764582246251e-27,
+                                        -7.94162050504097e-26,
+                                        -6.058451752097371e-27,
+                                        -2.899510530471288e-19,
+                                        8.683780844672898e-27,
+                                        -5.248752194210361e-19,
+                                        -7.355185843860548e-19,
+                                        1.10884226674048e-18,
+                                        -2.261821987449685e-26,
+                                        -3.449636183482019e-19,
+                                        7.355184563507745e-19,
+                                        2.8995105183543844e-19,
+                                        1.9502872086952723e-19,
+                                        3.44963410644281e-19,
+                                        -8.552514390044122e-26,
+                                        5.248752050827003e-19,
+                                        1.63578197306629e-26,
+                                        -1.1088422794632287e-18,
+                                        -1.95028746012102e-19,
+                                        8.532319550870464e-27,
+                                        -8.392827812967161e-19,
+                                        -8.936216334343622e-27,
+                                        8.392827858910421e-19,
+                                        -2.3215732634172818e-26,
+                                        -4.6578257096849654e-26,
+                                        -1.5305101223049988e-26,
+                                        -5.397852619680298e-26,
+                                        5.002346217087199e-19,
+                                        -1.001664023013432e-25,
+                                        2.048534369212198e-19,
+                                        7.910465789322862e-19,
+                                        -4.269244906684565e-19,
+                                        -7.451895655079766e-26,
+                                        -3.2547192530632474e-19,
+                                        -7.910465872121702e-19,
+                                        -5.002346461444753e-19,
+                                        -5.941943110383787e-19,
+                                        3.2547192530632474e-19,
+                                        -6.058451752097371e-27,
+                                        -2.0485348892293066e-19,
+                                        -4.6145207511808307e-26,
+                                        4.269244593664558e-19,
+                                        5.94194176641724e-19
+                                    ],
+                                    [
+                                        0.0,
+                                        -2.298161660974074e-14,
+                                        -4.716279450311924e-18,
+                                        2.3314683517128287e-14,
+                                        7.318364664277155e-18,
+                                        -6.5052130349130374e-18,
+                                        3.3610267347051023e-18,
+                                        1.047053139947105e-17,
+                                        6.800116025829084e-16,
+                                        -4.0115480381963664e-18,
+                                        -3.608224830031759e-15,
+                                        4.163336342344337e-16,
+                                        1.1213252548714081e-14,
+                                        -1.7686047938669945e-18,
+                                        -8.992806499463768e-15,
+                                        -3.122502256758253e-16,
+                                        -6.522560269672795e-16,
+                                        -1.6986412276764895e-14,
+                                        9.2148511043888e-15,
+                                        -1.502606332915597e-17,
+                                        3.469446951953614e-15,
+                                        6.830473686658675e-18,
+                                        -1.1213252548714081e-14,
+                                        1.687538997430238e-14,
+                                        3.8774091213122246e-25,
+                                        -1.2323475573339238e-14,
+                                        5.2041704279304136e-18,
+                                        1.2434497875801753e-14,
+                                        7.426784881525716e-18,
+                                        1.0842021724857702e-19,
+                                        6.830473686658672e-18,
+                                        -5.4690462970995344e-18,
+                                        3.094746681142624e-15,
+                                        -6.071532165918797e-18,
+                                        -3.3861802251067274e-15,
+                                        2.8796409701214998e-15,
+                                        1.9984014443252818e-14,
+                                        -1.6263032587282139e-18,
+                                        -2.0095036745715333e-14,
+                                        -2.824129818890242e-15,
+                                        -3.0253577421035516e-15,
+                                        -7.93809462606987e-15,
+                                        1.9984014443252818e-14,
+                                        1.3010426069826053e-18,
+                                        3.3861802251067274e-15,
+                                        -4.87890977618457e-19,
+                                        -1.9984014443252818e-14,
+                                        7.66053886991358e-15
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC is the same": true,
+                        "kp in line": 0.0,
+                        "kpname": null
+                    },
+                    {
+                        "symmetries": [
+                            1,
+                            8,
+                            11,
+                            14,
+                            20,
+                            21,
+                            25,
+                            32,
+                            35,
+                            38,
+                            44,
+                            45
+                        ],
+                        "energies_mean": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                2.071555135340734,
+                                2.738524276213586,
+                                16.988472843646832
+                            ]
+                        },
+                        "energies_raw": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                2.071555135340734,
+                                2.738524276213586,
+                                16.988472843646814,
+                                16.988472843646846
+                            ]
+                        },
+                        "dimensions": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "int64",
+                            "data": [
+                                1,
+                                1,
+                                2
+                            ]
+                        },
+                        "irreps": null,
+                        "characters": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.0,
+                                        1.0000000000000004,
+                                        0.9999999999999994,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        0.9999999999999994,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        0.9999999999999999,
+                                        1.0000000000000004,
+                                        1.0000000000000002
+                                    ],
+                                    [
+                                        0.9999999999999999,
+                                        -0.9999999999999993,
+                                        1.0,
+                                        -0.9999999999999984,
+                                        -0.9999999999999996,
+                                        0.9999999999999999,
+                                        -0.9999999999999993,
+                                        0.9999999999999992,
+                                        -0.9999999999999997,
+                                        0.9999999999999999,
+                                        0.9999999999999992,
+                                        -0.9999999999999997
+                                    ],
+                                    [
+                                        2.0,
+                                        8.881784197001252e-16,
+                                        -1.0,
+                                        -3.3306690738754696e-16,
+                                        7.771561172376096e-16,
+                                        -1.0000000000000002,
+                                        2.000000000000001,
+                                        1.5543122344752192e-15,
+                                        -0.9999999999999999,
+                                        -1.1102230246251565e-16,
+                                        -8.881784197001252e-16,
+                                        -0.9999999999999999
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        1.2217877700063031e-26,
+                                        -5.347001364593412e-18,
+                                        7.169167906648555e-27,
+                                        -7.037901452019779e-26,
+                                        5.34700136302199e-18,
+                                        6.058451752097371e-28,
+                                        -2.2895898913134647e-26,
+                                        4.356449241061954e-18,
+                                        -5.846405940773963e-26,
+                                        2.5937746563666868e-27,
+                                        -4.35644926166069e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        1.878120043150185e-26,
+                                        -1.961622428672617e-18,
+                                        1.0349855076499675e-25,
+                                        -8.683780844672898e-27,
+                                        1.9616223618573047e-18,
+                                        -4.0389678347315804e-28,
+                                        -5.456393109232694e-26,
+                                        2.054796079395249e-18,
+                                        5.42168322940297e-26,
+                                        -9.643035705421648e-27,
+                                        -2.0547960316344544e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        -8.33745196750239e-19,
+                                        -1.3183898417423734e-16,
+                                        -8.693205805349214e-19,
+                                        -1.0429172019059891e-20,
+                                        1.249000902703301e-16,
+                                        3.0845686736976023e-27,
+                                        -4.0657581468206416e-20,
+                                        -1.249000902703301e-16,
+                                        9.39359538505019e-19,
+                                        -8.148456952586369e-19,
+                                        1.3877787807814457e-16
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.0,
+                                        1.0000000000000004,
+                                        0.9999999999999994,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        0.9999999999999994,
+                                        1.0000000000000002,
+                                        1.0000000000000004,
+                                        1.0000000000000002,
+                                        0.9999999999999999,
+                                        1.0000000000000004,
+                                        1.0000000000000002
+                                    ],
+                                    [
+                                        0.9999999999999999,
+                                        -0.9999999999999993,
+                                        1.0,
+                                        -0.9999999999999984,
+                                        -0.9999999999999996,
+                                        0.9999999999999999,
+                                        -0.9999999999999993,
+                                        0.9999999999999992,
+                                        -0.9999999999999997,
+                                        0.9999999999999999,
+                                        0.9999999999999992,
+                                        -0.9999999999999997
+                                    ],
+                                    [
+                                        2.0,
+                                        8.881784197001252e-16,
+                                        -1.0,
+                                        -3.3306690738754696e-16,
+                                        7.771561172376096e-16,
+                                        -1.0000000000000002,
+                                        2.000000000000001,
+                                        1.5543122344752192e-15,
+                                        -0.9999999999999999,
+                                        -1.1102230246251565e-16,
+                                        -8.881784197001252e-16,
+                                        -0.9999999999999999
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        1.2217877700063031e-26,
+                                        -5.347001364593412e-18,
+                                        7.169167906648555e-27,
+                                        -7.037901452019779e-26,
+                                        5.34700136302199e-18,
+                                        6.058451752097371e-28,
+                                        -2.2895898913134647e-26,
+                                        4.356449241061954e-18,
+                                        -5.846405940773963e-26,
+                                        2.5937746563666868e-27,
+                                        -4.35644926166069e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        1.878120043150185e-26,
+                                        -1.961622428672617e-18,
+                                        1.0349855076499675e-25,
+                                        -8.683780844672898e-27,
+                                        1.9616223618573047e-18,
+                                        -4.0389678347315804e-28,
+                                        -5.456393109232694e-26,
+                                        2.054796079395249e-18,
+                                        5.42168322940297e-26,
+                                        -9.643035705421648e-27,
+                                        -2.0547960316344544e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        -8.33745196750239e-19,
+                                        -1.3183898417423734e-16,
+                                        -8.693205805349214e-19,
+                                        -1.0429172019059891e-20,
+                                        1.249000902703301e-16,
+                                        3.0845686736976023e-27,
+                                        -4.0657581468206416e-20,
+                                        -1.249000902703301e-16,
+                                        9.39359538505019e-19,
+                                        -8.148456952586369e-19,
+                                        1.3877787807814457e-16
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC is the same": true,
+                        "kp in line": 0.0,
+                        "kpname": null
+                    },
+                    {
+                        "symmetries": [
+                            1,
+                            3,
+                            5,
+                            7,
+                            10,
+                            12,
+                            14,
+                            16,
+                            25,
+                            27,
+                            29,
+                            31,
+                            34,
+                            36,
+                            38,
+                            40
+                        ],
+                        "energies_mean": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                4.935245332878686,
+                                12.061485316482212
+                            ]
+                        },
+                        "energies_raw": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "float64",
+                            "data": [
+                                4.935245332878678,
+                                4.935245332878694,
+                                12.061485316482203,
+                                12.061485316482221
+                            ]
+                        },
+                        "dimensions": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "int64",
+                            "data": [
+                                2,
+                                2
+                            ]
+                        },
+                        "irreps": null,
+                        "characters": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.9999999999999996,
+                                        -5.551115123125783e-16,
+                                        1.1102230246251565e-16,
+                                        2.0,
+                                        -5.551115123125783e-17,
+                                        -3.4076813094398306e-15,
+                                        8.326672684688674e-17,
+                                        -3.4084571916195155e-15,
+                                        -1.6653345369377348e-16,
+                                        -2.233209141699541e-15,
+                                        -6.793102593025818e-16,
+                                        -1.1102230246251565e-16,
+                                        2.0000000000000004,
+                                        -3.3306690738754696e-16,
+                                        1.9999999999999987,
+                                        -3.3306690738754696e-16
+                                    ],
+                                    [
+                                        2.0000000000000004,
+                                        0.0,
+                                        -2.7755575615628914e-16,
+                                        -2.000000000000001,
+                                        1.9999999999999987,
+                                        -8.326672684688674e-16,
+                                        -1.9999999999999991,
+                                        7.771561172376096e-16,
+                                        -2.220446049250313e-16,
+                                        6.584834131954931e-18,
+                                        -1.1992292467226384e-17,
+                                        0.0,
+                                        2.220446049250313e-16,
+                                        5.2802339865938575e-17,
+                                        -3.3306690738754696e-16,
+                                        4.9292235332516754e-17
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        -1.7347234768457963e-18,
+                                        -2.168404350736278e-18,
+                                        -1.8155160417118454e-25,
+                                        -2.371692252312041e-19,
+                                        -8.881784197001252e-16,
+                                        -1.0503208545953324e-19,
+                                        -8.881784197001252e-16,
+                                        -1.6263032587282567e-19,
+                                        -1.4432899320127035e-15,
+                                        -5.551115123125783e-16,
+                                        1.0164395367051604e-20,
+                                        -3.8050784649426027e-25,
+                                        -1.1926223926774835e-18,
+                                        1.5206082809040224e-25,
+                                        1.0842021723577506e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        -5.421010570940336e-20,
+                                        -2.840948506419654e-17,
+                                        1.8155160417118454e-24,
+                                        -3.542174791059596e-25,
+                                        -5.0913456400774835e-17,
+                                        1.006360250032871e-23,
+                                        -2.689837826147178e-17,
+                                        6.442415825409345e-21,
+                                        5.551115123125783e-16,
+                                        -3.3306690738754696e-16,
+                                        1.3763861565528137e-22,
+                                        3.1702476073247783e-22,
+                                        0.0,
+                                        -3.958811349481066e-19,
+                                        -1.1102230246251565e-16
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC": {
+                            "@module": "numpy",
+                            "@class": "array",
+                            "dtype": "complex128",
+                            "data": [
+                                [
+                                    [
+                                        1.9999999999999996,
+                                        -5.551115123125783e-16,
+                                        1.1102230246251565e-16,
+                                        2.0,
+                                        -5.551115123125783e-17,
+                                        -3.4076813094398306e-15,
+                                        8.326672684688674e-17,
+                                        -3.4084571916195155e-15,
+                                        -1.6653345369377348e-16,
+                                        -2.233209141699541e-15,
+                                        -6.793102593025818e-16,
+                                        -1.1102230246251565e-16,
+                                        2.0000000000000004,
+                                        -3.3306690738754696e-16,
+                                        1.9999999999999987,
+                                        -3.3306690738754696e-16
+                                    ],
+                                    [
+                                        2.0000000000000004,
+                                        0.0,
+                                        -2.7755575615628914e-16,
+                                        -2.000000000000001,
+                                        1.9999999999999987,
+                                        -8.326672684688674e-16,
+                                        -1.9999999999999991,
+                                        7.771561172376096e-16,
+                                        -2.220446049250313e-16,
+                                        6.584834131954931e-18,
+                                        -1.1992292467226384e-17,
+                                        0.0,
+                                        2.220446049250313e-16,
+                                        5.2802339865938575e-17,
+                                        -3.3306690738754696e-16,
+                                        4.9292235332516754e-17
+                                    ]
+                                ],
+                                [
+                                    [
+                                        0.0,
+                                        -1.7347234768457963e-18,
+                                        -2.168404350736278e-18,
+                                        -1.8155160417118454e-25,
+                                        -2.371692252312041e-19,
+                                        -8.881784197001252e-16,
+                                        -1.0503208545953324e-19,
+                                        -8.881784197001252e-16,
+                                        -1.6263032587282567e-19,
+                                        -1.4432899320127035e-15,
+                                        -5.551115123125783e-16,
+                                        1.0164395367051604e-20,
+                                        -3.8050784649426027e-25,
+                                        -1.1926223926774835e-18,
+                                        1.5206082809040224e-25,
+                                        1.0842021723577506e-18
+                                    ],
+                                    [
+                                        0.0,
+                                        -5.421010570940336e-20,
+                                        -2.840948506419654e-17,
+                                        1.8155160417118454e-24,
+                                        -3.542174791059596e-25,
+                                        -5.0913456400774835e-17,
+                                        1.006360250032871e-23,
+                                        -2.689837826147178e-17,
+                                        6.442415825409345e-21,
+                                        5.551115123125783e-16,
+                                        -3.3306690738754696e-16,
+                                        1.3763861565528137e-22,
+                                        3.1702476073247783e-22,
+                                        0.0,
+                                        -3.958811349481066e-19,
+                                        -1.1102230246251565e-16
+                                    ]
+                                ]
+                            ]
+                        },
+                        "characters refUC is the same": true,
+                        "kp in line": 0.0,
+                        "kpname": null
+                    }
+                ],
+                "indirect gap (eV)": Infinity,
+                "Minimal direct gap (eV)": Infinity,
+                "number of inversion-odd states": 3
+            }
+        }
+    ],
+    "separated by symmetry": false
+}
\ No newline at end of file
diff --git a/irrep/readfiles.py b/irrep/readfiles.py
index ab7578be5..9611b72ff 100644
--- a/irrep/readfiles.py
+++ b/irrep/readfiles.py
@@ -16,8 +16,10 @@
 ##################################################################
 
 
+import os
 import numpy as np
 import scipy
+import h5py
 from scipy.io import FortranFile as FF
 from sys import stdout
 from .utility import FortranFileR as FFR
@@ -693,40 +695,59 @@ def parse_kpoint(self, ik, NBin, spin_channel, verbosity=0):
         # Parse energy levels
         Energy = np.array(kptxml.find("eigenvalues").text.split(), dtype=float)
         Energy *= Hartree_eV
-
-        # Open file with the wave functions
-        wfcname="wfc{}{}".format({None:"","dw":"dw","up":"up"}[spin_channel], ik+1)
-        try:
-            fWFC=FF("{}.save/{}.dat".format(self.prefix,wfcname.lower()),"r")
-        except FileNotFoundError:
-            fWFC=FF("{}.save/{}.dat".format(self.prefix,wfcname.upper()),"r")
-
-        rec = record_abinit(fWFC, "i4,3f8,i4,i4,f8")[0]
-        kpt = rec[1]  # cartesian coords of k-point
-
-        rec = record_abinit(fWFC, "4i4")
-        igwx = rec[1]
-
-        # Determine direct coords of k-point
-        rec = record_abinit(fWFC, "(3,3)f8")
-        B = np.array(rec)
-        kpt = kpt.dot(np.linalg.inv(B))
-
-        rec = record_abinit(fWFC, "({},3)i4".format(igwx))
-        kg = np.array(rec)
-
-        # Parse coefficients of wave functions
         npw = int(kptxml.find("npw").text)
         npwtot = npw * (2 if self.spinor else 1)
-        msg = 'npwtot: {}, igwx: {}'.format(npwtot, igwx)
-        log_message(msg, verbosity, 2)
-        WF = np.zeros((NBin, npwtot), dtype=complex)
-        for ib in range(NBin):
-            rec = record_abinit(fWFC, "{}f8".format(npwtot * 2))
-            WF[ib] = rec[0::2] + 1.0j * rec[1::2]
-
-        return WF, Energy, kg, kpt
 
+        # Open file with the wave functions
+        wfcname="wfc{}{}".format({None:"","dw":"dw","up":"up"}[spin_channel], ik+1)
+        fWFC = None
+        checked_files = []
+        for extension in ["hdf5","dat"]:
+            for strcase in [str.lower,str.upper]:
+                filename = f"{self.prefix}.save/{strcase(wfcname)}.{extension}"
+                if os.path.exists(filename):
+                    if extension=="hdf5":
+                        fWFC = h5py.File(filename,'r')
+                        attrnames = ['gamma_only', 'igwx', 'ik', 'ispin', 'nbnd', 'ngw', 'npol', 'scale_factor', 'xk']
+                        attributes =  []
+                        for atr in attrnames:
+                            attributes.append(fWFC.attrs[atr])
+
+                        _gamma_only, _igwx, ik, _ispin, _nbnd, _ngw, _npol, _scale_factor, xk = attributes
+                        kpt = np.array(xk)
+                        Miller_Indices =  fWFC['MillerIndices']
+                        B = np.array([Miller_Indices.attrs[f'bg{i}'] for i in range(1,4)])
+                        kg = np.array(Miller_Indices[::])
+                        kpt = kpt.dot(np.linalg.inv(B))
+                        # Parse coefficients of wave functions
+                        evc = np.array(fWFC['evc'],dtype=float)
+                        WF = evc[:,0::2] + 1.0j * evc[:,1::2]
+                        return WF, Energy, kg, kpt
+                    else:
+                        fWFC=FF(filename,"r")
+                        rec = record_abinit(fWFC, "i4,3f8,i4,i4,f8")[0]
+                        kpt = rec[1]  # cartesian coords of k-point
+
+                        rec = record_abinit(fWFC, "4i4")
+                        igwx = rec[1]
+
+                        # Determine direct coords of k-point
+                        rec = record_abinit(fWFC, "(3,3)f8")
+                        B = np.array(rec)
+                        rec = record_abinit(fWFC, "({},3)i4".format(igwx))
+                        kg = np.array(rec)
+                        msg = 'npwtot: {}, igwx: {}'.format(npwtot, igwx)
+                        log_message(msg, verbosity, 2)
+                        kpt = kpt.dot(np.linalg.inv(B))
+                        # Parse coefficients of wave functions
+                        WF = np.zeros((NBin, npwtot), dtype=complex)
+                        for ib in range(NBin):
+                            rec = record_abinit(fWFC, "{}f8".format(npwtot * 2))
+                            WF[ib] = rec[0::2] + 1.0j * rec[1::2]
+                        return WF, Energy, kg, kpt
+                checked_files.append(filename)
+        raise RuntimeError(f"Wavefunction file not found. Tried files: {checked_files}")
+        
 
 class ParserW90:
     '''
diff --git a/setup.py b/setup.py
index 2a259fa36..bb34a4d22 100644
--- a/setup.py
+++ b/setup.py
@@ -19,7 +19,8 @@
         "ruamel.yaml",
         "irreptables>=1.1.0",
         "fortio",
-        "packaging"
+        "packaging",
+        "h5py",
     ],
     include_package_data=False,
     url="https://github.com/irreducible-representations/irrep.git",


Test patch:
diff --git a/irrep/tests/test_espresso_hdf5.py b/irrep/tests/test_espresso_hdf5.py
new file mode 100644
index 000000000..3e2938652
--- /dev/null
+++ b/irrep/tests/test_espresso_hdf5.py
@@ -0,0 +1,65 @@
+import os
+import subprocess
+from pathlib import Path
+from monty.serialization import loadfn
+import numpy as np
+
+TEST_FILES_PATH = Path(__file__).parents[2] / "examples"
+
+def test_espresso_hdf5():
+
+    os.chdir(TEST_FILES_PATH / "espresso_hdf5")
+
+    command = [
+        "irrep",
+        "-code=espresso",
+        "-prefix=di",
+    ]
+    output = subprocess.run(command, capture_output=True, text=True)
+    return_code = output.returncode
+    assert return_code == 0, output.stderr
+
+    # Load generated and reference output data
+    data_ref = loadfn("ref_output.json")
+    data_run = loadfn("irrep-output.json")
+
+    # Check SpaceGroup
+    sg_ref = data_ref['spacegroup']
+    sg_run = data_run['spacegroup']
+    assert sg_ref['name'] == sg_run['name']
+    assert sg_ref['number'] == sg_run['number']
+    assert sg_ref['spinor'] == sg_run['spinor']
+    assert sg_ref['num symmetries'] == sg_run['num symmetries']
+    assert sg_ref['cells match'] == sg_run['cells match']
+    spinor = sg_ref['spinor']  # used later
+
+    # Todo: implement safe check of symmetries
+
+    # Check general properties of the band structure
+    bs_ref = data_ref['characters and irreps'][0]['subspace']
+    bs_run = data_run['characters and irreps'][0]['subspace']
+    assert bs_ref['indirect gap (eV)'] == bs_run['indirect gap (eV)']
+    assert bs_ref['Minimal direct gap (eV)'] == bs_run['Minimal direct gap (eV)']
+    if spinor:
+        assert bs_ref['Z4'] == bs_run['Z4']
+        assert bs_ref['number of inversion-odd Kramers pairs'] == bs_run['number of inversion-odd Kramers pairs']
+    else:
+        assert bs_ref['number of inversion-odd states'] == bs_run['number of inversion-odd states']
+
+    # Check properties at each k-point
+    kp_ref = bs_ref['k points'][0]
+    kp_run = bs_run['k points'][0]
+    assert np.allclose(kp_ref['symmetries'], kp_run['symmetries'])
+    assert np.allclose(kp_ref['energies_mean'], kp_run['energies_mean'], rtol=0., atol=1e-4)
+    assert np.allclose(kp_ref['characters'], kp_run['characters'], rtol=0., atol=1e-4)
+    assert kp_ref['characters refUC is the same'] == kp_run['characters refUC is the same']
+    assert np.allclose(kp_ref['dimensions'], kp_run['dimensions'], rtol=0., atol=1e-4)
+   
+    # Remove output files created during run
+    for test_output_file in (
+            "irreptable-template",
+            "trace.txt",
+            "irrep-output.json"
+    ):
+        os.remove(test_output_file)
+