From d4b43ff9f82193374e6f06ff699ccc1abaf9b2a4 Mon Sep 17 00:00:00 2001 From: Alyn James Date: Fri, 14 Apr 2023 23:43:23 +0100 Subject: [PATCH] spectral routines update --- ...lock_structure.BlockStructure.__init__.rst | 6 + ...ucture.BlockStructure.adapt_deg_shells.rst | 6 + ...BlockStructure.approximate_as_diagonal.rst | 6 + ...lock_structure.BlockStructure.check_gf.rst | 6 + ..._structure.BlockStructure.check_matrix.rst | 6 + ...ck_structure.BlockStructure.convert_gf.rst | 6 + ...tructure.BlockStructure.convert_matrix.rst | 6 + ...ucture.BlockStructure.convert_operator.rst | 6 + ...ls.block_structure.BlockStructure.copy.rst | 6 + ...ock_structure.BlockStructure.create_gf.rst | 6 + ...structure.BlockStructure.create_matrix.rst | 6 + ...ucture.effective_transformation_solver.rst | 6 + ...tructure.effective_transformation_sumk.rst | 6 + ...tructure.BlockStructure.full_structure.rst | 6 + ...e.BlockStructure.gf_struct_solver_dict.rst | 6 + ...e.BlockStructure.gf_struct_solver_list.rst | 6 + ...ure.BlockStructure.gf_struct_sumk_dict.rst | 6 + ...ure.BlockStructure.gf_struct_sumk_list.rst | 6 + ...ructure.BlockStructure.inequiv_to_corr.rst | 6 + ...re.BlockStructure.map_gf_struct_solver.rst | 6 + ...e.BlockStructure.pick_gf_struct_solver.rst | 6 + ...ure.BlockStructure.pick_gf_struct_sumk.rst | 6 + ...t_tools.block_structure.BlockStructure.rst | 48 + ...re.BlockStructure.sumk_to_solver_block.rst | 6 + .../triqs_dft_tools.block_structure.rst | 32 + ...onverter_tools.ConverterTools.__init__.rst | 6 + ...s.ConverterTools.det_shell_equivalence.rst | 6 + ...tools.ConverterTools.read_fortran_file.rst | 6 + ....converter_tools.ConverterTools.repack.rst | 6 + ...verters.converter_tools.ConverterTools.rst | 23 + ...s_dft_tools.converters.converter_tools.rst | 32 + ...s.converters.elk.ElkConverter.__init__.rst | 6 + ...s.converters.elk.ElkConverter.axangsu2.rst | 6 + ....converters.elk.ElkConverter.bzfoldout.rst | 6 + ...converters.elk.ElkConverter.check_dens.rst | 6 + ...s.elk.ElkConverter.convert_bands_input.rst | 6 + ...lk.ElkConverter.convert_contours_input.rst | 6 + ...ers.elk.ElkConverter.convert_dft_input.rst | 6 + ...k.ElkConverter.convert_transport_input.rst | 6 + ...elk.ElkConverter.det_shell_equivalence.rst | 6 + ...onverters.elk.ElkConverter.determine_T.rst | 6 + ...verters.elk.ElkConverter.determine_rep.rst | 6 + ...s.converters.elk.ElkConverter.gen_perm.rst | 6 + ...s.converters.elk.ElkConverter.plotpt3d.rst | 6 + ...s.converters.elk.ElkConverter.read_eig.rst | 6 + ...verters.elk.ElkConverter.read_elk_file.rst | 6 + ...erters.elk.ElkConverter.read_elk_file2.rst | 6 + ...ers.elk.ElkConverter.read_fortran_file.rst | 6 + ...verters.elk.ElkConverter.read_geometry.rst | 6 + ...nverters.elk.ElkConverter.read_kpoints.rst | 6 + ....converters.elk.ElkConverter.read_proj.rst | 6 + ...erters.elk.ElkConverter.read_projector.rst | 6 + ...ls.converters.elk.ElkConverter.readlat.rst | 6 + ...ls.converters.elk.ElkConverter.readsym.rst | 6 + ...ols.converters.elk.ElkConverter.repack.rst | 6 + ...s.converters.elk.ElkConverter.rotaxang.rst | 6 + ...ols.converters.elk.ElkConverter.rotsym.rst | 6 + ..._dft_tools.converters.elk.ElkConverter.rst | 55 + ...rs.elk.ElkConverter.sort_dft_eigvalues.rst | 6 + ...nverters.elk.ElkConverter.split_string.rst | 6 + ...verters.elk.ElkConverter.split_string2.rst | 6 + ...verters.elk.ElkConverter.split_string3.rst | 6 + ...kConverter.symlat_to_complex_harmonics.rst | 6 + ...s.elk.ElkConverter.update_so_quatities.rst | 6 + ...ols.converters.elk.ElkConverter.v3frac.rst | 6 + ...ols.converters.elk.ElkConverter.ylmrot.rst | 6 + ...ls.converters.elk.ElkConverter.ylmroty.rst | 6 + ....converters.elk.ElkConverter.zyz_euler.rst | 6 + .../triqs_dft_tools.converters.elk.rst | 32 + ...erter_tools.ElkConverterTools.__init__.rst | 6 + ...erter_tools.ElkConverterTools.axangsu2.rst | 6 + ...rter_tools.ElkConverterTools.bzfoldout.rst | 6 + ...erter_tools.ElkConverterTools.gen_perm.rst | 6 + ...erter_tools.ElkConverterTools.plotpt3d.rst | 6 + ...erter_tools.ElkConverterTools.rotaxang.rst | 6 + ....elk_converter_tools.ElkConverterTools.rst | 30 + ...erterTools.symlat_to_complex_harmonics.rst | 6 + ...nverter_tools.ElkConverterTools.v3frac.rst | 6 + ...nverter_tools.ElkConverterTools.ylmrot.rst | 6 + ...verter_tools.ElkConverterTools.ylmroty.rst | 6 + ...rter_tools.ElkConverterTools.zyz_euler.rst | 6 + ...onverters.elktools.elk_converter_tools.rst | 32 + ...tools.converters.elktools.readElkfiles.rst | 24 + .../triqs_dft_tools.converters.elktools.rst | 35 + ...ols.converters.hk.HkConverter.__init__.rst | 6 + ...rters.hk.HkConverter.convert_dft_input.rst | 6 + ...s.hk.HkConverter.det_shell_equivalence.rst | 6 + ...rters.hk.HkConverter.read_fortran_file.rst | 6 + ...tools.converters.hk.HkConverter.repack.rst | 6 + ...qs_dft_tools.converters.hk.HkConverter.rst | 24 + .../triqs_dft_tools.converters.hk.rst | 32 + ...rters.plovasp.atm.dos_tetra_weights_3d.rst | 6 + ...triqs_dft_tools.converters.plovasp.atm.rst | 31 + ....converter.generate_and_output_as_text.rst | 6 + ...ools.converters.plovasp.converter.main.rst | 6 + ...dft_tools.converters.plovasp.converter.rst | 32 + ....elstruct.ElectronicStructure.__init__.rst | 6 + ...ectronicStructure.debug_density_matrix.rst | 6 + ...s.plovasp.elstruct.ElectronicStructure.rst | 21 + ..._dft_tools.converters.plovasp.elstruct.rst | 32 + ...vasp.inpconf.ConfigParameters.__init__.rst | 6 + ...igParameters.groups_shells_consistency.rst | 6 + ...onf.ConfigParameters.parse_band_window.rst | 6 + ...f.ConfigParameters.parse_energy_window.rst | 6 + ...nf.ConfigParameters.parse_file_tmatrix.rst | 6 + ...inpconf.ConfigParameters.parse_general.rst | 6 + ....inpconf.ConfigParameters.parse_groups.rst | 6 + ...p.inpconf.ConfigParameters.parse_input.rst | 6 + ...f.ConfigParameters.parse_parameter_set.rst | 6 + ....inpconf.ConfigParameters.parse_shells.rst | 6 + ....ConfigParameters.parse_string_dosmesh.rst | 6 + ...conf.ConfigParameters.parse_string_int.rst | 6 + ...ConfigParameters.parse_string_ion_list.rst | 6 + ....ConfigParameters.parse_string_logical.rst | 6 + ....ConfigParameters.parse_string_tmatrix.rst | 6 + ...rters.plovasp.inpconf.ConfigParameters.rst | 34 + ...nverters.plovasp.inpconf.issue_warning.rst | 6 + ...s_dft_tools.converters.plovasp.inpconf.rst | 39 + ...lovasp.plotools.check_data_consistency.rst | 6 + ...onverters.plovasp.plotools.ctrl_output.rst | 6 + ...nverters.plovasp.plotools.generate_plo.rst | 6 + ....converters.plovasp.plotools.hk_output.rst | 6 + ...verters.plovasp.plotools.issue_warning.rst | 6 + ...erters.plovasp.plotools.kpoints_output.rst | 6 + ...erters.plovasp.plotools.output_as_text.rst | 6 + ...converters.plovasp.plotools.plo_output.rst | 6 + ..._dft_tools.converters.plovasp.plotools.rst | 38 + ...asp.proj_group.ProjectorGroup.__init__.rst | 6 + ...j_group.ProjectorGroup.calc_complement.rst | 6 + ...vasp.proj_group.ProjectorGroup.calc_hk.rst | 6 + ...up.ProjectorGroup.get_block_matrix_map.rst | 6 + ...roj_group.ProjectorGroup.nelect_window.rst | 6 + ...roj_group.ProjectorGroup.orthogonalize.rst | 6 + ...orGroup.orthogonalize_projector_matrix.rst | 6 + ...ters.plovasp.proj_group.ProjectorGroup.rst | 27 + ...proj_group.ProjectorGroup.select_bands.rst | 6 + ...ft_tools.converters.plovasp.proj_group.rst | 32 + ...sp.proj_shell.ComplementShell.__init__.rst | 6 + ...j_shell.ComplementShell.density_matrix.rst | 6 + ...hell.ComplementShell.density_of_states.rst | 6 + ...ell.ComplementShell.extract_projectors.rst | 6 + ...hell.ComplementShell.extract_tmatrices.rst | 6 + ...hell.ComplementShell.local_hamiltonian.rst | 6 + ...ers.plovasp.proj_shell.ComplementShell.rst | 26 + ...hell.ComplementShell.select_projectors.rst | 6 + ...asp.proj_shell.ProjectorShell.__init__.rst | 6 + ...oj_shell.ProjectorShell.density_matrix.rst | 6 + ...shell.ProjectorShell.density_of_states.rst | 6 + ...hell.ProjectorShell.extract_projectors.rst | 6 + ...shell.ProjectorShell.extract_tmatrices.rst | 6 + ...shell.ProjectorShell.local_hamiltonian.rst | 6 + ...ters.plovasp.proj_shell.ProjectorShell.rst | 26 + ...shell.ProjectorShell.select_projectors.rst | 6 + ...rters.plovasp.proj_shell.issue_warning.rst | 6 + ...ft_tools.converters.plovasp.proj_shell.rst | 40 + .../triqs_dft_tools.converters.plovasp.rst | 42 + ...onverters.plovasp.sc_dmft.bcolors.BLUE.rst | 6 + ...onverters.plovasp.sc_dmft.bcolors.ENDC.rst | 6 + ...nverters.plovasp.sc_dmft.bcolors.GREEN.rst | 6 + ...erters.plovasp.sc_dmft.bcolors.MAGENTA.rst | 6 + ...converters.plovasp.sc_dmft.bcolors.RED.rst | 6 + ...verters.plovasp.sc_dmft.bcolors.YELLOW.rst | 6 + ...rters.plovasp.sc_dmft.bcolors.__init__.rst | 6 + ...ols.converters.plovasp.sc_dmft.bcolors.rst | 32 + ....converters.plovasp.sc_dmft.excepthook.rst | 6 + ...verters.plovasp.sc_dmft.get_dft_energy.rst | 6 + ...s.plovasp.sc_dmft.is_vasp_lock_present.rst | 6 + ...erters.plovasp.sc_dmft.is_vasp_running.rst | 6 + ..._tools.converters.plovasp.sc_dmft.main.rst | 6 + ...s_dft_tools.converters.plovasp.sc_dmft.rst | 45 + ...ols.converters.plovasp.sc_dmft.run_all.rst | 6 + ...verters.plovasp.sc_dmft.sigint_handler.rst | 6 + ...verters.plovasp.vaspio.Doscar.__init__.rst | 6 + ...erters.plovasp.vaspio.Doscar.from_file.rst | 6 + ...tools.converters.plovasp.vaspio.Doscar.rst | 21 + ...rters.plovasp.vaspio.Eigenval.__init__.rst | 6 + ...ters.plovasp.vaspio.Eigenval.from_file.rst | 6 + ...ols.converters.plovasp.vaspio.Eigenval.rst | 21 + ...erters.plovasp.vaspio.Kpoints.__init__.rst | 6 + ...rters.plovasp.vaspio.Kpoints.from_file.rst | 6 + ...ools.converters.plovasp.vaspio.Kpoints.rst | 21 + ...verters.plovasp.vaspio.Plocar.__init__.rst | 6 + ...erters.plovasp.vaspio.Plocar.from_file.rst | 6 + ...s.plovasp.vaspio.Plocar.locproj_parser.rst | 6 + ...tools.converters.plovasp.vaspio.Plocar.rst | 23 + ...rters.plovasp.vaspio.Plocar.search_for.rst | 6 + ...verters.plovasp.vaspio.Poscar.__init__.rst | 6 + ...erters.plovasp.vaspio.Poscar.from_file.rst | 6 + ...tools.converters.plovasp.vaspio.Poscar.rst | 21 + ...rters.plovasp.vaspio.VaspData.__init__.rst | 6 + ...ols.converters.plovasp.vaspio.VaspData.rst | 20 + ...s.converters.plovasp.vaspio.read_lines.rst | 6 + ...converters.plovasp.vaspio.read_symmcar.rst | 6 + ...qs_dft_tools.converters.plovasp.vaspio.rst | 45 + .../triqs_dft_tools.converters.rst | 41 + ...converters.vasp.VaspConverter.__init__.rst | 6 + ...s.vasp.VaspConverter.convert_dft_input.rst | 6 + ....vasp.VaspConverter.convert_misc_input.rst | 6 + ...p.VaspConverter.convert_symmetry_input.rst | 6 + ...sp.VaspConverter.det_shell_equivalence.rst | 6 + ...onverters.vasp.VaspConverter.read_data.rst | 6 + ...s.vasp.VaspConverter.read_fortran_file.rst | 6 + ...asp.VaspConverter.read_header_and_data.rst | 6 + ...s.converters.vasp.VaspConverter.repack.rst | 6 + ...ft_tools.converters.vasp.VaspConverter.rst | 28 + .../triqs_dft_tools.converters.vasp.rst | 32 + ....wannier90.Wannier90Converter.__init__.rst | 6 + ...0.Wannier90Converter.convert_dft_input.rst | 6 + ...nnier90Converter.det_shell_equivalence.rst | 6 + ...0.Wannier90Converter.read_fortran_file.rst | 6 + ...rs.wannier90.Wannier90Converter.repack.rst | 6 + ...onverters.wannier90.Wannier90Converter.rst | 24 + ...tools.converters.wannier90.build_kmesh.rst | 6 + ...ters.wannier90.check_and_adapt_for_soc.rst | 6 + ...verters.wannier90.check_bloch_basis_hk.rst | 6 + ...ft_tools.converters.wannier90.check_hr.rst | 6 + ...rters.wannier90.check_wannier_basis_hk.rst | 6 + ...ools.converters.wannier90.find_rot_mat.rst | 6 + ...annier90.fourier_transform_hamiltonian.rst | 6 + ...wannier90.generate_local_so_matrix_t2g.rst | 6 + ...ters.wannier90.read_all_wannier90_data.rst | 6 + ...s.converters.wannier90.read_input_file.rst | 6 + ...s.converters.wannier90.read_misc_input.rst | 6 + ...nnier90.read_wannier90_blochbasis_data.rst | 6 + ...rters.wannier90.read_wannier90_hr_data.rst | 6 + ...ers.wannier90.reorder_orbital_and_spin.rst | 6 + .../triqs_dft_tools.converters.wannier90.rst | 52 + ...erters.wien2k.Wien2kConverter.__init__.rst | 6 + ...2k.Wien2kConverter.convert_bands_input.rst | 6 + ...en2k.Wien2kConverter.convert_dft_input.rst | 6 + ...n2k.Wien2kConverter.convert_misc_input.rst | 6 + ....Wien2kConverter.convert_parproj_input.rst | 6 + ...Wien2kConverter.convert_symmetry_input.rst | 6 + ...ien2kConverter.convert_transport_input.rst | 6 + ....Wien2kConverter.det_shell_equivalence.rst | 6 + ...en2k.Wien2kConverter.read_fortran_file.rst | 6 + ...nverters.wien2k.Wien2kConverter.repack.rst | 6 + ...ools.converters.wien2k.Wien2kConverter.rst | 29 + .../triqs_dft_tools.converters.wien2k.rst | 32 + ...qs_dft_tools.sumk_dft.SumkDFT.__init__.rst | 6 + ...riqs_dft_tools.sumk_dft.SumkDFT.add_dc.rst | 6 + ...mk_dft.SumkDFT.analyse_block_structure.rst | 6 + ...umkDFT.analyse_block_structure_from_gf.rst | 6 + ...ls.sumk_dft.SumkDFT.analyse_deg_shells.rst | 6 + ...iqs_dft_tools.sumk_dft.SumkDFT.calc_dc.rst | 6 + ...s.sumk_dft.SumkDFT.calc_dc_for_density.rst | 6 + ...mk_dft.SumkDFT.calc_density_correction.rst | 6 + ...iqs_dft_tools.sumk_dft.SumkDFT.calc_mu.rst | 6 + ...mkDFT.calculate_diagonalization_matrix.rst | 6 + ...umkDFT.calculate_min_max_band_energies.rst | 6 + ...ools.sumk_dft.SumkDFT.check_projectors.rst | 6 + ...tools.sumk_dft.SumkDFT.corr_to_inequiv.rst | 6 + ..._dft_tools.sumk_dft.SumkDFT.deg_shells.rst | 6 + ..._tools.sumk_dft.SumkDFT.density_matrix.rst | 6 + ...qs_dft_tools.sumk_dft.SumkDFT.downfold.rst | 6 + ...ols.sumk_dft.SumkDFT.eff_atomic_levels.rst | 6 + ...t_tools.sumk_dft.SumkDFT.extract_G_loc.rst | 6 + ...ools.sumk_dft.SumkDFT.gf_struct_solver.rst | 6 + ...sumk_dft.SumkDFT.gf_struct_solver_dict.rst | 6 + ...sumk_dft.SumkDFT.gf_struct_solver_list.rst | 6 + ..._tools.sumk_dft.SumkDFT.gf_struct_sumk.rst | 6 + ...s.sumk_dft.SumkDFT.gf_struct_sumk_dict.rst | 6 + ...s.sumk_dft.SumkDFT.gf_struct_sumk_list.rst | 6 + ...tools.sumk_dft.SumkDFT.inequiv_to_corr.rst | 6 + ...iqs_dft_tools.sumk_dft.SumkDFT.init_dc.rst | 6 + ..._dft_tools.sumk_dft.SumkDFT.lattice_gf.rst | 6 + .../triqs_dft_tools.sumk_dft.SumkDFT.load.rst | 6 + ...tools.sumk_dft.SumkDFT.number_of_atoms.rst | 6 + ...s_dft_tools.sumk_dft.SumkDFT.put_Sigma.rst | 6 + ...s.sumk_dft.SumkDFT.read_input_from_hdf.rst | 6 + ...riqs_dft_tools.sumk_dft.SumkDFT.rotloc.rst | 6 + .../triqs_dft_tools.sumk_dft.SumkDFT.rst | 70 + .../triqs_dft_tools.sumk_dft.SumkDFT.save.rst | 6 + ...s_dft_tools.sumk_dft.SumkDFT.set_Sigma.rst | 6 + ...riqs_dft_tools.sumk_dft.SumkDFT.set_dc.rst | 6 + ...riqs_dft_tools.sumk_dft.SumkDFT.set_mu.rst | 6 + ..._tools.sumk_dft.SumkDFT.solver_to_sumk.rst | 6 + ....sumk_dft.SumkDFT.solver_to_sumk_block.rst | 6 + ..._tools.sumk_dft.SumkDFT.sorts_of_atoms.rst | 6 + ..._tools.sumk_dft.SumkDFT.sumk_to_solver.rst | 6 + ...dft_tools.sumk_dft.SumkDFT.symm_deg_gf.rst | 6 + ...t_tools.sumk_dft.SumkDFT.total_density.rst | 6 + ...dft.SumkDFT.transform_to_solver_blocks.rst | 6 + ...k_dft.SumkDFT.transform_to_sumk_blocks.rst | 6 + ...riqs_dft_tools.sumk_dft.SumkDFT.upfold.rst | 6 + doc/_python_api/triqs_dft_tools.sumk_dft.rst | 32 + ...s.sumk_dft_tools.SumkDFTTools.__init__.rst | 6 + ...ols.sumk_dft_tools.SumkDFTTools.add_dc.rst | 6 + ...s.SumkDFTTools.analyse_block_structure.rst | 6 + ...TTools.analyse_block_structure_from_gf.rst | 6 + ..._tools.SumkDFTTools.analyse_deg_shells.rst | 6 + ...ls.sumk_dft_tools.SumkDFTTools.calc_dc.rst | 6 + ...tools.SumkDFTTools.calc_dc_for_density.rst | 6 + ...s.SumkDFTTools.calc_density_correction.rst | 6 + ...ls.sumk_dft_tools.SumkDFTTools.calc_mu.rst | 6 + ...Tools.calculate_diagonalization_matrix.rst | 6 + ...TTools.calculate_min_max_band_energies.rst | 6 + ...ft_tools.SumkDFTTools.check_projectors.rst | 6 + ...dft_tools.SumkDFTTools.corr_to_inequiv.rst | 6 + ...sumk_dft_tools.SumkDFTTools.deg_shells.rst | 6 + ..._dft_tools.SumkDFTTools.density_matrix.rst | 6 + ...t_tools.SumkDFTTools.density_of_states.rst | 6 + ...s.sumk_dft_tools.SumkDFTTools.downfold.rst | 6 + ...t_tools.SumkDFTTools.eff_atomic_levels.rst | 6 + ...k_dft_tools.SumkDFTTools.extract_G_loc.rst | 6 + ...ls.sumk_dft_tools.SumkDFTTools.gen_Akw.rst | 6 + ...ft_tools.SumkDFTTools.gf_struct_solver.rst | 6 + ...ols.SumkDFTTools.gf_struct_solver_dict.rst | 6 + ...ols.SumkDFTTools.gf_struct_solver_list.rst | 6 + ..._dft_tools.SumkDFTTools.gf_struct_sumk.rst | 6 + ...tools.SumkDFTTools.gf_struct_sumk_dict.rst | 6 + ...tools.SumkDFTTools.gf_struct_sumk_list.rst | 6 + ...dft_tools.SumkDFTTools.inequiv_to_corr.rst | 6 + ...ls.sumk_dft_tools.SumkDFTTools.init_dc.rst | 6 + ...sumk_dft_tools.SumkDFTTools.lattice_gf.rst | 6 + ...tools.sumk_dft_tools.SumkDFTTools.load.rst | 6 + ...mk_dft_tools.SumkDFTTools.load_parproj.rst | 6 + ...dft_tools.SumkDFTTools.number_of_atoms.rst | 6 + ...umk_dft_tools.SumkDFTTools.occupations.rst | 6 + ...dft_tools.SumkDFTTools.partial_charges.rst | 6 + ...t_tools.SumkDFTTools.print_hamiltonian.rst | 6 + ...dft_tools.SumkDFTTools.proj_type_G_loc.rst | 6 + ....sumk_dft_tools.SumkDFTTools.put_Sigma.rst | 6 + ...tools.SumkDFTTools.read_input_from_hdf.rst | 6 + ...ols.sumk_dft_tools.SumkDFTTools.rotloc.rst | 6 + ..._dft_tools.sumk_dft_tools.SumkDFTTools.rst | 79 + ...tools.sumk_dft_tools.SumkDFTTools.save.rst | 6 + ....sumk_dft_tools.SumkDFTTools.set_Sigma.rst | 6 + ...ols.sumk_dft_tools.SumkDFTTools.set_dc.rst | 6 + ...ols.sumk_dft_tools.SumkDFTTools.set_mu.rst | 6 + ..._dft_tools.SumkDFTTools.solver_to_sumk.rst | 6 + ...ools.SumkDFTTools.solver_to_sumk_block.rst | 6 + ..._dft_tools.SumkDFTTools.sorts_of_atoms.rst | 6 + ...sumk_dft_tools.SumkDFTTools.spaghettis.rst | 6 + ...t_tools.SumkDFTTools.spectral_contours.rst | 6 + ..._dft_tools.SumkDFTTools.sumk_to_solver.rst | 6 + ...umk_dft_tools.SumkDFTTools.symm_deg_gf.rst | 6 + ...k_dft_tools.SumkDFTTools.total_density.rst | 6 + ...umkDFTTools.transform_to_solver_blocks.rst | 6 + ....SumkDFTTools.transform_to_sumk_blocks.rst | 6 + ...ols.sumk_dft_tools.SumkDFTTools.upfold.rst | 6 + .../triqs_dft_tools.sumk_dft_tools.rst | 32 + ...s_dft_tools.symmetry.Symmetry.__init__.rst | 6 + .../triqs_dft_tools.symmetry.Symmetry.rst | 21 + ...dft_tools.symmetry.Symmetry.symmetrize.rst | 6 + doc/_python_api/triqs_dft_tools.symmetry.rst | 32 + ..._tools.trans_basis.TransBasis.__init__.rst | 6 + ...Basis.calculate_diagonalisation_matrix.rst | 6 + ...tools.trans_basis.TransBasis.rotate_gf.rst | 6 + ...triqs_dft_tools.trans_basis.TransBasis.rst | 23 + ...rans_basis.TransBasis.write_trans_file.rst | 6 + .../triqs_dft_tools.trans_basis.rst | 32 + doc/guide/analysis.rst | 192 ++- doc/guide/conv_elk.rst | 67 +- .../images_scripts/DFT_Tools_SVO_DFT_DOS.png | Bin 0 -> 50491 bytes .../DFT_Tools_SVO_DFT_energy_contours.png | Bin 0 -> 46301 bytes .../DFT_Tools_SVO_DFT_spaghettis.png | Bin 0 -> 117706 bytes .../__pycache__/docscrape.cpython-310.pyc | Bin 0 -> 14882 bytes .../docscrape_sphinx.cpython-310.pyc | Bin 0 -> 4547 bytes .../__pycache__/numpydoc.cpython-310.pyc | Bin 0 -> 3418 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 2907 bytes .../__pycache__/version.cpython-310.pyc | Bin 0 -> 183 bytes doc/tutorials/ce-gamma-fscs_wien2k.rst | 2 +- python/triqs_dft_tools/converters/elk.py | 244 ++- .../elktools/elk_converter_tools.py | 128 ++ .../elktools/elkwrappers/CMakeLists.txt | 3 - .../converters/elktools/readElkfiles.py | 117 +- python/triqs_dft_tools/sumk_dft.py | 6 +- .../triqs_dft_tools/sumk_dft_tools (copy).py | 1067 ++++++++++++ python/triqs_dft_tools/sumk_dft_tools.py | 1449 ++++++++--------- test/python/elk/CMakeLists.txt | 6 +- test/python/elk/elk_bandcharacter_convert.py | 22 + .../elk_bc_convert.ref.h5 | Bin 519141 -> 1314910 bytes test/python/elk/elk_bands_convert.py | 19 + .../elk_bands_convert.ref.h5 | Bin 490758 -> 527668 bytes .../elk/elk_spectralcontours_convert.py | 49 + .../elk_spectralcontours_convert/EFERMI.OUT | 1 + .../elk_spectralcontours_convert/EIGVAL.OUT | 452 +++++ .../EIGVAL_FS.OUT | 947 +++++++++++ .../elk_spectralcontours_convert/GEOMETRY.OUT | 31 + .../elk_spectralcontours_convert/KPOINTS.OUT | 11 + .../KPOINTS_FS.OUT | 22 + .../elk_spectralcontours_convert/LATTICE.OUT | 41 + .../elk/elk_spectralcontours_convert/PROJ.OUT | 8 + .../elk_spectralcontours_convert/PROJ_FS.OUT | 8 + .../elk_spectralcontours_convert/SYMCRYS.OUT | 580 +++++++ .../WANPROJ_L02_S02_A0001.OUT | 141 ++ .../WANPROJ_L02_S02_A0001_FS.OUT | 295 ++++ .../elk/elk_spectralcontours_convert/elk.in | 50 + .../elk_spectralcontours_convert.ref.h5 | Bin 0 -> 608945 bytes test/python/elk/occ_test.py | 42 + test/python/elk/occ_test/EFERMI.OUT | 1 + test/python/elk/occ_test/EIGVAL.OUT | 452 +++++ test/python/elk/occ_test/GEOMETRY.OUT | 31 + test/python/elk/occ_test/KPOINTS.OUT | 11 + test/python/elk/occ_test/LATTICE.OUT | 41 + test/python/elk/occ_test/PROJ.OUT | 8 + test/python/elk/occ_test/SYMCRYS.OUT | 580 +++++++ .../elk/occ_test/WANPROJ_L02_S02_A0001.OUT | 141 ++ test/python/elk/occ_test/elk.in | 40 + .../elk/occ_test/elk_occ_convert.ref.h5 | Bin 0 -> 550627 bytes test/python/srvo3_spectral.py | 10 +- 402 files changed, 9743 insertions(+), 1017 deletions(-) create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.adapt_deg_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.approximate_as_diagonal.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_operator.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.copy.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.full_structure.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.inequiv_to_corr.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.map_gf_struct_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.sumk_to_solver_block.rst create mode 100644 doc/_python_api/triqs_dft_tools.block_structure.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.converter_tools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.axangsu2.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.bzfoldout.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.check_dens.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_bands_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_contours_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_dft_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_transport_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_T.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_rep.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.gen_perm.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.plotpt3d.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_eig.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file2.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_geometry.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_kpoints.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_proj.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_projector.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readlat.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readsym.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotaxang.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotsym.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.sort_dft_eigvalues.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string2.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string3.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.symlat_to_complex_harmonics.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.update_so_quatities.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.v3frac.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmrot.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmroty.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.zyz_euler.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elk.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.axangsu2.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.bzfoldout.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.gen_perm.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.plotpt3d.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rotaxang.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.symlat_to_complex_harmonics.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.v3frac.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmrot.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmroty.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.zyz_euler.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.readElkfiles.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.elktools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.convert_dft_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.hk.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.atm.dos_tetra_weights_3d.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.atm.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.converter.generate_and_output_as_text.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.converter.main.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.converter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.debug_density_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.groups_shells_consistency.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_band_window.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_energy_window.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_file_tmatrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_general.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_groups.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_parameter_set.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_dosmesh.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_int.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_ion_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_logical.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_tmatrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.issue_warning.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.check_data_consistency.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.ctrl_output.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.generate_plo.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.hk_output.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.issue_warning.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.kpoints_output.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.output_as_text.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.plo_output.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_complement.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_hk.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.get_block_matrix_map.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.nelect_window.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize_projector_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.select_bands.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_of_states.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_tmatrices.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.local_hamiltonian.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.select_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_of_states.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_tmatrices.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.local_hamiltonian.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.select_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.issue_warning.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.BLUE.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.ENDC.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.GREEN.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.MAGENTA.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.RED.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.YELLOW.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.excepthook.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.get_dft_energy.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_lock_present.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_running.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.main.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.run_all.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.sigint_handler.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.from_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.from_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.from_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.from_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.locproj_parser.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.search_for.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.from_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_lines.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_symmcar.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_dft_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_misc_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_symmetry_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_data.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_header_and_data.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.vasp.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.convert_dft_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.build_kmesh.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.check_and_adapt_for_soc.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.check_bloch_basis_hk.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.check_hr.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.check_wannier_basis_hk.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.find_rot_mat.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.fourier_transform_hamiltonian.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.generate_local_so_matrix_t2g.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.read_all_wannier90_data.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.read_input_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.read_misc_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_blochbasis_data.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_hr_data.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.reorder_orbital_and_spin.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wannier90.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_bands_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_dft_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_misc_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_parproj_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_symmetry_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_transport_input.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.det_shell_equivalence.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.read_fortran_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.repack.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.rst create mode 100644 doc/_python_api/triqs_dft_tools.converters.wien2k.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.add_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure_from_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_deg_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc_for_density.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_density_correction.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_mu.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_diagonalization_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_min_max_band_energies.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.check_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.corr_to_inequiv.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.deg_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.density_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.downfold.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.eff_atomic_levels.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.extract_G_loc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.inequiv_to_corr.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.init_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.lattice_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.load.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.number_of_atoms.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.put_Sigma.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.read_input_from_hdf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rotloc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.save.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_Sigma.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_mu.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk_block.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sorts_of_atoms.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sumk_to_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.symm_deg_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.total_density.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_solver_blocks.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_sumk_blocks.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.upfold.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.add_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure_from_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_deg_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc_for_density.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_density_correction.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_mu.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_diagonalization_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_min_max_band_energies.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.check_projectors.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.corr_to_inequiv.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.deg_shells.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_of_states.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.downfold.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.eff_atomic_levels.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.extract_G_loc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gen_Akw.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_dict.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_list.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.inequiv_to_corr.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.init_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.lattice_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load_parproj.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.number_of_atoms.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.occupations.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.partial_charges.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.print_hamiltonian.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.proj_type_G_loc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.put_Sigma.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.read_input_from_hdf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rotloc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.save.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_Sigma.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_dc.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_mu.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk_block.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sorts_of_atoms.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spaghettis.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spectral_contours.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sumk_to_solver.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.symm_deg_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.total_density.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_solver_blocks.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_sumk_blocks.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.upfold.rst create mode 100644 doc/_python_api/triqs_dft_tools.sumk_dft_tools.rst create mode 100644 doc/_python_api/triqs_dft_tools.symmetry.Symmetry.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.symmetry.Symmetry.rst create mode 100644 doc/_python_api/triqs_dft_tools.symmetry.Symmetry.symmetrize.rst create mode 100644 doc/_python_api/triqs_dft_tools.symmetry.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.__init__.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.calculate_diagonalisation_matrix.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rotate_gf.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.write_trans_file.rst create mode 100644 doc/_python_api/triqs_dft_tools.trans_basis.rst create mode 100644 doc/guide/images_scripts/DFT_Tools_SVO_DFT_DOS.png create mode 100644 doc/guide/images_scripts/DFT_Tools_SVO_DFT_energy_contours.png create mode 100644 doc/guide/images_scripts/DFT_Tools_SVO_DFT_spaghettis.png create mode 100644 doc/sphinxext/numpydoc/__pycache__/docscrape.cpython-310.pyc create mode 100644 doc/sphinxext/numpydoc/__pycache__/docscrape_sphinx.cpython-310.pyc create mode 100644 doc/sphinxext/numpydoc/__pycache__/numpydoc.cpython-310.pyc create mode 100644 doc/sphinxext/sphinx_autorun/__pycache__/__init__.cpython-310.pyc create mode 100644 doc/sphinxext/sphinx_autorun/__pycache__/version.cpython-310.pyc create mode 100644 python/triqs_dft_tools/sumk_dft_tools (copy).py create mode 100644 test/python/elk/elk_spectralcontours_convert.py create mode 100644 test/python/elk/elk_spectralcontours_convert/EFERMI.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/EIGVAL.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/EIGVAL_FS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/GEOMETRY.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/KPOINTS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/KPOINTS_FS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/LATTICE.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/PROJ.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/PROJ_FS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/SYMCRYS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001_FS.OUT create mode 100644 test/python/elk/elk_spectralcontours_convert/elk.in create mode 100644 test/python/elk/elk_spectralcontours_convert/elk_spectralcontours_convert.ref.h5 create mode 100644 test/python/elk/occ_test.py create mode 100644 test/python/elk/occ_test/EFERMI.OUT create mode 100644 test/python/elk/occ_test/EIGVAL.OUT create mode 100644 test/python/elk/occ_test/GEOMETRY.OUT create mode 100644 test/python/elk/occ_test/KPOINTS.OUT create mode 100644 test/python/elk/occ_test/LATTICE.OUT create mode 100644 test/python/elk/occ_test/PROJ.OUT create mode 100644 test/python/elk/occ_test/SYMCRYS.OUT create mode 100644 test/python/elk/occ_test/WANPROJ_L02_S02_A0001.OUT create mode 100644 test/python/elk/occ_test/elk.in create mode 100644 test/python/elk/occ_test/elk_occ_convert.ref.h5 diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.__init__.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.__init__.rst new file mode 100644 index 00000000..680a780f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.\_\_init\_\_ +============================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.adapt_deg_shells.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.adapt_deg_shells.rst new file mode 100644 index 00000000..fe3a3ea2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.adapt_deg_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.adapt\_deg\_shells +==================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.adapt_deg_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.approximate_as_diagonal.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.approximate_as_diagonal.rst new file mode 100644 index 00000000..b97c37e5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.approximate_as_diagonal.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.approximate\_as\_diagonal +=========================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.approximate_as_diagonal \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_gf.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_gf.rst new file mode 100644 index 00000000..88021666 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.check\_gf +=========================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.check_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_matrix.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_matrix.rst new file mode 100644 index 00000000..18c7b905 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.check_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.check\_matrix +=============================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.check_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_gf.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_gf.rst new file mode 100644 index 00000000..8f939fb4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.convert\_gf +============================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.convert_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_matrix.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_matrix.rst new file mode 100644 index 00000000..f070d893 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.convert\_matrix +================================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.convert_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_operator.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_operator.rst new file mode 100644 index 00000000..4c9c4da4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.convert_operator.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.convert\_operator +=================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.convert_operator \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.copy.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.copy.rst new file mode 100644 index 00000000..44c0cf80 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.copy.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.copy +====================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.copy \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_gf.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_gf.rst new file mode 100644 index 00000000..e0ade0bb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.create\_gf +============================================================ + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.create_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_matrix.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_matrix.rst new file mode 100644 index 00000000..eec458b5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.create_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.create\_matrix +================================================================ + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.create_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_solver.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_solver.rst new file mode 100644 index 00000000..4e2c8821 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.effective\_transformation\_solver +=================================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.effective_transformation_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_sumk.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_sumk.rst new file mode 100644 index 00000000..f3db72a9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.effective_transformation_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.effective\_transformation\_sumk +================================================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.effective_transformation_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.full_structure.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.full_structure.rst new file mode 100644 index 00000000..24909088 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.full_structure.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.full\_structure +================================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.full_structure \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_dict.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_dict.rst new file mode 100644 index 00000000..828b6229 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.gf\_struct\_solver\_dict +========================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.gf_struct_solver_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_list.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_list.rst new file mode 100644 index 00000000..fc7402b7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_solver_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.gf\_struct\_solver\_list +========================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.gf_struct_solver_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_dict.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_dict.rst new file mode 100644 index 00000000..8cd008c9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.gf\_struct\_sumk\_dict +======================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.gf_struct_sumk_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_list.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_list.rst new file mode 100644 index 00000000..6cdae59f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.gf_struct_sumk_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.gf\_struct\_sumk\_list +======================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.gf_struct_sumk_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.inequiv_to_corr.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.inequiv_to_corr.rst new file mode 100644 index 00000000..d474abd7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.inequiv_to_corr.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.inequiv\_to\_corr +=================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.inequiv_to_corr \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.map_gf_struct_solver.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.map_gf_struct_solver.rst new file mode 100644 index 00000000..3993dace --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.map_gf_struct_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.map\_gf\_struct\_solver +========================================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.map_gf_struct_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_solver.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_solver.rst new file mode 100644 index 00000000..d304fef3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.pick\_gf\_struct\_solver +========================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.pick_gf_struct_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_sumk.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_sumk.rst new file mode 100644 index 00000000..5d3805f4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.pick_gf_struct_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.pick\_gf\_struct\_sumk +======================================================================== + +.. currentmodule:: triqs_dft_tools.block_structure + +.. automethod:: BlockStructure.pick_gf_struct_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.rst new file mode 100644 index 00000000..b4c2b45c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.rst @@ -0,0 +1,48 @@ +triqs\_dft\_tools.block\_structure.BlockStructure +================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoclass:: BlockStructure + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~BlockStructure.__init__ + ~BlockStructure.adapt_deg_shells + ~BlockStructure.approximate_as_diagonal + ~BlockStructure.check_gf + ~BlockStructure.check_matrix + ~BlockStructure.convert_gf + ~BlockStructure.convert_matrix + ~BlockStructure.convert_operator + ~BlockStructure.copy + ~BlockStructure.create_gf + ~BlockStructure.create_matrix + ~BlockStructure.full_structure + ~BlockStructure.map_gf_struct_solver + ~BlockStructure.pick_gf_struct_solver + ~BlockStructure.pick_gf_struct_sumk + + + + + +.. rubric:: Attributes + +.. autosummary:: + :toctree: + + ~BlockStructure.effective_transformation_solver + ~BlockStructure.effective_transformation_sumk + ~BlockStructure.gf_struct_solver_dict + ~BlockStructure.gf_struct_solver_list + ~BlockStructure.gf_struct_sumk_dict + ~BlockStructure.gf_struct_sumk_list + ~BlockStructure.inequiv_to_corr + ~BlockStructure.sumk_to_solver_block + diff --git a/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.sumk_to_solver_block.rst b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.sumk_to_solver_block.rst new file mode 100644 index 00000000..c5109bb3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.BlockStructure.sumk_to_solver_block.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.block\_structure.BlockStructure.sumk\_to\_solver\_block +========================================================================= + +.. currentmodule:: triqs_dft_tools.block_structure + +.. autoproperty:: BlockStructure.sumk_to_solver_block \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.block_structure.rst b/doc/_python_api/triqs_dft_tools.block_structure.rst new file mode 100644 index 00000000..f7c5d5ff --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.block_structure.rst @@ -0,0 +1,32 @@ +block\_structure +================ + +.. automodule:: triqs_dft_tools.block_structure + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + BlockStructure + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.__init__.rst new file mode 100644 index 00000000..bc29860c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.converter\_tools.ConverterTools.\_\_init\_\_ +========================================================================= + +.. currentmodule:: triqs_dft_tools.converters.converter_tools + +.. automethod:: ConverterTools.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.det_shell_equivalence.rst new file mode 100644 index 00000000..40fd3260 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.converter\_tools.ConverterTools.det\_shell\_equivalence +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.converter_tools + +.. automethod:: ConverterTools.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.read_fortran_file.rst new file mode 100644 index 00000000..ad134a93 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.converter\_tools.ConverterTools.read\_fortran\_file +================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.converter_tools + +.. automethod:: ConverterTools.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.repack.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.repack.rst new file mode 100644 index 00000000..ecd5cff0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.converter\_tools.ConverterTools.repack +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.converter_tools + +.. automethod:: ConverterTools.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.rst new file mode 100644 index 00000000..472c5a8b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.ConverterTools.rst @@ -0,0 +1,23 @@ +triqs\_dft\_tools.converters.converter\_tools.ConverterTools +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.converter_tools + +.. autoclass:: ConverterTools + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ConverterTools.__init__ + ~ConverterTools.det_shell_equivalence + ~ConverterTools.read_fortran_file + ~ConverterTools.repack + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.converter_tools.rst b/doc/_python_api/triqs_dft_tools.converters.converter_tools.rst new file mode 100644 index 00000000..b004c5bc --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.converter_tools.rst @@ -0,0 +1,32 @@ +converter\_tools +================ + +.. automodule:: triqs_dft_tools.converters.converter_tools + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ConverterTools + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.__init__.rst new file mode 100644 index 00000000..19555f30 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.\_\_init\_\_ +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.axangsu2.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.axangsu2.rst new file mode 100644 index 00000000..802d0457 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.axangsu2.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.axangsu2 +====================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.axangsu2 \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.bzfoldout.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.bzfoldout.rst new file mode 100644 index 00000000..56f65f30 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.bzfoldout.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.bzfoldout +======================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.bzfoldout \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.check_dens.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.check_dens.rst new file mode 100644 index 00000000..29ded8d8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.check_dens.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.check\_dens +========================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.check_dens \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_bands_input.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_bands_input.rst new file mode 100644 index 00000000..cc08e7d4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_bands_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.convert\_bands\_input +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.convert_bands_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_contours_input.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_contours_input.rst new file mode 100644 index 00000000..dd9f475a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_contours_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.convert\_contours\_input +====================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.convert_contours_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_dft_input.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_dft_input.rst new file mode 100644 index 00000000..6ce888b7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_dft_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.convert\_dft\_input +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.convert_dft_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_transport_input.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_transport_input.rst new file mode 100644 index 00000000..34eea0eb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.convert_transport_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.convert\_transport\_input +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.convert_transport_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.det_shell_equivalence.rst new file mode 100644 index 00000000..9e55f35b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.det\_shell\_equivalence +===================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_T.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_T.rst new file mode 100644 index 00000000..186672fe --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_T.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.determine\_T +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.determine_T \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_rep.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_rep.rst new file mode 100644 index 00000000..70e14e5f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.determine_rep.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.determine\_rep +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.determine_rep \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.gen_perm.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.gen_perm.rst new file mode 100644 index 00000000..9e51b9ad --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.gen_perm.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.gen\_perm +======================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.gen_perm \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.plotpt3d.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.plotpt3d.rst new file mode 100644 index 00000000..bc047b20 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.plotpt3d.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.plotpt3d +====================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.plotpt3d \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_eig.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_eig.rst new file mode 100644 index 00000000..52a6fb95 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_eig.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_eig +======================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_eig \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file.rst new file mode 100644 index 00000000..e52842a2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_elk\_file +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_elk_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file2.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file2.rst new file mode 100644 index 00000000..ae2f6ba7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_elk_file2.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_elk\_file2 +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_elk_file2 \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_fortran_file.rst new file mode 100644 index 00000000..eec5572d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_fortran\_file +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_geometry.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_geometry.rst new file mode 100644 index 00000000..6ce36e7a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_geometry.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_geometry +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_geometry \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_kpoints.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_kpoints.rst new file mode 100644 index 00000000..17df9a35 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_kpoints.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_kpoints +=========================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_kpoints \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_proj.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_proj.rst new file mode 100644 index 00000000..8986d992 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_proj.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_proj +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_proj \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_projector.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_projector.rst new file mode 100644 index 00000000..c0d7bb92 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.read_projector.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.read\_projector +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.read_projector \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readlat.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readlat.rst new file mode 100644 index 00000000..335d67ef --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readlat.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.readlat +===================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.readlat \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readsym.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readsym.rst new file mode 100644 index 00000000..8f54254a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.readsym.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.readsym +===================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.readsym \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.repack.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.repack.rst new file mode 100644 index 00000000..2bcdc1d2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.repack +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotaxang.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotaxang.rst new file mode 100644 index 00000000..57f08438 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotaxang.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.rotaxang +====================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.rotaxang \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotsym.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotsym.rst new file mode 100644 index 00000000..cc82ad11 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rotsym.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.rotsym +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.rotsym \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rst new file mode 100644 index 00000000..46cead9d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.rst @@ -0,0 +1,55 @@ +triqs\_dft\_tools.converters.elk.ElkConverter +============================================= + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. autoclass:: ElkConverter + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ElkConverter.__init__ + ~ElkConverter.axangsu2 + ~ElkConverter.bzfoldout + ~ElkConverter.check_dens + ~ElkConverter.convert_bands_input + ~ElkConverter.convert_contours_input + ~ElkConverter.convert_dft_input + ~ElkConverter.convert_transport_input + ~ElkConverter.det_shell_equivalence + ~ElkConverter.determine_T + ~ElkConverter.determine_rep + ~ElkConverter.gen_perm + ~ElkConverter.plotpt3d + ~ElkConverter.read_eig + ~ElkConverter.read_elk_file + ~ElkConverter.read_elk_file2 + ~ElkConverter.read_fortran_file + ~ElkConverter.read_geometry + ~ElkConverter.read_kpoints + ~ElkConverter.read_proj + ~ElkConverter.read_projector + ~ElkConverter.readlat + ~ElkConverter.readsym + ~ElkConverter.repack + ~ElkConverter.rotaxang + ~ElkConverter.rotsym + ~ElkConverter.sort_dft_eigvalues + ~ElkConverter.split_string + ~ElkConverter.split_string2 + ~ElkConverter.split_string3 + ~ElkConverter.symlat_to_complex_harmonics + ~ElkConverter.update_so_quatities + ~ElkConverter.v3frac + ~ElkConverter.ylmrot + ~ElkConverter.ylmroty + ~ElkConverter.zyz_euler + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.sort_dft_eigvalues.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.sort_dft_eigvalues.rst new file mode 100644 index 00000000..1aac7275 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.sort_dft_eigvalues.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.sort\_dft\_eigvalues +================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.sort_dft_eigvalues \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string.rst new file mode 100644 index 00000000..2dcb6f15 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.split\_string +=========================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.split_string \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string2.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string2.rst new file mode 100644 index 00000000..c6177b61 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string2.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.split\_string2 +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.split_string2 \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string3.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string3.rst new file mode 100644 index 00000000..d9c446d9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.split_string3.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.split\_string3 +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.split_string3 \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.symlat_to_complex_harmonics.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.symlat_to_complex_harmonics.rst new file mode 100644 index 00000000..b74c81b0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.symlat_to_complex_harmonics.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.symlat\_to\_complex\_harmonics +============================================================================ + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.symlat_to_complex_harmonics \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.update_so_quatities.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.update_so_quatities.rst new file mode 100644 index 00000000..e583c034 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.update_so_quatities.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.update\_so\_quatities +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.update_so_quatities \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.v3frac.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.v3frac.rst new file mode 100644 index 00000000..dc8a8895 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.v3frac.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.v3frac +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.v3frac \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmrot.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmrot.rst new file mode 100644 index 00000000..f9046691 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmrot.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.ylmrot +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.ylmrot \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmroty.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmroty.rst new file mode 100644 index 00000000..2fc5d835 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.ylmroty.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.ylmroty +===================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.ylmroty \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.zyz_euler.rst b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.zyz_euler.rst new file mode 100644 index 00000000..a5a017c6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.ElkConverter.zyz_euler.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elk.ElkConverter.zyz\_euler +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.elk + +.. automethod:: ElkConverter.zyz_euler \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elk.rst b/doc/_python_api/triqs_dft_tools.converters.elk.rst new file mode 100644 index 00000000..8d944313 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elk.rst @@ -0,0 +1,32 @@ +elk +=== + +.. automodule:: triqs_dft_tools.converters.elk + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ElkConverter + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.__init__.rst new file mode 100644 index 00000000..14165dad --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.\_\_init\_\_ +========================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.axangsu2.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.axangsu2.rst new file mode 100644 index 00000000..ac997818 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.axangsu2.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.axangsu2 +====================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.axangsu2 \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.bzfoldout.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.bzfoldout.rst new file mode 100644 index 00000000..e586a86d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.bzfoldout.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.bzfoldout +======================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.bzfoldout \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.gen_perm.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.gen_perm.rst new file mode 100644 index 00000000..a44d81d5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.gen_perm.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.gen\_perm +======================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.gen_perm \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.plotpt3d.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.plotpt3d.rst new file mode 100644 index 00000000..1c6cc7ff --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.plotpt3d.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.plotpt3d +====================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.plotpt3d \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rotaxang.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rotaxang.rst new file mode 100644 index 00000000..adfc21ad --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rotaxang.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.rotaxang +====================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.rotaxang \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rst new file mode 100644 index 00000000..cfd926f9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.rst @@ -0,0 +1,30 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. autoclass:: ElkConverterTools + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ElkConverterTools.__init__ + ~ElkConverterTools.axangsu2 + ~ElkConverterTools.bzfoldout + ~ElkConverterTools.gen_perm + ~ElkConverterTools.plotpt3d + ~ElkConverterTools.rotaxang + ~ElkConverterTools.symlat_to_complex_harmonics + ~ElkConverterTools.v3frac + ~ElkConverterTools.ylmrot + ~ElkConverterTools.ylmroty + ~ElkConverterTools.zyz_euler + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.symlat_to_complex_harmonics.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.symlat_to_complex_harmonics.rst new file mode 100644 index 00000000..81ba671c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.symlat_to_complex_harmonics.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.symlat\_to\_complex\_harmonics +============================================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.symlat_to_complex_harmonics \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.v3frac.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.v3frac.rst new file mode 100644 index 00000000..5262e057 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.v3frac.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.v3frac +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.v3frac \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmrot.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmrot.rst new file mode 100644 index 00000000..dbdc8479 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmrot.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.ylmrot +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.ylmrot \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmroty.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmroty.rst new file mode 100644 index 00000000..29a96fbf --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.ylmroty.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.ylmroty +===================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.ylmroty \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.zyz_euler.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.zyz_euler.rst new file mode 100644 index 00000000..c80f9517 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.ElkConverterTools.zyz_euler.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.elktools.elk\_converter\_tools.ElkConverterTools.zyz\_euler +======================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + +.. automethod:: ElkConverterTools.zyz_euler \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.rst new file mode 100644 index 00000000..4c7057ee --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.elk_converter_tools.rst @@ -0,0 +1,32 @@ +elk\_converter\_tools +===================== + +.. automodule:: triqs_dft_tools.converters.elktools.elk_converter_tools + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ElkConverterTools + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.readElkfiles.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.readElkfiles.rst new file mode 100644 index 00000000..97efa6ad --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.readElkfiles.rst @@ -0,0 +1,24 @@ +readElkfiles +============ + +.. automodule:: triqs_dft_tools.converters.elktools.readElkfiles + + + + + + + + + + + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.elktools.rst b/doc/_python_api/triqs_dft_tools.converters.elktools.rst new file mode 100644 index 00000000..f6c96b0b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.elktools.rst @@ -0,0 +1,35 @@ +elktools +======== + +.. automodule:: triqs_dft_tools.converters.elktools + + + + + + + + + + + + + + + + + + + +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: autosummary_module_template.rst + :recursive: + + + triqs_dft_tools.converters.elktools.elk_converter_tools + triqs_dft_tools.converters.elktools.readElkfiles + + diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.__init__.rst new file mode 100644 index 00000000..a2531cf3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.hk.HkConverter.\_\_init\_\_ +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. automethod:: HkConverter.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.convert_dft_input.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.convert_dft_input.rst new file mode 100644 index 00000000..435a41c6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.convert_dft_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.hk.HkConverter.convert\_dft\_input +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. automethod:: HkConverter.convert_dft_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.det_shell_equivalence.rst new file mode 100644 index 00000000..53e34a51 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.hk.HkConverter.det\_shell\_equivalence +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. automethod:: HkConverter.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.read_fortran_file.rst new file mode 100644 index 00000000..f120e866 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.hk.HkConverter.read\_fortran\_file +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. automethod:: HkConverter.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.repack.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.repack.rst new file mode 100644 index 00000000..462618c3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.hk.HkConverter.repack +================================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. automethod:: HkConverter.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.rst b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.rst new file mode 100644 index 00000000..3881bcc8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.HkConverter.rst @@ -0,0 +1,24 @@ +triqs\_dft\_tools.converters.hk.HkConverter +=========================================== + +.. currentmodule:: triqs_dft_tools.converters.hk + +.. autoclass:: HkConverter + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~HkConverter.__init__ + ~HkConverter.convert_dft_input + ~HkConverter.det_shell_equivalence + ~HkConverter.read_fortran_file + ~HkConverter.repack + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.hk.rst b/doc/_python_api/triqs_dft_tools.converters.hk.rst new file mode 100644 index 00000000..5f43d87b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.hk.rst @@ -0,0 +1,32 @@ +hk +== + +.. automodule:: triqs_dft_tools.converters.hk + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + HkConverter + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.dos_tetra_weights_3d.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.dos_tetra_weights_3d.rst new file mode 100644 index 00000000..9257384b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.dos_tetra_weights_3d.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.atm.dos\_tetra\_weights\_3d +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.atm + +.. autofunction:: dos_tetra_weights_3d \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.rst new file mode 100644 index 00000000..40b9ed4f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.atm.rst @@ -0,0 +1,31 @@ +atm +=== + +.. automodule:: triqs_dft_tools.converters.plovasp.atm + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + dos_tetra_weights_3d + + + + + + + + + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.generate_and_output_as_text.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.generate_and_output_as_text.rst new file mode 100644 index 00000000..2d8805f9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.generate_and_output_as_text.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.converter.generate\_and\_output\_as\_text +============================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.converter + +.. autofunction:: generate_and_output_as_text \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.main.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.main.rst new file mode 100644 index 00000000..94163f34 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.main.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.converter.main +=================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.converter + +.. autofunction:: main \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.rst new file mode 100644 index 00000000..7288a20b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.converter.rst @@ -0,0 +1,32 @@ +converter +========= + +.. automodule:: triqs_dft_tools.converters.plovasp.converter + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + generate_and_output_as_text + main + + + + + + + + + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.__init__.rst new file mode 100644 index 00000000..0e8462d9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.elstruct.ElectronicStructure.\_\_init\_\_ +============================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.elstruct + +.. automethod:: ElectronicStructure.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.debug_density_matrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.debug_density_matrix.rst new file mode 100644 index 00000000..44c61e94 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.debug_density_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.elstruct.ElectronicStructure.debug\_density\_matrix +======================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.elstruct + +.. automethod:: ElectronicStructure.debug_density_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.rst new file mode 100644 index 00000000..ef3fd373 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.ElectronicStructure.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.converters.plovasp.elstruct.ElectronicStructure +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.elstruct + +.. autoclass:: ElectronicStructure + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ElectronicStructure.__init__ + ~ElectronicStructure.debug_density_matrix + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.rst new file mode 100644 index 00000000..8267ead6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.elstruct.rst @@ -0,0 +1,32 @@ +elstruct +======== + +.. automodule:: triqs_dft_tools.converters.plovasp.elstruct + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ElectronicStructure + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.__init__.rst new file mode 100644 index 00000000..2c004e32 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.\_\_init\_\_ +========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.groups_shells_consistency.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.groups_shells_consistency.rst new file mode 100644 index 00000000..d41d3790 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.groups_shells_consistency.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.groups\_shells\_consistency +========================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.groups_shells_consistency \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_band_window.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_band_window.rst new file mode 100644 index 00000000..20f8795e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_band_window.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_band\_window +================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_band_window \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_energy_window.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_energy_window.rst new file mode 100644 index 00000000..5e514cb8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_energy_window.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_energy\_window +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_energy_window \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_file_tmatrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_file_tmatrix.rst new file mode 100644 index 00000000..f85a35a3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_file_tmatrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_file\_tmatrix +================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_file_tmatrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_general.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_general.rst new file mode 100644 index 00000000..6d350eab --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_general.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_general +============================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_general \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_groups.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_groups.rst new file mode 100644 index 00000000..9e426415 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_groups.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_groups +=========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_groups \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_input.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_input.rst new file mode 100644 index 00000000..05b01a81 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_input +========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_parameter_set.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_parameter_set.rst new file mode 100644 index 00000000..d1228562 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_parameter_set.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_parameter\_set +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_parameter_set \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_shells.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_shells.rst new file mode 100644 index 00000000..a582692a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_shells +=========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_dosmesh.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_dosmesh.rst new file mode 100644 index 00000000..5f0b52d0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_dosmesh.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_string\_dosmesh +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_string_dosmesh \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_int.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_int.rst new file mode 100644 index 00000000..442e4a43 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_int.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_string\_int +================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_string_int \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_ion_list.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_ion_list.rst new file mode 100644 index 00000000..f1cba589 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_ion_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_string\_ion\_list +====================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_string_ion_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_logical.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_logical.rst new file mode 100644 index 00000000..e6e42128 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_logical.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_string\_logical +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_string_logical \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_tmatrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_tmatrix.rst new file mode 100644 index 00000000..b8ebb654 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.parse_string_tmatrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters.parse\_string\_tmatrix +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. automethod:: ConfigParameters.parse_string_tmatrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.rst new file mode 100644 index 00000000..7b7acc0f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.ConfigParameters.rst @@ -0,0 +1,34 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.ConfigParameters +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. autoclass:: ConfigParameters + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ConfigParameters.__init__ + ~ConfigParameters.groups_shells_consistency + ~ConfigParameters.parse_band_window + ~ConfigParameters.parse_energy_window + ~ConfigParameters.parse_file_tmatrix + ~ConfigParameters.parse_general + ~ConfigParameters.parse_groups + ~ConfigParameters.parse_input + ~ConfigParameters.parse_parameter_set + ~ConfigParameters.parse_shells + ~ConfigParameters.parse_string_dosmesh + ~ConfigParameters.parse_string_int + ~ConfigParameters.parse_string_ion_list + ~ConfigParameters.parse_string_logical + ~ConfigParameters.parse_string_tmatrix + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.issue_warning.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.issue_warning.rst new file mode 100644 index 00000000..fce0911c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.issue_warning.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.inpconf.issue\_warning +=========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.inpconf + +.. autofunction:: issue_warning \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.rst new file mode 100644 index 00000000..e28fac52 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.inpconf.rst @@ -0,0 +1,39 @@ +inpconf +======= + +.. automodule:: triqs_dft_tools.converters.plovasp.inpconf + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + issue_warning + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ConfigParameters + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.check_data_consistency.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.check_data_consistency.rst new file mode 100644 index 00000000..f8d919ff --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.check_data_consistency.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.check\_data\_consistency +====================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: check_data_consistency \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.ctrl_output.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.ctrl_output.rst new file mode 100644 index 00000000..21e4f625 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.ctrl_output.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.ctrl\_output +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: ctrl_output \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.generate_plo.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.generate_plo.rst new file mode 100644 index 00000000..fc0ba069 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.generate_plo.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.generate\_plo +=========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: generate_plo \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.hk_output.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.hk_output.rst new file mode 100644 index 00000000..5fb99eb5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.hk_output.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.hk\_output +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: hk_output \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.issue_warning.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.issue_warning.rst new file mode 100644 index 00000000..53d912eb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.issue_warning.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.issue\_warning +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: issue_warning \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.kpoints_output.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.kpoints_output.rst new file mode 100644 index 00000000..109a19e9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.kpoints_output.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.kpoints\_output +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: kpoints_output \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.output_as_text.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.output_as_text.rst new file mode 100644 index 00000000..60760ab9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.output_as_text.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.output\_as\_text +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: output_as_text \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.plo_output.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.plo_output.rst new file mode 100644 index 00000000..431ccba3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.plo_output.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.plotools.plo\_output +========================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.plotools + +.. autofunction:: plo_output \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.rst new file mode 100644 index 00000000..367ff2fb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.plotools.rst @@ -0,0 +1,38 @@ +plotools +======== + +.. automodule:: triqs_dft_tools.converters.plovasp.plotools + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + check_data_consistency + ctrl_output + generate_plo + hk_output + issue_warning + kpoints_output + output_as_text + plo_output + + + + + + + + + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.__init__.rst new file mode 100644 index 00000000..35ac8ffa --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.\_\_init\_\_ +============================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_complement.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_complement.rst new file mode 100644 index 00000000..e8e583bf --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_complement.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.calc\_complement +================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.calc_complement \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_hk.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_hk.rst new file mode 100644 index 00000000..4c756d03 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.calc_hk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.calc\_hk +======================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.calc_hk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.get_block_matrix_map.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.get_block_matrix_map.rst new file mode 100644 index 00000000..5a225850 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.get_block_matrix_map.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.get\_block\_matrix\_map +======================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.get_block_matrix_map \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.nelect_window.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.nelect_window.rst new file mode 100644 index 00000000..1dd18871 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.nelect_window.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.nelect\_window +============================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.nelect_window \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize.rst new file mode 100644 index 00000000..cbff7c0e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.orthogonalize +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.orthogonalize \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize_projector_matrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize_projector_matrix.rst new file mode 100644 index 00000000..426d50aa --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.orthogonalize_projector_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.orthogonalize\_projector\_matrix +================================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.orthogonalize_projector_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.rst new file mode 100644 index 00000000..6685216f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.rst @@ -0,0 +1,27 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. autoclass:: ProjectorGroup + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ProjectorGroup.__init__ + ~ProjectorGroup.calc_complement + ~ProjectorGroup.calc_hk + ~ProjectorGroup.get_block_matrix_map + ~ProjectorGroup.nelect_window + ~ProjectorGroup.orthogonalize + ~ProjectorGroup.orthogonalize_projector_matrix + ~ProjectorGroup.select_bands + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.select_bands.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.select_bands.rst new file mode 100644 index 00000000..0888c8e5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.ProjectorGroup.select_bands.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_group.ProjectorGroup.select\_bands +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_group + +.. automethod:: ProjectorGroup.select_bands \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.rst new file mode 100644 index 00000000..e5adf408 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_group.rst @@ -0,0 +1,32 @@ +proj\_group +=========== + +.. automodule:: triqs_dft_tools.converters.plovasp.proj_group + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ProjectorGroup + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.__init__.rst new file mode 100644 index 00000000..a04dc080 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.\_\_init\_\_ +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_matrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_matrix.rst new file mode 100644 index 00000000..e22d9c93 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.density\_matrix +================================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.density_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_of_states.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_of_states.rst new file mode 100644 index 00000000..c7cb7835 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.density_of_states.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.density\_of\_states +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.density_of_states \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_projectors.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_projectors.rst new file mode 100644 index 00000000..8add66a6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.extract\_projectors +==================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.extract_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_tmatrices.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_tmatrices.rst new file mode 100644 index 00000000..b63ae853 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.extract_tmatrices.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.extract\_tmatrices +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.extract_tmatrices \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.local_hamiltonian.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.local_hamiltonian.rst new file mode 100644 index 00000000..7151066b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.local_hamiltonian.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.local\_hamiltonian +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.local_hamiltonian \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.rst new file mode 100644 index 00000000..1ea8bf98 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.rst @@ -0,0 +1,26 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. autoclass:: ComplementShell + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ComplementShell.__init__ + ~ComplementShell.density_matrix + ~ComplementShell.density_of_states + ~ComplementShell.extract_projectors + ~ComplementShell.extract_tmatrices + ~ComplementShell.local_hamiltonian + ~ComplementShell.select_projectors + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.select_projectors.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.select_projectors.rst new file mode 100644 index 00000000..c8d9dc66 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ComplementShell.select_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ComplementShell.select\_projectors +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ComplementShell.select_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.__init__.rst new file mode 100644 index 00000000..ca95c35e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.\_\_init\_\_ +============================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_matrix.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_matrix.rst new file mode 100644 index 00000000..44085ca1 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.density\_matrix +=============================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.density_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_of_states.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_of_states.rst new file mode 100644 index 00000000..8c17a748 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.density_of_states.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.density\_of\_states +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.density_of_states \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_projectors.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_projectors.rst new file mode 100644 index 00000000..45e1cb7c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.extract\_projectors +=================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.extract_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_tmatrices.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_tmatrices.rst new file mode 100644 index 00000000..f5aa68f2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.extract_tmatrices.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.extract\_tmatrices +================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.extract_tmatrices \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.local_hamiltonian.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.local_hamiltonian.rst new file mode 100644 index 00000000..bda2191a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.local_hamiltonian.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.local\_hamiltonian +================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.local_hamiltonian \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.rst new file mode 100644 index 00000000..241374f0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.rst @@ -0,0 +1,26 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. autoclass:: ProjectorShell + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~ProjectorShell.__init__ + ~ProjectorShell.density_matrix + ~ProjectorShell.density_of_states + ~ProjectorShell.extract_projectors + ~ProjectorShell.extract_tmatrices + ~ProjectorShell.local_hamiltonian + ~ProjectorShell.select_projectors + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.select_projectors.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.select_projectors.rst new file mode 100644 index 00000000..dcae4f33 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.ProjectorShell.select_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.ProjectorShell.select\_projectors +================================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. automethod:: ProjectorShell.select_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.issue_warning.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.issue_warning.rst new file mode 100644 index 00000000..bc5cadcf --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.issue_warning.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.proj\_shell.issue\_warning +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.proj_shell + +.. autofunction:: issue_warning \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.rst new file mode 100644 index 00000000..30de228d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.proj_shell.rst @@ -0,0 +1,40 @@ +proj\_shell +=========== + +.. automodule:: triqs_dft_tools.converters.plovasp.proj_shell + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + issue_warning + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + ComplementShell + ProjectorShell + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.rst new file mode 100644 index 00000000..0f618d3e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.rst @@ -0,0 +1,42 @@ +plovasp +======= + +.. automodule:: triqs_dft_tools.converters.plovasp + + + + + + + + + + + + + + + + + + + +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: autosummary_module_template.rst + :recursive: + + + triqs_dft_tools.converters.plovasp.atm + triqs_dft_tools.converters.plovasp.converter + triqs_dft_tools.converters.plovasp.elstruct + triqs_dft_tools.converters.plovasp.inpconf + triqs_dft_tools.converters.plovasp.plotools + triqs_dft_tools.converters.plovasp.proj_group + triqs_dft_tools.converters.plovasp.proj_shell + triqs_dft_tools.converters.plovasp.sc_dmft + triqs_dft_tools.converters.plovasp.vaspio + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.BLUE.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.BLUE.rst new file mode 100644 index 00000000..020efe9a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.BLUE.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.BLUE +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.BLUE \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.ENDC.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.ENDC.rst new file mode 100644 index 00000000..29fe0684 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.ENDC.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.ENDC +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.ENDC \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.GREEN.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.GREEN.rst new file mode 100644 index 00000000..1c100b40 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.GREEN.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.GREEN +=========================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.GREEN \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.MAGENTA.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.MAGENTA.rst new file mode 100644 index 00000000..0fbabdd0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.MAGENTA.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.MAGENTA +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.MAGENTA \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.RED.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.RED.rst new file mode 100644 index 00000000..4588ebee --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.RED.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.RED +========================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.RED \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.YELLOW.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.YELLOW.rst new file mode 100644 index 00000000..f77755e5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.YELLOW.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.YELLOW +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoattribute:: bcolors.YELLOW \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.__init__.rst new file mode 100644 index 00000000..2584ab03 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors.\_\_init\_\_ +================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. automethod:: bcolors.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.rst new file mode 100644 index 00000000..68a93d92 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.bcolors.rst @@ -0,0 +1,32 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.bcolors +===================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autoclass:: bcolors + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~bcolors.__init__ + + + + + +.. rubric:: Attributes + +.. autosummary:: + :toctree: + + ~bcolors.BLUE + ~bcolors.ENDC + ~bcolors.GREEN + ~bcolors.MAGENTA + ~bcolors.RED + ~bcolors.YELLOW + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.excepthook.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.excepthook.rst new file mode 100644 index 00000000..cd70afcb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.excepthook.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.excepthook +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: excepthook \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.get_dft_energy.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.get_dft_energy.rst new file mode 100644 index 00000000..81973030 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.get_dft_energy.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.get\_dft\_energy +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: get_dft_energy \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_lock_present.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_lock_present.rst new file mode 100644 index 00000000..9960a69e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_lock_present.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.is\_vasp\_lock\_present +===================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: is_vasp_lock_present \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_running.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_running.rst new file mode 100644 index 00000000..e1719f06 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.is_vasp_running.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.is\_vasp\_running +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: is_vasp_running \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.main.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.main.rst new file mode 100644 index 00000000..705287ed --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.main.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.main +================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: main \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.rst new file mode 100644 index 00000000..eca88dc2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.rst @@ -0,0 +1,45 @@ +sc\_dmft +======== + +.. automodule:: triqs_dft_tools.converters.plovasp.sc_dmft + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + excepthook + get_dft_energy + is_vasp_lock_present + is_vasp_running + main + run_all + sigint_handler + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + bcolors + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.run_all.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.run_all.rst new file mode 100644 index 00000000..d2ece6c7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.run_all.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.run\_all +====================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: run_all \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.sigint_handler.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.sigint_handler.rst new file mode 100644 index 00000000..b61c498f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.sc_dmft.sigint_handler.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.sc\_dmft.sigint\_handler +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.sc_dmft + +.. autofunction:: sigint_handler \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.__init__.rst new file mode 100644 index 00000000..31643ec8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Doscar.\_\_init\_\_ +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Doscar.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.from_file.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.from_file.rst new file mode 100644 index 00000000..eb476d72 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.from_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Doscar.from\_file +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Doscar.from_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.rst new file mode 100644 index 00000000..1574076c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Doscar.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Doscar +================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: Doscar + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Doscar.__init__ + ~Doscar.from_file + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.__init__.rst new file mode 100644 index 00000000..34f07f29 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Eigenval.\_\_init\_\_ +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Eigenval.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.from_file.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.from_file.rst new file mode 100644 index 00000000..14a9100d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.from_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Eigenval.from\_file +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Eigenval.from_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.rst new file mode 100644 index 00000000..0a09b12a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Eigenval.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Eigenval +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: Eigenval + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Eigenval.__init__ + ~Eigenval.from_file + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.__init__.rst new file mode 100644 index 00000000..55ad0cf5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Kpoints.\_\_init\_\_ +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Kpoints.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.from_file.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.from_file.rst new file mode 100644 index 00000000..f9f6108b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.from_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Kpoints.from\_file +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Kpoints.from_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.rst new file mode 100644 index 00000000..28144cb9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Kpoints.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Kpoints +=================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: Kpoints + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Kpoints.__init__ + ~Kpoints.from_file + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.__init__.rst new file mode 100644 index 00000000..0add259b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Plocar.\_\_init\_\_ +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Plocar.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.from_file.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.from_file.rst new file mode 100644 index 00000000..1bfde740 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.from_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Plocar.from\_file +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Plocar.from_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.locproj_parser.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.locproj_parser.rst new file mode 100644 index 00000000..9c0d596f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.locproj_parser.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Plocar.locproj\_parser +================================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Plocar.locproj_parser \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.rst new file mode 100644 index 00000000..6d167cba --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.rst @@ -0,0 +1,23 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Plocar +================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: Plocar + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Plocar.__init__ + ~Plocar.from_file + ~Plocar.locproj_parser + ~Plocar.search_for + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.search_for.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.search_for.rst new file mode 100644 index 00000000..4918205b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Plocar.search_for.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Plocar.search\_for +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Plocar.search_for \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.__init__.rst new file mode 100644 index 00000000..be9536a6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Poscar.\_\_init\_\_ +=============================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Poscar.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.from_file.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.from_file.rst new file mode 100644 index 00000000..5f9bf145 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.from_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Poscar.from\_file +============================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: Poscar.from_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.rst new file mode 100644 index 00000000..318114c6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.Poscar.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.Poscar +================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: Poscar + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Poscar.__init__ + ~Poscar.from_file + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.__init__.rst new file mode 100644 index 00000000..cee239a4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.VaspData.\_\_init\_\_ +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. automethod:: VaspData.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.rst new file mode 100644 index 00000000..baee9d05 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.VaspData.rst @@ -0,0 +1,20 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.VaspData +==================================================== + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autoclass:: VaspData + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~VaspData.__init__ + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_lines.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_lines.rst new file mode 100644 index 00000000..240be856 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_lines.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.read\_lines +======================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autofunction:: read_lines \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_symmcar.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_symmcar.rst new file mode 100644 index 00000000..f91be9ca --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.read_symmcar.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.plovasp.vaspio.read\_symmcar +========================================================= + +.. currentmodule:: triqs_dft_tools.converters.plovasp.vaspio + +.. autofunction:: read_symmcar \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.rst b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.rst new file mode 100644 index 00000000..5d9fee64 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.plovasp.vaspio.rst @@ -0,0 +1,45 @@ +vaspio +====== + +.. automodule:: triqs_dft_tools.converters.plovasp.vaspio + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + read_lines + read_symmcar + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + Doscar + Eigenval + Kpoints + Plocar + Poscar + VaspData + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.rst b/doc/_python_api/triqs_dft_tools.converters.rst new file mode 100644 index 00000000..1d5f093f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.rst @@ -0,0 +1,41 @@ +converters +========== + +.. automodule:: triqs_dft_tools.converters + + + + + + + + + + + + + + + + + + + +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: autosummary_module_template.rst + :recursive: + + + triqs_dft_tools.converters.converter_tools + triqs_dft_tools.converters.elk + triqs_dft_tools.converters.elktools + triqs_dft_tools.converters.hk + triqs_dft_tools.converters.plovasp + triqs_dft_tools.converters.vasp + triqs_dft_tools.converters.wannier90 + triqs_dft_tools.converters.wien2k + + diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.__init__.rst new file mode 100644 index 00000000..787edb51 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.\_\_init\_\_ +============================================================ + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_dft_input.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_dft_input.rst new file mode 100644 index 00000000..f3ffe587 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_dft_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.convert\_dft\_input +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.convert_dft_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_misc_input.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_misc_input.rst new file mode 100644 index 00000000..eb4b7044 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_misc_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.convert\_misc\_input +==================================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.convert_misc_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_symmetry_input.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_symmetry_input.rst new file mode 100644 index 00000000..9c804b00 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.convert_symmetry_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.convert\_symmetry\_input +======================================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.convert_symmetry_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.det_shell_equivalence.rst new file mode 100644 index 00000000..b4e6fed3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.det\_shell\_equivalence +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_data.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_data.rst new file mode 100644 index 00000000..1b434808 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_data.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.read\_data +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.read_data \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_fortran_file.rst new file mode 100644 index 00000000..2eff73d8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.read\_fortran\_file +=================================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_header_and_data.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_header_and_data.rst new file mode 100644 index 00000000..d474947e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.read_header_and_data.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.read\_header\_and\_data +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.read_header_and_data \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.repack.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.repack.rst new file mode 100644 index 00000000..f2004fba --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter.repack +====================================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. automethod:: VaspConverter.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.rst new file mode 100644 index 00000000..be9e3042 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.VaspConverter.rst @@ -0,0 +1,28 @@ +triqs\_dft\_tools.converters.vasp.VaspConverter +=============================================== + +.. currentmodule:: triqs_dft_tools.converters.vasp + +.. autoclass:: VaspConverter + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~VaspConverter.__init__ + ~VaspConverter.convert_dft_input + ~VaspConverter.convert_misc_input + ~VaspConverter.convert_symmetry_input + ~VaspConverter.det_shell_equivalence + ~VaspConverter.read_data + ~VaspConverter.read_fortran_file + ~VaspConverter.read_header_and_data + ~VaspConverter.repack + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.vasp.rst b/doc/_python_api/triqs_dft_tools.converters.vasp.rst new file mode 100644 index 00000000..4bc5150b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.vasp.rst @@ -0,0 +1,32 @@ +vasp +==== + +.. automodule:: triqs_dft_tools.converters.vasp + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + VaspConverter + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.__init__.rst new file mode 100644 index 00000000..51aec667 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter.\_\_init\_\_ +====================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. automethod:: Wannier90Converter.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.convert_dft_input.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.convert_dft_input.rst new file mode 100644 index 00000000..4b78a79b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.convert_dft_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter.convert\_dft\_input +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. automethod:: Wannier90Converter.convert_dft_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.det_shell_equivalence.rst new file mode 100644 index 00000000..11d3433d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter.det\_shell\_equivalence +================================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. automethod:: Wannier90Converter.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.read_fortran_file.rst new file mode 100644 index 00000000..3446c932 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter.read\_fortran\_file +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. automethod:: Wannier90Converter.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.repack.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.repack.rst new file mode 100644 index 00000000..673f7e14 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter.repack +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. automethod:: Wannier90Converter.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.rst new file mode 100644 index 00000000..02964d7a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.Wannier90Converter.rst @@ -0,0 +1,24 @@ +triqs\_dft\_tools.converters.wannier90.Wannier90Converter +========================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autoclass:: Wannier90Converter + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Wannier90Converter.__init__ + ~Wannier90Converter.convert_dft_input + ~Wannier90Converter.det_shell_equivalence + ~Wannier90Converter.read_fortran_file + ~Wannier90Converter.repack + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.build_kmesh.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.build_kmesh.rst new file mode 100644 index 00000000..318455e6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.build_kmesh.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.build\_kmesh +=================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: build_kmesh \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.check_and_adapt_for_soc.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_and_adapt_for_soc.rst new file mode 100644 index 00000000..c83b19b1 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_and_adapt_for_soc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.check\_and\_adapt\_for\_soc +================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: check_and_adapt_for_soc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.check_bloch_basis_hk.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_bloch_basis_hk.rst new file mode 100644 index 00000000..6ec3135a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_bloch_basis_hk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.check\_bloch\_basis\_hk +============================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: check_bloch_basis_hk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.check_hr.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_hr.rst new file mode 100644 index 00000000..0792fa15 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_hr.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.check\_hr +================================================ + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: check_hr \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.check_wannier_basis_hk.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_wannier_basis_hk.rst new file mode 100644 index 00000000..7a206894 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.check_wannier_basis_hk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.check\_wannier\_basis\_hk +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: check_wannier_basis_hk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.find_rot_mat.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.find_rot_mat.rst new file mode 100644 index 00000000..a074f4cd --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.find_rot_mat.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.find\_rot\_mat +===================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: find_rot_mat \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.fourier_transform_hamiltonian.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.fourier_transform_hamiltonian.rst new file mode 100644 index 00000000..5ff5c940 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.fourier_transform_hamiltonian.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.fourier\_transform\_hamiltonian +====================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: fourier_transform_hamiltonian \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.generate_local_so_matrix_t2g.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.generate_local_so_matrix_t2g.rst new file mode 100644 index 00000000..d5ce394e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.generate_local_so_matrix_t2g.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.generate\_local\_so\_matrix\_t2g +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: generate_local_so_matrix_t2g \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.read_all_wannier90_data.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_all_wannier90_data.rst new file mode 100644 index 00000000..246ad9a4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_all_wannier90_data.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.read\_all\_wannier90\_data +================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: read_all_wannier90_data \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.read_input_file.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_input_file.rst new file mode 100644 index 00000000..5b1697f2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_input_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.read\_input\_file +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: read_input_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.read_misc_input.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_misc_input.rst new file mode 100644 index 00000000..51aff56a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_misc_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.read\_misc\_input +======================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: read_misc_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_blochbasis_data.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_blochbasis_data.rst new file mode 100644 index 00000000..a4c61d67 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_blochbasis_data.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.read\_wannier90\_blochbasis\_data +======================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: read_wannier90_blochbasis_data \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_hr_data.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_hr_data.rst new file mode 100644 index 00000000..470f7174 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.read_wannier90_hr_data.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.read\_wannier90\_hr\_data +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: read_wannier90_hr_data \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.reorder_orbital_and_spin.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.reorder_orbital_and_spin.rst new file mode 100644 index 00000000..3a871a1d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.reorder_orbital_and_spin.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wannier90.reorder\_orbital\_and\_spin +================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wannier90 + +.. autofunction:: reorder_orbital_and_spin \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wannier90.rst b/doc/_python_api/triqs_dft_tools.converters.wannier90.rst new file mode 100644 index 00000000..97d30c6d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wannier90.rst @@ -0,0 +1,52 @@ +wannier90 +========= + +.. automodule:: triqs_dft_tools.converters.wannier90 + + + +.. rubric:: Functions + +.. autosummary:: + :toctree: + + build_kmesh + check_and_adapt_for_soc + check_bloch_basis_hk + check_hr + check_wannier_basis_hk + find_rot_mat + fourier_transform_hamiltonian + generate_local_so_matrix_t2g + read_all_wannier90_data + read_input_file + read_misc_input + read_wannier90_blochbasis_data + read_wannier90_hr_data + reorder_orbital_and_spin + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + Wannier90Converter + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.__init__.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.__init__.rst new file mode 100644 index 00000000..029be60e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.\_\_init\_\_ +================================================================ + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_bands_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_bands_input.rst new file mode 100644 index 00000000..ac589c78 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_bands_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_bands\_input +========================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_bands_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_dft_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_dft_input.rst new file mode 100644 index 00000000..d1cc2e8b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_dft_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_dft\_input +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_dft_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_misc_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_misc_input.rst new file mode 100644 index 00000000..0597754c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_misc_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_misc\_input +======================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_misc_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_parproj_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_parproj_input.rst new file mode 100644 index 00000000..9753d7f4 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_parproj_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_parproj\_input +=========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_parproj_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_symmetry_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_symmetry_input.rst new file mode 100644 index 00000000..f00fb744 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_symmetry_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_symmetry\_input +============================================================================ + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_symmetry_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_transport_input.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_transport_input.rst new file mode 100644 index 00000000..fce23577 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.convert_transport_input.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.convert\_transport\_input +============================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.convert_transport_input \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.det_shell_equivalence.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.det_shell_equivalence.rst new file mode 100644 index 00000000..64bf5cf1 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.det_shell_equivalence.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.det\_shell\_equivalence +=========================================================================== + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.det_shell_equivalence \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.read_fortran_file.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.read_fortran_file.rst new file mode 100644 index 00000000..ab0e3df9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.read_fortran_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.read\_fortran\_file +======================================================================= + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.read_fortran_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.repack.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.repack.rst new file mode 100644 index 00000000..62e5d176 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.repack.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter.repack +========================================================== + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. automethod:: Wien2kConverter.repack \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.rst new file mode 100644 index 00000000..8c0ec001 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.Wien2kConverter.rst @@ -0,0 +1,29 @@ +triqs\_dft\_tools.converters.wien2k.Wien2kConverter +=================================================== + +.. currentmodule:: triqs_dft_tools.converters.wien2k + +.. autoclass:: Wien2kConverter + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Wien2kConverter.__init__ + ~Wien2kConverter.convert_bands_input + ~Wien2kConverter.convert_dft_input + ~Wien2kConverter.convert_misc_input + ~Wien2kConverter.convert_parproj_input + ~Wien2kConverter.convert_symmetry_input + ~Wien2kConverter.convert_transport_input + ~Wien2kConverter.det_shell_equivalence + ~Wien2kConverter.read_fortran_file + ~Wien2kConverter.repack + + + + + diff --git a/doc/_python_api/triqs_dft_tools.converters.wien2k.rst b/doc/_python_api/triqs_dft_tools.converters.wien2k.rst new file mode 100644 index 00000000..70df5654 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.converters.wien2k.rst @@ -0,0 +1,32 @@ +wien2k +====== + +.. automodule:: triqs_dft_tools.converters.wien2k + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + Wien2kConverter + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.__init__.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.__init__.rst new file mode 100644 index 00000000..47bfd3f8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.\_\_init\_\_ +================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.add_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.add_dc.rst new file mode 100644 index 00000000..f587f757 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.add_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.add\_dc +=========================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.add_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure.rst new file mode 100644 index 00000000..eeff0cd7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.analyse\_block\_structure +============================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.analyse_block_structure \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure_from_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure_from_gf.rst new file mode 100644 index 00000000..b7cc2da2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_block_structure_from_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.analyse\_block\_structure\_from\_gf +======================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.analyse_block_structure_from_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_deg_shells.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_deg_shells.rst new file mode 100644 index 00000000..bc852eb2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.analyse_deg_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.analyse\_deg\_shells +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.analyse_deg_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc.rst new file mode 100644 index 00000000..9f1b4997 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calc\_dc +============================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calc_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc_for_density.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc_for_density.rst new file mode 100644 index 00000000..69d6a37f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_dc_for_density.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calc\_dc\_for\_density +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calc_dc_for_density \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_density_correction.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_density_correction.rst new file mode 100644 index 00000000..4fbce86f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_density_correction.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calc\_density\_correction +============================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calc_density_correction \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_mu.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_mu.rst new file mode 100644 index 00000000..6eacf6de --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calc_mu.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calc\_mu +============================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calc_mu \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_diagonalization_matrix.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_diagonalization_matrix.rst new file mode 100644 index 00000000..311bd0b6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_diagonalization_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calculate\_diagonalization\_matrix +====================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calculate_diagonalization_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_min_max_band_energies.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_min_max_band_energies.rst new file mode 100644 index 00000000..f8d71258 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.calculate_min_max_band_energies.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.calculate\_min\_max\_band\_energies +======================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.calculate_min_max_band_energies \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.check_projectors.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.check_projectors.rst new file mode 100644 index 00000000..1fbb2ae9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.check_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.check\_projectors +===================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.check_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.corr_to_inequiv.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.corr_to_inequiv.rst new file mode 100644 index 00000000..71d4f542 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.corr_to_inequiv.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.corr\_to\_inequiv +===================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.corr_to_inequiv \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.deg_shells.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.deg_shells.rst new file mode 100644 index 00000000..d1ecc0c8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.deg_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.deg\_shells +=============================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.deg_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.density_matrix.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.density_matrix.rst new file mode 100644 index 00000000..7fa18c68 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.density_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.density\_matrix +=================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.density_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.downfold.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.downfold.rst new file mode 100644 index 00000000..4676d226 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.downfold.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.downfold +============================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.downfold \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.eff_atomic_levels.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.eff_atomic_levels.rst new file mode 100644 index 00000000..a3085f43 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.eff_atomic_levels.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.eff\_atomic\_levels +======================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.eff_atomic_levels \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.extract_G_loc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.extract_G_loc.rst new file mode 100644 index 00000000..bbcc5c46 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.extract_G_loc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.extract\_G\_loc +=================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.extract_G_loc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver.rst new file mode 100644 index 00000000..5400fd1b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_solver +====================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_dict.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_dict.rst new file mode 100644 index 00000000..0c36e52d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_solver\_dict +============================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_solver_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_list.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_list.rst new file mode 100644 index 00000000..6f930ee2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_solver_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_solver\_list +============================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_solver_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk.rst new file mode 100644 index 00000000..415aaac9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_sumk +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_dict.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_dict.rst new file mode 100644 index 00000000..a7bace49 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_sumk\_dict +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_sumk_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_list.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_list.rst new file mode 100644 index 00000000..b8bc3d63 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.gf_struct_sumk_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.gf\_struct\_sumk\_list +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.gf_struct_sumk_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.inequiv_to_corr.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.inequiv_to_corr.rst new file mode 100644 index 00000000..791017b2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.inequiv_to_corr.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.inequiv\_to\_corr +===================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.inequiv_to_corr \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.init_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.init_dc.rst new file mode 100644 index 00000000..632285e9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.init_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.init\_dc +============================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.init_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.lattice_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.lattice_gf.rst new file mode 100644 index 00000000..43795277 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.lattice_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.lattice\_gf +=============================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.lattice_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.load.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.load.rst new file mode 100644 index 00000000..cfcb081f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.load.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.load +======================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.load \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.number_of_atoms.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.number_of_atoms.rst new file mode 100644 index 00000000..19b39aa2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.number_of_atoms.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.number\_of\_atoms +===================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.number_of_atoms \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.put_Sigma.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.put_Sigma.rst new file mode 100644 index 00000000..637178a5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.put_Sigma.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.put\_Sigma +============================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.put_Sigma \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.read_input_from_hdf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.read_input_from_hdf.rst new file mode 100644 index 00000000..1d4e4663 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.read_input_from_hdf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.read\_input\_from\_hdf +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.read_input_from_hdf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rotloc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rotloc.rst new file mode 100644 index 00000000..d8428890 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rotloc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.rotloc +========================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.rotloc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rst new file mode 100644 index 00000000..e07b249e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.rst @@ -0,0 +1,70 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT +=================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoclass:: SumkDFT + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~SumkDFT.__init__ + ~SumkDFT.add_dc + ~SumkDFT.analyse_block_structure + ~SumkDFT.analyse_block_structure_from_gf + ~SumkDFT.analyse_deg_shells + ~SumkDFT.calc_dc + ~SumkDFT.calc_dc_for_density + ~SumkDFT.calc_density_correction + ~SumkDFT.calc_mu + ~SumkDFT.calculate_diagonalization_matrix + ~SumkDFT.calculate_min_max_band_energies + ~SumkDFT.check_projectors + ~SumkDFT.density_matrix + ~SumkDFT.downfold + ~SumkDFT.eff_atomic_levels + ~SumkDFT.extract_G_loc + ~SumkDFT.init_dc + ~SumkDFT.lattice_gf + ~SumkDFT.load + ~SumkDFT.number_of_atoms + ~SumkDFT.put_Sigma + ~SumkDFT.read_input_from_hdf + ~SumkDFT.rotloc + ~SumkDFT.save + ~SumkDFT.set_Sigma + ~SumkDFT.set_dc + ~SumkDFT.set_mu + ~SumkDFT.sorts_of_atoms + ~SumkDFT.symm_deg_gf + ~SumkDFT.total_density + ~SumkDFT.transform_to_solver_blocks + ~SumkDFT.transform_to_sumk_blocks + ~SumkDFT.upfold + + + + + +.. rubric:: Attributes + +.. autosummary:: + :toctree: + + ~SumkDFT.corr_to_inequiv + ~SumkDFT.deg_shells + ~SumkDFT.gf_struct_solver + ~SumkDFT.gf_struct_solver_dict + ~SumkDFT.gf_struct_solver_list + ~SumkDFT.gf_struct_sumk + ~SumkDFT.gf_struct_sumk_dict + ~SumkDFT.gf_struct_sumk_list + ~SumkDFT.inequiv_to_corr + ~SumkDFT.solver_to_sumk + ~SumkDFT.solver_to_sumk_block + ~SumkDFT.sumk_to_solver + diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.save.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.save.rst new file mode 100644 index 00000000..e0aea984 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.save.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.save +======================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.save \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_Sigma.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_Sigma.rst new file mode 100644 index 00000000..1f26ea5c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_Sigma.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.set\_Sigma +============================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.set_Sigma \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_dc.rst new file mode 100644 index 00000000..905b2a41 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.set\_dc +=========================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.set_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_mu.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_mu.rst new file mode 100644 index 00000000..53077b1c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.set_mu.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.set\_mu +=========================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.set_mu \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk.rst new file mode 100644 index 00000000..529cdd13 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.solver\_to\_sumk +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.solver_to_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk_block.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk_block.rst new file mode 100644 index 00000000..36a9ca00 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.solver_to_sumk_block.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.solver\_to\_sumk\_block +=========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.solver_to_sumk_block \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sorts_of_atoms.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sorts_of_atoms.rst new file mode 100644 index 00000000..5a58bbec --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sorts_of_atoms.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.sorts\_of\_atoms +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.sorts_of_atoms \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sumk_to_solver.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sumk_to_solver.rst new file mode 100644 index 00000000..f00486ca --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.sumk_to_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.sumk\_to\_solver +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. autoproperty:: SumkDFT.sumk_to_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.symm_deg_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.symm_deg_gf.rst new file mode 100644 index 00000000..5cde1b8f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.symm_deg_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.symm\_deg\_gf +================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.symm_deg_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.total_density.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.total_density.rst new file mode 100644 index 00000000..ae79ae84 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.total_density.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.total\_density +================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.total_density \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_solver_blocks.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_solver_blocks.rst new file mode 100644 index 00000000..c306655f --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_solver_blocks.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.transform\_to\_solver\_blocks +================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.transform_to_solver_blocks \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_sumk_blocks.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_sumk_blocks.rst new file mode 100644 index 00000000..8d2dfe7c --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.transform_to_sumk_blocks.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.transform\_to\_sumk\_blocks +=============================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.transform_to_sumk_blocks \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.upfold.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.upfold.rst new file mode 100644 index 00000000..38830fcd --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.SumkDFT.upfold.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft.SumkDFT.upfold +========================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft + +.. automethod:: SumkDFT.upfold \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft.rst b/doc/_python_api/triqs_dft_tools.sumk_dft.rst new file mode 100644 index 00000000..3b6431e0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft.rst @@ -0,0 +1,32 @@ +sumk\_dft +========= + +.. automodule:: triqs_dft_tools.sumk_dft + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + SumkDFT + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.__init__.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.__init__.rst new file mode 100644 index 00000000..46e7e4a2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.\_\_init\_\_ +============================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.add_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.add_dc.rst new file mode 100644 index 00000000..088c9f28 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.add_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.add\_dc +======================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.add_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure.rst new file mode 100644 index 00000000..72cf9974 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.analyse\_block\_structure +========================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.analyse_block_structure \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure_from_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure_from_gf.rst new file mode 100644 index 00000000..066cdca8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_block_structure_from_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.analyse\_block\_structure\_from\_gf +=================================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.analyse_block_structure_from_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_deg_shells.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_deg_shells.rst new file mode 100644 index 00000000..03dd5e1b --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.analyse_deg_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.analyse\_deg\_shells +==================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.analyse_deg_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc.rst new file mode 100644 index 00000000..922e802a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calc\_dc +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calc_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc_for_density.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc_for_density.rst new file mode 100644 index 00000000..d3d37d2e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_dc_for_density.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calc\_dc\_for\_density +====================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calc_dc_for_density \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_density_correction.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_density_correction.rst new file mode 100644 index 00000000..9749f255 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_density_correction.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calc\_density\_correction +========================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calc_density_correction \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_mu.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_mu.rst new file mode 100644 index 00000000..1b7d62ec --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calc_mu.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calc\_mu +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calc_mu \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_diagonalization_matrix.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_diagonalization_matrix.rst new file mode 100644 index 00000000..e1969b9a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_diagonalization_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calculate\_diagonalization\_matrix +================================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calculate_diagonalization_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_min_max_band_energies.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_min_max_band_energies.rst new file mode 100644 index 00000000..94a92d5a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.calculate_min_max_band_energies.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.calculate\_min\_max\_band\_energies +=================================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.calculate_min_max_band_energies \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.check_projectors.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.check_projectors.rst new file mode 100644 index 00000000..741ac043 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.check_projectors.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.check\_projectors +================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.check_projectors \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.corr_to_inequiv.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.corr_to_inequiv.rst new file mode 100644 index 00000000..17eb8852 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.corr_to_inequiv.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.corr\_to\_inequiv +================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.corr_to_inequiv \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.deg_shells.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.deg_shells.rst new file mode 100644 index 00000000..834c83c0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.deg_shells.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.deg\_shells +=========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.deg_shells \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_matrix.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_matrix.rst new file mode 100644 index 00000000..2ebfe807 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.density\_matrix +=============================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.density_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_of_states.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_of_states.rst new file mode 100644 index 00000000..db464069 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.density_of_states.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.density\_of\_states +=================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.density_of_states \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.downfold.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.downfold.rst new file mode 100644 index 00000000..f1f12517 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.downfold.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.downfold +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.downfold \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.eff_atomic_levels.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.eff_atomic_levels.rst new file mode 100644 index 00000000..3a415ae0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.eff_atomic_levels.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.eff\_atomic\_levels +=================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.eff_atomic_levels \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.extract_G_loc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.extract_G_loc.rst new file mode 100644 index 00000000..e18a9fd9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.extract_G_loc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.extract\_G\_loc +=============================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.extract_G_loc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gen_Akw.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gen_Akw.rst new file mode 100644 index 00000000..6ece9e40 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gen_Akw.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gen\_Akw +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.gen_Akw \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver.rst new file mode 100644 index 00000000..20641972 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_solver +================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_dict.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_dict.rst new file mode 100644 index 00000000..ad1af8f3 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_solver\_dict +======================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_solver_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_list.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_list.rst new file mode 100644 index 00000000..b7257e1a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_solver_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_solver\_list +======================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_solver_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk.rst new file mode 100644 index 00000000..d2cc36d6 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_sumk +================================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_dict.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_dict.rst new file mode 100644 index 00000000..7e6ad9cd --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_dict.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_sumk\_dict +====================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_sumk_dict \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_list.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_list.rst new file mode 100644 index 00000000..3aeb39e8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.gf_struct_sumk_list.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.gf\_struct\_sumk\_list +====================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.gf_struct_sumk_list \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.inequiv_to_corr.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.inequiv_to_corr.rst new file mode 100644 index 00000000..414250df --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.inequiv_to_corr.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.inequiv\_to\_corr +================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.inequiv_to_corr \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.init_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.init_dc.rst new file mode 100644 index 00000000..f13df9b7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.init_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.init\_dc +======================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.init_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.lattice_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.lattice_gf.rst new file mode 100644 index 00000000..61503b68 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.lattice_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.lattice\_gf +=========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.lattice_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load.rst new file mode 100644 index 00000000..af021c40 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.load +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.load \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load_parproj.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load_parproj.rst new file mode 100644 index 00000000..c0545195 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.load_parproj.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.load\_parproj +============================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.load_parproj \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.number_of_atoms.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.number_of_atoms.rst new file mode 100644 index 00000000..cae7b3ee --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.number_of_atoms.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.number\_of\_atoms +================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.number_of_atoms \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.occupations.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.occupations.rst new file mode 100644 index 00000000..efb7d2a0 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.occupations.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.occupations +=========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.occupations \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.partial_charges.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.partial_charges.rst new file mode 100644 index 00000000..5734f9a8 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.partial_charges.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.partial\_charges +================================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.partial_charges \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.print_hamiltonian.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.print_hamiltonian.rst new file mode 100644 index 00000000..af082d54 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.print_hamiltonian.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.print\_hamiltonian +================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.print_hamiltonian \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.proj_type_G_loc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.proj_type_G_loc.rst new file mode 100644 index 00000000..74cbe903 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.proj_type_G_loc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.proj\_type\_G\_loc +================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.proj_type_G_loc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.put_Sigma.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.put_Sigma.rst new file mode 100644 index 00000000..c6f9e00e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.put_Sigma.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.put\_Sigma +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.put_Sigma \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.read_input_from_hdf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.read_input_from_hdf.rst new file mode 100644 index 00000000..c4da844e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.read_input_from_hdf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.read\_input\_from\_hdf +====================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.read_input_from_hdf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rotloc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rotloc.rst new file mode 100644 index 00000000..302f34b2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rotloc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.rotloc +====================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.rotloc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rst new file mode 100644 index 00000000..40675046 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.rst @@ -0,0 +1,79 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools +=============================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoclass:: SumkDFTTools + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~SumkDFTTools.__init__ + ~SumkDFTTools.add_dc + ~SumkDFTTools.analyse_block_structure + ~SumkDFTTools.analyse_block_structure_from_gf + ~SumkDFTTools.analyse_deg_shells + ~SumkDFTTools.calc_dc + ~SumkDFTTools.calc_dc_for_density + ~SumkDFTTools.calc_density_correction + ~SumkDFTTools.calc_mu + ~SumkDFTTools.calculate_diagonalization_matrix + ~SumkDFTTools.calculate_min_max_band_energies + ~SumkDFTTools.check_projectors + ~SumkDFTTools.density_matrix + ~SumkDFTTools.density_of_states + ~SumkDFTTools.downfold + ~SumkDFTTools.eff_atomic_levels + ~SumkDFTTools.extract_G_loc + ~SumkDFTTools.gen_Akw + ~SumkDFTTools.init_dc + ~SumkDFTTools.lattice_gf + ~SumkDFTTools.load + ~SumkDFTTools.load_parproj + ~SumkDFTTools.number_of_atoms + ~SumkDFTTools.occupations + ~SumkDFTTools.partial_charges + ~SumkDFTTools.print_hamiltonian + ~SumkDFTTools.proj_type_G_loc + ~SumkDFTTools.put_Sigma + ~SumkDFTTools.read_input_from_hdf + ~SumkDFTTools.rotloc + ~SumkDFTTools.save + ~SumkDFTTools.set_Sigma + ~SumkDFTTools.set_dc + ~SumkDFTTools.set_mu + ~SumkDFTTools.sorts_of_atoms + ~SumkDFTTools.spaghettis + ~SumkDFTTools.spectral_contours + ~SumkDFTTools.symm_deg_gf + ~SumkDFTTools.total_density + ~SumkDFTTools.transform_to_solver_blocks + ~SumkDFTTools.transform_to_sumk_blocks + ~SumkDFTTools.upfold + + + + + +.. rubric:: Attributes + +.. autosummary:: + :toctree: + + ~SumkDFTTools.corr_to_inequiv + ~SumkDFTTools.deg_shells + ~SumkDFTTools.gf_struct_solver + ~SumkDFTTools.gf_struct_solver_dict + ~SumkDFTTools.gf_struct_solver_list + ~SumkDFTTools.gf_struct_sumk + ~SumkDFTTools.gf_struct_sumk_dict + ~SumkDFTTools.gf_struct_sumk_list + ~SumkDFTTools.inequiv_to_corr + ~SumkDFTTools.solver_to_sumk + ~SumkDFTTools.solver_to_sumk_block + ~SumkDFTTools.sumk_to_solver + diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.save.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.save.rst new file mode 100644 index 00000000..3a78672d --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.save.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.save +==================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.save \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_Sigma.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_Sigma.rst new file mode 100644 index 00000000..8a1e1b97 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_Sigma.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.set\_Sigma +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.set_Sigma \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_dc.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_dc.rst new file mode 100644 index 00000000..58590fff --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_dc.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.set\_dc +======================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.set_dc \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_mu.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_mu.rst new file mode 100644 index 00000000..7ff61798 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.set_mu.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.set\_mu +======================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.set_mu \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk.rst new file mode 100644 index 00000000..d6ce21f7 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.solver\_to\_sumk +================================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.solver_to_sumk \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk_block.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk_block.rst new file mode 100644 index 00000000..86f5a2f2 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.solver_to_sumk_block.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.solver\_to\_sumk\_block +======================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.solver_to_sumk_block \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sorts_of_atoms.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sorts_of_atoms.rst new file mode 100644 index 00000000..24800991 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sorts_of_atoms.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.sorts\_of\_atoms +================================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.sorts_of_atoms \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spaghettis.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spaghettis.rst new file mode 100644 index 00000000..6e969f57 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spaghettis.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.spaghettis +========================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.spaghettis \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spectral_contours.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spectral_contours.rst new file mode 100644 index 00000000..b428781e --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.spectral_contours.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.spectral\_contours +================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.spectral_contours \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sumk_to_solver.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sumk_to_solver.rst new file mode 100644 index 00000000..c0652a3a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.sumk_to_solver.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.sumk\_to\_solver +================================================================ + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. autoproperty:: SumkDFTTools.sumk_to_solver \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.symm_deg_gf.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.symm_deg_gf.rst new file mode 100644 index 00000000..d86f21bb --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.symm_deg_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.symm\_deg\_gf +============================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.symm_deg_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.total_density.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.total_density.rst new file mode 100644 index 00000000..5ed909b9 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.total_density.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.total\_density +============================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.total_density \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_solver_blocks.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_solver_blocks.rst new file mode 100644 index 00000000..991d6f3a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_solver_blocks.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.transform\_to\_solver\_blocks +============================================================================= + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.transform_to_solver_blocks \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_sumk_blocks.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_sumk_blocks.rst new file mode 100644 index 00000000..df6a182a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.transform_to_sumk_blocks.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.transform\_to\_sumk\_blocks +=========================================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.transform_to_sumk_blocks \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.upfold.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.upfold.rst new file mode 100644 index 00000000..bc32cd7a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.SumkDFTTools.upfold.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.sumk\_dft\_tools.SumkDFTTools.upfold +====================================================== + +.. currentmodule:: triqs_dft_tools.sumk_dft_tools + +.. automethod:: SumkDFTTools.upfold \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.sumk_dft_tools.rst b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.rst new file mode 100644 index 00000000..efcc42ba --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.sumk_dft_tools.rst @@ -0,0 +1,32 @@ +sumk\_dft\_tools +================ + +.. automodule:: triqs_dft_tools.sumk_dft_tools + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + SumkDFTTools + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.__init__.rst b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.__init__.rst new file mode 100644 index 00000000..52ffed25 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.symmetry.Symmetry.\_\_init\_\_ +================================================ + +.. currentmodule:: triqs_dft_tools.symmetry + +.. automethod:: Symmetry.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.rst b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.rst new file mode 100644 index 00000000..c5132111 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.rst @@ -0,0 +1,21 @@ +triqs\_dft\_tools.symmetry.Symmetry +=================================== + +.. currentmodule:: triqs_dft_tools.symmetry + +.. autoclass:: Symmetry + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~Symmetry.__init__ + ~Symmetry.symmetrize + + + + + diff --git a/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.symmetrize.rst b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.symmetrize.rst new file mode 100644 index 00000000..c06f1033 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.symmetry.Symmetry.symmetrize.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.symmetry.Symmetry.symmetrize +============================================== + +.. currentmodule:: triqs_dft_tools.symmetry + +.. automethod:: Symmetry.symmetrize \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.symmetry.rst b/doc/_python_api/triqs_dft_tools.symmetry.rst new file mode 100644 index 00000000..649a9ec5 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.symmetry.rst @@ -0,0 +1,32 @@ +symmetry +======== + +.. automodule:: triqs_dft_tools.symmetry + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + Symmetry + + + + + + + + + + diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.__init__.rst b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.__init__.rst new file mode 100644 index 00000000..c3e30f76 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.__init__.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.trans\_basis.TransBasis.\_\_init\_\_ +====================================================== + +.. currentmodule:: triqs_dft_tools.trans_basis + +.. automethod:: TransBasis.__init__ \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.calculate_diagonalisation_matrix.rst b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.calculate_diagonalisation_matrix.rst new file mode 100644 index 00000000..896b2ead --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.calculate_diagonalisation_matrix.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.trans\_basis.TransBasis.calculate\_diagonalisation\_matrix +============================================================================ + +.. currentmodule:: triqs_dft_tools.trans_basis + +.. automethod:: TransBasis.calculate_diagonalisation_matrix \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rotate_gf.rst b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rotate_gf.rst new file mode 100644 index 00000000..75dce678 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rotate_gf.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.trans\_basis.TransBasis.rotate\_gf +==================================================== + +.. currentmodule:: triqs_dft_tools.trans_basis + +.. automethod:: TransBasis.rotate_gf \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rst b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rst new file mode 100644 index 00000000..632e4e1a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.rst @@ -0,0 +1,23 @@ +triqs\_dft\_tools.trans\_basis.TransBasis +========================================= + +.. currentmodule:: triqs_dft_tools.trans_basis + +.. autoclass:: TransBasis + + + +.. rubric:: Methods + +.. autosummary:: + :toctree: + + ~TransBasis.__init__ + ~TransBasis.calculate_diagonalisation_matrix + ~TransBasis.rotate_gf + ~TransBasis.write_trans_file + + + + + diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.write_trans_file.rst b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.write_trans_file.rst new file mode 100644 index 00000000..cb70dd7a --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.TransBasis.write_trans_file.rst @@ -0,0 +1,6 @@ +triqs\_dft\_tools.trans\_basis.TransBasis.write\_trans\_file +============================================================ + +.. currentmodule:: triqs_dft_tools.trans_basis + +.. automethod:: TransBasis.write_trans_file \ No newline at end of file diff --git a/doc/_python_api/triqs_dft_tools.trans_basis.rst b/doc/_python_api/triqs_dft_tools.trans_basis.rst new file mode 100644 index 00000000..0a855274 --- /dev/null +++ b/doc/_python_api/triqs_dft_tools.trans_basis.rst @@ -0,0 +1,32 @@ +trans\_basis +============ + +.. automodule:: triqs_dft_tools.trans_basis + + + + + + + + + + + +.. rubric:: Classes + +.. autosummary:: + :toctree: + :template: autosummary_class_template.rst + + TransBasis + + + + + + + + + + diff --git a/doc/guide/analysis.rst b/doc/guide/analysis.rst index b511be78..99f52bc5 100644 --- a/doc/guide/analysis.rst +++ b/doc/guide/analysis.rst @@ -3,17 +3,13 @@ Tools for analysis ================== -This section explains how to use some tools of the package in order to analyse the data. +This section explains how to use some tools of the package in order to analyse the data. There are certain tools here which are not available for some DFT code interfaces. Please refer to the DFT package interface converter documentation (see :ref:`conversion`) on how to interface the required DFT outputs into the HDF5 files needed for the tools discussed here. This section will assume that the user has converted the required DFT data. -There are two practical tools for which a self energy on the real axis is not needed, namely: +The following routines require a self energy on the real frequency axis if the user specifies the inputs `with_Sigma` and `with_dc`: - * :meth:`dos_wannier_basis ` for the density of states of the Wannier orbitals and - * :meth:`partial_charges ` for the partial charges according to the Wien2k definition. - -However, a real-frequency self energy has to be provided by the user for the methods: - - * :meth:`dos_parproj_basis ` for the momentum-integrated spectral function including self energy effects and + * :meth:`density_of_states ` for the momentum-integrated spectral function including self energy effects and * :meth:`spaghettis ` for the momentum-resolved spectral function (i.e. ARPES) + * :meth:`spectral_contours ` for the k-resolved spectral function on a specific k-mesh (i.e., spectral function on a two dimensional k-mesh) .. note:: This package does NOT provide an explicit method to do an **analytic continuation** of @@ -21,6 +17,11 @@ However, a real-frequency self energy has to be provided by the user for the met but a list of options available within the TRIQS framework is given :ref:`here `. Keep in mind that all these methods have to be used very carefully! +Otherwise, without these options, the spectral functions from the inputs of the interfaced DFT code will be used. + +The other routines presented here use the Matsubara self-energy. + + Initialisation -------------- @@ -74,32 +75,141 @@ and additionally set the chemical potential and the double counting correction f SK.set_mu(chemical_potential) SK.set_dc(dc_imp,dc_energ) -.. _dos_wannier: -Density of states of the Wannier orbitals ------------------------------------------ +Density of states +----------------- -For plotting the density of states of the Wannier orbitals, you type:: +For plotting the density of states, you type:: - SK.dos_wannier_basis(broadening=0.03, mesh=[om_min, om_max, n_om], with_Sigma=False, with_dc=False, save_to_file=True) + SK.density_of_states(mu, broadening, mesh, with_Sigma, with_dc, proj_type, dosocc, save_to_file) -which produces plots between the real frequencies `om_min` and `om_max`, using a mesh of `n_om` points. The parameter -`broadening` defines an additional Lorentzian broadening, and has the default value of `0.01 eV`. To check the Wannier -density of states after the projection set `with_Sigma` and `with_dc` to `False`. If `save_to_file` is set to `True` -the output is printed into the files +where a brief description of all of the inputs are given in :meth:`density_of_states `, which a more in depth discussion of using this routine is given here. - * `DOS_wannier_(sp).dat`: The total DOS, where `(sp)` stands for `up`, `down`, or combined `ud`. The latter case - is relevant for calculations including spin-orbit interaction. - * `DOS_wannier_(sp)_proj(i).dat`: The DOS projected to an orbital with index `(i)`. The index `(i)` refers to - the indices given in ``SK.shells``. - * `DOS_wannier_(sp)_proj(i)_(m)_(n).dat`: As above, but printed as orbitally-resolved matrix in indices - `(m)` and `(n)`. For `d` orbitals, it gives the DOS separately for, e.g., :math:`d_{xy}`, :math:`d_{x^2-y^2}`, and so on, +Input parameter breakdown: + * `mu` (Optional, default is None): The `mu` input specifies the chemical potential to be used in the calculation. By default, this is automatically set to the chemical potential within the SK object. + * `broadening` (Optional, default 0.01 eV). Traditionally, a small imaginary part is included for a non-interacting spectral function to avoid any numerical artifacts. The user can specify this imaginary part with the `broadening` input. The default value of `0.01 eV` if there is no `broadening` or `mesh` input. + * `mesh` (Optional, default is None): The `mesh` input requires a real frequency MeshType variable to specificy the frequency on which the spectral function is evaluated on. If the real frequency self-energy is used, then the associated mesh of the self-energy will be used instead. However, this `mesh` input will superseed the SK.mesh real frequency MeshType if it exists. + * `with_Sigma` and `with_dc` (Optional, both set to True by default): These Boolean options determine whether to include the real frequency self-energy (`with_Sigma`) and double counting term (`with_dc`) from the DMFT calculation. To calculate the DFT+DMFT DOS, both options need to be set to True. If both are set to false, then the DFT DOS will be calculated instead. + * `proj_type` (Optional, default is None): The type of projection used for the orbital-projected DOS is specified by the optional `proj_type`. These projected spectral functions will be determined alongside the total spectral function. By default, no projected DOS type will be calculated (the corresponding projected arrays will be empty). A full description of the DFT-code dependent options is given below. + * `dosocc` (Optional, default is False): The occupied part of the spectral function can be generated by setting `dosocc` to True. As a prerequisite to using this option, the user must first calculate the band-resolved density matrix (or occupations) by calling :meth:`occupations ` with the Matsubara self-energy. + * `save_to_file` (Optional, default is True): To save the generated DOS from this routine, then the optional `save_to_file` must be set to True. + +Variables returned from this function: + * DOS - this is a dictionary of numpy arrays with the form of `DOS[spn][n_om]` where `spn` speficies the spin type of the calculation ('`up`, `down`, or combined `ud` which relates to calculations with spin-orbit coupling) and `n_om` is the number of real frequencies as specified by the real frequency MeshType used in the calculation. This array gives the total density of states + * DOSproj - A dictionary of numpy arrays with the form of `DOSproj[n_shells][spn][n_om]` where `spn` and `n_om` are given above and `n_shells` are the total number of correlated or uncorrelated shells (depending on the input `dos_type`). This array gives the trace of the orbital-projected density of states. + * DOSproj_orb - A dictionary of numpy arrays with the form of `DOSproj_orb[n_shells][spn][n_om,dim,dim]` where the variables are defined as given previously with `dim` specifying the orbital dimension of the correlated/uncorrelated shell (depending on the input `dos_type`). This array gives the orbital-projected density of states. + + +The output files (if `save_to_file = True`) have two (three in the orbital-resolved case) columns representing the frequency and real part of the DOS (and imaginary part of the DOS) in that order. + +The output files are as follows: + * `DOS_(sp).dat`: The total DOS, where `(dos_type)` and `(sp)` have been defined previously. + * `DOS_(proj_type)_(sp)_proj(i).dat`: The DOS projected to an orbital with index `(i)`. The index `(i)` refers to tprojindices given in ``SK.shells`` (or ``SK.corr_shells`` for `proj_type` = "wann"). + * `DOS_(proj_type)_(sp)_proj(i)_(m)_(n).dat`: As above, but printed as orbitally-resolved matrix in indices `(m)` and `(n)`. For `d` orbitals, it gives the DOS separately for, e.g., :math:`d_{xy}`, :math:`d_{x^2-y^2}`, and so on. + + +The different DFT code interfaces read in different variables needed to generate other options for the string type `proj_type` are as follows: + * "wann" - calculates the Wannier projected DOS. + * "vasp" - calculates the projected DOS from the projectors generated within Vasp. + * "wien2k" - calculates the projected DOS from the theta projectors generated from dmftproj used to interface Wien2k with TRIQS. + +.. image:: images_scripts/DFT_Tools_SVO_DFT_DOS.png + :width: 600 + :align: center + +The figure above shows the DFT SrVO\ :sub:`3`\ density of states generated from 2925 k-points in the irreducible Brillouin zone with the V t\ :sub:`2g`\ Wanner projectors generated within a correlated energy window of [-13.6, 13.6] eV. The `broadening` input has been set to the temperature (i.e., 1/Beta). The total, V t\ :sub:`2g`\ Wannier and occupied total density of states generated from the SK.density_of_states() routine are shown. Note that the noise in the density of states comes from the number of k-points used. This can be removed upon by either using more k-points or using a larger `broadening` value. + +Band resolved density matrices +------------------------------ + +Calculates the band resolved density matrices (occupations) from the Matsubara frequency self-energy. +This is done by calling the following:: + + SK.occupations(mu, with_Sigma, with_dc, save_occ): + +This is required to generate the occupied DOS in SK.density_of_states() when dosocc is set to True. The `save_occ` optional input (True by default) saves these density matrices to the HDF5 file within the misc_data subgroup. The other variables are the same as defined above. See :meth:`occupations ` + + + + +Momentum resolved spectral function (with real-frequency self energy) +--------------------------------------------------------------------- + +Another quantity of interest is the calculated momentum-resolved spectral function A(k, :math:`\omega`) or (correlated) band structure which can directly be compared to ARPES experiments. +First we have generate the required files from the DFT code of choice and interface them with DFT_Tools, see the guides of the DFT converters (:ref:`conversion`) on how to do this. + +This spectral function is calculated by typing:: + + SK.spaghettis(mu, broadening, mesh, plot_shift, plot_range, shell_list, with_Sigma, with_dc, proj_type, save_to_file) + +Input variables such as `mu`, `broadening` and so on have the same definition as given previously. + +The additional parameters are defined as follows: + * `plot_shift` (Optional, default is 0.0): An additional shift added as `(ik-1)*plot_shift`, where `ik` is the index of the `k` point. This is useful for plotting purposes. + * `plot_range` (Optional, default is None): A list with two entries, :math:`\omega_{min}` and :math:`\omega_{max}`, which set the plot range for the output. By default, the full momentum range as given in the self_energy.mesh, input mesh, or SK.mesh is used. + * `shell_list` (Optional, default is None): A list of integers denoting the shell indices onto which the spectral function is projected if `proj_type` is not None. The resulting function is saved in the files. By default, the projected spectral function is generated for all shells if `proj_type` is not None. Note for experts: The spectra are not rotated to the local coordinate system used in Wien2k. + * `proj_type` : This has the same definition as above but with only the "wann" and "wien2k" options implemented. + +Variables returned from this function: + * `Akw` - this is a dictionary of numpy arrays with the form of `Akw[spn][n_ik, n_om]` where `n_k` is the number of k-points used in the calculation. This array gives the total A(k, :math:`\omega`). + * `pAkw` - A dictionary of numpy arrays with the form of `pAkw[n_shells][spn][n_k, n_om]` where `spn`, `n_om` and `n_shells` have been defined previously. This array gives the trace of the orbital-projected A(k, :math:`\omega`). + * `pAkw_orb` - A dictionary of numpy arrays with the form of `pAkw_orb[n_shells][spn][n_om,dim,dim]` where the variables have been previously defined. This array gives the orbital-projected A(k, :math:`\omega`). + + +The output files (if `save_to_file = True`) have three columns representing the k-point index, frequency and A(k, :math:`\omega`) in that order. The output files are as follows: + * `Akw_(sp).dat`: The total A(k, :math:`\omega`). + * `Akw_(dos_type)_(sp)_proj(i).dat`: The A(k, :math:`\omega`) projected to shell with index `(i)` (same as defined in the DOS output files). + * `Akw_(dos_type)_(sp)_proj(i)_(m)_(n).dat`: As above, but printed as orbitally-resolved matrix in indices `(m)` and `(n)`. + +Also see :meth:`spaghettis `. + +.. image:: images_scripts/DFT_Tools_SVO_DFT_spaghettis.png + :width: 1000 + :align: center + +The figure above shows the DFT SrVO\ :sub:`3`\ spaghetti plot (generated using V t\ :sub:`2g`\ Wanner projectors generated within a correlated energy window of [-13.6, 13,6] eV). As before, the broadening input has been set to the temperature (i.e., 1/Beta). The left panel shows the total A(k, :math:`\omega`) whereas the right gives the Wannier A(k, :math:`\omega`), both generated from this SK.spaghettis(). + + +Energy contours of the k-resolved Spectral function +--------------------------------------------------- + +Currently, this has only been implemented for Elk DFT inputs only. + +This routine calculates the k-resolved spectral function evaluated at the Fermi level or several energy contours on the k-mesh defined in the converter stage:: + + SK.spectral_contours(mu, broadening, mesh, plot_range, FS, with_Sigma, with_dc, proj_type, save_to_file) + +Again, certain inputs in this routine have already been defined. Note that only proj_type="wann" has been implemented for this routine. + +Below gives a description of the other inputs used here: + * `FS` (Optional, default is True): If True, this outputs the spectral function evaluated at the Fermi level (or the frequency value closest to 0.0 eV in the given mesh). If false, then the spectral function is evaluated at the frequency values within the frequency mesh used (or within `plot_range` if specified). + +This routine returns the following: + * `Akw` - A dictionary of numpy arrays with the form of `Akw[spn][n_ik, n_om]` where `spn`, `n_k` and `n_om` being defined as given above. This array gives the total A(k, :math:`\omega`). + * `pAkw` - A dictionary of numpy arrays with the form of `pAkw[n_shells][spn][n_k, n_om]` (`n_shells` defined above). This array gives the trace of the orbital-projected A(k, :math:`\omega`). + * `pAkw_orb` - A dictionary of numpy arrays with the form of `pAkw_orb[n_shells][spn][n_om,dim,dim]` (`dim` defined above). This array gives the orbital-projected A(k, :math:`\omega`). + + +The output files will have the same extensions of `_(sp)_proj(i)_(m)_(n).dat`, `_(sp)_proj(i)_(m)_(n).dat` and `_(sp)_proj(i)_(m)_(n).dat` as described in the Spaghettis routine. + +The files are prepended with either of the following: + * For `FS` set to True : The output files' name are prepended with `Akw_FS` and these files contain four columns which are the `k`\ :sub:`x`\, `k`\ :sub:`y`\, `k`\ :sub:`z`\, and `Akw`. Here (`k`\ :sub:`x`\, `k`\ :sub:`y`\, `k`\ :sub:`z`\) are the cartesian reciprocal coordinates, + * For `FS` set to False : The output files' name are prepended with `Akw_omega_(iom)` (with `iom` being the frequency mesh index). These files also contain four columns as described above along with a comment at the top of the file which gives the :math:`\omega` frequency value at which the spectral function was evaluated. + +Also see :meth:`spectral_contours ` + +.. image:: images_scripts/DFT_Tools_SVO_DFT_energy_contours.png + :width: 1000 + :align: center + +The figure above shows the DFT SrVO\ :sub:`3`\ energy contour plots (again, generated using V t\ :sub:`2g`\ Wanner projectors generated within a correlated energy window of [-13.6, 13,6] eV and broadening of 1/Beta). Both panels have been generated on a k-mesh within the first Brilluoin zone on the k\ :sub:`z`\ = 0.0 plane centered at the :math:`\Gamma` point. Here, each panel generated using the outputs from this SK.spectral_contours_plot() routine shows the A(k, :math:`\omega`) evaluated at :math:`\omega` = -0.5 eV (left) and the Fermi level, :math:`\omega` = 0.0 eV, (right). -otherwise, the output is returned by the function for a further usage in :program:`python`. Partial charges --------------- +Currently, this has only been implemented for Wien2k DFT inputs only. + Since we can calculate the partial charges directly from the Matsubara Green functions, we also do not need a real-frequency self energy for this purpose. The calculation is done by:: @@ -109,38 +219,6 @@ real-frequency self energy for this purpose. The calculation is done by:: which calculates the partial charges using the self energy, double counting, and chemical potential as set in the `SK` object. On return, `dm` is a list, where the list items correspond to the density matrices of all shells defined in the list `SK.shells`. This list is constructed by the Wien2k converter routines and stored automatically -in the hdf5 archive. For the structure of `dm`, see also :meth:`reference manual `. +in the hdf5 archive. For the structure of `dm`, see also :meth:`partial charges `. -Correlated spectral function (with real-frequency self energy) --------------------------------------------------------------- -To produce both the momentum-integrated (total density of states or DOS) and orbitally-resolved (partial/projected DOS) spectral functions -we can execute:: - - SK.dos_parproj_basis(broadening=0.0, with_Sigma=True, with_dc=True, save_to_file=True) - -The variable `broadening` is an additional Lorentzian broadening (default: `0.01 eV`) applied to the resulting spectra. -The output is written in the same way as described above for the :ref:`Wannier density of states `, but with filenames -`DOS_parproj_*` instead. - -Momentum resolved spectral function (with real-frequency self energy) ---------------------------------------------------------------------- - -Another quantity of interest is the momentum-resolved spectral function, which can directly be compared to ARPES -experiments. First we have to execute `lapw1`, `lapw2 -almd` and :program:`dmftproj` with the `-band` -option and use the :meth:`convert_bands_input ` -routine, which converts the required files (for a more detailed description see :ref:`conversion`). The spectral function is then calculated by typing:: - - SK.spaghettis(broadening=0.01,plot_shift=0.0,plot_range=None,ishell=None,save_to_file='Akw_') - -Here, optional parameters are - - * `shift`: An additional shift added as `(ik-1)*shift`, where `ik` is the index of the `k` point. This is useful for plotting purposes. - The default value is 0.0. - * `plotrange`: A list with two entries, :math:`\omega_{min}` and :math:`\omega_{max}`, which set the plot - range for the output. The default value is `None`, in which case the full momentum range as given in the self energy is used. - * `ishell`: An integer denoting the orbital index `ishell` onto which the spectral function is projected. The resulting function is saved in - the files. The default value is `None`. Note for experts: The spectra are not rotated to the local coordinate system used in Wien2k. - -The output is written as the 3-column files ``Akw(sp).dat``, where `(sp)` is defined as above. The output format is -`k`, :math:`\omega`, `value`. diff --git a/doc/guide/conv_elk.rst b/doc/guide/conv_elk.rst index 650dc5df..7ffd68c7 100644 --- a/doc/guide/conv_elk.rst +++ b/doc/guide/conv_elk.rst @@ -3,7 +3,7 @@ Interface with Elk ===================== -This is the first iteration of the Elk-TRIQS interface, so certain inputs may change in later updates. The Elk part of the interface is not currently in the main distribution, but it can be found `here `_. +This is the first iteration of the Elk-TRIQS interface, so certain inputs may change in later updates. The Elk part of the interface is not currently in the main distribution, but it can be found `here `_. We assume that the user has obtained a self-consistent solution of the Kohn-Sham equations with Elk (a full tutorial can be found here :ref:`Elk SVO tutorial `). Also, the user needs to be familiar with the main in/output files of Elk, and how to run @@ -113,36 +113,16 @@ The band structure information is converted into TRIQS by using:: Converter.convert_bands_input() -Spectral function from Elk inputs ---------------------------------- -Elk does not calculate the theta projectors for partial DOS calculations. Instead, Elk outputs the band characters into the file BC.OUT when using the elk.in task:: - - task - 803 - -The contents of BC.OUT need to be converted into the HDF5 file by using the Elk Converter module:: - - from triqs_dft_tools.converters.elk import * - Converter = ElkConverter(filename=filename, repacking=True) - Converter.dft_band_characters() - -Once these have been saved to the HDF5 file (called "filename" here), the spectral function can be calculated with:: - - SK.elk_dos(broadening=0.0, with_Sigma=True, with_dc=True, pdos=False, nk=None) - -This outputs the total spectral function and the partial spectral function if enabled. Most of the user inputs are similar to the "SK.dos_parproj_basis()" module in :ref:`analysis`. The "pdos" flag when "True" enables the partial dos of each lm value to be calculated. It should be noted that these band characters are in Elk's irreducible lm basis and as such, the user has to check the irreducible representation used in Elk. This information can be found in the file ELMIREP.OUT after running task 10 (the DOS calculating task). The "nk" flag enables the calculation of the occupied spectral funciton. Here, nk needs to be the occupation density matrix (calculated from integrating the Green's function on the Matsubara axis) in the Bloch basis. This input needs to be in the same format as the occupation density matrix "deltaN" calculated in the sumk_DFT.calc_density_correction(dm_type='elk') module. - - -Spectral function Contour Plots (Fermi Surfaces) from Elk inputs +Spectral function Energy Contour Plots (Fermi Surfaces) from Elk inputs ----------------------------------------------------------------- -Here, we will discuss how to plot the Fermi surface contour or any other non-zero omega spectral function contour plot. This is currently tailored for the Elk inputs. From this point, we will refer to these contours as Fermi surfaces. The energy eigenvalues, projectors and so on required for the Fermi surface plot needs to be outputed from Elk. This is done by using:: +Here, we will discuss how to plot the Fermi surface contour or any other non-zero omega spectral function contour plot. The energy eigenvalues, projectors and so on required for the contour plot needs to be outputed from Elk. This is done by using:: task 807 -in Elk, but unlike the previous Elk interface tasks, the k-mesh grid needs to be specified. This is done like using the same inputs as the Fermi surface calculations in Elk. In Elk, The user needs to specify the "plot3d" input flag used to generate the k-mesh which the interface variables are evaluated on. A simple example is for SrVO3 where plot3d would look something like:: +in Elk, but unlike the previous Elk interface tasks, the k-mesh grid needs to be specified. This is done by using the same inputs as the Fermi surface calculations in Elk. In Elk, The user needs to specify the "plot3d" input flag used to generate the k-mesh which the interface variables are evaluated on. A simple example is for SrVO3 where plot3d would look something like:: plot3d 0.0 0.0 0.0 !1) origin @@ -151,12 +131,12 @@ in Elk, but unlike the previous Elk interface tasks, the k-mesh grid needs to be 0.0 0.0 1.0 !4) vertex 3 32 32 32 !5) k-mesh grid size -Lines 1) to 4) specifies the corners (in lattice coordinates) of the k-grid box and line 5) is the grid size in each direction (see the Elk manual). If the user desires to plot a 2D plane, then the user should define the plane using lines 2) and 3) [relative to line 1)] and define line 4) to be the cross-product of lines 2) and 3) [i.e. the vector in line 4) is normal to the 2D plane]. The outputs will be in terms of the k-dependent quantities in the irreducible Brillouin zone (IBZ). The files needed for the interface are: +Lines 1) to 4) specifies the corners (in lattice coordinates) of the k-grid box and line 5) is the grid size in each direction (see the Elk manual). If the user desires to plot a 2D plane, then the user should define the plane using lines 2) and 3) [relative to line 1)] and define line 4) to be the cross-product of lines 2) and 3) [i.e. the vector in line 4) is normal to the 2D plane]. The outputs will be in terms of the k-dependent quantities in the irreducible Brillouin zone (IBZ). The files needed for this converter routine are: -#. EIGVAL_FS.OUT - same as EIGVAL.OUT but the output is of the Fermi surface calculation. -#. KPOINT_FS.OUT - same as KPOINT.OUT but the output is of the Fermi surface calculation. -#. PROJ_FS.OUT - same as PROJ.OUT but the output is of the Fermi surface calculation. -#. WANPROJ_L**_S**_A****_FS.OUT - same as WANPROJ_L**_S**_A****.OUT but the output is of the Fermi surface calculation. +#. EIGVAL_FS.OUT - same as EIGVAL.OUT but with the corresponding plot3d user defined k-mesh instead. +#. KPOINT_FS.OUT - same as KPOINT.OUT but with the corresponding plot3d user defined k-mesh instead. +#. PROJ_FS.OUT - same as PROJ.OUT but with the corresponding plot3d user defined k-mesh instead. +#. WANPROJ_L**_S**_A****_FS.OUT - same as WANPROJ_L**_S**_A****.OUT but with the corresponding plot3d user defined k-mesh instead. #. EFERMI.OUT - contains the Fermi energy. #. SYMCRYS.OUT - has the crystal symmetries used for symmetries observables. #. LATTICE.OUT - has lattice-Cartesian basis transformation matrices. @@ -167,26 +147,17 @@ These outputs are converted to the HDF5 file by:: from triqs_dft_tools.converters.elk import * Converter = ElkConverter(filename=filename, repacking=True) - Converter.convert_fs_input() + Converter.convert_contours_input(kgrid,ngrid) -The spectral function for the Fermi surface plots are calculated with:: - - SK.fs_plot(broadening=0.0, mesh=None, FS=True, plane=True, sym=True, orthvec=None, with_Sigma=True, with_dc=True) - -The new flags specify the following: - -#. "FS" - determines whether the output will be the Fermi surface and uses the closest omega value to 0.0 in the mesh. -#. "plane" - required to specify whether the Elk input parameters were generated on a k-mesh plane. -#. "sym" - needed if the IBZ will be folded out by using symmetry operations. -#. "orthvec" - (numpy array of length 3) needs to be specified if using "plane" as this input is the orthonormal vector to the 2D plane required for the folding out process. - -To give the user a range of output capabilities, This routine can be used in the following ways: - -#. If using "with_Sigma", the mesh will be the same as the self-energy. However, by setting FS=False, the user can input a mesh option if they desire the "Fermi surface" plots for each omega value (commensurate with the self-energy mesh) within the input range. - -#. If the user is generating the DFT Spectral function plot (i.e. with_Sigma and with_dc both set to False), a mesh needs to be specified if FS=False. This function will output the spectral functions for the input mesh. Otherwise if FS is True, this would return the spectral function at omega=0.0. - -The output files will have the form of "Akw_FS_X.dat" (X being either up, down or ud) if FS=True or "Akw_X_omega_Y.dat" (Y being the omega mesh index) otherwise. The latter file will have the omega values within the file (the fourth column). The first three columns of both output file types specifies the cartesian lattice vector (kx, ky, kz) and the last column is the spectral function values. +The kgrid and ngrid are user-defined numpy array inputs containing the plot3d inputs described above. +These inputs are needed to generate the reciprocal lattice coordinates for the output files. +The default for both of these variables is None, which in this case the converter automatically generates the +full Brilluoin zone by applying all of the symmetry operators to the read IBZ coordinates. However, +if the plot3d input is a k-mesh not centered around the origin and/or a k-mesh which only requires +a subset of the symmetry operators (say a 2D k-mesh) then the plot3d input needs to be an input to +the converter. Here, kgrid would be a double numpy array of size (4,3) specifying the k-mesh corner, +i.e, which contains lines 1) to 4) of the plot3d input described. The ngrid is an integer numpy +array of size (3) containing the k-mesh grid size - line 5) in plot3d input above. DFT+DMFT wavefunction dependent quantities diff --git a/doc/guide/images_scripts/DFT_Tools_SVO_DFT_DOS.png b/doc/guide/images_scripts/DFT_Tools_SVO_DFT_DOS.png new file mode 100644 index 0000000000000000000000000000000000000000..ec38316f1c02d33def4e1e529e16b925896a0d8a GIT binary patch literal 50491 zcmdqJhd-77|37{mJ4DLNj3n8VY%0oDw(MPzz30(D$S8%(q9i-A$0=D6N>*fZ$R>OJ z9#^l|>;3uu4Zm(TxA*Jq9M`$7=kqb{9p-K23BKONGx@7P#fXpTw{{ImdWg~Y4p|(VSFmL6vZ^JJoJd_MQbe!!xye-{q zk-L^2E{@I~j<>BiylmavZ#z4Q35p1c@^jqs@Nkh568gW_1)bgOg}5VMsv-ynqM~?7 z*C%EEm$#3u?M~Cm(&?o0+P99J@;G%|(N8!22J=^@ocxWxi{6RbC6KjS+M!>+9T{ocF@mgAz58 z#Ve;SVA|8=*&`dr_m(#|dEk})e#0~BiMSk{Y(f9@6n3GyEvu07sRP4muYBV<(JNl5 zM~)onux7sKWHVIZ`mk=K@8|c|YB|Q`f*1_Oke}XbzW>H(|EoR6>WK?App9QA}dDdh?jB#jx3a&r-=Vt9{Y>l*fI(U*yF_=Z^Lyv0pnU@n4gh z-)JOn?aUP>U2vd3$}Da({`t|59G$S9TmuF_c#!)fN58n|T?wNiA|jfU9IkMkaM12s z|50pxP5kapMOc~CW^t#XmfXU+J2$%|19#5L`fp^}eSML4^FsuzlxAKFF zJ{oqx<`AT(IGw(|w^hr8H(iB)X@m1#{x3H*G&RK?#gl26m~NlH{r&Wa$l+GAJSA>x zDfrNVG1M~8ync9jbyZZ#^LIR6QcP4dN;6f8$;`~GX=i=zaGbBoX1K2_zXz^%S9?2W>gH(o)f9}6FO-jnBV2NF!|{0Y`k-12qgsMs z?R@{M19bJ1_5*2FXn!LS6|Dm$_PpkGGIDZqzD{eaRe$P#!s8bi^6za;#K`O|H^lSm zgub}oFut&$u{2yeP!}j&?X~b_jd5-IYo=9W#E|z$AflcqjEQXgB!93HBhxuMG0`wT zP*QBjU$fq8>=g96;GKT{7r0D?%NW7o9$vn1*4^~cr{7X8qezV0&e^fCv90ax8`+wy zuvk-~XLbX3rV`9&zGafWeECxM?e&nlz}+W_i8CzTJAZDc`TgdFr@oh-&TeUGdETM7 z{qA?q;ZHaP$J6$!t?g*RjBn`YdA7XY{ByzRHw9Da3+9!FRWsVs6 z1Bn|qZV-`>Xy<5iFV-IhC8V#n$&%16)bf4t=NzAfGBh;VA-!bN_FRDSZA@Zzl;(l!bnf_$sm1E0Y1l&I-u2HXw3dh5J2A_%+38Z*)o^j&lNav9 z^K>EYDUwgo&x4lFdb#={4!!&V0Ra^g(bD~}OmS?PZ=cW2o!uqza*MmG_d_EsYqN)o=`B{oz4%Tk-O; z3zvjM|67B?Gdjx^(R~ z`YS3V@Wt#wTOW}qVhVcN9T})17d|yKm}>Q&UKE1|TrA`v^obW^f4D;{W0t5mv88J0V-LdZ|$ zmk+;!Eu9~!Pmklerd?GBsAme+=CcF0y=hKP zP5_ibnXS?LkS0|g+|nL13U}_DOTOsrRe4BAEi=06xxcfnqM_kgAY8YG%Ys>9OW^*o#x zIidSsjC}OSa%*`kV6~NpMLsA67BDt87MG>+)TC+3gyuyz`Z>35orMBNI2tKbH@Z0z zoDC(kLu9Hgfk#+4c57?vvV)4UG6(!OB$HH3PrfmOxw$#Vn#spMe>|dDr8g4H9LnIX zJJMv;Y;0`O27mv^xuUKf)z-ZJq`IKQzSF8?AW_7c1R{7U6WR{q`$--4%%pB(ZHy5F6xwYJjCz6O~p zkuEKd?@VtNjtU4aaH~7Wz3~Hi(CGT~1drzAU|?(7 z@Rveq{n()W9TEEumf@h?yLDUR6gz)ruUJ@Qv?W3st=1pz$Al1)qDZ9jflT$U4lIUH znDRcnH0`^m6iHuf@sR)m+<0StK*xenAcE^!^zwM5(D9QeRSysL4_7BDjDtLhNl1<} zGpm`Hu&mGZd3#;{_4-cFJDJ`25;Tb%`-@(76<10>lGMvHj4Lp$7WLn7{NCMN3Dq?R zirdQ=gLk^Tixm@8a{GUD&S<5nD<~icRoHzrhoL+%RCJC^(XQK97xmc`8?Jf?%OCE! zLug*jzxg4hncOd`erMRU75bJ6+PAU-cQeFXtZn032N_)*)K+`57CSKWF z>txt2wz9H%YhEu0;nplnnJ_!z`1QpFYgiOYHkm{y$ZPW@ohb5*W|8~^Ev)~&Ed{(4 zUr@dHWm6KZ==d~$pUq$1k0K)6G&AX@@#(={Y2Kc{fAIF^8#mYZt}SnDOqX=Zaq;u# zwG@6!EyyYW^cn_N?tZ02K|;x>u>QNJ5)cF_HQOXCzt9NmOI-Rz5s^4RrEGzJZoJCO zJVHffH`kkw!ZNh!J{-PSJ+}ib8SSol`g|W8`p!s5Fk<1e)1((G2ywnrxGBIcAzlkV zX_%SYAlbtU3xyy*(c80YeZn0qIm7UG4FN6kOn0Vhd3cD;;-t|iT4HxX>x&8UCsXZ zRBuXL#nf|Sa@O+O-Df7o!q~+D)mlJ>VFXyzG;*+U(R!lkvC_NUVgIEI!@l^`%gvK! z-{$7#93F&)F~eSpqGfLaZjX2v@8?Jq$nD7#YWcajnHhHU!a2QnHir57u%_*QJLSb; zp9aY{8JoQLh+#;Z325r#zxxWEA3S)#2oU}1!p{$nA^T6Zwzh5$^JGIfpNxx(3r$E! zz%V-W=DAkZ`mO&Kt5HCg;_l=f>?CiE|%v9FoV26E?OBX>$n`yHf$4{E*v zZs(Gb86u;kJP&BxDbKjP<5thRXW!oG<#Gm_3vLe6t)nfAzTvFJY+Cq`3)HvP(4)*1 zP-j-w)+V~Okvm@V(`#Ek}XheZHR}Ru6q~G6r#_EW8dO);tz}EIplw?;G(X-aT}wIS<#hXivc`xwze_%l z54Jmlzvmf=m8cz$V~+ioOs>3roB{B_A4M{pTwDNZ`OWKwe2uSOC20tw&Ni#{i$A9q z(bA#}3o|t&uLe|e^6JU9$~xg9p{%ToyYr!HzGw-LH<(cx1a|ycCe+ep>=Q9O z!piDuyICTEg`B9U=*)1fG?WaW01Og~0K|Ue8Ldg_pMeitTpe_-pQ>benSC8;=jP(N z@ARvRhMm0=?#tL>liJ0s#C>z|S4Zb1R-n_ZBT#T=f8;zJu=S|{76$-*e6@P8`z$gY z%X&b?B7p+}an_)~-dtizM{#IA_$I-zfHM4J$+XXKX0X^oWfqjD3QdA^NKtRwgcy00p z83hH`sZ$|QQBlm|NZrowT)PAg0-t_yVYp4HU^lL{2kA>`vi>jr`9RpraaRcT&(?Z{ zW@tlAHVyTOMN!=RaYY31Q03L>_M|H=F2VpRedos;BcWp4EWI@*>IF#-tbJo?B-qqp z2!c{ec0GQO-5aU|{2Cq*I_-nd(C=?=a6#5KJvza&8YS<&$a0^Q`VFMR*3OQ0v6T{A z@SZDV-ni%@6sbQ;Bk7R+<9PfvMMa{8!E$>j98SSU-R{DL{=4BmWk3`RLS{CwmmStn z&$&Q)07kY7MOiAQ(6stF-M)fheGZw~7XAx#$;~ zeFgOU1?obIbw{f7HTWo_TE7cuc_00FpWn199xV=ocgt7i3hSks<^FVC+56M2#cx=I zh3qV`Y9zl|?)0_N9e=Ru5Ig4py&PR=(2?RLsKP!DMBaWAB*Bs}5?KW8L-Fd>_g)J( z@x{<%zE`^2-|5Y3ZF=X87PV z6kRmCe8=ye+}W;|guuLB+qOLq*q%y&-B0tKW>s0PRT;#E#|z^R)w5ffb2aiUci&d?GE908xWWzqm%k9jC_>OuQ?OBF z+2A6*oT-UX8}jK=4_HJr}cSIR;yxw7ojD-B*9m zXdNSa6-s$pF;EB_fTStX-qEqK$L`&`XIK{?31qFYb7^%Xm^a9-BjvW&5l$@B2)Cmj zoPNE4MTUZfN*%7QuBDCxPxSL|N=n}chI59SyYV%lgwL{tm9=%wjZBieKTF5f`^@nZ zG4fu%^HEWhXdbGoQ$A+CI1RvZD%rWtl}YD~Ium?|3ILB(DbH8d&C$M1HpV4(M?r-d zf2t*S>dcwYw{Op)01zPU_GbOz0!u<#S_g=D%9&Rm17tg(b2dHB%6e4c@@0Z-t@LRS zGBV&qY*P*SS2x7oL~$jag1!@v@?V;CqR zlP4n{Kjwzs20Q%T>6a8_p&iiH+dc2-fNY{KK>VXHFoEwhx<8N^H$W}9cmMuuPc8!> zAb87w*>wR`q8jx~g#=>QG-d|~~86r_YL z5Y|6)eVtQ#vbjCKS54?6xjVOgwjaAnux$7Kc9D2%Sp2F@GIBsQL2zNO2E;cd{}tkv zI(kQdtGosUERf)K&?&d0LFf^pk8I?g+1cIgE-;n;`N5$XIH1q?BOXR+FaE%tKb7yQ zCU@TI<~$kT4o5(}=GIJ7FfWU#8vJuI;+(knb68rpgFRm}zgcel3WU`P$Yk$9y+tc5 zeg$IO5?H0EExDOl(o@>X?BK$OupDT!gzbH6R=ab-H#$C^_F(DoAO@mesyZC%yESA~ z&Bjj$K|JP7R+cbujGyJsOEQPT^5sKr6m1DY^=H;2b|K)u{@X1!BM;d&f~cOoP^c{! zoo+Ms^)-qpMKUYGA3ydisQbEzT((14ge?%z0tE4gJ$XhalD`6(7pnl?GEihm2!N<^ z+H)A_;Siu%h_;8&H?*t0?xNL*!93s+6u$6Bk1EHTWq|F$RZJ>eLZDHIfnEyAMMHLa z&~Fy8pgkX`|IFwb0&lMXo$*mjj6G~8ux(+GkPwu4_Z67V4wef6UgwdJNQCtffon*4 zFV2@O-8V5tA0BYQKfQZgpU3OdJyMB@yDx|6N$DFfN2`)epXETJg6eTfO6mnU-8qSv z@;f~d6bypbOYAgIh$Ax$W#^4%>K7=HOplKfnKtKml@w+(Z-JW_*usFPp3Pz?x> zxp3zPZe--}_Z%&6sLU8X0K}cXy%?rSnf-&_a~3q4s@2L*5{Q!A9oO9O5PjdVtyXS`dv51;iBmg8JyojbzmWODiY&~YVK~jn`6K~wwe-Mu zWgcnd6;(!f1;lH_zu~@U+u1U|_Y!_P`E2d|Jx)7q;N(31Cz*@}4{S5s0m1aZQ~wK# zT!oBp7Eoot)l9StOeFs;PeXj2=PWcZkuBUH-iQGrQ~+{NJ3kAem~sf4&nV`<_qDyD zvTzjv-26iP?j0{CPR_vG0 z#3-n#c_5F4>i51c6kbwIgDRW^APteTW8iSRQv4dxd`GH!viM_YpT&22&H-w}D5$EELve;yBBq`u zlLSh#W{Si|X6KrZtlmQ(q3Yfmst`e-s98f*f;WW$-PcT)`wB{+r2j@$XEhZNIqeE|jl*q7W*A#!~)+n|lOk;n#nth-=|cq=JG0 zA@65k7q`A=9XU8S=&%Ny*8rSs6c=)NsoJLX_+r(ZAZQp0*RLO&XpX_R#Bn+0v?-p-Hg@#+i+L|; zG5e0w&^chw2$GDyMX}2d`=*(96oV?34N>dcLEXMD)!p6Q+R}m>92^wzRBffDrL{r9 zB$T3E#;d)YvF#@g3yny-+S&vtgd^?`*ZQx4vDFQ}$baxX_S6+LM*w7yWIz!>Z5KeS z*8wvE9?^gz0dSK8)K`=nfN+rlvA`lPU(Z)C2C0vVCLmG+Mr#CyGVsBH0mM}|uT!u= z9VnsidU?N1To}bc5H*0VdbfSPCSQb3CI{x_1BjJnK;U$z# ze){yOALu^XqH$P^%=!s@;NHr~>@=i5Y= z1M$$0-|yI@E?juFwdI5F;Z}4~Oj~w8z!6g4V#ir2)Ytc5XkF9uG|j8r*%kUGI5~ks z|JR=a-*>EcLx<&6?$Du7Y|nyrDrl5i7a&B;!$}aue6i!dgm5LnwF?P(A{U7Hp<0fn?13ZsLuqez)UpP=97VxUI4H8j$W&BnI2NN6rj zwd?w6{)>`9`|Eu&6HlK$^#zO-9ue`Wvoi)fJTUe;AX7}6xVgDkppZ!jEzq;EX*xRQ zT}vlTh>u4z44JVZqVaAmrup;Q9a-t88U+lRk}d>_fQWTdk@JWgz8H%|#J-$!g-9$I zbcco-4IL*gC8ZsNge391C!w}l10yND^^E`vpc)klz(+$FyNHMgYLbA|dLK0A`xhK~ zyDD6*5!7jeXM;CUef#z;MK16K;8J(c6y`QwL?q8IWrh#Pyd&J&-yCs2+}}LG#Pq1q z$`a_PU^#Q>M{wlBqoPi8aA2YLuYq2WsGA=zQFfkElrW=>wkWKCAUZtUB?tl)y74Lt zVR&R@CQy3l3@3o_<3b1_iZPbed~`qz;TV0YKVqyw=Ae_y*Uz!xOA z+t4i2g0s#17cRiN$c`R;4Mta1HbXvzDZBxcthYubXTbB}KqY`n_er3OQgh|z%Ki%u zMh*{}!R1!`aHr?i&r;q)5Om+_=bzM)Ss{wuUYdoPhC(So2idThpFe*V1}+Z5={L?E zcdp<4#hEA&Wur$Rq;7X*V4!}tZ*G8}E8_WE7btiuto@_#@C?&xFW@9&QU>R^pU9?0 z{tK(+#>13dSJV(C&$#)DTcM80}%; zTP=fw4j#`ur@S{1brcN%`$YAq_C%5UMkRKYL^S~TMFV#{%!2nly_SZ*etJlOPHrGz zM596jxV$T%kt~C3E&@B7fEdw&oWzD|AdvYe82sy)$?pk|6nj;t0;xyd4*eV8Sce!2 zX+AeLN@mCN>AuCmLaS(M9;kH&bDb2idhmBy#fbw(0ykaZXUad>k`Xoc49t8VqBaeJ zDsDiqihNeAb~cxSW!0WNX-QkGp>kRFoI&37Ylmw^)t`wmO+5MX0@<=_=bwdp#1u&4 zMQ1huAV2br6QF&3%QwCVqe%*2CBm!{si?H2b01^RccJ8}-CoCs) z2r+Ot5wMIT1Ga<#r`Q8dMMWNv!o{42W!U`ZMGyd@D$qMqKk)GItbrf{y^BBrdTPOz z|Mgsb0hr4mQh+-C2%s;h2Y==V#5(%{+dnZ6-hYP5Kp$>mP{+#%6eA$g*FFaEa`hs3 zjbE(o)Q4Q{(8Kk;A!JNv?BwEOuSA#ib?S3BwMyfmRYM5Bmk{tBv7}vKgaC#irD7R{ zKoDB4Q+v*D2|S)f$|D>w0~oHLKpOlRf(e?0HW*QO;kq~^34EpzN-vD0l-?Z_AK6_3 z0Urp6{nl>oV$E8IjQQcn;l6pDbvgLMpu)ftMYXL!^#os-$VPCc<(KUpNLv7Q!8vvF zIp%5`AMy(=9HCL8n}kl4fy#+ac)@;)xQ;7=5c0ZSS4#!FQsIAkS1Q;7M-%{1n?xJH z;1D=841ObEf>i{_dd(XGZo~KPWDyl*OA}gL@1=E-GAW_5c-(c8f1&ix3z?0nv_4bH zhL#ij5yvI!b{C~#M;ZbB-UiHi>eML+($R=FQbLTRck^9uCv50hk zND4u8qD>iw4!})-0Ty<^vH*{h12&y8n>(RsB*NI zlY3H|+nxg_FFLh@KB)qx^Rsh$U%b_!et^dL22{WfYvVFU7{9nUvhon-nb0{Q;F!OA z^C@fuotWfba0Ppd5bCg{>BcDm&yK z0FKv$ng>rq2)&s1S~QC#lrxXTp`-^7h!O-HK_f|$_7;SEJAL|eMIL#F+qdq@ZM*rma0tTzzIu6Q16HYZeCIv5oA=5la9-EYe<4Pzbv+uTjIa z*^EgdM%V&}z`&m>h|dsO){wm(bG?r-ge1#9bhN$!xCa`~DCssyC+iJiXavj`K7bX# z5WW(hHj!kX<|=t{0hPt!KP}5e;K4-dE;$(gU7A2S0Y=L<7VE$_2=Wwgv_VlYwGJfVY_n87k!<6|`4T zQqm9O0kH5*uzS!;QEJqYZzPxvl~xyKFCZ4h?)*4=Qrxixn)vPByd-yYb`U_%RNOVT zvDXP^uOO9C8Up}m1-4XT6Cpy!9TH)2p{KrvvWN~zptlK^q{~TT{$`&ZXouoZ!zc&W z@5&;cE8|Ld^G}aYUa*2mq0dcC+GUPL=+q=Ai%G(k1h7*uO%MS&{1ims_W)2qQD2iW z)7Cx??fvwbGiK|LM%@SvMZ!(xg~qU6Ap7pAG9!42b} zzDmTEBIob^j7Om)Xd_9cs>P#6}Vqj^^{K!O$jSf*N$YI$)Kz24}d8##NB+gOAvD%wW4|L z&|fq@FDFcltEJ9JrXTe0dKI{$khZ*L+Qk;b*_VvcrvB~}1A-My9%D!JXpbhL{gOaJ zTEVPMrK{~>z(|V$nWXFZU)1vV^EN!b7h7DQgOd*A9vEnNOy}d>+*!cE9h=|parO;9-VIJ_S$}?kcs}{U<0*&HGL-V5 z9u}Bh?l6j$o3EQ?xVpOf3QAK#?Lk$zi7Xhi-o@Ed)5uOM;UIew7^WZ)=+ityO#;&Vz=3;suB2 z1GeF}Xu`t>`@2=jZJdy!CO=6?aBm7y!*R~_`)EM^l^*)t(+LyZ>54W8XlZVBWrX~v z&p!3!tw@Pfcwcxl5BMYkaDL=JHYZGp=RC%T%B%+@R4ljty^_C#Ba-EwLwL(mlJq({ zh93cio5s6^+=oe$A*5nOm4nmGx{J1mmH}m!v2@Gd-316*6<{ALC!r*s|M%Hs-xHWs zO?{WcCgBmgU!eMiBj5|Z{O`8n=$74_2(7OjJQ8d(-w5atum z(;zUsiKG9KUoL+dvVvW3G0y4&FGi@?Wd8RwlkQX* zY6$vkEC9&lf9&;fHpw?wcPFA$UrLC2A}lya|Mv=gh=~-b@LGKms{%YYI>`L5$34zQ z>_~LfC{m%68V)Vca-q*ZT0?6R{Wzn9{(e>t#J3S>&({Cl@nkoqv?`B4A3hsKJN|bO zV1VzXu$AQ@=om)pAD9tB^<x%obvhKyC2~xp9 zg1g8&_!Lyu{O{2lo$Q{l0gu4h0%6KC?DwFwF1-`~APq+ohPQPFJ|6xjdtKx%)# z>B=Az@*p{Ef~Cy@;ak`m1t4GlY4kBHI=DKL(S?NdN>tXDs0D!Wp8|1hQHdkylESp@ zn1_G`P3uO#bMc0z|KG?dGW`vufdz969b3o(@#w#+g~^u_;_la^Yt)47DVdN{$fzO;*|y1qmsWFu-X8+-IhB%CYB>PNL< zQvaI;dbk0Mumjhv28>s75?zF{2+GU;Z^8e-BNedX<}Ka|W`y&bRCN890WHO3pGk2- zL@lmV9JjcO!ixX_|F^JcNzAphStLpPKvU}6f!yl5e2hlR0EQ#}pLgKq=Mek=*~uRu ztmG3sx4Ht>1?zkIkjbOiSj$$nOjy8de{ekix43yq9KG|%EdgRfLDM5d=%2;?^GEZu zHiozt&kmPYh@H&?C<%>wFWhsrNz_jZr=P+hwjp?adG9RL*bZ$ImSgAPluNWM2-fKgyp5J&L=Twx|O`yW;WmjK)7Tud5MMrkSBiG0^vj{uMtJ zrOVaEzCS@KW^7Nj#MK^EC-d31@C1>p7j`~o6QCAqcYqV{jn+jIAT}N#tR)O&A}G&> z(-&#LL=sJsXdR4LaW;_*AE`(!Fe4mL+LGb3xA8`5`4b2@u;mxP z9e_m8@~#}=;p~f)!b+k?AYka?9tcf@Flj4G#V*$le+Oew-XWVH&5QtQa}CO0Ob=6O z8^D|w?L54nhuj)1GAtq-enCLL;$vFnfr?IlP0_?|n9_Zekl>*6V{mZy{U8p2R|S#6 zig3=Oer$Y-4sNvOI2raU!7vnEADO#+XBr<8SWtnLAP;;x8#)5*HIq1UnP(AGuIJs4R5)0lG zCA4r!Q{qT?gZ%)Np(%#FGlGt@}F=ACG&j5v4leunhCz?WkD^b1fHIU7R> zGFp06)!fnu69+Igv`D^<2Ij9+>I3HNzd2axcblOiwg=KWF8%7~t}8}Ff`IgIWpeYRY^WrcIO`vF$ik`s z4ydvwdbDAH+obY@^jLD=7+y>4@at3Ndm!6Zo-8}>V&n3yjnAEe5jpH?KlIz3zDa~O z%~`NB+6BkH?70$64gnaY|<8$)3M(rYp zz1`h3f4rbwDBYAi7~vyLHi)cvhOV7*HF6zCTht>-obr+{B%G|P%G04ltwNNvuESsb z@cFM}0MrVu-rlVJ1SpF38rgTPY_06K6cd>VMbj!o#P{Bn*EhgSJn)G9$g zca~v|O$Vtt1#Qse@sHD#P?D-WkicR@F7%}yj*~#a#N-Ht);2NjgmghL>$n%RWCN}R zg4^^I;*k%vshVF4SRgg|h~ZJLITjS)%KU<91xv3Z24@7)5ua6jyFgKv;@=y&tzuGY zh=`Vlv`P}sFHm4(;%dnap+Rfmr}RDrExh5u%TBjob*c-41;+Kc=Xq{qCAL;kvM9vH zdDD<#>8|V|5o8D`Mi;9e@I4)&6`qm7F#|AzCH+c+uu?5|4q)0Tv2u{Gar_{ai^JP= zERY|*Snkxn?@}9oWiUQ_rfZ|J0P)%f1WuzW4_;vA z0xm;P{}VxqhY6`Mn1rc|ri-v?{f+EMvlyQ0J2yH{#nFEr%nKZla5&%caKM&UqxV@f zdA#^X+JkdR%7TC>srFv&LOrN3P==BQxM_b)bzs`T+ig`< zMA}>1+9)C$?^!ZRybqp@NIWGVjo4{mc1c1KHeV0At78U%A%x>#IvNV5QnnJu#nR(6 z2sLyzIF6|b5sOl7bPNm?yJ2ER82#MJY^;0QA*o;=0Xn;aQSDvIzb8nTAYeL(i??ZX zV^=^=jleKY6DfND4mFlx5@;5Ng(3K-z~KLH#H}7EcQ1|5Tye9aXZD6=d!VoTkA_ zI*uPd?gMHTFHBRW2W~Kdo`m`pb_r+Ge(zaEZ`&LQ=}I<`*uI-$omhzMQT}$di<2OJ zSr2z-x_h3RCo|{6_`7wM)M7h%K7erxH1*>5VcY(c4U8lUj-CR_W-DTaI`GxdK}p@ zUb01b`fX2`s<{7jaey>dUjT^DlUX-bT-0Q{eCTV%a~l{qbI^f$V=!5EFkWiN&m!se zfQIYpa@Q5=B$HI1Jo)2@#Po!QZSqn6;bYpoOBH#@TV9Ac!_r%E5bCBukUKUKxaWTR zziG$Klt!11lIC^T4oq}qaJ=u-+m71{ysOzDd@EAR5)F65{8y z{*B^@+|EoUI;4lXMWDQb&v6BG&UQhy)7{$*EG2daOFFG~_rL3{u_s(0rqt6=HTrKB zAl9;YbfU<#kX$K?u?mK8pbFj+T{RlL@h)K4`X-sS72P23C~Cxjk`E)KApZG-L_rTH z4F{)|&brC&xh7`HNfKJD?={;3zrm590M&)tjvcpmFV&pPkkB+{_6`TPe(_N(h|{*9 z+p@^`#0r{L6~V9%*qXOs&Iu%1E$!$rq#Ft2~ju4RG2Kxr=I*SYe zg~$wnWd^>v($nXidUAXBaOLrHBBn>PKA$VY2pdm*dB!B+!eJh?%?+aucHk4SNVs6( z46%0p%?s%9&!FuohLSc~t#KC|`!xxO$E>eum30^EQM?dn@&;S%028RH*rAUdZRB!6 z+e82!)ZRfrx|35;p?W$0&C+l{tZOh2GrF+w6}lQwD4EvArxsfHM6F(eV`obVXHp2t z{uWSw$VYS~-AHlsqxN4}ftFdQ=s7Zkm_);=NK|cv9{|2-XB;RJGxgc6w7YT5@`pXH zu^*1AzoA59X!iYPslbLCsdW8l`{5n(t(Tm&%l*Na`LC`|ybRQ`T8u4LI z`BNkkbfBapaXUu?(7DVo6le?B8l6!|Y^4;I9Q${}mul9izzYM}`t-=4kl7DkQmZHO zf_Dj6Z1KzFI6xS_D>_<49dCZcu=p;%cvuzBf9th0aUe z`SAAyAn|PV_Hgfh+T2YX+EmJ55(#Z8lfUP=CpsT})~$Pd__W|*)YB)K{ay%+ z_Je`{d1R$d|Bj7~g3IJ< zck9)OXHaBNX6FK<%_8VSK&ZYSqsD2~<9E394G4IPVHawSFTNl@0J(p=S^nUXt}ZQ_ zXXyAf7#CL1Y#t65!h9R>WHJI;d=*wS)wNzfGdx`OYa+V zL2Uxi0*)wvq_G8H626w<;1Ud*k=KlXGCKYK=0Im>A+A{aQ>vswKri{|NhYT22h*RL z@reXwx5*7ZPpr=mbk84;IAc&$t&F(vl9`>%<{f?V&X5EL*1ZUvMnTV1prc2yiU5v2 zkBp>47M1vKI-zGQfUo;*4A?VCEFTU?FD;k-UUMF~hG!8NTumEDcGM@c3{yz7eMTVg z`ubUqa)sHfNcOugualcz&mcDQqKMZM$6Ur7+&1G_aP55p7%ZtWlW*sn_|0*q6()|orUMA`IN|OS!g*!xCQK1X-H}p<7 zSOi>W#v-L&2eHJBf)*hbKPEh+cID5qhA&_!6R^_ZDlXv~9879A$#FVbvd>`BWaZm6 z_Laim{Ycby0ZuZ$?#FxX+;})w^eCVCHo5u1YQhPrm;L}Un;*|OLkI5nry;%_VVTH; z<9|jj@Ss7MiNR-Qv zYqKl-939+usu&}QmR^(y+N>UNZRJitzx4o}^M#)f%g9TyO{IEQa1FyXuL_QgV&btF z-G*a2xY^6yY(58bT@@#$gK0GPiQjGG=(DFwD^jPumEN8#-@}_NxjQxz=HQ!ND4?j^vIVvA95CLKm3Ml`Nb0&NAcC zahKmmN*hj?XB>>4GmER4Io#!w2{=>AqU>pN@5ZOv&Ee$V$9Ar*H6OuUZ5Pkp=x0;l zvSAZyk$8Yaje(nQ+YowmD?koC`2L~KEctgV(d^|0s(T8r-#y^LW^Wwk^jX;X*~)n&lj*xFGwIQ{FpQ$7Z?=e=M|?%@^^-h#NrpLlj5264nj@UjB9xOTLqYiZNw1=7daXxhX+!@U@L*r+Am>8QVzT2+m$3EE zj49S6d*`Nd^Y6NBurnI?Nz~^!+hl%i>Mn5Hn(4e=BGU7X{HidVCbs{3$4zg;;#P&Q z(Zq!`6PScs}d?KYqW*qarTMAPttk$Efe57Xjg~Kb#w85W04T~%=!MlSaJ`;~G zqGBLem3PRwXrs=Z^d=}W&}*O;^{(3 zM|ey+HxfK2}_k-fYUhe}a2d{q$YpQ8*yf0^>qM z+gp&kO5Nw-%XvP6Pgen!w;0zmK}M$Y^EeJGOy;G72O+-Ap5(aYa}r!cerGF-$;WRG zwGJgglJ0Xta{KAFnLFQ-jbx6tO@II927Acp^~%X7YTB%q4?o)=$x$;J z2ChsB#YazbsTgAn_4FD`Z=2R)A3F>YTs_piEto*9_60{YRWOS32~-XuInmn1&$ z=?4xWRY3UP%v|TZ+Qso6o09=&0`#773MiIYDvbRo=+l*Eac5NLB&Dd8drwJdmm*u_Zmovn5XClV=pMeYd*P06oZs|% z*6?6LqM^IPF8T3(1VM6|)}%!=bSYZS_hzyYkdhk25mWa8}2C3~!&` zy}0=+HOJn;Zw zF+1t4&C}*1KrcpU*dG}@k+>i@c2*VFpaE&4bO!suBH+;c!Tj+=9|HT{g7Ka2R^4l^-D|>gdzO^?!rx&u!4@($ zIT3SgM)aQGm$Gl8E1R(x+Q0cDhNVF}x?t4|CmgkCfC;(EnOBiM(8P6EpIej`t?Los zNHxQf_S?>d7GI;@3s5s4x&8-v6HekzU?@)6MDn5TVnush_=y@bmZ}baP15<@TU+C_ zQRHxH2XbcQGbMH=RMEYHNajpu`(7jSB??R;S}cBerm6|m#-l&rUx>kEBAondhpedp z>A!ORJxtnj^;nW$l^Qg&e%7EF*7#}MOGsV*1pg|ov)oYONrNnQ46k^^XRGTo5PfZ2Z+liI0(ZDEM$6YO=G{&f(3L%hYNQMYgHd zV*8I5&0yM^o~^Jvex&5(B=B7IGQi5b08+9$h|BhMoO`lup3`gQaF;{_El~ zNg*7&x^yw8k6_L+ntuL+h=12WrjrPSdl`iF&y$PZhe(I7#uzQ_)|^{k@79!l42mU{ zwc@=S&1D7yj(RydwA}}`UvexwsSc#xpL>JVQJN6Er||4}8J0JNAWq%UIlj~W&B)%x zpLa^gF=v&};?vWouPC{)VNL0UYbkJk#{`U+uKgre2y3{crlwX{2y?eARL#OyPc!Nf z1s1t8ElH(TTs{@OylvTJ6y_yhq%>pJYMu%vw_@EBTORh1@b`JYP6N*scKUCkXs=cd@##ukUc9yuKKQ>n)>{ zh2QnB$q^0u_RWqe7E;r-vLKSQHa#Z9eZ0tr&yBn@sT)`O4@ms=+>iTTzCP!VoW9&R zb`}?<&_#>QC$(4#TkdeS{5mmh@kqfX9Nmt;Q533Bm4IDK)lbov>|i(+-o`@yJ-u`t zgMKNCkNPc4%=PSUq4w(*$8w{}g4c9S z0uScLuT(#GRO+FWvQ2M6&ai)_)(U>)wTW325VCa?R(3s0M0f2^u+!N2>n!b*M22^% zcT;8E#4oAKU;BAyG%NWDV~s-W<)4}UNHujx#r!!*uZKUeM++?*PkHW|_6}Q6-8do| zTKW}X^B!_V6;br4vMn4Gn8f3Cu3yK&x9)VpowWff+_zA~!Hu8Z~@x9#Z|&Cq+qOBV>k)XkfyrzMS1e)>4F1%bf8Fuey?GC%~?MU6cTZnzt^`Do+A10{BO}P!&-ofNKTsT*9qG26Rjk3r4P{& z!&(_hW8Ai!#H)|QbnlS9uLBSDfoqSZ9u@%2@xCwcz%Nk6oAT;25~1On{%7BZ0#5z* zs~!aBD3En;1%gXqGnPMl5P=%Of8MOGvgK{R2IU<_jnRIJK0)BmyWW|AN8F z;jV{bDAOxEzd3B@r+e?h3Y2^Tgfo6pp@Tt$^<3Tgza`S&yW*PWu*G}O8~1XT$vu?Fp3Ome(^t8(c!Ul zoTJZ)eV>Yl^v|&ZHSCLHa#2>v50LFb&U!9<0es5P%&YkC`~u`3z7BRkjzpc-3H)Q! zdw<}tz5#KY3oYn!R4}&E=j5w~rY5`lse#2<_6Q&dX*w(^mC{m)BUx?DB3kI?tgx-H zaZNNG2?#MJU*tB2r+o^brI+nS5?J6mHR-hJkX1xN$b(F-SE>r(uxWRP(1ai9Eh}Kc z{Z{M#3evx!Wz_4U-vVwXfcV>|-Z|`(EWjQ+1#|lIs3S#?L5Dv8$d5W!s2iYP#{j*k z4$w&cW+(8LaRWvRTR@3;7l@!603=j&O%05f8u>K;1oPVOyfN+Cv27n@+6f=?lxL{j zkne^f77SA0QEZ*Bq}M?UsumyN@*`u8c;8FjCrfICaeLo9z0ymd*uyeZC!2ufA1Jw- zANf%ZSQHNRrd|{?7uA2p>UZYu7N8K&u*+K%2XN8Tv8AXf&^H7`@$ZMfpSC}UZUD`9 zpMfa;Zs_0A?_~4rp@H3!S)LlZk9;>7lART{+$WMy1H=z<(19Md+;6;(8X-5$WnR}1@J=fh=Q0H6F=0mdW(-g4Xv#iMn*>3J3eBeMcmpK$;Eq$e8{M5X!*A2^kst=+xY}|YCpn3Cao6H zp(2{>yngg<{lEFHj&!r)G?6@U=%-z6TYx$N5aLOw`beA=fJZWG7FHFrG`f4V)BPHB z!vQxrLDN8DP5`7hl6hDWldba6%tHrRa`9a>7 z@XSE!s%E_$f)PL%09bJX&?d?aAYLW;I*^bR zuItOndtP{w$HxhfgSuJ|4oxx;+JS3dTG4`%F*3V#lOFZopa$5e%Ec-0MUVZmJZY zdG(kI$h6#W{HrA?6t{DUvGIOq*hLj#)W|207g10G=lRx&`zX8%P!EG_Qd9&J8kIpO zm6u|wU{A^{`9-0sZEeWV!RvAWRq4ui&^tn?*<@2B>=)G3i}d8Cm0t_Ax$}gj)@9M& z^mYrZaJi82CqNFZ^!7m!Wq^&u7$0)p25#d$R3SxHD3#g#P!depJAO*gW0(?JWjq+Wbu&j$Nik-Z;W*+8= z|D8}A1RB=>{fYpaZbtQ%SIXk|K^Z2z8mAHr!i_SzVJ^~2UNF_v-M{Rahlh;FJ^7G$ZU?hS>apOR*VDX^1=6FYB6ppG zK2tG6sJ0a;jOV`Xf7by;U{^uTy$|G#-?j!P5qvBHHpsL)!u3g@xweO=1`;fkx7|q* zKC7Ly_boA8zwX*jOmrrf5#fj{KWZ{Z^#}nepnO3k==|G#2f;$Y(RqRI&%nBYLDTQ5 z(+VV$I~IncCX4M$JjD7=*9%kl25X-CR`IVU9tlZkH^pW@1R)Y?diD#ZBq}T8`QU?lG{|Cb#w4Gt(Z(4_is0r_a zzKlreU|@1aO)!z^?UW#5g^`pR<#vnh7(PUHt=FIk-zNOiABed$Z#zZyM0U5to;78U za30<>ns9?rYiv6_G0^Pbky9l<*D42X$)5kWZ6!0e0hMdeFQ*UfB47!?V|$kwk}L3g zoJ*u$rVVuahLmvu<0{3sP1^&{(}IRf;2@Q>5ao9MXja*QaNt<}2*yFy2|m5{{o*8k zQ5-k?i_bWC=lTVFWUE#3J|x6QR6z$Wf}8)=bsM%2 zT2s)$7JE{TXJ-VwU2UU^q3mMh`8MIibN8W+%5jE;@-N44{V$qfz{jU6-l_q!W8pI6rBWPS3lq zI1`<7YCMOLQXPISm1z|(#AQArePR~9A5aEzMj`f{HIST!TP2qgD7{lguxf+bgz-|TJ;2;7xSsFWTmGI zpx-ezj&-MD{$VFtOjF&2Bo%8Q(Pemfzr?4y?6 zfGF}%^hKtq{nLNgFI{7G%AWNZp!qMFX?RGfL4?g)P+c~mTlek6(jyP%1b!h3IjCfT zx#-g+T9chn+m&I1PB|BSjqXd96Jx*4>l`0$O$0?zU=NIV!(!QPpr|SWo|(Wm9H=3g zzt&%g3hIYFh8lbVh+i4Vb~W+t4o+75e^=qu#6bt7^?T!>PvMcWaz&w3I$ujQl?+K@ z;CQ2+(Q$hN<$xd|SjGd4kp&=vW*gerB^MrD%~fZCe&hp^)5{N)udEUa1{kPtRte@r zW~dsK@~6*m)DbC0-vRpR4~{8}q4X7874Btg4Ra$CH9f#WMFQ}vW5U&H@vq3t6CA-$ znnQE`OCVro%zxn)tye;Y%X7IoUlq*+!*yGXQ^E4l+?1{F95eeGr;eGM4&HnDe(dvV zFaFGSa<#qMYWtBB1`Mi21L&?MLPinZx>L(mP4hxgsN_t&!QArToZgDXJ#T68>sPdpf1Xhj65GL76|(CJxBa+i z#L>~wzcDD&2bJ@DzfP+oMkN5tPy$Jc5{fz0-aRK%zTLZw-Yn3uI&RGE_W(z72nYQ7 zk!Ydkb7EPEKKhssI*}XN$#-#b0A`12nmbWgrNgC+%1Zr$?TepF1KTFC zDHON2*;0eO{0VDTSh(&hk1Z^ zj~*2CIYG*k50yabpbO;_5>!D92`bWb(y$Z<YTZn(f&fR@*ef67-1N-GIje%_hrB z1#GpDa`$NGl_gx#4c7ddchq*^BC!?IM3yA3+8Q1dq0ssln+!y_3seNC$-~bD_#%O2 zg;(YA1|xo#3-!!J6!;K;F3Vy1j!;azaH0x_r%!=~^#Sj3F@LC;R@e+gsRueeo8?3j zn_88UqW{bx0lM+;+uHay#JUGCpfrHWYG&hCa&Oi#dSrEiN-+~GQuxs&lC{Mr1F7YRC1j|l|6F#j(uFJ5@T61WEs=awMw z;4TL(mJ~Z0fW&>5&ig0;FTA#kUX3tF%@%sDzWLu|`M!<0@!iN(+bMm7Dg!eRCmAKk zYkg_$g$JmqVH9QYR6SSOHwqrcuAM161@}nNBaL`16fs6&+UWRKi$~Mx@(dY;@52gJ zVZV3~Jo!>R?a=RAtqT_gnYN3JUf1DNeQqOXfF(x};nk=xshx>n!p*0_CGrKtq^%4f zXUP_RxJ`GCg3NWY$e}JAib<#lDGQXYS zF;)B@V>j1&FmBgLU|bkB94r{NP@qpXeN5yr3h)=VgYE%72r>F=pP&EH8F_NyD;AF{8C(DFtlO(mGPmI9K8EgYE=9Mr{@-Ju5X^`d0LXQ|)_$v* zllP?mL(-YkSevQRNO;(Y`SSW@McoRF$+~M+-P99FqYGJP59%CM`Ieftoq77`?^E7G zE>o!9O1R%JAw3e}(@%HI=QRAh-N9{e+ zjPkwg@F;3qaIK6cpJ?U`3God~nZ|nyG%3)mU5LzR-sHJD?qv0u5r(!9W(lcLdw9c* zfIX4EQhC10Z~Dx|4e1mbr9(EqcUh~eT|S=8E}yYS>tlNkUU|>&TuDWmb8a&+0I)T* zV#l^+>!^u#I24D~lH^ak-7m7fyP+@5t5&=etepVl^BXUnX}c=Dj$0+5$Uy=YGrcbV z1)K~+p{HsjxFFhb40Lw#Vy2kf2H@`B%)TN{(5^S3QKTXVYG~-g!G1CWwN`(>wmCdJ zge zf3O$?z8?wHM|tHVk&j=IvR?(fAFyn_V+2tyFMzQGC3*3fnHawMsbkEYYs@pr@O&VSa(;jTmjy4POblPBxLXF=QUR0pbtHr9*GH`86~U>D`>DB`GK#K$szm zBga~rXtF4nSHE%rrY@e+o!K;y2r-c#mzLn$6QKS8(m9pdcWCWL)ija^wu~9=s$ogj zYA+%Clvw0EHc_d*o*VF~H%Q?5Xj=K?w@%O53d5!QJwV963w-^SKxcS={P2iX-nS2r zJ+S0Bf#UQcXvnq4n!iIIvmXvk^s%muTr9!j1dy-w@sti0 zVF;!)Hl$7E<0yX~p4(Na%6Rl&agqX|Fr|vCHv)X#`vJC8Y=sFp$KbXL4J#s+EaB=m zQ1rhFjVsc{&e|qnuE6{hmSIDd&d-@6T9iyJjpnZ=9yvP5Dc=Crkk`q{DV6iXA{7l2 zQzYQf(6lE5uh_akyb2a#FYfwDtJ0ZN{f>!180j=9j`!n>fdgurC+8U-X_=!yQ&9sM z>7BUjyAwQAvdBLO8PSOXZ3gSsVIgbVbu*ZkPCMd*by%5KlC|1r+d1cvJB{jvA$RiP zWc4-Om9ruNTpN6Rn?vn=t5rB|EL#KlFml|{>Vj=m+ecWn)80DYw&RZ+&Sqf&yc0zA zOZ?f*ZCik#)S3^S+7$rnPsmaHccRea@GMFIwt!VMHIojpHsK-n-u`@GzGh6YRrTke zEyr29JwD$VP+3-vTY?E)7J(9P;Hq_Lo>KC+{g&ol+u`_J3wEWWUHEx@!n+<(z{Uf5 z5^|q8zp*oo!CK_?{M1$rln5o_@iu!4@$4(Vilw`XWO@>NKl}8OUfNANpM@s+*&111 zD94YsXB;h`EUT^cJ6G7Q_B(YG^GfR5omD&dq36(C$R#JruaM!&hzvhVNOTGX^~T4_ z&mC0hAO-e=Fp^=(CHu)a!I_I_>#64|(_NoG8BpwpQOEF6%}|P6FYfoXBSB?-ki>q} z2Zj%TX3@J^HQAVfLb~XieLDb=Ts;o0Ty*H8u0$+S#9pL&zu&6vs3C!!rtDK)OrDwr zS2ydKKU~)gOGej!o*D~m#&;fwT-!)!u!&=~2s(e_T>nF!n%2BYSamgf_m$L#n-8UF zKaELu!v(m?B7Is~iMNZf>j|%O&c~Xi3nrQu`pml+TMH=xGig<pdbm(z~ z{b4_hW3c+fu9S2WWkfsFHFa_0)u5>3tFKB$NC@y47RjkfA?vVFR5b6VPa|Mmxt>m) z{(5rM6M*5WN6gPYRR*OeLU$1t%0CSg^`>82M8=u_tXDF}qJpL0Cmg}-z#}qC>psWO zuaV1j$*w@O89?EBI{bZ09?g& zcus&!ee~5c_}q-g@u3C(*IhK19}KoiMM$xlnUyd^DH|2e=RE7o`$Ii=+770`>#PCJ z+q^92)ntalY%p`?;sJ7#vSwa2 zBA5V0LIxJSMxh!{gttiOX-%z|59YW6(4}vct*P6NY!wz-7!42X+7{e93;hxMPj4YJqD`W#DM0qsILEtL%!eKGXk@c> zcnV)kkA;%@VhJNIfV1?f&G+7x{~L^>cL0v&sXmnpZ+OLroKNzqS75|BGzJZEr*|+a z>6G(`wd zH^N)tW*`;|1h&>c$5TwHfoK5cu|TM@c5i#Hpd-Z7&+#`8O9$7HrvKby^}o+D#yuz3 z(V4(&iYXuAF=8E-(t%i>w9BrUGig<=@*iU%sEm(F_(288Q2h_!fx_~0!I4UH0#ItK z>3Pi4{Re0Q(+~THbHbLt0l^kg^Y3yABV7Re^Y~)=Cc2ogEeJgCg9KB>{0ZbsluF>^ zkL7P2{dVdX)A_K9@nq1l^UxrP%V>81aEovo+}H?XxqlS%kpfwy(Anz;(RA^<=aF2x z+Lt<*0VH7OM@A_5zwX}G)IJU0!O$wgTZ2yWUXr9#FUM)p2N4!$MKb3z;l<#T2*&w^BX&OJhP_ zHOhNIJd0%(JiM*A2BvDHn)seL1URS8EdQ1(ICg%aU=#2;lPTojyg%~$j!IHJlXTimknRu$Afx*g@fvVXVjS*M&+mfW04Ja zQiMV+b69P&OwsJHV6wfDzh(rL9I$Vm$JKpm?w9k=owFqU3 z%`VgGU)rza{yoE>772m!`1Z+sv}M6`avPqiE(>!7l>)K3siI7BN(b*f-(yD2fLX?g zOPc+}l~(m8>c%fJS6kiIVq-YaNf77B)KEVBI)bDEj3o*HNxm1h$I$80$3wW8cr~rYI_ELYY{uqB zIaC-GURdRtK^zjP$vt#0J=K++aaf%H4bPuD1BGR}p4@Bd@^`ds-0U)-2K(LWsZ0ym zFp89a{XOltfOEC5wmPCXWPQ+51+1{E3G3)_fpFm!c?^)*Ud`aun`Wo;=2B05YkZ} z)AU81^z;jdRiw2h7UGbtzo_RcW9x+{j@$1C+SgR*)4@FWm)_vnr5@uH#tB3M znG*{T&qCSo&Ep6rC2g%bi3WM*KlPekmQBoSbbvc<`4DqSaJdv@$}E(C5eBmI1zsPy zI$zSo7p7F75|rrH?!DPB<93*i916K!RJJP7HfOK%8Yb1yRO+<7TlI4K>4AU!tgvBq zUCQ7FEfY{uM0ap5!aa_7H63-!9}1?bD_(${Ps2v4`D?@dX!4x>GWI@-k?i|^-bS;k zjARb$oNnL6P4Z&#UWEZyyfwRtJ;gA6R^;uB-c) zH_{7Q6{0?ilq-xpu=DH4>xAxdSK@*x0c7oVQgM0!qxxs-_kY!`vBp}MgwSeKkk0z$ zMSKqi7?b2~o-05rbO4r3ov_t^Qssx5qG{F$f@V&%!sU8P`FZb{$AU!_&pce^tL^$; zgO)0FMgyaHIzmN+uhM5&4Mbce(@;?;Mri~_A!54Ncr>7Xb@Z^GUTg$CRsBbCc(E5t z6glK;)<1Vv%aPg?f7I!r&jC;L}!7Wt1=^pQDjJVj^T(Ix{z=gK7f+L1CbS2OufqCT=&!SYb)JS-G{CP_HR0ZD{QR-j7%lY99J z4F^!(1Vn+$uj1jku{rfY{LTRtvTFcHjzWKg{PPOB4+s1468Q9X?hOxcdP?w*no>B444yk-#w!g8$OT? zFqI!VUoHlgW%<)NpNutAV|*wccCQ$Dg78l{w;h+@hwl5^Uh=2jF@a|b_}`MiF>?80 z!Yz3j!_JXLqNywGNLAuDGS^O6EV@j)ufYJwOW1k7xj13?Hz{db+Rh&&wl0Tmf&F zCU@iZ4{@w6$6WaJ9?>o)-mVwrVLO2pLT4_L7wOp$x{bM(;T&4zm^8jCv|P<<$L+g) z=JgM)Jx5shzN8kuA0OZ-LFzF;T(hG3x=ux<C?93^3U51?@?nW z6QD6Kn6}{zhns(d7?C&UVF4=V5sq`QBD1M9yUL5Sl~3jQj@d<7{~QS$_2LnE;5I9| z{VT8?>2#njMYb56FuN4}N~MfIP>2Bh*o64;eUDOhb2Kr#CFQq_F)b%V7gh+aufCXn zbjk|X&1hz`NVrQBUODAH3fvF6Wk$>qq`ZAk@>Z?OKN#+y{~63x8@x29mwRkN;EcQX zeet)ZnXj(F=lXm$ZUXk=eF9+3ZV!;C#!~fEg`2iv7f3<12NcjYz{77oRqm&y7(9AEG0=Tmx z6OUg^+5~$**O)q1*55!6+`(?}81B=3s_hx6{j`3Lx)Jl2ZwzQ~PP+{gEVYVBi zX3~h(*WHu=V)wwxBv&5d%cp=*{vH$-GYimC2_^3FBT>2Lbg-T2phVsE7KnT^}*_}rEBq-MU|CQ5J=h2&%b%ry*fd7YB#!z= z&!~8OdFH{v`rl0Ew(nRX9jr5|qymUqHQJhvLmU8*sXZ>RP^}1QX#+ia)jE;?(o&5> z?;(*ItRoXE#TneKX=)F$(@LV<>N{@@^j<8T>t5JqcI|U;|N|_G*>Ty0dIgNeO9jIJv{Bd-3;r66osB_ zRA<%=lt$vlzukULH2}*3odXB~jOamSUCUZZLWIjFUjlcu?U?@zri!)9(DwbXe$6by zsF9#hO7154gOyrCI3*Y>HOaOkPkG*?Z`Rs8$9fhwvM8TeUY{(n72+Oo{5=an%PwpW zw}WLU_-cWVb+OS049hw*av7}4H}UGT%`zQ{c9nGhe}T^$OdS8|-Hm7?LARZ|ucKyM zMs3d4;|=h|JC|?+(n813T{8es%|S~*v&05DW{=~IaZ>F0T0L%4ePsuaV})pp%3U*Q z4wDtW7Nm~Xb34br`_uTmeOD{y>QTqEF=LhleMy}(iy{P&pYXz3y`b3%5oCcg zIq5E78DyfyWRhB?{f>gyx4{k3uBl!3yOqeLo{2|~DVg!_5@?OSfAQzP&=w(g>Pv%_mMVihVELD8 z0#V*+?iNy*FBEZ6UU3*%YyE`6W&PhklfcaZ5wtsW$f*XVve zW`Lg;gP`LkZ=o2Y?S(p$ir#Jmq;j}c+XOsrY~VP zYGHy&EXA&z8jC##qf-8uW`3g6|2+*n@O>Btd({GU9Vf-0G7}Y21`L~@D&P1Nbi3~HimU($0>bDl_7TUmfz%N$Iyt=kl4ew71X1`T`S;L`@8ZS1 zn+y{0eRuf;HtSjEY*jP^$?&HbI1P-msJ*Eb1UG!|h5Ufi8(2^FuAAHGdK{oxwU@Fsh}FGn2r7trN_U;pfJIYOhwBP+);IF+Fp-7LeWT!3EbS0m>N}*WUJKq@($hl#OZS^4ub4c@9};Y%n-QnFT<*i8_xy@ zH|OQMcrO}peK-}i9*^2pn-v-|bG-E#&?OQc|C@|X9jYnc4Ux&3I1399H>(TRjd#{= zyCL1U9zwdRWsk@9xtaq2vJ1IP9gB;H^2u3^8_aJ%R>l8oJ<|rY&W>JkH%fm z(w6XUM6rJV`(2Q+Y#9i5$w>_WTY(?-FkHUZCt*&*>BZ^n`hbCg0l<*o+eBt8p`v;W zC&3QAV6L_b&rDp87Vceq#%4Ogy<|^&m%S+l2@HF00|uE zXDEjwx`DEe84z-0?w&M$qqx?fJ%)ft$^q{xUn~4`p4;c|t8jPS)J;Qp7flVpt##S* zqXUPpkyTuUXa;k;mUiYIsNwyfLU`b5Zm}vq_6{Orf7VXxpD>md*y6FbvfoHg);gsh z-rHCvsU>&Z@>3%<6bc0s=WMZ9Mb`d5Er4MWEFg~~JRxO!46G0yuYsvR8RRM-LKASK z?u`)bW)fYmXGZK~VTQDTAW^(xIoMt6AR{KroXY&n4L z%y(-1$M?ap_2H$KnjdLOf8!ylz}4NWxBbw`3fS7T!rN^*TX-6?*#HwnDQ_-sm_Q$3 zs!BWD!5()_LK^({4zKd2aOb*l5dYj(T34>Wwyj&d zb5*76ZO~pPFH-yMb+7u3GO|s?cX>L>{J>%TCwVN%1>&ynI-%t^KtV_C17uR9Pi;+c zMTY!U2lrP)hbRfXfNPB4T_Q$V@bxQ#A2AntE*#pi^?vg&M%nWbz)xEwR1&h9y4+;g z<8Y;gfal}i1HfaLL`QXBO9Yh$aV^z|AZ!X*$4yMW=ANNxF@MBM1C>^=TU**;zXFCg znjNAii(n+YNasQ$zWxim<91I<_J-rYKskDJTV~>4%^lk1#GIjP+P~ZT0-co(Vj@pN zRr`WHudnPRna_w8BW7T2y9Mo zccxCu1dAsCBSaV^qlQ42nC3~A+-+^Jw7Dx;6r`y2-spj>%ok3gYr6Mlp@6F&Piw(0 zbH_StGfhRHbk8)hu=~GQ=LX*X6Ib-@P#2@o(R`)&=Awpx<;i=;QA6t6$B#v5AD;xD ztnhyh?@Cps%(w}XCj1l$G>UUUK}CHOEf&lX8o$2XZGTRdd##%6n`~YCKoC)ZO~Nh` z`(N!)=zq7Bg4I*dBPM3hn>TBECGt4BJ;i52p}&D8;*LVu%i2L z+U#8g#CInz+HtX_VdOUughq%!HNxd5D zv7cdYZ}v3RR)CA_&#(VsSA1mJ5F7e<*Jlk7ARDmlR2;sx zU7&6p&TUv~I-UsXRCp71RKxrW-H%O{RnQ;wP&756=tl`7wV91Pp(qFjI!7GV5i!-U z%BMa|P0hv*{O!rOK8j(~*Wuvo#r^IayRqf!lSOk;Axz-ZW`D>;r4S%&WuQ=5IZ8eWTr%HiNRzF3oa#ohz39 zkEgH8ND(7f_ZcqO^P9DJ)al<)yLLC>DpTGoAtIpJv<5+bj;}#wltTDjG516NP%jb+ zlkxnfFYVh4i<~c~AV0IupD7hzXxoP^okKU(fO%U~wBUSE$-GNezKWHLxhV&{How8O z@h>K$b(%S@Y$2VYD6zPsLAkriDU8Y|5Rn^(GV_rAjz86q1AFO*w4;G7R0A204 zFTj-PHh*pZO6Cw4WeJQwc_zortIol6fmeqnk8liK*mBX`exKjQwFG5ph3M`~WXSMn z1KpiAZ=b9=f}~}v<`*Y6Ax%9Y;d*xDhfl81z1Q&XS2N4Y^T8`@cc$Xmx}TPBY@E)X zCya~Z&5Z^|HxFldNOWm|06WmW_u1^wdLB(@|N7#)7T$?C=F_v3&f~AtP?9d7pNzuo z`)wka3uXA<*=S40T=9Q3h-}@%I$)1+QdZCsMqrUIK>^VUaKZf_>lHhbkj(8pkYM&I*VOxpvzH@m&{78y6l<<|oeN4`W${k!m~`*Lop#FNrc zzoAi!z;n;EpLY4uEwQJQU0y=T`pa2bngMgW1T6E)hz_N|dlg_R#hb?7+J4_0LBWvV9W-?F^+{o;dhr z0HZcjfuS3yic>m(Yu(9-59`dR$6;g5QV9$jf3bM={_7C^u2Gcv(>LIBrT)vWGFv79 zBn17Zp^E3z_+4x6o>ov7t}e^i3*Z~@mEDv-<>C7$=eSL~`%n<;x_5y0pQB7^bzra+Iw^3?ut|@?1J>a_zXQ?_F{qW`w zV%7tZPyu9x7_xzvuY=4ogbpNp{qA~tI>02|l}QsWWtKAUTtK879D7DfV7phnOaiC| z)yw1^kKbCFCZbq~M_-u^X=DEhSN@UYb_I~Aw#Ls%ysK1wV=3kJA8!Vv?VWcIu_I)w zy;;vM%RGb&aH^ZxIa&!LS@>gH0GVOnbfweLX||{$sf47<6CxWj(L*nM14aS!y=^~Y zd3iYqn5FfLFM%dM4DbtR)lB*(j{ZLPuIi0#XAV(cKRQe7yu;Ot|Rhjwj^<>4}TYu;NeB*2)nMIfEU-q{fx55DkTtBEg zn*|OAoX#=G3_nR;8`mfnkSu{j9VJ0wOHUKX**M@T=z&3T445(?SESs}4OUxR(`K44SG=NFP&z&iau% zM7fDAe1>{|tz8uFA!OegE$n{FYM(s|w=zWOttca}m_#6>*Md91r2-2DzRghrhHC<| zjmb$a=K<$FW<2>Rb706p7S=QaqzNaN6p~!xLcU>pst)Nh(ru`fPRdtz$o&nS932!r= z3#H&Rv%!7IVsSjyF?Vd+ezn>C^j^$;ZSDC@!XU z2RdLZeY|^^R_c zj|Mr1W@2q;ceTW(_w`J*-w-yXqofXmYG{-pEG5Eve1B6MyL1$7IS^rrk8(!57NQT* zcLC3}v~6q8Bxdsou^lii&kw|h&`rS1M*&v|=;-zaybj(*${DqPCw-e}Mg{Y6g%NC< z3WA}hg-G2xjA4lqgc|gcYVw$^C;X(b{~Wc&>%iUSw=;pCcI){wat=LbRUv-u?^;1Y zQ*J{HCy7$iKJ9;4_2bor!isWFNG~bI(85gb*%&gLS=O@p2 ztL+4BD^~lmNPs1^(@}KTY(T-k;#fiY4`g%qoF;*-hkX-&(yspmAHg&*;E312U^3s8 z;}oD6Qh{xEfr&PIfd7su;4hUrVi6G;$?)-G?}j6sU|o!QN9%7m1=d(?X7F61f^UL` zGs@a7{yzg*!jH0>*?dfztKW5;g7MmncYD;s&l^2bc`=M9=*S|XDGhEeRitU7nh81R zTuzUWG!amTA26=%Iw?k8kYDQJe|!}&(R*d`C~t}qEVXTWN7&`_O>29T<$Ng+BEw7) zhJ5f{$0NGN&E2&6Y)hy8gG`L*F8lM=2>9!%8+QUty&;x>xx#vYCclYvoYJ_fpIRVf zwapWlW-=;p#EgxDlkpLlOM>ENMJkz`XN&n*uZP`k)NQ8w_G{=QY}~k7vHB(cj)(PV zZbB11kKO+~f6eXf!Q$;H$o#^ovD01gw`vL#XXr9K@=%_^)(JlAf*i9ru6 zm`MOTA4OtQ-*6nVUameD?lgapHDmPI(^QGQTc>j!2yQpuE8~=F!BsdsKpUFCoNECMPr(u#RWyi*t z8HlqV<{0@8#3Bj`Y@ORUyP6GL-m`EnM8$Kv_l z66{$9HW2ihPC0$Klr1av+@FTLtTT#;Qz3LB-O#hzss7O@ahs0mPxv!6s7?L5ze+~Y z847?Qt2D{t$5vFpqW|g_C(-5`(nq^ zni4S=hf#*bK~8qnw-Bx-OZcsjrpW|MP!LF3?Z`YU!e&F~ZttCO@LRTwjVSfIm0?u@ zwwUhRZO;+Zuwa>W6=tT{yLD~o#MHGsHf5S`)H9vmE7S>cV)Jo8E3?%8SAwxu#%mOdd+HWfDQBv59^tc3 z>x<7L8{0s)udaH>h-^#f=cYqaG6TzvA;l1o?V#vQaQ4sQQ{5PA6%#24jE+^<6elGI zX^Ar?xyQbCJjjg#SOudti^j2K3U`EveQXUv6>vMzZ4@CB>r-bz0r+1AA9Wcnu(Jr; z=7Vu8Pf*1|`wFJ7$}0R@IN1Ke^H*WHJ8EWRh_<$Tq0(GqaC~@Hsm6cEQEnE^bZGGQ zTQ17s;mgyHy8kMlfg>(bGbz;qUsC1vb-iv!^M(E^g<2>h@!|ifZn1x`yz_uxX6uBE24e#+R zQz7;3z9096!w#gCm|fkT?|I$^CVl5wWX1o^%-EVmDYo*OPmKNDFUfE`sETGAJZ6=4 z(N03To;f_0-4bjxy!d{%2IG$dc~%(=hW!!YbN}yB}LiDF@^Q z+eiwShrFMbRJHcN2z2Sq_g4xQIcW=a`Y%NFB(3|`L&r?z=AUgM;i|l2IsQ*?XW0~I z(*$aqKyZRvaEAcFEokuI1Y2B!6A11Q2<~pd-Q6962X}%?a0qT^c-}hy;MAeEsQs`z z_v}nhPj}CBU#^lU()$?M@b6S{tap4ALN#LIa6e2uGQL_#tYd8xAWdVy=_9PG4y?ft zK-3_$pWFXpVH_Xvx3EW$Mff zYoU-uopF~UL4}vLKYya2LU213wl6wE%+@k{47$K|h;2-C&r@%f**ip~ldH4cPxbGd z&lK9{RWa9!~3`se{R|y^iLvcXj^60-+u7ht9CwCcouN3WOSTE zaVpq$K3&_8hR!&;^hH_r=hoSd=zbW+9Zmo4WWqa}V4^1@4l}RROBJQ4S_@AwUpB{9 zwTPBb+gbhA@2w;2L>qK4B*T=$m+>liF@uEpS;OVpFwgu9lQ^bKPS}M}b_#EUbw%3n z>TP@cJ;~XP17bfLgJ6n;H&1v47fuYZ$<`$1APJ_YVqF@N&gOZHhUO12$4U^r) zvrdMNSt3+ES%of)LGLXr)EE#NSE6XNp5d~zr@o6AGbED|br2AmUL>A?VgGpEydJvn zQT_>P_6|WQJelM5(~seUg8W1N5ov2OegV#y-E!60`3Cj z9p_sUT@*``{icBa*A$<*?V^-l+7`^Rrl{JSE{H1Id5Op21D|DPp7csNOUXz@+K@u( zBi%d{(dzfV9yi-+dGU4077j2Orq?EG@+AR$R%9#{WKaX`nW7JU95A?N!b11RVw5?B?ALS z*l5=4-;g%+hY0myyJ)ET3KG5Uk8=%+hp-6&L1*!t(V1!xmP2n$@1CWGoS-lMmNQDohRa7z1(Zoqn-gsWAH>i22Bt|F*H@Q!jHIMNe;<`@flM@>fDo_YRW~Nz2w)-nbaPE z8!PLMgtPYtp2_Oh2ilbzmQpXwA*XIoXEyub18xtw7S_wOj^%tPdH=wGr0*65iv^dp zBAy?6c)6imM5j^mQ;W)nHrG(t!+{JcGr5~rkU1Gx;q0ftc@4fqyV}pMI@ZVE{k(fV zwNpx&DXT7IR)F?5T*7v}o*uWo)f1*4^(1HNN5!fnGxmp;so|&U#o0}$xem{Vk|iq- z*3&1YSyMEVje>X6s@uvxm4uRF#9#k>`;SS9Kt8qw`90wTj7zHrg!+riuBhEywOGNn z?X0;Y`!XikFmUPSbLQ-=zmY_~F}~=e)xJ5v^W{+CWC$ke&xWI9*<0wOX zi}ES_4W*5iR4u-=#g#1r>L%2E8j*|sH`3A@_a$2T1!zk>rN8eNk=K4#ki4-Tr|5?Y zO!+GS9zP-^jOj&?{a>H(qxW-N;z4;8NwEZTXaV*}Sgtm7L=Dl^amAA9oRVm&XT(*(IIOhKkDXQh})E9&pddiV?aHyP_A9k@! zCS!90+hh6J&X4864$->{eNT>@%`C5nl?|_m;TBcs*lm(5mHCO_FS#jn!zd)T_DT(I zR%SVG>Rit84Oe^$t;~$^?n4AUY+0J-GXga=+e44LQ))rW7g1K0G3EYCiJ$`)Uf?720s>a^jtSjercAZR1xb#8D{w-oKQ+uDUt_8 zHv3NoT089ujt@pqp6sU(B6MUDLtHz$qOm-=GH_Ep*QFOlUt}*jJ1+QbA0a2?)sgZ$ zA#@K%*h6i}Hma)GpJotaIBuF=qpN$@W>rI{E>F29q4a^dMr~?u=4YY$lz$^BE*szL zdg|7D35^Cz1~HHff0o_h|)U3EH3FV|Z@XAP!PR8n@cMWl2%5t7m#_X~Mj4 z6%aBV@sowv1QoV$zo^%zdG!B#7eJ=?f^M3wLqHmmiT_OdN>Is|ZxBcOOd1Pxl0Hiv zIp2}C)D1#Fwo@38J^H3(W<)Nm;6n*{_pVXtR9{}6sg2X>Mf266R+qHzL8#h_< zljoSAg`ex&e#d|WtQW6r1!#O4yG71efW7<3A(e($Xv^1i#l z`uxb6N7P{dRjT{l%}UVe5RV;aDT85{pO*@`1D2JGHvJ{Xoup#0Q-vfjY^l|nh$r7O z!Z6Epz7ieBjwe-o{f;_L3yKlF)30bvptbgMlUCnou>G%2Z{!lqqm&`!IVhW`drGn_ zY$o2xUl$svW-b;~Jt~y97t_$@Ggy=KD9M9Ae(8VgLkmPF^P1e<8w{kU4+iDvDd2eSj$AOaEqE z-&k;p-+BZLR`0>!24v8&r&CqnNhgSv;McZ52o82@&zk7dMiB%Jyo4>o5Qt-XOTN!M zMnNkzyz3dhfi|59ZF4^~^ zR%-UJ!hEs*Sf2<w-TZ?PtsR%abP!p&YhE|qB`s_}^yxJ$<|8<3dgaqT@ zf-}x=j;w_|sm9iM&SV#}$6rz1s zWpC{9q9Eik`%Y=MXft1UxwpD+IO5R<<9)q`qdrWM3PG>An-Fk$L;iYv_=0JENQ%V_ zRw69tgF)iPCD$AOa;T5-lM=Jou4yt2e-b1PXDn_z=JCf$$~JefVD)Zj*2G4wpP~;F zV_`|T+MQ9JPpS=a`vShnB#D)ZK~=UKrJsAOC=J{DEFoJ>H@7D7@$jOnZRl~TZk6{V z9!`8|T0Hiv#D6Ca$Il>wv6xB?PlYo`N_M;0ujSJu$N^nT;wLdDvM$M>%5WUf5VLXl z)mu|g!<}^JCovC)qm|@)4zMxC6G~e+?oxS$Gr7I~vh&_>Jo0FI_eeo9S29aY*2RMz z%8Q_WOM|05lJi&erJNz3T;co$v-Txl@r(rxAF&KGRhC%XOyiA(1G#JiP7QfQNHL#t zr5KiIu-0qLLDUl8_i-b8!JAN?q@P_--`E((LIyxZ?df9GRz;mLy_FiU);ow&hupc% z9M(^B6+S%?qK1ZU4Ao$J!>A=xGbP#xO+0TbTcL#NIr=9FPL-v-%TC z+Cz42Noy^v6^-_btCcAiJoZkRj>BCkpbzPQ@WVF=`xZpt^uy82@+(n_WIFhhs72Pa z{q9G7J!@cFpN2`dg3tO~ndx=5lMlZMpCu-d7prs52=$$iGg+__Uh&Bq8clj5If*WR zdWNG#yss={V1cpV9aCTTJ-3+=mtz@~<&ST#ycWhYiUm>X(a@ZDbd}Y$s7^`+A1<2d zJCHRK{4-jw#j{`Yyg9s0Fsw@vbR#k2A&z24=Lq;Gk2lo4HHHaeoks>ogK|$_!yPFzW}`AsX=z|{CES&>FN=eAlN&3BqvqD zz;V`#p~(Bjt?e1rdi(=3HUux|nda8z+b&5R2$|pStQg6twF}Ini>kh#{@tiUicuLG z4e-A@vtMx(@TUd1hB3ttd>zOY@(^%;Sf8P6#&6S#yw~Pl8ft*&k7HpJqzNmm>>MAH zHzd{%0xroXje4SD2TcM~*}G;IeIPe-g<=YH2LZqG;%)UY^bf@_wi* zNB4w{I4Uo;y{5Jy1k6DUVXAqhZ$vB=k=F1|v%BimLJc9n{fwI<^;AD8{71K%#*2`n zFuI9{Zt4laK}=z0e;%Es_(zB{uFFdtFB4{o$>+m{wSmad9X;HU&Ex`QeM~6D&paQU z-b|vG?WBGd&6xuHLL@X=2enwuxD~;_DQJhnQJ(dl^D9mij@fTCw5yeKZVa3?ryk{R z)kMPbcY)RaX{XpXbN9?B39~>ZFYKAfNn#v=xklyc;l;J9QRCzdf2(#mPXdv#OtWIF z-Mk{zvrMPz0@lOV@utUj=JDr527D&ax5E%k?8^RaGosh?Dq219Im*dgRK7Q_#DZE` z$OH1ijkb0K8&w&c_P(Kv-}BC6rh~eR4Lg6Pi>VRJb62{`MoO< zfxq~tgPTX(eEOTEG%F$1(UeD=QvT1u^FCo`o>}f1X2eY#?2!<%_D}~90W_$Y)lxca)BNeG}M(UI8-}gY&Bw2$yU0su&4i*Ogsty^Mdgpxy6|Fk2P!8 zL1N^iPflgZzc7VJL!A?Rnt#Dr&ZYZ>CdmEQRqWpVbT+Qn4eFcl&}eGBJgVDkFQHm< zRV;#8ySv_$JtEuePibHGNh~cabl(Kz$PfkL;_rN|>H2Aw-$p#-B=Yc6|D)67gK*oA zkABybBRZ-oK`TT-9Vf2FpL_gC7VTrBco;945=eE1tb1&+x8)c0k)~n@h)CZ#nyPr! zNkJ_oOF_9)bdV)He5V*3CrWr_I&bmoRQ8>dWZ6GY;;+}983Z5^M4it%{ei1A=P33UKCh!sL#_)+=HjoowOQNY zxP#-b#%6cek=tP3ygBiGt}gkC2Wy0Yz@H1Gh?D&-v`&3a08z7&tgSPcn~c4nf~afn z@ns%H(~eAG)g}Gqbp0cu!(S1hJx4};8SFzAy8r3}IhZ)lb8%r=OYG13KOug;aUkU^ zr<~ihwE5tdJVBr&9&`}=&U}x=62!CKBvf8Wmyhk?4HqNQR9WcpW|j;0hOC$jkPy+S zd7d*I43?Dc-s|Q;-(yjr{0rC6Lb~ry#ZSWTsx*F0I1x|WJgH#RyISGGIn*su7C6$H zX)sc%|M8o$hw$TTp9W^kG?kOL%h-}$ixS3W{cyb1*f}#6g9;-wix{ID{-F{uE^ydx z+P79>B2$lAvbMz=v09m5wGJMOqD3!)*ht=1x6zaMb z%M2}BUH2wmC6@S$v0R0D|8>NA?FfD;jb~6>za(K@i1g!T(zGyIhn}hJ7v>JmRFgDq zC2!?j=6ZhmdVbBihSo3I#z_e^cYW+2Fo|Nx0}dgnBnX!d@?PocE`CAzbH&D>X_^E1 zWV*Vj|IzWQj5Ed2O&VEu*w$XHfEuKWe>Jq}XgRAZ;xM4?>Fz+sW&OLHbY?dgh$gdX z!9uFDk6N;LD6(7oef&k{>Ux*qnP{gEYMLTp#bzK>`l)(X`{qRV2H zwA}SwB|hAP;Sm(NN|>(B`PC2f!?07FqLpon_B1PY)Gr)W{+mBzowF5LgSaeY$#SZV z5t&yB7iV{3))}(YU6-5ejTeVPy^f;Q&P)vP;?Hm#kJuwRsp)7wWve~y)r42^v(*i` z37#fH-$X8hHF_$_uTT5(Mcd8swO`3F?l!@0N{6EL{8TaG+{aHd{-V~XwFf=fkI6Fp z&)FRulsdS&3YEI#4?m0Ge@HlEcEymsViTV1rVEM{QV7OVDc^WnT`9S&XnM`gy4JHo zR^4taXoS@d2ejzGPc?_fMij`+A7C%(Su78f+sLr>n&8oqC+>+GL} zS;D-Q#Y*F*^5q{t9`5WdU-=GH22iIdO8dSXAqOjvtHjx=ic(2w6r%oDJLQ2D}<)3x$+xR+ z(R>19lg!QlHp@5-Jx?5;^{O6eF6xU>Ut4joWaiQn`Wc0fEsHbOE{B;udqxF~9^R<)|Eh3&A1=*U%}ZDD zO-bn>zjao^Bt12D6s#iS{*+(z75v)-ExV}FYrbD#_h!OPk?X1D3JlCczGu-V_#6R? zAnn{Oudh<|3-7X8sZQpP&Py(mL#FBmv1#OZI3xCKUT1v)BwSdx@Q_zIxFyn&Gr5#< z1tKL0Ff_A3PLWGUrkgx?+JtmSg+W_<4Uy>*PGI*|v2w;D$){uyjii$1Sr+=M10g0Q zyR;!Aj1Q2m5UEgGKO1WFlwoFzh4@QXkn2=*S^dT+pVDWiYcLvhGn99Wp$r!f{L*sG zBp;8QFVsgS)D#S>g?c@pd21$3V8--JWTo}W$i^3Vu6#9?3K$MEYj->30x`Xz6VYjU z+8hl7fB z=vI;8JGy+yiV{6r$qaV#=w9Q^&YrorQm3qU1cg4M7OOB4Y+MX)sZLk5H13?{4Fok_mOlRjqW*iUIjvpsVJkujY;9shRt!b~gXr zzsXI`;`#|oSQ>r?E#ZX0M9c;Uarj_fPhB?r;)XWOvA&-zLnfK%Hi@y^G4Pdt;Pl=* z3KT6l1XOw@N#JGUN14;i<_=)xOH}MHnz-t);0^CUdQ=k}^wQ#IBq`?>EpOV|0^#&} zK5IKrP?^$W_hoZ*z4>DotiqC_K+LjU{CzUr&JO;3F)^Ar{(+JqMgo(jolmvbp?u-t ztUL&)=fAB->sy@K z5miS*9Bj7%yQ@x@z=F?vc(y`WSeof~k1G@d`(1mR? z_CaVQ6o5hc@ZbTMl8Zbl9Mz?z1N-0nT1W*h*UHswS`Io@3Uv6b*9!SOiYfw9C<@0A zuh(r__@oVkAOoKyVKbBDr;Ai|Y)jUUi!D?OR?t+QoRnAioeF~FU1v(i%M8UJIKZ_l z67i2s3^9?Eay(SQXK1twXtX(LEO#yf_!0lU z{p9dxL8&$P`C8ax#YH<$>1kfINJJTNHPPhszVpP|^Q;-odxy6qnq)?*yoY(*X6EN3KE(7%Dd+n3N>NJV!YZu~o#gfvQco6wn~U$?;NTKJUpu2y zV|C)|LGk^gAxZQB>ReeBd&CP=^=UhmFQg3yknUL( zGF12ct41mH0-BQnhbtaARjY|brG$RkoNls^e%73Bx{&_2c@#BL&G@)UUERYfL@fJL zzr(EFS;iHuF_rPpv!lylnTE1~UE9CN4vn61b4_%0{0knx`U964oD!#N?_^5^fjR+u zn~|NexJvh&F!@IAP)luI8M^xVO=FwaRorxxwo;@PyhVJ7VM}ZqHRqPv?B>;-y?cBn zN#a~&%lfX=0uAH6riQEV@zUNg(h1`4cmkaJ-iG(g}{r#Q>goq-Jm+tt|P2!y;*PoqY1i2 zMxst@6c}r5d?cBvJ@iT?ydC8k_d|b^v9I2O($DP8CQSXnZ0e>(w!G-?4Q*GPy#l%5`Aw=tb+E*(OTm(}kAJI5;+Dx&;dS zrE*t%S?ctKeSuvi@jKgeR)r(2(SGX9;wZMGT#u$&M#YPSBbDwJ+vKv7#X^e@ag*-O zim{Vo_^XD6CY=q*%T|bq(thZct(Get{|GL%XV1xk|E!Tgb6?%18I(rn{1wZukPR@6@Kz z=o50n5uK^CJt|rxdeFefZ*9Ac&AHz!aNNp}+a$vwIm-&Q_`hVrb8XWIQhUTS!(U6o zb>UKjV`yy=k6O%#j#|i^ghSI7FRvK}osav{zd5PCYiUZNni~^@ zqYxU`R)5uldBD1X7LNJKOdnjV5mOkiI$fyRsOFpL9xX(MO{`#3R$n#Fo92DyPTFz% zRWk46x3v!W0lvlExKR_Mv#vgm_G8os z2nTx7bWod&f|2GXSXbpTT~wwHfB)M%-K2{;>{r^|>3yA)hTpP6YR3%sY13U%TgAV4 zeVB&7Ps&NALVbWwP^kD|g{RGn*oIXh620Ifn6X%lEXU1S4aT$J)4PW^i^N-Md~|iZ zMGo#&Gwv^ufU)cpqw=lEnKE*J&Skh?#!`JK@o2wg)x=qg0;Y0hN@GYExoTq~38lNs zl{p`x-EPq5@A8F>)m*4f$=74!a>qgg@J^*=J_S$>7eXN^!ZO75Dl&^D9S&?=8`<1E zaNIxSHha!LR9VH|pMN~z?Y$)Fp)|YBvyE%kevTkJa*z?-@XLMO_;w#g=0IjayDd>r z&7H1{HLqK#OK3@GmUmWZzqEIq|Mrt=crKFED^3Pf2I=ns>`1brqSQqx7T8>WW*@kI zJL(J%aIM-j+bpl1W}bIU|7!+?)qDE$Jx8x$rPi^`!s3fcRcMH3c|4)N8AYekHY$f6 z^fWvwtrnVhRDuTW;>&CQL^(b?JA8$7%QzST`7FQ2RBmV%k~2sKz@m|5pV zjvd%kzM};Nh=qkkr5Fa`kLzsrUx@1P{6DzVVBLLBpj=oBt7=)#S|+}|_lgXn05>7B zOt71nhON0$&5VsJy`Q~m7dw?P-P%aogl;4P;YBduM9k$AOh9{5GBU_cbRv{kou;Mg zj23mxYLi8%~JcgKdhZLyQ%_OEg$f5MTj| z)o`Y`ocFr9AeG;l#i&25%Zdvd4{v}vQKuUqQ~gQQ6@d$#u4C5)@6rZIVAUG~t95W_ z$PgfftrH?K`DQ^8;UTc&zCaBZKq*qNv+P`VJbPC5AiJUqoPLlRZ+u;^+v2o-egBf| zu+(6?`yCImHlv}p4R{`4v;vl&q|*^I6~1a2VC? z?vENS035UiRD)@Su&U(CWtEq+02`XG3QLNgj+K>`iz^|XQG=_DKu1MIOk5o91ue`2 zN-_Hp8|>afuOX?^BMob4HxKoW7LsbO^fXin2 z$AVSA{=3ue*Q}L}`^prQl>Xp}U#tdQKz+O$0MQzn)AN=Gpx+mqM|^y|NCeBjU)3Wc z$sEao?p!$^BSB1Elmn!k?B*pxuyD}$=7Y<@qewLqn!ufOsY!W^Y(=BC@x)FV(6G`F1e-l5@=gpjhB|-0zXyEnw4=^}$OR%3){Z zr98J8SVOG<lnnBNhN?*+1}p%C`bc-_)Lk$3*Wi8 zxcJA9ALfg54YqnOphEER`H8G6mw|goscuUG$WcuN^~>4pH+u6u7Zw&?ICcVnhD1VQ zA;q(Ly_sTJzTWZtXxoXGKE5kfrtWZ5H+Me9f8yv^D7bpoj)&k6tr*h*Skuwz>7!sA z!eyuzq4{E#j%b*e!d^0vWLev4zudpD)Bq>&bCsb4M$T*9{}K{B&fq~pLas&yqzjFf zPMoAOr&6ozbJ?sBsfL~&`tQH~s(H$sby7$LJ1&1h0V+Cc?qH$K-B|@@@66@b;2>rl z@zTUuJJ~a+m2m^=i_bcCR8~e6sT5S3Pf!3Yz|Y!h!&AP;bDp zy<7DH&TgUF0S`Oq^?_-VUm;; z9Z!6S=%ibIuUTF>xsbo;o`o8-7v&L?k|N{g#`oeIL1{o-O`>vM3j$3FeJxLe4F!0_ zG}P48_~hS9ySqhS?#oY3PP%}UK{`f8%f%P0eeW+fp{j1xIeV~{YwXrV+aJzlM@${2 zc;rI+{3gs%zB;DMQu!QpTGUkonSKF2E|_J84{REou623bZYQFU2?@-ve@`>Z^u!I9 z>;W3bj)&OT%&f-a_A5Zq`vFEU+^F*(&jA4Zng>!)vZWmc_xH2m_oDKgsyE{RI)zjD z2#`F6py_lnMT}rJpa1D;a!C{@%>Oj|D>e$~H~;V7@kry~;Pm$OMaRZY9q+bpgfO~1 z-R>?uwu0xs#rhzE(fkvrJ_>2&lHuAfQ_a(^yJP9YKu1bRO7`26c&~rQ`w9lKzR4Dp zy9O&M5S0kZWh?rl%ip4c%B3S(oYc3kx+l#2NPNI9rVYfeA3&pUD&;HYoRcs3h>Mur zrl6qUl%&N)RMA#FF641pAs)+-$()wBfR{_q)YOz)P=I)-4Y;^q0|_JM#qu%e35<@8 z?t0;uy_5sPj`)NDw{HG&3+R<@45WgVoSb|O3kPS$WUR$_5bHf5D$t*==UIl?#|17> zl9QA1!zIBn`xxLm2d#e= zhoO7rXNRR;t~0ndk)v(>{G!Id59tGt_4#&B{_AB2ba1_e1nA%oITLn|mva{&#e{PB z>y(ku(~Z%x4fhKZ0Z!Aa?DVbV#1u;6z@5JHBt=vSjb>4l3A^<)9Nmr>c9# zOD4>J4Gmc|H?ACWjmO5uiUF6tv%a~RFT?xE^@T(|U8FKNGGYv5MaOyN+eoG`nNO-s zb1>MXy#Qc4e}MUOrOz-+OR1Wy@z<~HEQz5T8yhNKD_}-P{}U`npey7JLG}prQg%+x zlE4+<+wY=#--t~;f=cFgcl!mI)2@`1lnY?S*)|<`i1ASZeXIfXvUA^&-SvFS=g6iZ z6_ZjD>YaWkRDUGdxF7uMr1xL2Uh)KIiq$+oEt9g09`pAwGI&*B+TF2`UM5G`#f1lu z;Cai9UPc#ahty+QTH1zT*T{a0I%PFAoXXLYYuM9K?mx95S-0Y`fSV4ojGRw_s(#^! zMrUM<@$RNg{pDp~WQ6_^9xk};0&J-i?3cz@GQg%|#nmv}R9sR53;>uHKIbOb#;q?J zK}Syks~+Bp=)F0HTU!Re0*?t?j8F;}VE2J>svN*y0WxwClb(~l7ITLAL*&RzSNNw>>!8E*V6NSaa7KANkT&YdZPxmiW z@YDN8kY0z`vND#!Y56W$ZrQE}6)H)NrX0|mL9)4l6&DeQ*_hP@uX>qQUmU%P!ukxd z-`iSnR}5ULl?EUsYBn}D{g(jULY<{XBG1Y1EHMHAum_i@lsa#EfRMyAHuCI%b?6I= z2w3vQzzr36IPHOs%mnMkw*8g{*dXN0%w;pT=?b)&-cP)L07(+5j~d9Z09BJKGmHpE z0ESte7CkGgaJdm4D`W%+z<9m&l48+fLt!_l*)@`==e4l2g#kXOLahY_##vz!0EEYZ zsYXvn_m-2hPItU)#=>H6!?>tP!KN{)%W{9K?_51 literal 0 HcmV?d00001 diff --git a/doc/guide/images_scripts/DFT_Tools_SVO_DFT_energy_contours.png b/doc/guide/images_scripts/DFT_Tools_SVO_DFT_energy_contours.png new file mode 100644 index 0000000000000000000000000000000000000000..423c235e3b85cfa00fa3fe02ac2aa45d7ef61a47 GIT binary patch literal 46301 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

;+IC45C{ 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

!WuXGER;{Y%8iGr+Ykjm795mFiz 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 literal 0 HcmV?d00001 diff --git a/doc/sphinxext/numpydoc/__pycache__/docscrape_sphinx.cpython-310.pyc b/doc/sphinxext/numpydoc/__pycache__/docscrape_sphinx.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69e8f825925ee3109b06f5d9a29ad73d292008bd GIT binary patch literal 4547 zcma)AOLH5?5#E_yEEY=;q9{tTBuhdPGY(V=nZ$8YVkwSYmXb-&RujcnQ=~ zg%@5UP*qk$Gz$EBuMt9#GG>ZuRaH<&>VjHBT~Zg-I_mgaZ(pcOYU4!&RWGY67%Qu* z>K)Xp>YBQax}v_PZmL^&&xLQjz-z3*pzqrYyZy)Q?%~XmH{x%tsg|THwI!ZU@nmHb zN{qx+zmJHikkZY05^hfQPg%xxr7Q)H{a=NU)5j(7TO_~zs z4H0#2k0Dg-1>SzYty7hx?JOt3*R*X#3~!&Q%3StU0J&4B6WM8yQGXAO1MkQmi3i?a zR*r&^4-MspHws9@Ut;Dd#wMCpou&oW)cQcohV8D>-Q4=UL2iSz-POy=I}Du|S(A~o z0uhM~5uAsllWqw}PJh& zymcmeGtsv+nELWH`Emput`S?|P3EgD?hZPgrg=VB$-FaF&f&uTEIWmq>@^ZVQ1XWF zo~?`%J69ER9c$^ZtUWx;HN2s!|DP6@Sqq#2UX*0+J@3xc**sI7W%*NdC%=$4*hwQa zKrK1)Mu5rOAE9-E_LyiTN0J=KEuIJcHox+Z{G;Hgz>-4Ak$)n`pyIx~0y4g}j`kCy zg7U}m^o~!jj3|Hvb@sz><<6bW?9QF)PIWVTMckUF`Sd>Nhz*EJ`wyVyA+u1~SK4vb>L{CfYkY%$`?tcGHThy4vxt(c1cEAjEsrE{&P*4t~g~1 znK26?|3t@`aU{siIYPxT0>j^>sSs}wM3A{o1l?`M93+_AVE@=dKzZ*gNdbl2juk(A zdK0Y>tq-vdmoX3`7z+w5vXVTcn=>3C1Tj}9ywOY-9ZK_FZDDPH>B@At5)O{oFf?9s6yVgI@Irh(WCo}J3 zf1E=~^VV;xLr0}z=1zl+vAH(7+tS&xD`I9QtMw48ISxhe0L7gvh(8e`5z*_qgjcSg zNibe~$|c0E*@fW|It%Q2-?2)$=q%{;5$ke!EX@tqKH#zYa2*9CnjH&)9wkn|>saX5 zZTx6%7BK)viX&0n27X!IguT{Bu(qMgLFNMpEd$`9@f@H(L1rQ1R1k|PCd2x(qwsts zdl~ndy(e$oo@PhwUk(fe7CKsE59YYG7{gGy7tBV$$XVNWZ6(3c67dtO1L7h{JiX2R z!h(D_LhPQcE+XO0d(nbiQBC&1eqb^}Ao#BeC-Dd?z~InD`C7ropHXttxi*=NKgp2+ z_XfEJi~peW$32C{BaORKH?!fRW;?@7q242b=;2|r(@()Xx;fTX3}0VN&D6~>Bj=X~ zXZ@1lY%Uwl5HL1ueI2hs?r=$3?v6U_2`m2*sh9-A3?v5frKkHV-J`S@Ec z$5Dj#+Iq~AEl8gFQFQtk&uhAC&b|ZrYr|f2xGa27)?fPOj}SDUQSmty^9v5QXd6Q} zk3OE)q*w&-dF0%8n_Y<2q^-F3O}|;|hR)-eFZdD@8BP9~3hJFYc0LAX*Pw6ELHzIr zobho7L_{%VC5}Y*V(uaLQ-4EA^h-Go*Re1+l#iZN0mU07kOXRZfM`_6aobekcL9=# zP{psoTZ~{FqtSQx@Ig)Q`BfgC6lq^1p=czJ3Cth)jncF#PXVbk~%`|Q9;bKAHF#NW_pRP7U z?x4LXF5zxVbhg2>$IYDgU4WavJ}QtVRT8Hn{mUb}g@SHkAwLo7K)S0)MMN^j5i^=L zm-TwBY^BlWujrahD)vy=5;k<7&xX>4A%7X-3M<9hI=yL|1&wA5v(bHL=tsm~z718q N4V>)tbltD`{{x$s@BaV* literal 0 HcmV?d00001 diff --git a/doc/sphinxext/numpydoc/__pycache__/numpydoc.cpython-310.pyc b/doc/sphinxext/numpydoc/__pycache__/numpydoc.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3a661dcccabe500f2bbcb7f5cdb02efe30475243 GIT binary patch literal 3418 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 C!TQ1g literal 0 HcmV?d00001 diff --git a/doc/sphinxext/sphinx_autorun/__pycache__/version.cpython-310.pyc b/doc/sphinxext/sphinx_autorun/__pycache__/version.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe76738fc3db9cafc29558d01348ff914ebb47d1 GIT binary patch literal 183 zcmd1j<>g`kg4f2DDJ4MqF^Gc<7=auIATH(r5-AK(3@MDk44O<;tcH3(=%>kei@hwh zs5mn}ZzV$!6HpD9_~ogek)NBYpO|H6WNB)t9}?sl7_6U?RuW&5pPy5#S6q~=pOT-f vUtExpnOBioQ37SfCzh7v7nSDeL(SAHsJz8tlbfGXnv-e=a!N7C3Jzufr`;|Y literal 0 HcmV?d00001 diff --git a/doc/tutorials/ce-gamma-fscs_wien2k.rst b/doc/tutorials/ce-gamma-fscs_wien2k.rst index cd21ecb3..6cd27640 100644 --- a/doc/tutorials/ce-gamma-fscs_wien2k.rst +++ b/doc/tutorials/ce-gamma-fscs_wien2k.rst @@ -226,7 +226,7 @@ self energy on the real axis:: put it into SK class and then calculated the actual DOS:: - SK.dos_parproj_basis(broadening=broadening) + SK.density_of_states(broadening, proj_type="wien2k") We may first increase the number of **k**-points in BZ to 10000 by executing the Wien2k program :program:`kgen` :: diff --git a/python/triqs_dft_tools/converters/elk.py b/python/triqs_dft_tools/converters/elk.py index 4efe812c..ab11d022 100644 --- a/python/triqs_dft_tools/converters/elk.py +++ b/python/triqs_dft_tools/converters/elk.py @@ -41,7 +41,7 @@ class ElkConverter(ConverterTools,Elk_tools,read_Elk): dft_subgrp='dft_input', symmcorr_subgrp='dft_symmcorr_input', bc_subgrp='dft_bandchar_input', symmpar_subgrp='dft_symmpar_input', bands_subgrp='dft_bands_input', misc_subgrp='dft_misc_input', - transp_subgrp='dft_transp_input',fs_subgrp='dft_fs_input', + transp_subgrp='dft_transp_input',cont_subgrp='dft_contours_input', repacking=False): """ Initialise the class. @@ -88,7 +88,7 @@ class ElkConverter(ConverterTools,Elk_tools,read_Elk): self.bands_subgrp = bands_subgrp self.misc_subgrp = misc_subgrp self.transp_subgrp = transp_subgrp - self.fs_subgrp = fs_subgrp + self.cont_subgrp = cont_subgrp self.fortran_to_replace = {'D': 'E'} # Checks if h5 file is there and repacks it if wanted: @@ -512,17 +512,63 @@ class ElkConverter(ConverterTools,Elk_tools,read_Elk): del ar mpi.report('Converted the band data') - def convert_fs_input(self): + def convert_contours_input(self,kgrid=None,ngrid=None): """ - Reads the appropriate files and stores the data for the FS_subgrp in the hdf5 archive. + Reads the appropriate files and stores the data for the cont_subgrp in the hdf5 archive. + Parameters: + kgrid : size (4,3) double numpy array, optional + Numpy array defining the reciprocal lattice vertices used in the Elk Fermi + surface calculation. Each row has the following meaning: + grid3d[0,:] - origin lattice vertex + grid3d[1,:] - b1 lattice vertex + grid3d[2,:] - b2 lattice vertex + grid3d[3,:] - b3 lattice vertex + ngrid : size (3) integer numpy array, optional + Numpy array for the number of points along each (b1,b2,b3) lattice vertices + + Note that these inputs relate to the plot3d input of Elk. """ - # Read and write only on the master node + if not (mpi.is_master_node()): return filext='_FS.OUT' dft_file='PROJ'+filext mpi.report("Reading %s" % dft_file) + #read the symmetries and k-points first + #read kpoints calculated in the Elk FS calculation + mpi.report("Reading KPOINT_FS.OUT") + [bz_weights,vkl]=read_Elk.read_kpoints(self,filext=filext) + n_k=vkl[:,0].size + #Need lattice symmetries to unfold the irreducible BZ + #Read symmetry files + mpi.report("Reading SYMCRYS.OUT") + [n_symm,spinmat,symlat,tr] = read_Elk.readsym(self) + #generate full vectors for Fermi surface plotting along with index mapping + #to irreducible vector set. + if (ngrid is not None and kgrid is not None): + mpi.report('Using User defined k-mesh') + #check variables are in correct format + if ngrid.size != 3: + assert 0, "The input numpy ngrid is not the required size of 3!" + elif ngrid.dtype != numpy.int_: + assert 0, "The input numpy ngrid is not an array of integers." + elif kgrid.shape != (4,3): + assert 0, "The input numpy kgrid is not the required size of (4x3)!" + #generate full set of k-points with mapping to reduced set + [BZ_vkl, BZ_iknr, BZ_n_k] = Elk_tools.plotpt3d(self,n_k,vkl,n_symm,symlat,kgrid,ngrid) + elif (ngrid is None and kgrid is None): + mpi.report('No grid dimension input for Fermi surface.') + mpi.report('Calculating k-points by folding out irreducible vectors instead if using symmetries.') + mpi.report('Warning! This may not equate to the same set of vectors used to generate the Fermi surface data.') + [BZ_vkl, BZ_iknr, BZ_n_k] = Elk_tools.bzfoldout(self,n_k,vkl,n_symm,symlat) + else: + assert 0, "Either input both ngrid and kgrid numpy arrays or neither." + #return all threads apart from master + if not (mpi.is_master_node()): + return + + # Read and write the following only on the master thread #Energy conversion - Elk uses Hartrees energy_unit = 27.2113850560 # Elk uses hartrees shells=[] @@ -546,29 +592,22 @@ class ElkConverter(ConverterTools,Elk_tools,read_Elk): #read in the eigenvalues used for the FS calculation mpi.report("Reading EIGVAL_FS.OUT and EFERMI.OUT") [en,occ,nstsv]=read_Elk.read_eig(self,filext=filext) - #read kpoints calculated in the Elk FS calculation - mpi.report("Reading KPOINT_FS.OUT") - [bz_weights,vkl]=read_Elk.read_kpoints(self,filext=filext) #read projectors - proj_mat = numpy.zeros([n_k, n_spin_blocs, n_corr_shells, max([crsh['dim'] for crsh in corr_shells]), nstsv], complex) + proj_mat = numpy.zeros([n_k, n_spin_blocs, n_corr_shells, max([crsh['dim'] for crsh in corr_shells]), nstsv], numpy.complex_) mpi.report("Reading projector(s)") for ish in range(n_corr_shells): [n_orbitals,band_window,rep,proj_mat]=read_Elk.read_projector(self,corr_shells,n_spin_blocs,ish,proj_mat,ind,T,basis,filext) - #Need lattice symmetries to unfold the irreducible BZ - #Read symmetry files - mpi.report("Reading SYMCRYS.OUT") - [n_symm,spinmat,symlat,tr] = read_Elk.readsym(self) mpi.report("Reading LATTICE.OUT") - [amat,amatinv,bmat,bmatinv] = read_Elk.readlat(self) + [amat,amatinv,bmat,bmatinv,cell_vol] = read_Elk.readlat(self) #Put eigenvalues into array of eigenvalues for the correlated window #alter arrays for spin-orbit coupling if(SO==1): mat=[] su2=[] [shells,corr_shells,dim_reps,n_orbitals,proj_mat,T,mat]=self.update_so_quatities(n_shells,shells,n_corr_shells,corr_shells,n_inequiv_shells,dim_reps,n_k,n_symm,n_orbitals,proj_mat,T,su2,mat,sym=False) - #reduce n_spin_blocs + #reduce n_spin_blocs n_spin_blocs = SP + 1 - SO #put the energy eigenvalues arrays in TRIQS format @@ -576,79 +615,128 @@ class ElkConverter(ConverterTools,Elk_tools,read_Elk): # Save it to the HDF: ar = HDFArchive(self.hdf_file, 'a') - if not (self.fs_subgrp in ar): - ar.create_group(self.fs_subgrp) + if not (self.cont_subgrp in ar): + ar.create_group(self.cont_subgrp) # The subgroup containing the data. If it does not exist, it is # created. If it exists, the data is overwritten! - things_to_save = ['n_k', 'n_orbitals', 'proj_mat','bmat', - 'hopping', 'vkl','symlat', 'n_symm'] + things_to_save = ['n_k','n_orbitals', 'proj_mat','bmat', + 'BZ_n_k','BZ_iknr','BZ_vkl','hopping'] for it in things_to_save: - ar[self.fs_subgrp][it] = locals()[it] + ar[self.cont_subgrp][it] = locals()[it] del ar - mpi.report('Converted the FS data') + mpi.report('Converted the Contours data') - def dft_band_characters(self): - """ - Reads in the band characters generated in Elk to be used for - PDOS and band character band structure plots. - """ +#commented out for now - unsure using this produces DFT+DMFT PDOS. +# def dft_band_characters(self): +# """ +# Reads in the band-resolved muffin-tin density matrix (band characters) generated in Elk +# to be used for PDOS plots. +# """ - if not (mpi.is_master_node()): - return - mpi.report("Reading BC.OUT") +# #determine file extension +# fileext='.OUT' +# #read number of k-points and eigenstates +# things_to_read = ['n_k','n_orbitals'] +# ar = HDFArchive(self.hdf_file, 'r') +# for it in things_to_read: +# setattr(self, it, ar[self.dft_subgrp][it]) +# del ar - # get needed data from hdf file - # from general info - ar = HDFArchive(self.hdf_file, 'a') - things_to_read = ['SP', 'SO','n_k','n_orbitals'] - for it in things_to_read: - if not hasattr(self, it): - setattr(self, it, ar[self.dft_subgrp][it]) - #from misc info - things_to_read = ['nstsv','band_window'] - for it in things_to_read: - if not hasattr(self, it): - setattr(self, it, ar[self.misc_subgrp][it]) - #from sym info - things_to_read = ['n_atoms'] - symm_subgrp=self.symmcorr_subgrp - for it in things_to_read: - if not hasattr(self, it): - setattr(self, it, ar[symm_subgrp][it]) +# if not (mpi.is_master_node()): +# return +# mpi.report("Reading BC%s"%(fileext)) - #read in band characters - [bc,maxlm] = read_Elk.read_bc(self) - #set up SO bc array - if (self.SO): - tmp = numpy.zeros([2*maxlm,1,self.n_atoms,self.nstsv,self.n_k], float) - #put both spinors into the lm array indices. - tmp[0:maxlm,0,:,:,:]=bc[0:maxlm,0,:,:,:] - tmp[maxlm:2*maxlm,0,:,:,:]=bc[0:maxlm,1,:,:,:] - maxlm=2*maxlm - del bc - bc = tmp - del tmp +# # get needed data from hdf file +# # from general info +# ar = HDFArchive(self.hdf_file, 'a') +# things_to_read = ['SP', 'SO'] +# for it in things_to_read: +# if not hasattr(self, it): +# setattr(self, it, ar[self.dft_subgrp][it]) +# #from misc info +# things_to_read = ['nstsv','band_window'] +# for it in things_to_read: +# if not hasattr(self, it): +# setattr(self, it, ar[self.misc_subgrp][it]) +# #from sym info +# things_to_read = ['n_atoms','perm'] +# symm_subgrp=self.symmcorr_subgrp +# for it in things_to_read: +# if not hasattr(self, it): +# setattr(self, it, ar[symm_subgrp][it]) +# del ar - #reduce bc matrix to band states stored in hdf file - n_spin_blocs=self.SP+1-self.SO - tmp = numpy.zeros([maxlm,n_spin_blocs,self.n_atoms,numpy.max(self.n_orbitals),self.n_k], float) - for ik in range(self.n_k): - for isp in range(n_spin_blocs): - nst=self.n_orbitals[ik,isp] - ibot=self.band_window[isp][ik, 0]-1 - itop=ibot+nst - tmp[:,isp,:,0:nst,ik]=bc[:,isp,:,ibot:itop,ik] - del bc - bc = tmp - del tmp +# #read in band characters +# [bc,maxlm] = read_Elk.read_bc(self,fileext) + #note that bc is the band resolved inner product of the Elk muffin-tin wave functions in + #a diagonal lm basis (by default). These are used in Elk to calculate the DOS in a diagonal + #irreducible lm basis. This band resolved density matrix in the lm basis will be used + #to project to spectral funtion to get the muffin-tin contributions. There will be an + #interstitial contribution (as Elk uses an APW+lo basis) which is the difference between + #the total and summed muffin-tin contributions. Also note that the bc array should be + #symmetrised within Elk. + #general variables +# lmax = int(numpy.sqrt(maxlm)-1) +# n_spin_blocs = self.SP + 1 - self.SO +# so = self.SO + 1 +# #get the sort entry which is just the species index for Elk +# [ns, na, atpos]=read_Elk.read_geometry(self) +# isrt=0 +# sort=numpy.zeros([self.n_atoms], numpy.integer) +# #arrange sort(species) order +# for i in range(ns): +# for ia in range(na[i]): +# sort[isrt]=i +# isrt+=1 +# #updating n_shells to include all the atoms and l used in the Elk calculation. +# n_shells = self.n_atoms * (lmax+1) +# shells = [] +# shell_entries = ['atom', 'sort', 'l', 'dim'] +# for iat in range(self.n_atoms): +# for l in range(lmax+1): +# #sort is not known from Elk outputs +# tmp = [iat+1, sort[iat]+1, l, so*(2*l+1)] +# shells.append({name: int(val) for name, val in zip(shell_entries, tmp)}) +# del tmp, ns, na, atpos, isrt, shell_entries +# #overwrite n_shells and shells +# things_to_save = ['n_shells', 'shells'] +# ar = HDFArchive(self.hdf_file, 'a') +# for it in things_to_save: +# ar[self.dft_subgrp][it] = locals()[it] - things_to_save = ['maxlm', 'bc'] - if not (self.bc_subgrp in ar): - ar.create_group(self.bc_subgrp) - for it in things_to_save: - ar[self.bc_subgrp][it] = locals()[it] - del ar - mpi.report('Converted the band character data') + +# # Initialise P, here a double list of matrices: +# band_dens_muffin = numpy.zeros([self.n_k, n_spin_blocs, n_shells, so*(2*lmax+1), numpy.max(self.n_orbitals)], numpy.float_) +# for ik in range(self.n_k): +# for isp in range(n_spin_blocs): +# ish=0 +# for iat in range(self.n_atoms): +# for l in range(lmax+1): +# #variables for putting subset of bc in proj_mat_all +# lm_min=l**2 +# lm_max=(l+1)**2 +# nst=self.n_orbitals[ik,isp] +# ibot=self.band_window[isp][ik, 0]-1 +# itop=ibot+nst +# dim=l*2+1 + #check use of abs (negative values should be close to 0) +# band_dens_muffin[ik,isp,ish,0:dim,0:nst] = \ +# bc[lm_min:lm_max,isp,iat,ibot:itop,ik] +# if(self.SO==1): +# band_dens_muffin[ik,isp,ish,dim:2*dim,0:nst] = \ +# bc[lm_min:lm_max,1,iat,ibot:itop,ik] +# ish+=1 + +# things_to_save = ['band_dens_muffin'] +# # Save it all to the HDF: +# with HDFArchive(self.hdf_file, 'a') as ar: +# if not (self.bc_subgrp in ar): +# ar.create_group(self.bc_subgrp) +# # The subgroup containing the data. If it does not exist, it is +# # created. If it exists, the data is overwritten! +# things_to_save = ['band_dens_muffin'] +# for it in things_to_save: +# ar[self.bc_subgrp][it] = locals()[it] def convert_transport_input(self): diff --git a/python/triqs_dft_tools/converters/elktools/elk_converter_tools.py b/python/triqs_dft_tools/converters/elktools/elk_converter_tools.py index 97d509b9..c9b6e71e 100644 --- a/python/triqs_dft_tools/converters/elktools/elk_converter_tools.py +++ b/python/triqs_dft_tools/converters/elktools/elk_converter_tools.py @@ -295,4 +295,132 @@ class ElkConverterTools: dy[m1+l,m2+l]=t1*sm #return y-rotation matrix return dy + + def plotpt3d(self,n_k,vkl,n_symm,symlat,grid3d,ngrid): + #import time + import triqs.utility.mpi as mpi + #default vector tolerance used in Elk. This should not be altered. + epslat=1E-6 + tol=int(numpy.log10(1/epslat)) + b = numpy.zeros([3,3], float) + b = grid3d[1:4,:] - grid3d[0,:] + nk = ngrid[0]*ngrid[1]*ngrid[2] + BZvkl = numpy.zeros([nk,3], float) + BZvkl[:,:] = None + vklir = numpy.zeros([3], float) + vklir[:] = None + #array which maps the new vkl to the symmetrically equivalent interface self.vkl + iknr = numpy.zeros([nk], int) + v = numpy.zeros([3], float) + nk_ = 0 + ik = 0 + vklIBZ = [self.v3frac(vkl[ik,:],epslat) for ik in range(n_k)] + vklIBZ = numpy.array(vklIBZ) + #print(vklIBZ) + #st = time.time() + #loop over the number of grid points for each reciprocal lattice + for i2 in range(ngrid[2]): + t2=float(i2)/float(ngrid[2]) + for i1 in range(ngrid[1]): + t1=float(i1)/float(ngrid[1]) + for i0 in range(ngrid[0]): + t0=float(i0)/float(ngrid[0]) + #br = None + #calculate Brillouin zone lattice vector + v = t0*b[0,:]+t1*b[1,:]+t2*b[2,:]+grid3d[0,:] + BZvkl[ik,:] = v.copy() + ik += 1 + + #check if generated points are symmetrically equivalent to interfaced vkl + #Note that this loop is the bottle neck for this routine hence the + #parallelisation. + ikarray = numpy.array(range(nk)) + for ik in mpi.slice_array(ikarray): + #apply translation to reduce back to first Brillouin zone + v = self.v3frac(BZvkl[ik,:].copy(),epslat) + br = None + + if v.round(tol).tolist() in vklIBZ.copy().round(tol).tolist(): + #Find index of v in self.vkl + ikk = vkl.copy().round(tol).tolist().index(v.round(tol).tolist()) + iknr[ik] = ikk + #ikir = numpy.append(ikir,ikk) + #check if v is a irreducible vector and tally these vectors + if v.round(tol).tolist() not in vklir.round(tol).tolist(): + nk_+=1 + vklir = numpy.vstack((vklir,v)) + continue + #if v is not in interface set, see if it's symmetrically equivalent to + #a vector in self.vkl + for isym in range(n_symm): + if numpy.allclose(symlat[isym][:,:],numpy.eye(3)): + continue + v_symm=numpy.matmul(symlat[isym][:,:].transpose(),v) + v_symm=self.v3frac(v_symm,epslat) + if v_symm.round(tol).tolist() in vklIBZ.copy().round(tol).tolist(): + ikk = vkl.copy().round(tol).tolist().index(v_symm.round(tol).tolist()) + #ikir = numpy.append(ikir,ikk) + iknr[ik] = ikk + br = 1 + break + if br == 1: continue + #if v is not symmetrically equivalent, then wrong input mesh. + mpi.report('No symmetrically equavilent vector in interface vkl set') + assert 0, "input grid does not generate interfaced reciprocal vectors" + #collect required variables and arrays (initialised to zero) from all threads. + nk_ = mpi.all_reduce(mpi.world, nk_, lambda x, y: x + y) + iknr = mpi.all_reduce(mpi.world, iknr, lambda x, y: x + y) + + #check that all the vectors from the interface are in this list of vectors + if(nk_!=n_k): + mpi.report('Incorrect number of irreducible vectors with respect to self.vkl ') + mpi.report('%s!=%s'%(nk_,n_k)) + assert 0, "input grid does not generate interfaced reciprocal vectors" + #et = time.time() + #mpi.report(et-st,nk,nk_) + #assert 0, "" + return BZvkl, iknr, nk + + def bzfoldout(self,n_k,vkl,n_symm,symlat): + import triqs.utility.mpi as mpi + epslat=1E-6 + tol=int(numpy.log10(1/epslat)) + #new temporary arrays for expanding irreducible Brillouin zone + iknr = numpy.arange(n_k) + BZvkl = vkl.copy() + vkl2 = numpy.zeros([n_symm,n_k,3], float) + iknr2 = numpy.zeros([n_symm,n_k], int) + vkl2[0,:,:] = vkl[:,:].copy() + iknr2[0,:] = iknr[:].copy() + #expand irreducible Brillouin zone + ikarray = numpy.array(range(n_k)) + for ik in mpi.slice_array(ikarray): + for isym in range(n_symm): + #find point in BZ by symmetry operation + v=numpy.matmul(symlat[isym][:,:].transpose(),vkl[ik,:]) + #shift back in to range [0,1) - Elk specific + #v[:]=self.v3frac(v,epslat) + #alter temporary arrays + vkl2[isym,ik,:] = v[:] + iknr2[isym,ik] = ik + # Collect data from mpi (adding to elements with zeros): + vkl2 = mpi.all_reduce(mpi.world, vkl2, lambda x, y: x + y) + iknr2 = mpi.all_reduce(mpi.world, iknr2, lambda x, y: x + y) + mpi.barrier() + #flatten arrays + BZvkl = vkl2.reshape(n_k*n_symm,3) + iknr = iknr2.reshape(n_k*n_symm) + #remove duplicates with eplats tolerance + [BZvkl,ind]=numpy.unique(BZvkl.round(tol),return_index=True,axis=0) + iknr=iknr[ind] + #new number of k-points + nk=BZvkl.shape[0] + #sort the indices for output in decending order + iksrt=numpy.lexsort(([BZvkl[:,i] for i in range(0,BZvkl.shape[1], 1)])) + #rearrange the vkc and iknr arrays + BZvkl=BZvkl[iksrt] + iknr=iknr[iksrt] + #return new set of lattice vectors, number of vectors and index array which + #maps to original irreducible vector set. + return BZvkl, iknr, nk diff --git a/python/triqs_dft_tools/converters/elktools/elkwrappers/CMakeLists.txt b/python/triqs_dft_tools/converters/elktools/elkwrappers/CMakeLists.txt index c323d191..abbd3203 100644 --- a/python/triqs_dft_tools/converters/elktools/elkwrappers/CMakeLists.txt +++ b/python/triqs_dft_tools/converters/elktools/elkwrappers/CMakeLists.txt @@ -21,9 +21,6 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DESTINATION ${TRIQS_PYTHON_LIB_DEST_ROOT}/${PROJECT_NAME}/converters/elktools FILES_MATCHING PATTERN "*.so" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE PATTERN "CMakeFiles" EXCLUDE) -message(STATUS "foo include dir: ${CMAKE_CURRENT_BINARY_DIR}") -message(STATUS "foo include dir: ${CMAKE_BINARY_DIR}") -message(STATUS "foo include dir: ${TRIQS_PYTHON_LIB_DEST_ROOT}/${PROJECT_NAME}") # user warning message(STATUS "-----------------------------------------------------------------------------") diff --git a/python/triqs_dft_tools/converters/elktools/readElkfiles.py b/python/triqs_dft_tools/converters/elktools/readElkfiles.py index 83970b0d..efc8216c 100644 --- a/python/triqs_dft_tools/converters/elktools/readElkfiles.py +++ b/python/triqs_dft_tools/converters/elktools/readElkfiles.py @@ -621,67 +621,68 @@ class readElkfiles: R.close() return ns, na, atpos -#band character dependent calculations - def read_bc(self): - """ - Read in the ELK generated band characters from BC.OUT - """ +#commented out for now - unsure this will produce DFT+DMFT PDOS +##band character dependent calculations +# def read_bc(self,fileext): +# """ +# Read in the ELK generated band characters from BC.OUT +# """ - #import string - file = 'BC.OUT' - R = self.read_elk_file(file, self.fortran_to_replace) - try: - #no. of kpts and number of orbital - gen_entries = ['maxlm', 'nspinor','natmtot','nstsv','nkpt','irep'] - gen = {name: int(val) for name, val in zip(gen_entries, R)} - #projector lm size - #check the read in information complies with previous read in data - nspinor=self.SP+1 - if(gen['nspinor'] != nspinor): - mpi.report('HDF file nspinor = %s'%nspinor) - mpi.report('BC.OUT nspinor = %s'%gen['nspinor']) - raise IOError("Elk_converter (",file,") : reading nspinor failed!") - return - if(gen['natmtot'] != self.n_atoms): - raise IOError("Elk_converter (",file,") : reading no. of atoms failed!") - return - if(gen['nstsv'] != self.nstsv): - raise IOError("Elk_converter (",file,") : reading all states failed!") - return - if(gen['nkpt'] != self.n_k): - raise IOError("Elk_converter (",file,") : reading kpoints failed failed!") - return - if(gen['irep'] == 0): - raise IOError("Elk_converter (",file,") : Band characters are in spherical hamonics, may have issues with the PDOS!") - return +# #import string +# file = 'BC'+fileext +# R = self.read_elk_file(file, self.fortran_to_replace) +# try: +# #no. of kpts and number of orbital +# gen_entries = ['maxlm', 'nspinor','natmtot','nstsv','nkpt','irep'] +# gen = {name: int(val) for name, val in zip(gen_entries, R)} +# #projector lm size +# #check the read in information complies with previous read in data +# nspinor=self.SP+1 +# if(gen['nspinor'] != nspinor): +# mpi.report('HDF file nspinor = %s'%nspinor) +# mpi.report('BC.OUT nspinor = %s'%gen['nspinor']) +# raise IOError("Elk_converter (",file,") : reading nspinor failed!") +# return +# if(gen['natmtot'] != self.n_atoms): +# raise IOError("Elk_converter (",file,") : reading no. of atoms failed!") +# return +# if(gen['nstsv'] != self.nstsv): +# raise IOError("Elk_converter (",file,") : reading all states failed!") +# return +# if(gen['nkpt'] != self.n_k): +# raise IOError("Elk_converter (",file,") : reading kpoints failed failed!") +# return +# if(gen['irep'] == 0): +# raise IOError("Elk_converter (",file,") : Band characters are in spherical hamonics, may have issues with the PDOS!") +# return - dim=gen['maxlm'] - lmax=numpy.sqrt(dim)-1 - bc = numpy.zeros([dim,nspinor,self.n_atoms,self.nstsv,self.n_k], float) +# dim=gen['maxlm'] +# lmax=numpy.sqrt(dim)-1 +# bc = numpy.zeros([dim,nspinor,self.n_atoms,self.nstsv,self.n_k], float) - for ik in range(0,self.n_k): - for iatom in range(0,self.n_atoms): - for ispn in range(0,nspinor): - entry = ['ispn','ias','is','ia','ik'] - ent = {name: int(val) for name, val in zip(entry, R)} - #k-point index and correlated band window indices - #check read in values - if(ent['ispn'] != ispn+1): - raise IOError("Elk_converter (",file,") : reading ispn failed!") - return - if(ent['ias'] != iatom+1): - raise IOError("Elk_converter (",file,") : reading iatom failed!") - return - if(ent['ik'] != ik+1): - raise IOError("Elk_converter (",file,") : reading ik failed!") - return +# for ik in range(0,self.n_k): +# for iatom in range(0,self.n_atoms): +# for ispn in range(0,nspinor): +# entry = ['ispn','ias','is','ia','ik'] +# ent = {name: int(val) for name, val in zip(entry, R)} +# #k-point index and correlated band window indices +# #check read in values +# if(ent['ispn'] != ispn+1): +# raise IOError("Elk_converter (",file,") : reading ispn failed!") +# return +# if(ent['ias'] != iatom+1): +# raise IOError("Elk_converter (",file,") : reading iatom failed!") +# return +# if(ent['ik'] != ik+1): +# raise IOError("Elk_converter (",file,") : reading ik failed!") +# return - for ist in range(self.nstsv): - for lm in range(dim): - bc[lm,ispn,iatom,ist,ik] = next(R) +# for ist in range(self.nstsv): +# for lm in range(dim): +# bc[lm,ispn,iatom,ist,ik] = next(R) - except StopIteration: # a more explicit error if the file is corrupted. - raise IOError("Elk_converter (read BC.OUT): reading file failed!") - R.close() - return(bc,dim) +# except StopIteration: # a more explicit error if the file is corrupted. +# raise IOError("Elk_converter (read BC.OUT): reading file failed!") +# R.close() +# return(bc,dim) diff --git a/python/triqs_dft_tools/sumk_dft.py b/python/triqs_dft_tools/sumk_dft.py index df47a248..b1b9e036 100644 --- a/python/triqs_dft_tools/sumk_dft.py +++ b/python/triqs_dft_tools/sumk_dft.py @@ -46,7 +46,7 @@ class SumkDFT(object): def __init__(self, hdf_file, h_field=0.0, mesh=None, beta=40, n_iw=1025, use_dft_blocks=False, dft_data='dft_input', symmcorr_data='dft_symmcorr_input', parproj_data='dft_parproj_input', symmpar_data='dft_symmpar_input', bands_data='dft_bands_input', transp_data='dft_transp_input', - misc_data='dft_misc_input',bc_data='dft_bandchar_input',fs_data='dft_fs_input'): + misc_data='dft_misc_input',bc_data='dft_bandchar_input',cont_data='dft_contours_input'): r""" Initialises the class from data previously stored into an hdf5 archive. @@ -102,7 +102,7 @@ class SumkDFT(object): self.transp_data = transp_data self.misc_data = misc_data self.bc_data = bc_data - self.fs_data = fs_data + self.cont_data = cont_data self.h_field = h_field if mesh is None: @@ -534,7 +534,7 @@ class SumkDFT(object): if mesh is None: broadening = 0.01 else: # broadening = 2 * \Delta omega, where \Delta omega is the spacing of omega points - broadening = 2.0 * ((mesh[1] - mesh[0]) / (mesh[2] - 1)) + broadening = 2.0 * ((mesh.omega_max - mesh.omega_min) / (len(mesh) - 1)) # Check if G_latt is present set_up_G_latt = False # Assume not diff --git a/python/triqs_dft_tools/sumk_dft_tools (copy).py b/python/triqs_dft_tools/sumk_dft_tools (copy).py new file mode 100644 index 00000000..cfbb60de --- /dev/null +++ b/python/triqs_dft_tools/sumk_dft_tools (copy).py @@ -0,0 +1,1067 @@ +########################################################################## +# +# TRIQS: a Toolbox for Research in Interacting Quantum Systems +# +# Copyright (C) 2011 by M. Aichhorn, L. Pourovskii, V. Vildosola +# +# TRIQS is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# TRIQS is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# TRIQS. If not, see . +# +########################################################################## +""" +Extension to the SumkDFT class with some analyiss tools +""" + +import sys +from types import * +import numpy +from triqs.gf import * +import triqs.utility.mpi as mpi +from .symmetry import * +from .sumk_dft import SumkDFT +from scipy.integrate import * +from scipy.interpolate import * + +if not hasattr(numpy, 'full'): + # polyfill full for older numpy: + numpy.full = lambda a, f: numpy.zeros(a) + f + +class SumkDFTTools(SumkDFT): + """ + Extends the SumkDFT class with some tools for analysing the data. + """ + + def __init__(self, hdf_file, h_field=0.0, mesh=None, beta=40, n_iw=1025, use_dft_blocks=False, dft_data='dft_input', symmcorr_data='dft_symmcorr_input', + parproj_data='dft_parproj_input', symmpar_data='dft_symmpar_input', bands_data='dft_bands_input', + transp_data='dft_transp_input', misc_data='dft_misc_input'): + """ + Initialisation of the class. Parameters are exactly as for SumKDFT. + """ + + SumkDFT.__init__(self, hdf_file=hdf_file, h_field=h_field, mesh=mesh, beta=beta, n_iw=n_iw, + use_dft_blocks=use_dft_blocks, dft_data=dft_data, symmcorr_data=symmcorr_data, + parproj_data=parproj_data, symmpar_data=symmpar_data, bands_data=bands_data, + transp_data=transp_data, misc_data=misc_data, cont_data=cont_data) + + # Uses .data of only GfReFreq objects. + def dos_wannier_basis(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + """ + Calculates the density of states in the basis of the Wannier functions. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + + Returns + ------- + DOS : Dict of numpy arrays + Contains the full density of states. + DOSproj : Dict of numpy arrays + DOS projected to atoms. + DOSproj_orb : Dict of numpy arrays + DOS projected to atoms and resolved into orbital contributions. + """ + if mesh is None or with_Sigma: + assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" + om_mesh = [x.real for x in self.mesh] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + else: + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + + G_loc = [] + for icrsh in range(self.n_corr_shells): + spn = self.spin_block_names[self.corr_shells[icrsh]['SO']] + glist = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) + for block, block_dim in self.gf_struct_sumk[icrsh]] + G_loc.append( + BlockGf(name_list=spn, block_list=glist, make_copies=False)) + for icrsh in range(self.n_corr_shells): + G_loc[icrsh].zero() + + DOS = {sp: numpy.zeros([n_om], float) + for sp in self.spin_block_names[self.SO]} + DOSproj = [{} for ish in range(self.n_inequiv_shells)] + DOSproj_orb = [{} for ish in range(self.n_inequiv_shells)] + for ish in range(self.n_inequiv_shells): + for sp in self.spin_block_names[self.corr_shells[self.inequiv_to_corr[ish]]['SO']]: + dim = self.corr_shells[self.inequiv_to_corr[ish]]['dim'] + DOSproj[ish][sp] = numpy.zeros([n_om], float) + DOSproj_orb[ish][sp] = numpy.zeros( + [n_om, dim, dim], complex) + + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_w *= self.bz_weights[ik] + + # Non-projected DOS + for iom in range(n_om): + for bname, gf in G_latt_w: + DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ + numpy.pi + + # Projected DOS: + for icrsh in range(self.n_corr_shells): + tmp = G_loc[icrsh].copy() + for bname, gf in tmp: + tmp[bname] << self.downfold(ik, icrsh, bname, G_latt_w[ + bname], gf) # downfolding G + G_loc[icrsh] += tmp + + # Collect data from mpi: + for bname in DOS: + DOS[bname] = mpi.all_reduce( + mpi.world, DOS[bname], lambda x, y: x + y) + for icrsh in range(self.n_corr_shells): + G_loc[icrsh] << mpi.all_reduce( + mpi.world, G_loc[icrsh], lambda x, y: x + y) + mpi.barrier() + + # Symmetrize and rotate to local coord. system if needed: + if self.symm_op != 0: + G_loc = self.symmcorr.symmetrize(G_loc) + if self.use_rotations: + for icrsh in range(self.n_corr_shells): + for bname, gf in G_loc[icrsh]: + G_loc[icrsh][bname] << self.rotloc( + icrsh, gf, direction='toLocal') + + # G_loc can now also be used to look at orbitally-resolved quantities + for ish in range(self.n_inequiv_shells): + for bname, gf in G_loc[self.inequiv_to_corr[ish]]: # loop over spins + DOSproj[ish][bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi + DOSproj_orb[ish][bname][ + :, :, :] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] + + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + f = open('DOS_wann_%s.dat' % sp, 'w') + for iom in range(n_om): + f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.close() + + # Partial + for ish in range(self.n_inequiv_shells): + f = open('DOS_wann_%s_proj%s.dat' % (sp, ish), 'w') + for iom in range(n_om): + f.write("%s %s\n" % + (om_mesh[iom], DOSproj[ish][sp][iom])) + f.close() + + # Orbitally-resolved + for i in range(self.corr_shells[self.inequiv_to_corr[ish]]['dim']): + for j in range(i, self.corr_shells[self.inequiv_to_corr[ish]]['dim']): + f = open('DOS_wann_' + sp + '_proj' + str(ish) + + '_' + str(i) + '_' + str(j) + '.dat', 'w') + for iom in range(n_om): + f.write("%s %s %s\n" % ( + om_mesh[iom], DOSproj_orb[ish][sp][iom, i, j].real,DOSproj_orb[ish][sp][iom, i, j].imag)) + f.close() + + return DOS, DOSproj, DOSproj_orb + + + def dos_wannier_basis_all(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + """ + Calculates the density of states in the basis of the Wannier functions. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + + Returns + ------- + DOS : Dict of numpy arrays + Contains the full density of states. + DOSproj : Dict of numpy arrays + DOS projected to atoms. + DOSproj_orb : Dict of numpy arrays + DOS projected to atoms and resolved into orbital contributions. + """ + if mesh is None or with_Sigma: + assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" + om_mesh = [x.real for x in self.mesh] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + else: + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + + spn = self.spin_block_names[self.SO] + gf_struct_parproj = [[(sp, list(range(self.shells[ish]['dim']))) for sp in spn] + for ish in range(self.n_shells)] + n_local_orbs = self.proj_mat_csc.shape[2] + gf_struct_parproj_all = [[(sp, list(range(n_local_orbs))) for sp in spn]] + + glist_all = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) + for block, block_dim in gf_struct_parproj_all[0]] + G_loc_all = BlockGf(name_list=spn, block_list=glist_all, make_copies=False) + + DOS = {sp: numpy.zeros([n_om], float) + for sp in self.spin_block_names[self.SO]} + DOSproj = {} + DOSproj_orb = {} + + for sp in self.spin_block_names[self.SO]: + dim = n_local_orbs + DOSproj[sp] = numpy.zeros([n_om], float) + DOSproj_orb[sp] = numpy.zeros( + [n_om, dim, dim], complex) + + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_w *= self.bz_weights[ik] + + # Non-projected DOS + for iom in range(n_om): + for bname, gf in G_latt_w: + DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ + numpy.pi + + # Projected DOS: + for bname, gf in G_latt_w: + G_loc_all[bname] << self.downfold(ik, 0, bname, gf, G_loc_all[bname], shells='csc') + # Collect data from mpi: + for bname in DOS: + DOS[bname] = mpi.all_reduce( + mpi.world, DOS[bname], lambda x, y: x + y) + G_loc_all[bname] << mpi.all_reduce( + mpi.world, G_loc_all[bname], lambda x, y: x + y) + mpi.barrier() + + # Symmetrize and rotate to local coord. system if needed: + #if self.symm_op != 0: + # G_loc_all = self.symmcorr.symmetrize(G_loc_all) + + # G_loc can now also be used to look at orbitally-resolved quantities + for bname, gf in G_loc_all: # loop over spins + DOSproj[bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi + DOSproj_orb[bname][:,:,:] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + f = open('DOS_wann_%s.dat' % sp, 'w') + for iom in range(n_om): + f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.close() + + # Partial + f = open('DOS_wann_all_%s_proj.dat' % (sp), 'w') + for iom in range(n_om): + f.write("%s %s\n" % + (om_mesh[iom], DOSproj[sp][iom])) + f.close() + + # Orbitally-resolved + for i in range(n_local_orbs): + for j in range(i, n_local_orbs): + f = open('DOS_wann_all' + sp + '_proj_' + str(i) + '_' + str(j) + '.dat', 'w') + for iom in range(n_om): + f.write("%s %s %s\n" % ( + om_mesh[iom], DOSproj_orb[sp][iom, i, j].real,DOSproj_orb[sp][iom, i, j].imag)) + f.close() + + return DOS, DOSproj, DOSproj_orb + + # Uses .data of only GfReFreq objects. + def dos_parproj_basis(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + """ + Calculates the orbitally-resolved DOS. + Different to dos_Wannier_basis is that here we calculate projections also to non-Wannier projectors, in the + flavour of Wien2k QTL calculatuions. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + + Returns + ------- + DOS : Dict of numpy arrays + Contains the full density of states. + DOSproj : Dict of numpy arrays + DOS projected to atoms. + DOSproj_orb : Dict of numpy arrays + DOS projected to atoms and resolved into orbital contributions. + """ + + things_to_read = ['n_parproj', 'proj_mat_all', + 'rot_mat_all', 'rot_mat_all_time_inv'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.parproj_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + if self.symm_op: + self.symmpar = Symmetry(self.hdf_file, subgroup=self.symmpar_data) + + if mesh is None or with_Sigma: + assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" + om_mesh = [x.real for x in self.mesh] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + else: + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + + G_loc = [] + spn = self.spin_block_names[self.SO] + gf_struct_parproj = [[(sp, self.shells[ish]['dim']) for sp in spn] + for ish in range(self.n_shells)] + for ish in range(self.n_shells): + glist = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) + for block, block_dim in gf_struct_parproj[ish]] + G_loc.append( + BlockGf(name_list=spn, block_list=glist, make_copies=False)) + for ish in range(self.n_shells): + G_loc[ish].zero() + + DOS = {sp: numpy.zeros([n_om], float) + for sp in self.spin_block_names[self.SO]} + DOSproj = [{} for ish in range(self.n_shells)] + DOSproj_orb = [{} for ish in range(self.n_shells)] + for ish in range(self.n_shells): + for sp in self.spin_block_names[self.SO]: + dim = self.shells[ish]['dim'] + DOSproj[ish][sp] = numpy.zeros([n_om], float) + DOSproj_orb[ish][sp] = numpy.zeros( + [n_om, dim, dim], complex) + + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_w *= self.bz_weights[ik] + + # Non-projected DOS + for bname, gf in G_latt_w: + DOS[bname] -= gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi + + # Projected DOS: + for ish in range(self.n_shells): + tmp = G_loc[ish].copy() + for ir in range(self.n_parproj[ish]): + for bname, gf in tmp: + tmp[bname] << self.downfold(ik, ish, bname, G_latt_w[ + bname], gf, shells='all', ir=ir) + G_loc[ish] += tmp + + # Collect data from mpi: + for bname in DOS: + DOS[bname] = mpi.all_reduce( + mpi.world, DOS[bname], lambda x, y: x + y) + for ish in range(self.n_shells): + G_loc[ish] << mpi.all_reduce( + mpi.world, G_loc[ish], lambda x, y: x + y) + mpi.barrier() + + # Symmetrize and rotate to local coord. system if needed: + if self.symm_op != 0: + G_loc = self.symmpar.symmetrize(G_loc) + if self.use_rotations: + for ish in range(self.n_shells): + for bname, gf in G_loc[ish]: + G_loc[ish][bname] << self.rotloc( + ish, gf, direction='toLocal', shells='all') + + # G_loc can now also be used to look at orbitally-resolved quantities + for ish in range(self.n_shells): + for bname, gf in G_loc[ish]: + DOSproj[ish][bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi + DOSproj_orb[ish][bname][ + :, :, :] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] + + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + f = open('DOS_parproj_%s.dat' % sp, 'w') + for iom in range(n_om): + f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.close() + + # Partial + for ish in range(self.n_shells): + f = open('DOS_parproj_%s_proj%s.dat' % (sp, ish), 'w') + for iom in range(n_om): + f.write("%s %s\n" % + (om_mesh[iom], DOSproj[ish][sp][iom])) + f.close() + + # Orbitally-resolved + for i in range(self.shells[ish]['dim']): + for j in range(i, self.shells[ish]['dim']): + f = open('DOS_parproj_' + sp + '_proj' + str(ish) + + '_' + str(i) + '_' + str(j) + '.dat', 'w') + for iom in range(n_om): + f.write("%s %s %s\n" % ( + om_mesh[iom], DOSproj_orb[ish][sp][iom, i, j].real,DOSproj_orb[ish][sp][iom, i, j].imag)) + f.close() + + return DOS, DOSproj, DOSproj_orb + + # Elk total and partial dos calculations + # Uses .data of only GfReFreq objects. + def elk_dos(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True,pdos=False,nk=None): + """ + This calculates the total DOS and the partial DOS (orbital-DOS) from the band characters calculated in Elk. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + pdos : allows the partial density of states to be calculated + nk : diagonal of the occupation function (from the Matsubara Green's function) + in the band basis (has form nk[spn][n_k][n_orbital]) + + Returns + ------- + DOS : Dict of numpy arrays + Contains the full density of states. + pDOS : Dict of numpy arrays + partial (orbital resolved) DOS for each atom. + """ + + if (pdos): + things_to_read = ['maxlm', 'bc'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.bc_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + things_to_read = ['n_atoms'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.symmcorr_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + + if mesh is None or with_Sigma: + assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" + om_mesh = [x.real for x in self.mesh] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + else: + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + if mu is None: + mu = self.chemical_potential + + spn = self.spin_block_names[self.SO] + + DOS = {sp: numpy.zeros([n_om], float) + for sp in self.spin_block_names[self.SO]} + #set up temporary arrays for pdos calculations + if (pdos): + pDOS = {sp: numpy.zeros([self.n_atoms,self.maxlm,n_om], float) + for sp in self.spin_block_names[self.SO]} + ntoi = self.spin_names_to_ind[self.SO] + else: + pDOS = [] + + ikarray = numpy.array(range(self.n_k)) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_w *= self.bz_weights[ik] + if(nk!=None): + for iom in range(n_om): + for bname, gf in G_latt_w: + numpy.fill_diagonal(G_latt_w[bname].data[iom,:,:].imag, nk[bname][ik][:]*G_latt_w[bname].data[iom,:,:].imag.diagonal()) + + # Non-projected DOS + for iom in range(n_om): + for bname, gf in G_latt_w: + DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ + numpy.pi + + + # Partial DOS + if (pdos): + for bname, gf in G_latt_w: + isp=ntoi[bname] + nst=self.n_orbitals[ik,isp] + tmp = numpy.zeros([nst]) + for iom in range(n_om): + #get diagonal spectral function + tmp[:] = -gf.data[iom, :, :].imag.diagonal() / numpy.pi + #calculate the pDOS of all atoms + for iatom in range(self.n_atoms): + bcar=self.bc[:,isp,iatom,0:nst,ik] + pDOS[bname][iatom,:,iom] += numpy.matmul(bcar,tmp) + del tmp + mpi.barrier() + # Collect data from mpi: + for bname in DOS: + DOS[bname] = mpi.all_reduce( + mpi.world, DOS[bname], lambda x, y: x + y) + if (pdos): + for bname in pDOS: + for iatom in range(self.n_atoms): + for lm in range(self.maxlm): + pDOS[bname][iatom,lm,:] = mpi.all_reduce( + mpi.world, pDOS[bname][iatom,lm,:], lambda x, y: x + y) + + + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + f = open('TDOS_%s.dat' % sp, 'w') + for iom in range(n_om): + f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.close() + + # Partial + if (pdos): + for iatom in range(self.n_atoms): + f = open('pDOS_%s_atom_%s.dat' % (sp, iatom), 'w') + for lm in range(self.maxlm): + for iom in range(n_om): + f.write("%s %s\n" % + (om_mesh[iom], pDOS[sp][iatom,lm,iom])) + f.write("\n") + f.close() + + return DOS, pDOS + + # vector manipulation used in Elk for symmetry operations - This is already in elktools, this should + # put somewhere for general use by the converter and this script. + def v3frac(self,v,eps): + #This finds the fractional part of 3-vector v components. This uses the + #same method as in Elk (version 6.2.8) r3fac subroutine. + v[0]=v[0]-numpy.floor(v[0]) + if(v[0] < 0): v[0]+=1 + if((1-v[0]) < eps): v[0]=0 + if(v[0] < eps): v[0]=0 + v[1]=v[1]-numpy.floor(v[1]) + if(v[1] < 0): v[1]+=1 + if((1-v[1]) < eps): v[1]=0 + if(v[1] < eps): v[1]=0 + v[2]=v[2]-numpy.floor(v[2]) + if(v[2] < 0): v[2]+=1 + if((1-v[2]) < eps): v[2]=0 + if(v[2] < eps): v[2]=0 + return v + + # Calculate the spectral function at an energy contour omega - i.e. Fermi surface plots + # Uses .data of only GfReFreq objects. + def fs_plot(self, mu=None, broadening=None, mesh=None, FS=True, plane=True, sym=True, orthvec=None, with_Sigma=True, with_dc=True, save_to_file=True): + """ + Calculates the correlated spectral function at specific frequencies. The default output is the + correlated spectral function at zero frequency - this relates the the Fermi surface. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. + plane : boolean, optional + True assumes that the k-mesh of eigenvalues calculated was a plane. + sym: boolean, optional + Uses the symmetry operations to fold out the correlated spectral function in the BZ + FS: boolean + Flag for calculating the spectral function at the Fermi level (omega->0) + orthvec: double (3) element numpy array, optional + This is used to determine the vectors used in the plane calculations after folding out the IBZ. + This needs to correspond to the same orthonormal LATTICE inputs vectors used in the DFT code + which generated the plane of energy eigenvalues. + The default is orthvec=[0,0,1]. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_to_file : boolean, optional + If True, text files with the calculated data will be created. + + Returns + ------- + nk : int + The number of k-points in the plane. + vkc : Dict of numpy arrays [shape - (nk, 3)] + Contains the cartesian vectors which the spectral function has been evaluated on. + Akw : Dict of numpy arrays [shape - (spn)(self.n_k, n_om)] + Correlated spectral function - the data as it is written to the files. + iknr : int array + An array of k-point indices which mape the Akw over the unfolded BZ. + """ + #default vector tolerance used in Elk. This should not be alter. + epslat=1E-6 + #read in the energy contour energies and projectors + things_to_read = ['n_k','bmat','symlat','n_symm','vkl', + 'n_orbitals', 'proj_mat', 'hopping'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.fs_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + + if with_Sigma is True or mesh is None: + assert isinstance(self.mesh, MeshReFreq), "SumkDFT.mesh must be real if with_Sigma is True or mesh is not given" + om_mesh = [x.real for x in self.mesh] + #for Fermi Surface calculations + if FS: + jw=[i for i in range(len(om_mesh)) if om_mesh[i] == 0.0] + if len(jw)==0: + mpi.report('Sigma_imp_w mesh does not include zero frequency value') + mpi.report('Using the next absolute lowest frequency value.') + abs_om_mesh = [abs(i) for i in om_mesh] + jw=[i for i in range(len(abs_om_mesh)) if abs_om_mesh[i] == numpy.min(abs_om_mesh[:])] + mpi.report(jw) + #for many energy contour calculations + else: + if mesh: + om_mn=mesh[0] + om_mx=mesh[1] + jw=[i for i in range(len(om_mesh)) if((om_mesh[i]<=om_mx)and(om_mesh[i]>=om_mn))] + om_min = om_mesh[0] + om_max = om_mesh[-1] + n_om = len(om_mesh) + mesh = (om_min, om_max, n_om) + if broadening is None: + broadening=0.0 + else: + #a range of frequencies can be used if desired + om_min, om_max, n_om = mesh + om_mesh = numpy.linspace(om_min, om_max, n_om) + FS=False + jw=[i for i in range(len(om_mesh)) if((om_mesh[i]<=om_max)and(om_mesh[i]>=om_min))] + if mu is None: + mu = self.chemical_potential + + #orthogonal vector used for plane calculations + if orthvec is None: + #set to [0,0,1] by default + orthvec = numpy.zeros(3,dtype=float) + orthvec[2] = 1.0 + elif orthvec.size != 3: + assert 0, "The input numpy orthvec is not the required size of 3!" + + spn = self.spin_block_names[self.SO] + + Akw = {sp: numpy.zeros([self.n_k, n_om], float) + for sp in spn} + + #Cartesian lattice coordinates array + vkc = numpy.zeros([self.n_k,3], float) + + ikarray = numpy.array(range(self.n_k)) + for ik in mpi.slice_array(ikarray): + #calculate the catesian coordinates of IBZ + vkc[ik,:] = numpy.matmul(self.bmat,self.vkl[ik,:]) + + G_latt_w = self.lattice_gf( + ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + + for iom in range(n_om): + for bname, gf in G_latt_w: + Akw[bname][ik, iom] += gf.data[iom,:,:].imag.trace() / (-1.0 * numpy.pi) + mpi.barrier() + + # Collect data from mpi: + for sp in spn: + Akw[sp] = mpi.all_reduce(mpi.world, Akw[sp], lambda x, y: x + y) + mpi.barrier() + + #fold out the IBZ k-points using the lattice vectors and symmetries + #reducible number of k-points (which will alter after out folding) + nk = self.n_k + iknr = numpy.arange(self.n_k) + if sym: + vkltmp = self.vkl + v = numpy.zeros(3, float) + v_orth = numpy.zeros(3, float) + for isym in range(self.n_symm): + #calculate the orthonormal vector after symmetry operation. This is used to + #check if the orthonormal vector after the symmetry operation is parallel + #or anit-parallel to the original vector. + if plane: + vo = numpy.matmul(self.symlat[isym][:,:],orthvec[:].transpose()) + #check if the vectors are parallel or anti-parallel respectively + t1 = numpy.array_equal(vo, orthvec) + if(not t1): + #exit this symmetry operation + continue + + for ik in range(self.n_k): + #find point in BZ by symmetry operation + v[:]=numpy.matmul(self.symlat[isym][:,:],self.vkl[ik,:]) + #shift back in to range [0,1) - Elk specific + v[:]=self.v3frac(v,epslat) + #add vector to list if not present and add the equivalent Akw value + #convert to cartesian + v[:] = numpy.matmul(self.bmat,v[:]) + #alter temporary arrays + nk += 1 + vkc = numpy.vstack((vkc,v)) + iknr = numpy.append(iknr,ik) + vkltmp = numpy.vstack((vkltmp,v)) + #remove duplicates + [vkc,ind]=numpy.unique(vkc,return_index=True,axis=0) + iknr=iknr[ind] + nk=vkc.shape[0] + #sort the indices for output in decending order + iksrt=numpy.lexsort(([vkc[:,i] for i in range(0,vkc.shape[1], 1)])) + #rearrange the vkc and iknr arrays + vkc=vkc[iksrt] + iknr=iknr[iksrt] + + # Write to files + if save_to_file and mpi.is_master_node(): + for sp in self.spin_block_names[self.SO]: + if FS: + #Output default FS spectral function + f = open('Akw_FS_%s.dat' % sp, 'w') + for ik in range(nk): + jk=iknr[ik] + f.write("%s %s %s %s\n" % (vkc[ik,0], vkc[ik,1], vkc[ik,2], Akw[bname][jk, jw[0]])) + f.close() + else: + #Output spectral function from multiple frequencies + for iom in jw: + #output the energy contours in multiple files with mesh index. + f = open('Akw_%s_omega_%s.dat' % (sp, iom), 'w') + for ik in range(nk): + jk=iknr[ik] + f.write("%s %s %s %s %s\n" % (vkc[ik,0], vkc[ik,1], vkc[ik,2], om_mesh[iom], Akw[bname][jk, iom])) + f.close() + return nk, vkc, Akw, iknr + + + + # Uses .data of only GfReFreq objects. + def spaghettis(self, broadening=None, plot_shift=0.0, plot_range=None, ishell=None, mu=None, save_to_file='Akw_'): + """ + Calculates the correlated band structure using a real-frequency self energy. + + Parameters + ---------- + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. + plot_shift : double, optional + Offset for each A(k,w) for stacked plotting of spectra. + plot_range : list of double, optional + Sets the energy window for plotting to (plot_range[0],plot_range[1]). If not provided, the energy mesh of the self energy is used. + ishell : integer, optional + Contains the index of the shell on which the spectral function is projected. If ishell=None, the total spectrum without projection is calculated. + save_to_file : string, optional + Filename where the spectra are stored. + + Returns + ------- + Akw : Dict of numpy arrays + Data as it is also written to the files. + """ + + # check if ReFreqMesh is given + assert isinstance(self.mesh, MeshReFreq) + + things_to_read = ['n_k', 'n_orbitals', 'proj_mat', + 'hopping', 'n_parproj', 'proj_mat_all'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.bands_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + if ishell is not None: + things_to_read = ['rot_mat_all', 'rot_mat_all_time_inv'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.parproj_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + + if mu is None: + mu = self.chemical_potential + spn = self.spin_block_names[self.SO] + mesh = numpy.array([x.value for x in self.mesh]) + n_om = len(mesh) + + if plot_range is None: + om_minplot = mesh[0] - 0.001 + om_maxplot = mesh[-1] + 0.001 + else: + om_minplot = plot_range[0] + om_maxplot = plot_range[1] + n_om = len(mesh[(mesh > om_minplot)&(mesh < om_maxplot)]) + + if ishell is None: + Akw = {sp: numpy.zeros([self.n_k, n_om], float) + for sp in spn} + else: + Akw = {sp: numpy.zeros( + [self.shells[ishell]['dim'], self.n_k, n_om], float) for sp in spn} + + if ishell is not None: + assert isinstance(ishell, int) and ishell in range(len(self.shells)), "ishell must be of type integer and consistent with number of shells." + gf_struct_parproj = [ + (sp, self.shells[ishell]['dim']) for sp in spn] + G_loc = BlockGf(name_block_generator=[(block, GfReFreq(target_shape=(block_dim, block_dim), mesh=self.Sigma_imp[0].mesh)) + for block, block_dim in gf_struct_parproj], make_copies=False) + G_loc.zero() + + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + + G_latt_w = self.lattice_gf(ik=ik, mu=mu, broadening=broadening) + + if ishell is None: + # Non-projected A(k,w) + for bname, gf in G_latt_w: + Akw[bname][ik] = -gf.data[numpy.where((mesh > om_minplot)&(mesh < om_maxplot))].imag.trace(axis1=1, axis2=2)/numpy.pi + # shift Akw for plotting stacked k-resolved eps(k) + # curves + Akw[bname][ik] += ik * plot_shift + + else: # ishell not None + # Projected A(k,w): + G_loc.zero() + tmp = G_loc.copy() + for ir in range(self.n_parproj[ishell]): + for bname, gf in tmp: + tmp[bname] << self.downfold(ik, ishell, bname, G_latt_w[ + bname], gf, shells='all', ir=ir) + G_loc += tmp + + # Rotate to local frame + if self.use_rotations: + for bname, gf in G_loc: + G_loc[bname] << self.rotloc( + ishell, gf, direction='toLocal', shells='all') + + for ish in range(self.shells[ishell]['dim']): + for sp in spn: + Akw[sp][ish, ik] = -G_loc[sp].data[numpy.where((mesh > om_minplot)&(mesh < om_maxplot)),ish,ish].imag/numpy.pi + # Collect data from mpi + for sp in spn: + Akw[sp] = mpi.all_reduce(mpi.world, Akw[sp], lambda x, y: x + y) + mpi.barrier() + + if save_to_file and mpi.is_master_node(): + if ishell is None: + for sp in spn: # loop over GF blocs: + # Open file for storage: + f = open(save_to_file + sp + '.dat', 'w') + for ik in range(self.n_k): + for iom in range(n_om): + if (mesh[iom] > om_minplot) and (mesh[iom] < om_maxplot): + if plot_shift > 0.0001: + f.write('%s %s\n' % + (mesh[iom], Akw[sp][ik, iom])) + else: + f.write('%s %s %s\n' % + (ik, mesh[iom], Akw[sp][ik, iom])) + f.write('\n') + f.close() + + else: # ishell is not None + for sp in spn: + for ish in range(self.shells[ishell]['dim']): + # Open file for storage: + f = open(save_to_file + str(ishell) + '_' + + sp + '_proj' + str(ish) + '.dat', 'w') + for ik in range(self.n_k): + for iom in range(n_om): + if (mesh[iom] > om_minplot) and (mesh[iom] < om_maxplot): + if plot_shift > 0.0001: + f.write('%s %s\n' % ( + mesh[iom], Akw[sp][ish, ik, iom])) + else: + f.write('%s %s %s\n' % ( + ik, mesh[iom], Akw[sp][ish, ik, iom])) + f.write('\n') + f.close() + + return Akw + + def partial_charges(self, mu=None, with_Sigma=True, with_dc=True): + """ + Calculates the orbitally-resolved density matrix for all the orbitals considered in the input, consistent with + the definition of Wien2k. Hence, (possibly non-orthonormal) projectors have to be provided in the partial projectors subgroup of + the hdf5 archive. + + Parameters + ---------- + + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. If false, partial charges are calculated without self-energy correction. + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + with_dc : boolean, optional + If True the double counting correction is used. + + Returns + ------- + dens_mat : list of numpy array + A list of density matrices projected to all shells provided in the input. + """ + assert self.dft_code in ('wien2k'), "This routine has only been implemented for wien2k inputs" + + things_to_read = ['dens_mat_below', 'n_parproj', + 'proj_mat_all', 'rot_mat_all', 'rot_mat_all_time_inv'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.parproj_data, things_to_read=things_to_read) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + if self.symm_op: + self.symmpar = Symmetry(self.hdf_file, subgroup=self.symmpar_data) + + spn = self.spin_block_names[self.SO] + ntoi = self.spin_names_to_ind[self.SO] + # Density matrix in the window + self.dens_mat_window = [[numpy.zeros([self.shells[ish]['dim'], self.shells[ish]['dim']], complex) + for ish in range(self.n_shells)] + for isp in range(len(spn))] + # Set up G_loc + gf_struct_parproj = [[(sp, self.shells[ish]['dim']) for sp in spn] + for ish in range(self.n_shells)] + G_loc = [BlockGf(name_block_generator=[(block, GfImFreq(target_shape=(block_dim, block_dim), mesh=self.mesh)) + for block, block_dim in gf_struct_parproj[ish]], make_copies=False) + for ish in range(self.n_shells)] + for ish in range(self.n_shells): + G_loc[ish].zero() + + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + + G_latt_iw = self.lattice_gf(ik=ik, mu=mu, with_Sigma=with_Sigma, with_dc=with_dc) + G_latt_iw *= self.bz_weights[ik] + for ish in range(self.n_shells): + tmp = G_loc[ish].copy() + for ir in range(self.n_parproj[ish]): + for bname, gf in tmp: + tmp[bname] << self.downfold(ik, ish, bname, G_latt_iw[ + bname], gf, shells='all', ir=ir) + G_loc[ish] += tmp + + # Collect data from mpi: + for ish in range(self.n_shells): + G_loc[ish] << mpi.all_reduce( + mpi.world, G_loc[ish], lambda x, y: x + y) + mpi.barrier() + + # Symmetrize and rotate to local coord. system if needed: + if self.symm_op != 0: + G_loc = self.symmpar.symmetrize(G_loc) + if self.use_rotations: + for ish in range(self.n_shells): + for bname, gf in G_loc[ish]: + G_loc[ish][bname] << self.rotloc( + ish, gf, direction='toLocal', shells='all') + + for ish in range(self.n_shells): + isp = 0 + for bname, gf in G_loc[ish]: + self.dens_mat_window[isp][ish] = G_loc[ish].density()[bname] + isp += 1 + + # Add density matrices to get the total: + dens_mat = [[self.dens_mat_below[ntoi[spn[isp]]][ish] + self.dens_mat_window[isp][ish] + for ish in range(self.n_shells)] + for isp in range(len(spn))] + + return dens_mat + + def print_hamiltonian(self): + """ + Prints the Kohn-Sham Hamiltonian to the text files hamup.dat and hamdn.dat (no spin orbit-coupling), or to ham.dat (with spin-orbit coupling). + """ + + if self.SP == 1 and self.SO == 0: + f1 = open('hamup.dat', 'w') + f2 = open('hamdn.dat', 'w') + for ik in range(self.n_k): + for i in range(self.n_orbitals[ik, 0]): + f1.write('%s %s\n' % + (ik, self.hopping[ik, 0, i, i].real)) + for i in range(self.n_orbitals[ik, 1]): + f2.write('%s %s\n' % + (ik, self.hopping[ik, 1, i, i].real)) + f1.write('\n') + f2.write('\n') + f1.close() + f2.close() + else: + f = open('ham.dat', 'w') + for ik in range(self.n_k): + for i in range(self.n_orbitals[ik, 0]): + f.write('%s %s\n' % + (ik, self.hopping[ik, 0, i, i].real)) + f.write('\n') + f.close() + + diff --git a/python/triqs_dft_tools/sumk_dft_tools.py b/python/triqs_dft_tools/sumk_dft_tools.py index ffc93993..3360a7e7 100644 --- a/python/triqs_dft_tools/sumk_dft_tools.py +++ b/python/triqs_dft_tools/sumk_dft_tools.py @@ -43,7 +43,7 @@ class SumkDFTTools(SumkDFT): def __init__(self, hdf_file, h_field=0.0, mesh=None, beta=40, n_iw=1025, use_dft_blocks=False, dft_data='dft_input', symmcorr_data='dft_symmcorr_input', parproj_data='dft_parproj_input', symmpar_data='dft_symmpar_input', bands_data='dft_bands_input', - transp_data='dft_transp_input', misc_data='dft_misc_input'): + transp_data='dft_transp_input', misc_data='dft_misc_input', cont_data='dft_contours_input'): """ Initialisation of the class. Parameters are exactly as for SumKDFT. """ @@ -51,902 +51,823 @@ class SumkDFTTools(SumkDFT): SumkDFT.__init__(self, hdf_file=hdf_file, h_field=h_field, mesh=mesh, beta=beta, n_iw=n_iw, use_dft_blocks=use_dft_blocks, dft_data=dft_data, symmcorr_data=symmcorr_data, parproj_data=parproj_data, symmpar_data=symmpar_data, bands_data=bands_data, - transp_data=transp_data, misc_data=misc_data) + transp_data=transp_data, misc_data=misc_data, cont_data=cont_data) # Uses .data of only GfReFreq objects. - def dos_wannier_basis(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + # Uses .data of only GfReFreq objects. + def density_of_states(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, proj_type=None, dosocc=False, save_to_file=True): """ - Calculates the density of states in the basis of the Wannier functions. - + Calculates the density of states. The basis of the projected density of states is + specified by proj_type. Parameters ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - mesh : real frequency MeshType, optional - Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. - with_Sigma : boolean, optional - If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. - with_dc : boolean, optional - If True the double counting correction is used. + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. + If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. + Given as parameter to lattice_gf. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. + If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + proj_type : string, optional + Output the orbital-projected DOS type from the following options: + 'wann' - Wannier DOS calculated from the Wannier projectors + 'vasp' - Vasp orbital-projected DOS only from Vasp inputs + 'wien2k' - Wien2k orbital-projected DOS from the wien2k theta projectors + 'elk' - Elk orbital-projected DOS only from Elk inputs + dosocc : boolean, optional + If True, the occupied DOS, DOSproj and DOSproj_orb will be returned. + The prerequisite of this option is to have calculated the band-resolved + density matrices generated by occupations(). save_to_file : boolean, optional If True, text files with the calculated data will be created. - Returns ------- - DOS : Dict of numpy arrays - Contains the full density of states. - DOSproj : Dict of numpy arrays - DOS projected to atoms. - DOSproj_orb : Dict of numpy arrays - DOS projected to atoms and resolved into orbital contributions. + DOS : Dict of numpy arrays + Contains the full density of states. + DOSproj : Dict of numpy arrays + DOS projected to atoms. Empty if proj_type = None + DOSproj_orb : Dict of numpy arrays + DOS projected to atoms and resolved into orbital contributions. + Empty if proj_type = None """ - if mesh is None or with_Sigma: - assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" - om_mesh = [x.real for x in self.mesh] - om_min = om_mesh[0] - om_max = om_mesh[-1] - n_om = len(om_mesh) - mesh = (om_min, om_max, n_om) + if(proj_type!=None): + #assert proj_type in ('wann', 'vasp','wien2k','elk'), "'proj_type' must be either 'wann', 'vasp', 'wien2k', or 'elk'" + assert proj_type in ('wann', 'vasp','wien2k',), "'proj_type' must be either 'wann', 'vasp', 'wien2k'" + if(proj_type!='wann'): + assert proj_type==self.dft_code, "proj_type must be from the corresponding dft inputs." + + if (with_Sigma): + assert isinstance(self.Sigma_imp[0].mesh, MeshReFreq), "SumkDFT.mesh must be real if with_Sigma is True" + mesh=self.Sigma_imp[0].mesh + elif mesh is not None: + assert isinstance(mesh, MeshReFreq), "mesh must be of form MeshReFreq" + if broadening is None: + broadening=0.001 + elif self.mesh is not None: + assert isinstance(self.mesh, MeshReFreq), "self.mesh must be of form MeshReFreq" + mesh=self.mesh + if broadening is None: + broadening=0.001 else: - om_min, om_max, n_om = mesh - om_mesh = numpy.linspace(om_min, om_max, n_om) + assert 0, "ReFreqMesh input required for calculations without real frequency self-energy" + mesh_val = numpy.linspace(mesh.omega_min,mesh.omega_max,len(mesh)) + n_om = len(mesh) + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 - G_loc = [] - for icrsh in range(self.n_corr_shells): - spn = self.spin_block_names[self.corr_shells[icrsh]['SO']] - glist = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) - for block, block_dim in self.gf_struct_sumk[icrsh]] - G_loc.append( - BlockGf(name_list=spn, block_list=glist, make_copies=False)) - for icrsh in range(self.n_corr_shells): - G_loc[icrsh].zero() + #Read in occupations from HDF5 file if required + if(dosocc): + mpi.report('Reading occupations generated by self.occupations().') + thingstoread = ['occik'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.misc_data, things_to_read=thingstoread) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - DOS = {sp: numpy.zeros([n_om], float) - for sp in self.spin_block_names[self.SO]} - DOSproj = [{} for ish in range(self.n_inequiv_shells)] - DOSproj_orb = [{} for ish in range(self.n_inequiv_shells)] - for ish in range(self.n_inequiv_shells): - for sp in self.spin_block_names[self.corr_shells[self.inequiv_to_corr[ish]]['SO']]: - dim = self.corr_shells[self.inequiv_to_corr[ish]]['dim'] - DOSproj[ish][sp] = numpy.zeros([n_om], float) - DOSproj_orb[ish][sp] = numpy.zeros( - [n_om, dim, dim], complex) + #initialise projected DOS type if required + spn = self.spin_block_names[self.SO] + n_shells=1 + if (proj_type == 'wann'): + n_shells = self.n_corr_shells + gf_struct = self.gf_struct_sumk.copy() + dims = [self.corr_shells[ish]['dim'] for ish in range(n_shells)] + shells_type = 'corr' + elif (proj_type == 'vasp'): + n_shells=1 + gf_struct = [[(sp, list(range(self.proj_mat_csc.shape[2]))) for sp in spn]] + dims = [self.proj_mat_csc.shape[2]] + shells_type = 'csc' + elif (proj_type == 'wien2k'): + self.load_parproj() + n_shells = self.n_shells + gf_struct = [[(sp, self.shells[ish]['dim']) for sp in spn] + for ish in range(n_shells)] + dims = [self.shells[ish]['dim'] for ish in range(n_shells)] + shells_type = 'all' +# #commented out for now - unsure this produces DFT+DMFT PDOS +# elif (proj_type == 'elk'): +# n_shells = self.n_shells +# dims = [self.shells[ish]['dim'] for ish in range(n_shells)] +# gf_struct = [[(sp, self.shells[ish]['dim']) for sp in spn] +# for ish in range(n_shells)] +# things_to_read = ['band_dens_muffin'] +# subgroup_present, values_not_read = self.read_input_from_hdf( +# subgrp=self.bc_data, things_to_read=things_to_read) +# if len(values_not_read) > 0 and mpi.is_master_node: +# raise ValueError( +# 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + #set-up output arrays + DOS = {sp: numpy.zeros([n_om],float) for sp in spn} + DOSproj = [{} for ish in range(n_shells)] + DOSproj_orb = [{} for ish in range(n_shells)] + #set-up Green's function object + if (proj_type != None): + G_loc = [] + for ish in range(n_shells): + glist = [GfReFreq(target_shape=(block_dim, block_dim), mesh=mesh) + for block, block_dim in gf_struct[ish]] + G_loc.append( + BlockGf(name_list=spn, block_list=glist, make_copies=False)) + G_loc[ish].zero() + dim = dims[ish] + for sp in spn: + DOSproj[ish][sp] = numpy.zeros([n_om], float) + DOSproj_orb[ish][sp] = numpy.zeros( + [n_om, dim, dim], complex) + + #calculate the DOS ikarray = numpy.array(list(range(self.n_k))) for ik in mpi.slice_array(ikarray): - G_latt_w = self.lattice_gf( ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) G_latt_w *= self.bz_weights[ik] - - # Non-projected DOS - for iom in range(n_om): - for bname, gf in G_latt_w: - DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ - numpy.pi - + #output occupied DOS if nk inputted + if(dosocc): + for bname, gf in G_latt_w: + G_latt_w[bname].data[:,:,:] *= self.occik[bname][ik] + # DOS + for bname, gf in G_latt_w: + DOS[bname] -= gf.data.imag.trace(axis1=1, axis2=2)/numpy.pi # Projected DOS: - for icrsh in range(self.n_corr_shells): - tmp = G_loc[icrsh].copy() - for bname, gf in tmp: - tmp[bname] << self.downfold(ik, icrsh, bname, G_latt_w[ - bname], gf) # downfolding G - G_loc[icrsh] += tmp + if (proj_type != None): + for ish in range(n_shells): + tmp = G_loc[ish].copy() + tmp.zero() + tmp << self.proj_type_G_loc(G_latt_w, tmp, ik, ish, proj_type) + G_loc[ish] += tmp + mpi.barrier() # Collect data from mpi: for bname in DOS: DOS[bname] = mpi.all_reduce( mpi.world, DOS[bname], lambda x, y: x + y) - for icrsh in range(self.n_corr_shells): - G_loc[icrsh] << mpi.all_reduce( - mpi.world, G_loc[icrsh], lambda x, y: x + y) - mpi.barrier() - + # Collect data from mpi and put in projected arrays + if(proj_type != None): + for ish in range(n_shells): + G_loc[ish] << mpi.all_reduce( + mpi.world, G_loc[ish], lambda x, y: x + y) # Symmetrize and rotate to local coord. system if needed: - if self.symm_op != 0: - G_loc = self.symmcorr.symmetrize(G_loc) - if self.use_rotations: - for icrsh in range(self.n_corr_shells): - for bname, gf in G_loc[icrsh]: - G_loc[icrsh][bname] << self.rotloc( - icrsh, gf, direction='toLocal') - + if((proj_type!='vasp') and (proj_type!='elk')): + if self.symm_op != 0: + if proj_type=='wann': + G_loc = self.symmcorr.symmetrize(G_loc) + else: + G_loc = self.symmpar.symmetrize(G_loc) + if self.use_rotations: + for ish in range(n_shells): + for bname, gf in G_loc[ish]: + G_loc[ish][bname] << self.rotloc( + ish, gf, direction='toLocal',shells=shells_type) # G_loc can now also be used to look at orbitally-resolved quantities - for ish in range(self.n_inequiv_shells): - for bname, gf in G_loc[self.inequiv_to_corr[ish]]: # loop over spins + for ish in range(n_shells): + for bname, gf in G_loc[ish]: # loop over spins DOSproj[ish][bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi DOSproj_orb[ish][bname][ - :, :, :] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] + :, :, :] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] # Write to files if save_to_file and mpi.is_master_node(): - for sp in self.spin_block_names[self.SO]: - f = open('DOS_wann_%s.dat' % sp, 'w') + for sp in spn: + f = open('DOS_%s.dat' % sp, 'w') for iom in range(n_om): - f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) + f.write("%s %s\n" % (mesh_val[iom], DOS[sp][iom])) f.close() - # Partial - for ish in range(self.n_inequiv_shells): - f = open('DOS_wann_%s_proj%s.dat' % (sp, ish), 'w') + if(proj_type!=None): + for ish in range(n_shells): + f = open('DOS_' + proj_type + '_%s_proj%s.dat' % (sp, ish), 'w') for iom in range(n_om): f.write("%s %s\n" % - (om_mesh[iom], DOSproj[ish][sp][iom])) + (mesh_val[iom], DOSproj[ish][sp][iom])) f.close() - # Orbitally-resolved - for i in range(self.corr_shells[self.inequiv_to_corr[ish]]['dim']): - for j in range(i, self.corr_shells[self.inequiv_to_corr[ish]]['dim']): - f = open('DOS_wann_' + sp + '_proj' + str(ish) + + for i in range(dims[ish]): + for j in range(dims[ish]): + #For Elk with parproj - skip off-diagonal elements + #if(proj_type=='elk') and (i!=j): continue + f = open('DOS_' + proj_type + '_' + sp + '_proj' + str(ish) + '_' + str(i) + '_' + str(j) + '.dat', 'w') for iom in range(n_om): f.write("%s %s %s\n" % ( - om_mesh[iom], DOSproj_orb[ish][sp][iom, i, j].real,DOSproj_orb[ish][sp][iom, i, j].imag)) + mesh_val[iom], DOSproj_orb[ish][sp][iom, i, j].real,DOSproj_orb[ish][sp][iom, i, j].imag)) f.close() return DOS, DOSproj, DOSproj_orb - def dos_wannier_basis_all(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): + def proj_type_G_loc(self, G_latt, G_inp, ik, ish, proj_type=None): """ - Calculates the density of states in the basis of the Wannier functions. - + Internal routine which calculates the project Green's function subject to the + proj_type input. Parameters ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - mesh : real frequency MeshType, optional - Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. - with_Sigma : boolean, optional - If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. - with_dc : boolean, optional - If True the double counting correction is used. - save_to_file : boolean, optional - If True, text files with the calculated data will be created. - + G_latt : Gf + block of lattice Green's functions to be projected/downfolded + G_inp : Gf + block of local Green's functions used as a template for G_proj + ik : integer + integer specifing k-point index. + ish : integer + integer specifing shell index. + proj_type : string, optional + Output the orbital-projected DOS type from the following options: + 'wann' - Wannier DOS calculated from the Wannier projectors + 'vasp' - Vasp orbital-projected DOS only from Vasp inputs + 'wien2k' - Wien2k orbital-projected DOS from the wien2k theta projectors + 'elk' - Elk orbital-projected DOS only from Elk inputs Returns ------- - DOS : Dict of numpy arrays - Contains the full density of states. - DOSproj : Dict of numpy arrays - DOS projected to atoms. - DOSproj_orb : Dict of numpy arrays - DOS projected to atoms and resolved into orbital contributions. + G_proj : Gf + projected/downfolded lattice Green's function + Contains the band-resolved density matrices per k-point. """ - if mesh is None or with_Sigma: - assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" - om_mesh = [x.real for x in self.mesh] - om_min = om_mesh[0] - om_max = om_mesh[-1] - n_om = len(om_mesh) - mesh = (om_min, om_max, n_om) + + G_proj = G_inp.copy() + if (proj_type == 'wann'): + for bname, gf in G_proj: + G_proj[bname] << self.downfold(ik, ish, bname, + G_latt[bname], gf) # downfolding G + elif (proj_type == 'vasp'): + for bname, gf in G_latt: + G_proj[bname] << self.downfold(ik, ish, bname, gf, G_proj[bname], shells='csc') + elif (proj_type == 'wien2k'): + tmp = G_proj.copy() + for ir in range(self.n_parproj[ish]): + tmp.zero() + for bname, gf in tmp: + tmp[bname] << self.downfold(ik, ish, bname, + G_latt[bname], gf, shells='all', ir=ir) + G_proj += tmp +# elif (proj_type == 'elk'): +# dim = self.shells[ish]['dim'] +# ntoi = self.spin_names_to_ind[self.SO] +# for bname, gf in G_latt: +# n_om = len(gf.data[:,0,0]) +# isp=ntoi[bname] +# nst=self.n_orbitals[ik,isp] +# #matrix multiply band resolved muffin density with +# #diagonal of band resolved spectral function and fill diagonal of +# #DOSproj_orb orbital dimensions with the result for each frequency +# bdm=self.band_dens_muffin[ik,isp,ish,0:dim,0:nst] +# tmp=[numpy.matmul(bdm, gf.data[iom,:,:].diagonal()) +# for iom in range(n_om)] +# tmp=numpy.asarray(tmp) +# tmp2 = numpy.zeros([n_om,dim,dim], dtype=complex) +# if(dim==1): +# tmp2[:,0,0]=tmp[:,0] +# else: +# [numpy.fill_diagonal(tmp2[iom,:,:],tmp[iom,:]) +# for iom in range(n_om)] +# G_proj[bname].data[:,:,:] = tmp2[:,:,:] + + return G_proj + + def load_parproj(self,data_type=None): + """ + Internal routine which loads the n_parproj, proj_mat_all, rot_mat_all and + rot_mat_all_time_inv from parproj data from .h5 file. + Parameters + ---------- + data_type : string, optional + which data type desired to be read in. + 'band' - reads data converted by bands_convert() + None - reads data converted by parproj_convert() + """ + #read in the projectors + things_to_read = ['n_parproj', 'proj_mat_all'] + if data_type == 'band': + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.bands_data, things_to_read=things_to_read) else: - om_min, om_max, n_om = mesh - om_mesh = numpy.linspace(om_min, om_max, n_om) - - spn = self.spin_block_names[self.SO] - gf_struct_parproj = [[(sp, list(range(self.shells[ish]['dim']))) for sp in spn] - for ish in range(self.n_shells)] - n_local_orbs = self.proj_mat_csc.shape[2] - gf_struct_parproj_all = [[(sp, list(range(n_local_orbs))) for sp in spn]] - - glist_all = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) - for block, block_dim in gf_struct_parproj_all[0]] - G_loc_all = BlockGf(name_list=spn, block_list=glist_all, make_copies=False) - - DOS = {sp: numpy.zeros([n_om], float) - for sp in self.spin_block_names[self.SO]} - DOSproj = {} - DOSproj_orb = {} - - for sp in self.spin_block_names[self.SO]: - dim = n_local_orbs - DOSproj[sp] = numpy.zeros([n_om], float) - DOSproj_orb[sp] = numpy.zeros( - [n_om, dim, dim], complex) - - ikarray = numpy.array(list(range(self.n_k))) - for ik in mpi.slice_array(ikarray): - - G_latt_w = self.lattice_gf( - ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) - G_latt_w *= self.bz_weights[ik] - - # Non-projected DOS - for iom in range(n_om): - for bname, gf in G_latt_w: - DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ - numpy.pi - - # Projected DOS: - for bname, gf in G_latt_w: - G_loc_all[bname] << self.downfold(ik, 0, bname, gf, G_loc_all[bname], shells='csc') - # Collect data from mpi: - for bname in DOS: - DOS[bname] = mpi.all_reduce( - mpi.world, DOS[bname], lambda x, y: x + y) - G_loc_all[bname] << mpi.all_reduce( - mpi.world, G_loc_all[bname], lambda x, y: x + y) - mpi.barrier() - - # Symmetrize and rotate to local coord. system if needed: - #if self.symm_op != 0: - # G_loc_all = self.symmcorr.symmetrize(G_loc_all) - - # G_loc can now also be used to look at orbitally-resolved quantities - for bname, gf in G_loc_all: # loop over spins - DOSproj[bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi - DOSproj_orb[bname][:,:,:] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] - # Write to files - if save_to_file and mpi.is_master_node(): - for sp in self.spin_block_names[self.SO]: - f = open('DOS_wann_%s.dat' % sp, 'w') - for iom in range(n_om): - f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) - f.close() - - # Partial - f = open('DOS_wann_all_%s_proj.dat' % (sp), 'w') - for iom in range(n_om): - f.write("%s %s\n" % - (om_mesh[iom], DOSproj[sp][iom])) - f.close() - - # Orbitally-resolved - for i in range(n_local_orbs): - for j in range(i, n_local_orbs): - f = open('DOS_wann_all' + sp + '_proj_' + str(i) + '_' + str(j) + '.dat', 'w') - for iom in range(n_om): - f.write("%s %s %s\n" % ( - om_mesh[iom], DOSproj_orb[sp][iom, i, j].real,DOSproj_orb[sp][iom, i, j].imag)) - f.close() - - return DOS, DOSproj, DOSproj_orb - - # Uses .data of only GfReFreq objects. - def dos_parproj_basis(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True): - """ - Calculates the orbitally-resolved DOS. - Different to dos_Wannier_basis is that here we calculate projections also to non-Wannier projectors, in the - flavour of Wien2k QTL calculatuions. - - Parameters - ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - mesh : real frequency MeshType, optional - Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. - with_Sigma : boolean, optional - If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. - with_dc : boolean, optional - If True the double counting correction is used. - save_to_file : boolean, optional - If True, text files with the calculated data will be created. - - Returns - ------- - DOS : Dict of numpy arrays - Contains the full density of states. - DOSproj : Dict of numpy arrays - DOS projected to atoms. - DOSproj_orb : Dict of numpy arrays - DOS projected to atoms and resolved into orbital contributions. - """ - - things_to_read = ['n_parproj', 'proj_mat_all', - 'rot_mat_all', 'rot_mat_all_time_inv'] + subgroup_present, values_not_read = self.read_input_from_hdf( + subgrp=self.parproj_data, things_to_read=things_to_read) + if self.symm_op: + self.symmpar = Symmetry(self.hdf_file, subgroup=self.symmpar_data) + if len(values_not_read) > 0 and mpi.is_master_node: + raise ValueError( + 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + #read general data + things_to_read = ['rot_mat_all', 'rot_mat_all_time_inv'] subgroup_present, values_not_read = self.read_input_from_hdf( subgrp=self.parproj_data, things_to_read=things_to_read) if len(values_not_read) > 0 and mpi.is_master_node: raise ValueError( 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - if self.symm_op: - self.symmpar = Symmetry(self.hdf_file, subgroup=self.symmpar_data) - if mesh is None or with_Sigma: - assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" - om_mesh = [x.real for x in self.mesh] - om_min = om_mesh[0] - om_max = om_mesh[-1] - n_om = len(om_mesh) - mesh = (om_min, om_max, n_om) - else: - om_min, om_max, n_om = mesh - om_mesh = numpy.linspace(om_min, om_max, n_om) - - G_loc = [] - spn = self.spin_block_names[self.SO] - gf_struct_parproj = [[(sp, self.shells[ish]['dim']) for sp in spn] - for ish in range(self.n_shells)] - for ish in range(self.n_shells): - glist = [GfReFreq(target_shape=(block_dim, block_dim), window=(om_min, om_max), n_points=n_om) - for block, block_dim in gf_struct_parproj[ish]] - G_loc.append( - BlockGf(name_list=spn, block_list=glist, make_copies=False)) - for ish in range(self.n_shells): - G_loc[ish].zero() - - DOS = {sp: numpy.zeros([n_om], float) - for sp in self.spin_block_names[self.SO]} - DOSproj = [{} for ish in range(self.n_shells)] - DOSproj_orb = [{} for ish in range(self.n_shells)] - for ish in range(self.n_shells): - for sp in self.spin_block_names[self.SO]: - dim = self.shells[ish]['dim'] - DOSproj[ish][sp] = numpy.zeros([n_om], float) - DOSproj_orb[ish][sp] = numpy.zeros( - [n_om, dim, dim], complex) - - ikarray = numpy.array(list(range(self.n_k))) - for ik in mpi.slice_array(ikarray): - - G_latt_w = self.lattice_gf( - ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) - G_latt_w *= self.bz_weights[ik] - - # Non-projected DOS - for bname, gf in G_latt_w: - DOS[bname] -= gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi - - # Projected DOS: - for ish in range(self.n_shells): - tmp = G_loc[ish].copy() - for ir in range(self.n_parproj[ish]): - for bname, gf in tmp: - tmp[bname] << self.downfold(ik, ish, bname, G_latt_w[ - bname], gf, shells='all', ir=ir) - G_loc[ish] += tmp - - # Collect data from mpi: - for bname in DOS: - DOS[bname] = mpi.all_reduce( - mpi.world, DOS[bname], lambda x, y: x + y) - for ish in range(self.n_shells): - G_loc[ish] << mpi.all_reduce( - mpi.world, G_loc[ish], lambda x, y: x + y) - mpi.barrier() - - # Symmetrize and rotate to local coord. system if needed: - if self.symm_op != 0: - G_loc = self.symmpar.symmetrize(G_loc) - if self.use_rotations: - for ish in range(self.n_shells): - for bname, gf in G_loc[ish]: - G_loc[ish][bname] << self.rotloc( - ish, gf, direction='toLocal', shells='all') - - # G_loc can now also be used to look at orbitally-resolved quantities - for ish in range(self.n_shells): - for bname, gf in G_loc[ish]: - DOSproj[ish][bname] = -gf.data.imag.trace(axis1=1, axis2=2) / numpy.pi - DOSproj_orb[ish][bname][ - :, :, :] += (1.0j*(gf-gf.conjugate().transpose())/2.0/numpy.pi).data[:,:,:] - - # Write to files - if save_to_file and mpi.is_master_node(): - for sp in self.spin_block_names[self.SO]: - f = open('DOS_parproj_%s.dat' % sp, 'w') - for iom in range(n_om): - f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) - f.close() - - # Partial - for ish in range(self.n_shells): - f = open('DOS_parproj_%s_proj%s.dat' % (sp, ish), 'w') - for iom in range(n_om): - f.write("%s %s\n" % - (om_mesh[iom], DOSproj[ish][sp][iom])) - f.close() - - # Orbitally-resolved - for i in range(self.shells[ish]['dim']): - for j in range(i, self.shells[ish]['dim']): - f = open('DOS_parproj_' + sp + '_proj' + str(ish) + - '_' + str(i) + '_' + str(j) + '.dat', 'w') - for iom in range(n_om): - f.write("%s %s %s\n" % ( - om_mesh[iom], DOSproj_orb[ish][sp][iom, i, j].real,DOSproj_orb[ish][sp][iom, i, j].imag)) - f.close() - - return DOS, DOSproj, DOSproj_orb - - # Elk total and partial dos calculations - # Uses .data of only GfReFreq objects. - def elk_dos(self, mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, save_to_file=True,pdos=False,nk=None): + def occupations(self, mu=None, with_Sigma=True, with_dc=True, save_occ=True): """ - This calculates the total DOS and the partial DOS (orbital-DOS) from the band characters calculated in Elk. - + Calculates the band resolved density matrices (occupations) from the Matsubara + frequency self-energy. Parameters ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - mesh : real frequency MeshType, optional - Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. - with_Sigma : boolean, optional - If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. - with_dc : boolean, optional - If True the double counting correction is used. + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. + If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + save_occ : boolean, optional + If True, saves the band resolved density matrix in misc_data. save_to_file : boolean, optional If True, text files with the calculated data will be created. - pdos : allows the partial density of states to be calculated - nk : diagonal of the occupation function (from the Matsubara Green's function) - in the band basis (has form nk[spn][n_k][n_orbital]) - Returns ------- - DOS : Dict of numpy arrays - Contains the full density of states. - pDOS : Dict of numpy arrays - partial (orbital resolved) DOS for each atom. + occik : Dict of numpy arrays + Contains the band-resolved density matrices per k-point. """ - if (pdos): - things_to_read = ['maxlm', 'bc'] - subgroup_present, values_not_read = self.read_input_from_hdf( - subgrp=self.bc_data, things_to_read=things_to_read) - if len(values_not_read) > 0 and mpi.is_master_node: - raise ValueError( - 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - things_to_read = ['n_atoms'] - subgroup_present, values_not_read = self.read_input_from_hdf( - subgrp=self.symmcorr_data, things_to_read=things_to_read) - if len(values_not_read) > 0 and mpi.is_master_node: - raise ValueError( - 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - - if mesh is None or with_Sigma: - assert isinstance(self.mesh, MeshReFreq), "mesh must be given if self.mesh is a MeshImFreq" - om_mesh = [x.real for x in self.mesh] - om_min = om_mesh[0] - om_max = om_mesh[-1] - n_om = len(om_mesh) - mesh = (om_min, om_max, n_om) + if with_Sigma: + mesh = self.Sigma_imp[0].mesh else: - om_min, om_max, n_om = mesh - om_mesh = numpy.linspace(om_min, om_max, n_om) + mesh = self.mesh + assert isinstance(mesh, MeshImFreq), "SumkDFT.mesh must be real if with_Sigma is True or mesh is not given" + if mu is None: mu = self.chemical_potential - + ntoi = self.spin_names_to_ind[self.SO] spn = self.spin_block_names[self.SO] - - DOS = {sp: numpy.zeros([n_om], float) - for sp in self.spin_block_names[self.SO]} - #set up temporary arrays for pdos calculations - if (pdos): - pDOS = {sp: numpy.zeros([self.n_atoms,self.maxlm,n_om], float) - for sp in self.spin_block_names[self.SO]} - ntoi = self.spin_names_to_ind[self.SO] - else: - pDOS = [] - + occik = {} + for sp in spn: + #same format as gf.data ndarray + occik[sp] = [numpy.zeros([1, self.n_orbitals[ik, ntoi[sp]], self.n_orbitals[ik, ntoi[sp]]], numpy.double) for ik in range(self.n_k)] + #calculate the occupations ikarray = numpy.array(range(self.n_k)) - for ik in mpi.slice_array(ikarray): - - G_latt_w = self.lattice_gf( - ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) - G_latt_w *= self.bz_weights[ik] - if(nk!=None): - for iom in range(n_om): - for bname, gf in G_latt_w: - numpy.fill_diagonal(G_latt_w[bname].data[iom,:,:].imag, nk[bname][ik][:]*G_latt_w[bname].data[iom,:,:].imag.diagonal()) - - # Non-projected DOS - for iom in range(n_om): - for bname, gf in G_latt_w: - DOS[bname][iom] -= gf.data[iom, :, :].imag.trace() / \ - numpy.pi - - - # Partial DOS - if (pdos): - for bname, gf in G_latt_w: - isp=ntoi[bname] - nst=self.n_orbitals[ik,isp] - tmp = numpy.zeros([nst]) - for iom in range(n_om): - #get diagonal spectral function - tmp[:] = -gf.data[iom, :, :].imag.diagonal() / numpy.pi - #calculate the pDOS of all atoms - for iatom in range(self.n_atoms): - bcar=self.bc[:,isp,iatom,0:nst,ik] - pDOS[bname][iatom,:,iom] += numpy.matmul(bcar,tmp) - del tmp - mpi.barrier() + for ik in range(self.n_k): + G_latt = self.lattice_gf( + ik=ik, mu=mu, with_Sigma=with_Sigma, with_dc=with_dc) + for bname, gf in G_latt: + occik[bname][ik][0,:,:] = gf.density().real # Collect data from mpi: - for bname in DOS: - DOS[bname] = mpi.all_reduce( - mpi.world, DOS[bname], lambda x, y: x + y) - if (pdos): - for bname in pDOS: - for iatom in range(self.n_atoms): - for lm in range(self.maxlm): - pDOS[bname][iatom,lm,:] = mpi.all_reduce( - mpi.world, pDOS[bname][iatom,lm,:], lambda x, y: x + y) + for sp in spn: + occik[sp] = mpi.all_reduce(mpi.world, occik[sp], lambda x, y: x + y) + mpi.barrier() + #save to HDF5 file (if specified) + if save_occ and mpi.is_master_node(): + things_to_save_misc = ['occik'] + # Save it to the HDF: + ar = HDFArchive(self.hdf_file, 'a') + if not (self.misc_data in ar): + ar.create_group(self.misc_data) + for it in things_to_save_misc: + ar[self.misc_data][it] = locals()[it] + del ar + return occik - - # Write to files - if save_to_file and mpi.is_master_node(): - for sp in self.spin_block_names[self.SO]: - f = open('TDOS_%s.dat' % sp, 'w') - for iom in range(n_om): - f.write("%s %s\n" % (om_mesh[iom], DOS[sp][iom])) - f.close() - - # Partial - if (pdos): - for iatom in range(self.n_atoms): - f = open('pDOS_%s_atom_%s.dat' % (sp, iatom), 'w') - for lm in range(self.maxlm): - for iom in range(n_om): - f.write("%s %s\n" % - (om_mesh[iom], pDOS[sp][iatom,lm,iom])) - f.write("\n") - f.close() - - return DOS, pDOS - - # vector manipulation used in Elk for symmetry operations - This is already in elktools, this should - # put somewhere for general use by the converter and this script. - def v3frac(self,v,eps): - #This finds the fractional part of 3-vector v components. This uses the - #same method as in Elk (version 6.2.8) r3fac subroutine. - v[0]=v[0]-numpy.floor(v[0]) - if(v[0] < 0): v[0]+=1 - if((1-v[0]) < eps): v[0]=0 - if(v[0] < eps): v[0]=0 - v[1]=v[1]-numpy.floor(v[1]) - if(v[1] < 0): v[1]+=1 - if((1-v[1]) < eps): v[1]=0 - if(v[1] < eps): v[1]=0 - v[2]=v[2]-numpy.floor(v[2]) - if(v[2] < 0): v[2]+=1 - if((1-v[2]) < eps): v[2]=0 - if(v[2] < eps): v[2]=0 - return v - - # Calculate the spectral function at an energy contour omega - i.e. Fermi surface plots # Uses .data of only GfReFreq objects. - def fs_plot(self, mu=None, broadening=None, mesh=None, FS=True, plane=True, sym=True, orthvec=None, with_Sigma=True, with_dc=True, save_to_file=True): + def spectral_contours(self, mu=None, broadening=None, mesh=None, plot_range=None, FS=True, with_Sigma=True, with_dc=True, proj_type=None, save_to_file=True): """ - Calculates the correlated spectral function at specific frequencies. The default output is the - correlated spectral function at zero frequency - this relates the the Fermi surface. + Calculates the correlated spectral function at the Fermi level (relating to the Fermi + surface) or at specific frequencies. Parameters ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - mesh : real frequency MeshType, optional - Omega mesh for the real-frequency Green's function. Given as parameter to lattice_gf. - plane : boolean, optional - True assumes that the k-mesh of eigenvalues calculated was a plane. - sym: boolean, optional - Uses the symmetry operations to fold out the correlated spectral function in the BZ - FS: boolean - Flag for calculating the spectral function at the Fermi level (omega->0) - orthvec: double (3) element numpy array, optional - This is used to determine the vectors used in the plane calculations after folding out the IBZ. - This needs to correspond to the same orthonormal LATTICE inputs vectors used in the DFT code - which generated the plane of energy eigenvalues. - The default is orthvec=[0,0,1]. - with_Sigma : boolean, optional - If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. - with_dc : boolean, optional - If True the double counting correction is used. + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. + If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. + Given as parameter to lattice_gf. + plot_range : list of double, optional + Sets the energy window for plotting to (plot_range[0],plot_range[1]). + If not provided, the min and max values of the energy mesh is used. + FS : boolean + Flag for calculating the spectral function at the Fermi level (omega ~ 0) + If False, the spectral function will be generated for each frequency within + plot_range. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. + If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + proj_type : string, optional + Output the orbital-projected A(k,w) type from the following: + 'wann' - Wannier A(k,w) calculated from the Wannier projectors save_to_file : boolean, optional If True, text files with the calculated data will be created. Returns ------- - nk : int - The number of k-points in the plane. - vkc : Dict of numpy arrays [shape - (nk, 3)] - Contains the cartesian vectors which the spectral function has been evaluated on. - Akw : Dict of numpy arrays [shape - (spn)(self.n_k, n_om)] - Correlated spectral function - the data as it is written to the files. - iknr : int array - An array of k-point indices which mape the Akw over the unfolded BZ. + Akw : Dict of numpy arrays + (Correlated) k-resolved spectral function + pAkw : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms. + Empty if proj_type = None + pAkw_orb : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms and + resolved into orbital contributions. Empty if proj_type = None """ - #default vector tolerance used in Elk. This should not be alter. - epslat=1E-6 + if(proj_type!=None): + assert proj_type in ('wann'), "'proj_type' must be 'wann' if not None" #read in the energy contour energies and projectors - things_to_read = ['n_k','bmat','symlat','n_symm','vkl', + things_to_read = ['n_k','bmat','BZ_n_k','BZ_iknr','BZ_vkl', 'n_orbitals', 'proj_mat', 'hopping'] subgroup_present, values_not_read = self.read_input_from_hdf( - subgrp=self.fs_data, things_to_read=things_to_read) + subgrp=self.cont_data, things_to_read=things_to_read) if len(values_not_read) > 0 and mpi.is_master_node: raise ValueError( 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - if with_Sigma is True or mesh is None: - assert isinstance(self.mesh, MeshReFreq), "SumkDFT.mesh must be real if with_Sigma is True or mesh is not given" - om_mesh = [x.real for x in self.mesh] - #for Fermi Surface calculations - if FS: - jw=[i for i in range(len(om_mesh)) if om_mesh[i] == 0.0] - if len(jw)==0: - mpi.report('Sigma_imp_w mesh does not include zero frequency value') - mpi.report('Using the next absolute lowest frequency value.') - abs_om_mesh = [abs(i) for i in om_mesh] - jw=[i for i in range(len(abs_om_mesh)) if abs_om_mesh[i] == numpy.min(abs_om_mesh[:])] - mpi.report(jw) - #for many energy contour calculations - else: - if mesh: - om_mn=mesh[0] - om_mx=mesh[1] - jw=[i for i in range(len(om_mesh)) if((om_mesh[i]<=om_mx)and(om_mesh[i]>=om_mn))] - om_min = om_mesh[0] - om_max = om_mesh[-1] - n_om = len(om_mesh) - mesh = (om_min, om_max, n_om) - if broadening is None: - broadening=0.0 - else: - #a range of frequencies can be used if desired - om_min, om_max, n_om = mesh - om_mesh = numpy.linspace(om_min, om_max, n_om) - FS=False - jw=[i for i in range(len(om_mesh)) if((om_mesh[i]<=om_max)and(om_mesh[i]>=om_min))] if mu is None: mu = self.chemical_potential + if (with_Sigma): + assert isinstance(self.Sigma_imp[0].mesh, MeshReFreq), "SumkDFT.mesh must be real if with_Sigma is True" + mesh=self.Sigma_imp[0].mesh + elif mesh is not None: + assert isinstance(mesh, MeshReFreq), "mesh must be of form MeshReFreq" + if broadening is None: + broadening=0.001 + elif self.mesh is not None: + assert isinstance(self.mesh, MeshReFreq), "self.mesh must be of form MeshReFreq" + mesh=self.mesh + if broadening is None: + broadening=0.001 + else: + assert 0, "ReFreqMesh input required for calculations without real frequency self-energy" + mesh_val = numpy.linspace(mesh.omega_min,mesh.omega_max,len(mesh)) + n_om = len(mesh) + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 + #for Fermi Surface calculations + if FS: + dw = abs(mesh_val[1]-mesh_val[0]) + #ensure that a few frequencies around the Fermi level are included + plot_range = [-2*dw, 2*dw] + mpi.report('Generated A(k,w) will be evaluted at closest frequency to 0.0 in given mesh ') + if plot_range is None: + n_om = len(mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)]) + mesh_val2 = mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)] + else: + om_minplot = plot_range[0] + om_maxplot = plot_range[1] + n_om = len(mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)]) + mesh_val2 = mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)] + #\omega ~= 0.0 index for FS file + abs_mesh_val = [abs(i) for i in mesh_val2] + jw=[i for i in range(len(abs_mesh_val)) if abs_mesh_val[i] == numpy.min(abs_mesh_val[:])] - #orthogonal vector used for plane calculations - if orthvec is None: - #set to [0,0,1] by default - orthvec = numpy.zeros(3,dtype=float) - orthvec[2] = 1.0 - elif orthvec.size != 3: - assert 0, "The input numpy orthvec is not the required size of 3!" - - spn = self.spin_block_names[self.SO] - - Akw = {sp: numpy.zeros([self.n_k, n_om], float) - for sp in spn} - - #Cartesian lattice coordinates array - vkc = numpy.zeros([self.n_k,3], float) - - ikarray = numpy.array(range(self.n_k)) - for ik in mpi.slice_array(ikarray): - #calculate the catesian coordinates of IBZ - vkc[ik,:] = numpy.matmul(self.bmat,self.vkl[ik,:]) - - G_latt_w = self.lattice_gf( - ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) - - for iom in range(n_om): - for bname, gf in G_latt_w: - Akw[bname][ik, iom] += gf.data[iom,:,:].imag.trace() / (-1.0 * numpy.pi) - mpi.barrier() - - # Collect data from mpi: - for sp in spn: - Akw[sp] = mpi.all_reduce(mpi.world, Akw[sp], lambda x, y: x + y) - mpi.barrier() - - #fold out the IBZ k-points using the lattice vectors and symmetries - #reducible number of k-points (which will alter after out folding) - nk = self.n_k - iknr = numpy.arange(self.n_k) - if sym: - vkltmp = self.vkl - v = numpy.zeros(3, float) - v_orth = numpy.zeros(3, float) - for isym in range(self.n_symm): - #calculate the orthonormal vector after symmetry operation. This is used to - #check if the orthonormal vector after the symmetry operation is parallel - #or anit-parallel to the original vector. - if plane: - vo = numpy.matmul(self.symlat[isym][:,:],orthvec[:].transpose()) - #check if the vectors are parallel or anti-parallel respectively - t1 = numpy.array_equal(vo, orthvec) - if(not t1): - #exit this symmetry operation - continue - - for ik in range(self.n_k): - #find point in BZ by symmetry operation - v[:]=numpy.matmul(self.symlat[isym][:,:],self.vkl[ik,:]) - #shift back in to range [0,1) - Elk specific - v[:]=self.v3frac(v,epslat) - #add vector to list if not present and add the equivalent Akw value - #convert to cartesian - v[:] = numpy.matmul(self.bmat,v[:]) - #alter temporary arrays - nk += 1 - vkc = numpy.vstack((vkc,v)) - iknr = numpy.append(iknr,ik) - vkltmp = numpy.vstack((vkltmp,v)) - #remove duplicates - [vkc,ind]=numpy.unique(vkc,return_index=True,axis=0) - iknr=iknr[ind] - nk=vkc.shape[0] - #sort the indices for output in decending order - iksrt=numpy.lexsort(([vkc[:,i] for i in range(0,vkc.shape[1], 1)])) - #rearrange the vkc and iknr arrays - vkc=vkc[iksrt] - iknr=iknr[iksrt] - - # Write to files + #calculate the spectral functions for the irreducible set of k-points + [Akw, pAkw, pAkw_orb] = self.gen_Akw(mu=mu, broadening=broadening, mesh=mesh, \ + plot_shift=0.0, plot_range=plot_range, \ + shell_list=None, with_Sigma=with_Sigma, with_dc=with_dc, \ + proj_type=proj_type) + if save_to_file and mpi.is_master_node(): - for sp in self.spin_block_names[self.SO]: - if FS: - #Output default FS spectral function - f = open('Akw_FS_%s.dat' % sp, 'w') - for ik in range(nk): - jk=iknr[ik] - f.write("%s %s %s %s\n" % (vkc[ik,0], vkc[ik,1], vkc[ik,2], Akw[bname][jk, jw[0]])) - f.close() - else: - #Output spectral function from multiple frequencies - for iom in jw: - #output the energy contours in multiple files with mesh index. - f = open('Akw_%s_omega_%s.dat' % (sp, iom), 'w') - for ik in range(nk): - jk=iknr[ik] - f.write("%s %s %s %s %s\n" % (vkc[ik,0], vkc[ik,1], vkc[ik,2], om_mesh[iom], Akw[bname][jk, iom])) - f.close() - return nk, vkc, Akw, iknr - + spn = self.spin_block_names[self.SO] + vkc = numpy.zeros(3, float) + mesh_val2 = mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)] + if FS: + n_om = 1 + else: + n_om = len(mesh_val2) + for sp in spn: + # Open file for storage: + for iom in range(n_om): + if FS: + f = open('Akw_FS_' + sp + '.dat', 'w') + jom=jw[0] + else: + f = open('Akw_omega_%s_%s.dat' % (iom, sp), 'w') + jom=iom + f.write("#Spectral function evaluated at frequency = %s\n" %mesh_val2[jom]) + for ik in range(self.BZ_n_k): + jk=self.BZ_iknr[ik] + vkc[:] = numpy.matmul(self.bmat,self.BZ_vkl[ik,:]) + f.write("%s %s %s %s\n" % (vkc[0], vkc[1], vkc[2], Akw[sp][jk, jom])) + f.close() + if (proj_type!=None): + n_shells = len(pAkw[:]) + for iom in range(n_om): + for sp in spn: + for ish in range(n_shells): + if FS: + strng = 'Akw_FS' + '_' + proj_type + '_' + sp + '_proj' + str(ish) + jom=jw[0] + else: + strng = 'Akw_omega_' + str(iom) + '_' + proj_type + '_' + sp + '_proj' + str(ish) + jom=iom + f = open(strng + '.dat', 'w') + f.write("#Spectral function evaluated at frequency = %s\n" %mesh_val2[jom]) + for ik in range(self.BZ_n_k): + jk=self.BZ_iknr[ik] + vkc[:] = numpy.matmul(self.bmat,self.BZ_vkl[ik,:]) + f.write("%s %s %s %s\n" % (vkc[0], vkc[1], vkc[2], + pAkw[ish][sp][jk, jom])) + f.close() + dim=len(pAkw_orb[ish][sp][0, 0, 0, :]) + for i in range(dim): + for j in range(dim): + #For Elk with parproj - skip off-diagonal elements + if(proj_type=='elk') and (i!=j): continue + strng2 = strng + '_' + str(i) + '_' + str(j) + # Open file for storage: + f = open(strng2 + '.dat', 'w') + for ik in range(self.BZ_n_k): + jk=self.BZ_iknr[ik] + vkc[:] = numpy.matmul(self.bmat,self.BZ_vkl[ik,:]) + f.write("%s %s %s %s\n" % (vkc[0], vkc[1], vkc[2], + pAkw_orb[ish][sp][jk, jom, i, j])) + f.close() + return Akw, pAkw, pAkw_orb # Uses .data of only GfReFreq objects. - def spaghettis(self, broadening=None, plot_shift=0.0, plot_range=None, ishell=None, mu=None, save_to_file='Akw_'): + def spaghettis(self, mu=None, broadening=None, mesh=None, plot_shift=0.0, plot_range=None, shell_list=None, with_Sigma=True, with_dc=True, proj_type=None, save_to_file=True): """ - Calculates the correlated band structure using a real-frequency self energy. + Calculates the k-resolved spectral function A(k,w) (band structure) Parameters ---------- - mu : double, optional - Chemical potential, overrides the one stored in the hdf5 archive. - broadening : double, optional - Lorentzian broadening of the spectra. If not given, standard value of lattice_gf is used. - plot_shift : double, optional - Offset for each A(k,w) for stacked plotting of spectra. - plot_range : list of double, optional - Sets the energy window for plotting to (plot_range[0],plot_range[1]). If not provided, the energy mesh of the self energy is used. - ishell : integer, optional - Contains the index of the shell on which the spectral function is projected. If ishell=None, the total spectrum without projection is calculated. - save_to_file : string, optional - Filename where the spectra are stored. - + mu : double, optional + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double, optional + Lorentzian broadening of the spectra. + If not given, standard value of lattice_gf is used. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. + Given as parameter to lattice_gf. + plot_shift : double, optional + Offset for each A(k,w) for stacked plotting of spectra. + plot_range : list of double, optional + Sets the energy window for plotting to (plot_range[0],plot_range[1]). + If not provided, the min and max values of the energy mesh is used. + shell_list : list of integers, optional + Contains the indices of the shells of which the projected spectral function + is calculated for. + If shell_list = None and proj_type is not None, then the projected spectral + function is calculated for all shells. + with_Sigma : boolean, optional + If True, the self energy is used for the calculation. + If false, the DOS is calculated without self energy. + with_dc : boolean, optional + If True the double counting correction is used. + proj_type : string, optional + Output the orbital-projected A(k,w) type from the following: + 'wann' - Wannier A(k,w) calculated from the Wannier projectors + 'wien2k' - Wien2k orbital-projected A(k,w) from the wien2k theta projectors + save_to_file : boolean, optional + If True, text files with the calculated data will be created. Returns ------- - Akw : Dict of numpy arrays - Data as it is also written to the files. + Akw : Dict of numpy arrays + (Correlated) k-resolved spectral function + pAkw : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms. + Empty if proj_type = None + pAkw_orb : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms and + resolved into orbital contributions. Empty if proj_type = None """ - # check if ReFreqMesh is given - assert isinstance(self.mesh, MeshReFreq) - - things_to_read = ['n_k', 'n_orbitals', 'proj_mat', - 'hopping', 'n_parproj', 'proj_mat_all'] + #initialisation + if(proj_type!=None): + assert proj_type in ('wann', 'wien2k'), "'proj_type' must be either 'wann', 'wien2k'" + if(proj_type!='wann'): + assert proj_type==self.dft_code, "proj_type must be from the corresponding dft inputs." + things_to_read = ['n_k', 'n_orbitals', 'proj_mat', 'hopping'] subgroup_present, values_not_read = self.read_input_from_hdf( subgrp=self.bands_data, things_to_read=things_to_read) if len(values_not_read) > 0 and mpi.is_master_node: raise ValueError( 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) - if ishell is not None: - things_to_read = ['rot_mat_all', 'rot_mat_all_time_inv'] - subgroup_present, values_not_read = self.read_input_from_hdf( - subgrp=self.parproj_data, things_to_read=things_to_read) - if len(values_not_read) > 0 and mpi.is_master_node: - raise ValueError( - 'ERROR: One or more necessary SumK input properties have not been found in the given h5 archive:', self.values_not_read) + if(proj_type=='wien2k'): + self.load_parproj(data_type='band') if mu is None: mu = self.chemical_potential - spn = self.spin_block_names[self.SO] - mesh = numpy.array([x.value for x in self.mesh]) + if (with_Sigma): + assert isinstance(self.Sigma_imp[0].mesh, MeshReFreq), "SumkDFT.mesh must be real if with_Sigma is True" + mesh=self.Sigma_imp[0].mesh + elif mesh is not None: + assert isinstance(mesh, MeshReFreq), "mesh must be of form MeshReFreq" + if broadening is None: + broadening=0.001 + elif self.mesh is not None: + assert isinstance(self.mesh, MeshReFreq), "self.mesh must be of form MeshReFreq" + mesh=self.mesh + if broadening is None: + broadening=0.001 + else: + assert 0, "ReFreqMesh input required for calculations without real frequency self-energy" + mesh_val = numpy.linspace(mesh.omega_min,mesh.omega_max,len(mesh)) n_om = len(mesh) - + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 if plot_range is None: - om_minplot = mesh[0] - 0.001 - om_maxplot = mesh[-1] + 0.001 + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 else: om_minplot = plot_range[0] om_maxplot = plot_range[1] - n_om = len(mesh[(mesh > om_minplot)&(mesh < om_maxplot)]) + n_om = len(mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)]) - if ishell is None: - Akw = {sp: numpy.zeros([self.n_k, n_om], float) - for sp in spn} - else: - Akw = {sp: numpy.zeros( - [self.shells[ishell]['dim'], self.n_k, n_om], float) for sp in spn} - - if ishell is not None: - assert isinstance(ishell, int) and ishell in range(len(self.shells)), "ishell must be of type integer and consistent with number of shells." - gf_struct_parproj = [ - (sp, self.shells[ishell]['dim']) for sp in spn] - G_loc = BlockGf(name_block_generator=[(block, GfReFreq(target_shape=(block_dim, block_dim), mesh=self.Sigma_imp[0].mesh)) - for block, block_dim in gf_struct_parproj], make_copies=False) - G_loc.zero() - - ikarray = numpy.array(list(range(self.n_k))) - for ik in mpi.slice_array(ikarray): - - G_latt_w = self.lattice_gf(ik=ik, mu=mu, broadening=broadening) - - if ishell is None: - # Non-projected A(k,w) - for bname, gf in G_latt_w: - Akw[bname][ik] = -gf.data[numpy.where((mesh > om_minplot)&(mesh < om_maxplot))].imag.trace(axis1=1, axis2=2)/numpy.pi - # shift Akw for plotting stacked k-resolved eps(k) - # curves - Akw[bname][ik] += ik * plot_shift - - else: # ishell not None - # Projected A(k,w): - G_loc.zero() - tmp = G_loc.copy() - for ir in range(self.n_parproj[ishell]): - for bname, gf in tmp: - tmp[bname] << self.downfold(ik, ishell, bname, G_latt_w[ - bname], gf, shells='all', ir=ir) - G_loc += tmp - - # Rotate to local frame - if self.use_rotations: - for bname, gf in G_loc: - G_loc[bname] << self.rotloc( - ishell, gf, direction='toLocal', shells='all') - - for ish in range(self.shells[ishell]['dim']): - for sp in spn: - Akw[sp][ish, ik] = -G_loc[sp].data[numpy.where((mesh > om_minplot)&(mesh < om_maxplot)),ish,ish].imag/numpy.pi - # Collect data from mpi - for sp in spn: - Akw[sp] = mpi.all_reduce(mpi.world, Akw[sp], lambda x, y: x + y) - mpi.barrier() + [Akw, pAkw, pAkw_orb] = self.gen_Akw(mu=mu, broadening=broadening, mesh=mesh, \ + plot_shift=plot_shift, plot_range=plot_range, \ + shell_list=shell_list, with_Sigma=with_Sigma, with_dc=with_dc, \ + proj_type=proj_type) if save_to_file and mpi.is_master_node(): - if ishell is None: - for sp in spn: # loop over GF blocs: - # Open file for storage: - f = open(save_to_file + sp + '.dat', 'w') - for ik in range(self.n_k): - for iom in range(n_om): - if (mesh[iom] > om_minplot) and (mesh[iom] < om_maxplot): - if plot_shift > 0.0001: - f.write('%s %s\n' % - (mesh[iom], Akw[sp][ik, iom])) - else: - f.write('%s %s %s\n' % - (ik, mesh[iom], Akw[sp][ik, iom])) - f.write('\n') - f.close() - - else: # ishell is not None + mesh_val2 = mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)] + spn = self.spin_block_names[self.SO] + for sp in spn: + # Open file for storage: + f = open('Akw_' + sp + '.dat', 'w') + for ik in range(self.n_k): + for iom in range(n_om): + f.write('%s %s %s\n' %(ik, mesh_val2[iom], Akw[sp][ik, iom])) + f.write('\n') + f.close() + if (proj_type!=None): + n_shells = len(pAkw[:]) + if shell_list==None: + shell_list=[ish for ish in range(n_shells)] for sp in spn: - for ish in range(self.shells[ishell]['dim']): + for ish in range(n_shells): + jsh=shell_list[ish] + f = open('Akw_' + proj_type + '_' + + sp + '_proj' + str(jsh) + '.dat', 'w') + for ik in range(self.n_k): + for iom in range(n_om): + f.write('%s %s %s\n' % ( + ik, mesh_val2[iom], pAkw[ish][sp][ik, iom])) + f.write('\n') + f.close() + #get orbital dimension from the length of dimension of the array + dim=len(pAkw_orb[ish][sp][0, 0, 0, :]) + for i in range(dim): + for j in range(dim): + #For Elk with parproj - skip off-diagonal elements + if(proj_type=='elk') and (i!=j): continue # Open file for storage: - f = open(save_to_file + str(ishell) + '_' + - sp + '_proj' + str(ish) + '.dat', 'w') + f = open('Akw_' + proj_type + '_' + sp + '_proj' + str(jsh) + + '_' + str(i) + '_' + str(j) + '.dat', 'w') for ik in range(self.n_k): for iom in range(n_om): - if (mesh[iom] > om_minplot) and (mesh[iom] < om_maxplot): - if plot_shift > 0.0001: - f.write('%s %s\n' % ( - mesh[iom], Akw[sp][ish, ik, iom])) - else: - f.write('%s %s %s\n' % ( - ik, mesh[iom], Akw[sp][ish, ik, iom])) + f.write('%s %s %s\n' % ( + ik, mesh_val2[iom], pAkw_orb[ish][sp][ik, iom, i, j])) f.write('\n') f.close() - return Akw + return Akw, pAkw, pAkw_orb + + def gen_Akw(self, mu, broadening, mesh, plot_shift, plot_range, shell_list, with_Sigma, with_dc, proj_type): + """ + Internal routine used by spaghettis and spectral_contours to Calculate the k-resolved spectral + function A(k,w). For advanced users only. + + Parameters + ---------- + mu : double + Chemical potential, overrides the one stored in the hdf5 archive. + broadening : double + Lorentzian broadening of the spectra. + mesh : real frequency MeshType, optional + Omega mesh for the real-frequency Green's function. + Given as parameter to lattice_gf. + plot_shift : double + Offset for each A(k,w) for stacked plotting of spectra. + plot_range : list of double + Sets the energy window for plotting to (plot_range[0],plot_range[1]). + shell_list : list of integers, optional + Contains the indices of the shells of which the projected spectral function + is calculated for. + If shell_list = None and proj_type is not None, then the projected spectral + function is calculated for all shells. + with_Sigma : boolean + If True, the self energy is used for the calculation. + If false, the DOS is calculated without self energy. + with_dc : boolean + If True the double counting correction is used. + proj_type : string + Output the orbital-projected A(k,w) type from the following: + 'wann' - Wannier A(k,w) calculated from the Wannier projectors + 'wien2k' - Wien2k orbital-projected A(k,w) from the wien2k theta projectors + Returns + ------- + Akw : Dict of numpy arrays + (Correlated) k-resolved spectral function + pAkw : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms. + Empty if proj_type = None + pAkw_orb : Dict of numpy arrays + (Correlated) k-resolved spectral function projected to atoms and + resolved into orbital contributions. Empty if proj_type = None + """ + + mesh_val = numpy.linspace(mesh.omega_min,mesh.omega_max,len(mesh)) + n_om = len(mesh) + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 + if plot_range is None: + om_minplot = mesh_val[0] - 0.001 + om_maxplot = mesh_val[-1] + 0.001 + else: + om_minplot = plot_range[0] + om_maxplot = plot_range[1] + n_om = len(mesh_val[(mesh_val > om_minplot)&(mesh_val < om_maxplot)]) + + #set-up spectral functions + spn = self.spin_block_names[self.SO] + Akw = {sp: numpy.zeros([self.n_k, n_om], float) for sp in spn} + pAkw = [] + pAkw_orb = [] + #set-up projected A(k,w) and parameters if required + if (proj_type): + if (proj_type == 'wann'): + n_shells = self.n_corr_shells + gf_struct = self.gf_struct_sumk.copy() + dims = [self.corr_shells[ish]['dim'] for ish in range(n_shells)] + shells_type = 'corr' + elif (proj_type == 'wien2k'): + n_shells = self.n_shells + gf_struct = [[(sp, self.shells[ish]['dim']) for sp in spn] + for ish in range(n_shells)] + dims = [self.shells[ish]['dim'] for ish in range(n_shells)] + shells_type = 'all' + #only outputting user specified parproj shells + if shell_list!=None: + for ish in shell_list: + if(ish > n_shells) or (ish < 0): + raise IOError("indices in shell_list input do not correspond \ + to existing self.shells indices") + n_shells = len(shell_list) + mpi.report("calculating spectral functions for following user specified shell_list:") + [mpi.report('%s : %s '%(ish, self.shells[ish])) for ish in shell_list] + else: + shell_list=[ish for ish in range(n_shells)] + #projected Akw via projectors + pAkw = [{} for ish in range(n_shells)] + pAkw_orb = [{} for ish in range(n_shells)] + #set-up Green's function object + G_loc = [] + for ish in range(n_shells): + jsh=shell_list[ish] + dim = dims[ish] + for sp in spn: + pAkw[ish][sp] = numpy.zeros([self.n_k, n_om], float) + pAkw_orb[ish][sp] = numpy.zeros([self.n_k, n_om, dim, dim], float) + glist = [GfReFreq(target_shape=(block_dim, block_dim), mesh=mesh) + for block, block_dim in gf_struct[ish]] + G_loc.append( + BlockGf(name_list=spn, block_list=glist, make_copies=False)) + G_loc[ish].zero() + + #calculate the spectral function + ikarray = numpy.array(list(range(self.n_k))) + for ik in mpi.slice_array(ikarray): + G_latt_w = self.lattice_gf(ik=ik, mu=mu, broadening=broadening, mesh=mesh, with_Sigma=with_Sigma, with_dc=with_dc) + # Non-projected A(k,w) + for bname, gf in G_latt_w: + Akw[bname][ik] = -gf.data[numpy.where((mesh_val > om_minplot) & + (mesh_val < om_maxplot))].imag.trace(axis1=1, axis2=2)/numpy.pi + # shift Akw for plotting stacked k-resolved eps(k) curves + Akw[bname][ik] += ik * plot_shift + #project spectral functions + if (proj_type!=None): + # Projected A(k,w): + for ish in range(n_shells): + G_loc[ish].zero() + tmp = G_loc[ish].copy() + tmp.zero() + tmp << self.proj_type_G_loc(G_latt_w, tmp, ik, ish, proj_type) + G_loc[ish] += tmp + # Rotate to local frame + if (self.use_rotations): + for ish in range(n_shells): + jsh=shell_list[ish] + for bname, gf in G_loc[ish]: + G_loc[ish][bname] << self.rotloc( + jsh, gf, direction='toLocal', shells=shells_type) + for ish in range(n_shells): + for bname, gf in G_loc[ish]: # loop over spins + pAkw_orb[ish][bname][ik,:,:,:] = -gf.data[numpy.where((mesh_val > om_minplot) & + (mesh_val < om_maxplot)),:,:].imag/numpy.pi + # shift pAkw_orb for plotting stacked k-resolved eps(k) curves + pAkw_orb[ish][sp][ik] += ik * plot_shift + + # Collect data from mpi + mpi.barrier() + for sp in spn: + Akw[sp] = mpi.all_reduce(mpi.world, Akw[sp], lambda x, y: x + y) + if (proj_type): + for ish in range(n_shells): + pAkw_orb[ish][sp] = mpi.all_reduce(mpi.world, pAkw_orb[ish][sp], lambda x, y: x + y) + pAkw[ish][sp] = pAkw_orb[ish][sp].trace(axis1=2, axis2=3) + mpi.barrier() + + return Akw, pAkw, pAkw_orb + def partial_charges(self, mu=None, with_Sigma=True, with_dc=True): """ Calculates the orbitally-resolved density matrix for all the orbitals considered in the input, consistent with diff --git a/test/python/elk/CMakeLists.txt b/test/python/elk/CMakeLists.txt index dc2eb6eb..b0faf1e8 100644 --- a/test/python/elk/CMakeLists.txt +++ b/test/python/elk/CMakeLists.txt @@ -1,10 +1,12 @@ -# load triqs helper to set up tests +# load triqs helper to set up tests (removed bandcharacter test for now) set(all_tests elk_convert elk_equiv_convert elk_bands_convert - elk_bandcharacter_convert +# elk_bandcharacter_convert + occ_test elk_transport_convert + elk_spectralcontours_convert ) file(GLOB all_test_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.py) diff --git a/test/python/elk/elk_bandcharacter_convert.py b/test/python/elk/elk_bandcharacter_convert.py index 5f361308..1d4689f2 100644 --- a/test/python/elk/elk_bandcharacter_convert.py +++ b/test/python/elk/elk_bandcharacter_convert.py @@ -5,6 +5,7 @@ from triqs.utility.h5diff import h5diff import triqs.utility.mpi as mpi from triqs_dft_tools.converters import ElkConverter +from triqs_dft_tools.sumk_dft_tools import * #get current working directory path cwd = format(os.getcwd()) #location of test directory @@ -17,6 +18,27 @@ Converter.hdf_file = 'elk_bc_convert.out.h5' Converter.convert_dft_input() Converter.dft_band_characters() +#SK = SumkDFTTools(hdf_file='elk_bc_convert.out.h5', use_dft_blocks=True) +#SK.occupations(with_Sigma=False, with_dc=False) + +omin = -1.0 +omax = 1.0 +oN = 3 +mesh = MeshReFreq(omin,omax,oN) +dos_elk = SK.density_of_states(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, proj_type='elk', save_to_file=False) +#dos_occ_elk = SK.density_of_states(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, proj_type='elk', dosocc=True, save_to_file=False) + +if mpi.is_master_node(): + + #with HDFArchive('elk_bc_convert.ref.h5', 'a') as ar: + # ar['dos_elk'] = dos_elk + # ar['dos_occ_elk'] = dos_occ_elk + # ar['dos_mesh'] = [omin,omax,oN] + with HDFArchive('elk_bc_convert.out.h5', 'a') as ar: + ar['dos_elk'] = dos_elk +# ar['dos_occ_elk'] = dos_occ_elk + ar['dos_mesh'] = [omin,omax,oN] + if mpi.is_master_node(): h5diff('elk_bc_convert.out.h5','elk_bc_convert.ref.h5') diff --git a/test/python/elk/elk_bandcharacter_convert/elk_bc_convert.ref.h5 b/test/python/elk/elk_bandcharacter_convert/elk_bc_convert.ref.h5 index f3aa74ea4eb3842967daaf81dc6bc569ca7c09d1..12c347392d63f1825add1ddbd3be09c8552f6091 100644 GIT binary patch literal 1314910 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%0A2g*h+y$w=(G%>M3 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

%7ipu(lW>KUEIgK#;0GHfKMo;Z`yw} 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%0D`xh~g@ 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

UOKD?fBno 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 literal 519141 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 n-!%ssz<~Bc{r0YAjY=wvTVHPv{MoY6LoICoCKz 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 UFd71*Aut*OqaiRF0z)7K0PiyHF#rGn diff --git a/test/python/elk/elk_bands_convert.py b/test/python/elk/elk_bands_convert.py index 0b7b7423..c6f25118 100644 --- a/test/python/elk/elk_bands_convert.py +++ b/test/python/elk/elk_bands_convert.py @@ -5,6 +5,7 @@ from triqs.utility.h5diff import h5diff import triqs.utility.mpi as mpi from triqs_dft_tools.converters import ElkConverter +from triqs_dft_tools.sumk_dft_tools import * #get current working directory path cwd = format(os.getcwd()) #location of test directory @@ -17,6 +18,24 @@ Converter.hdf_file = 'elk_bands_convert.out.h5' Converter.convert_dft_input() Converter.convert_bands_input() +omin = -1.0 +omax = 1.0 +oN = 3 +mesh = MeshReFreq(omin,omax,oN) +SK = SumkDFTTools(hdf_file='elk_bands_convert.out.h5', use_dft_blocks=True) +spag_wann = SK.spaghettis(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, proj_type='wann', save_to_file=False) + + +if mpi.is_master_node(): + + #with HDFArchive('elk_bands_convert.ref.h5', 'a') as ar: + # ar['spag_wann'] = spag_wann + # ar['mesh'] = [omin,omax,oN] + with HDFArchive('elk_bands_convert.out.h5', 'a') as ar: + ar['spag_wann'] = spag_wann + ar['mesh'] = [omin,omax,oN] + + if mpi.is_master_node(): h5diff('elk_bands_convert.out.h5','elk_bands_convert.ref.h5') diff --git a/test/python/elk/elk_bands_convert/elk_bands_convert.ref.h5 b/test/python/elk/elk_bands_convert/elk_bands_convert.ref.h5 index 5355aca92143c906c1da94bc2826514ba6a835ab..ca0413a87d2dca0b5bda9599482db34b4bf233db 100644 GIT binary patch delta 6536 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 delta 100 zcmdloOQG$T>;w&Fwp#Xy+O5mOYT214Z(!nJ4A{JrNtctIF*6Xe05R+KCU&-t=gf=@4AbKjm|Z6xkO1lk+P>#Kn^!LYsfi&| diff --git a/test/python/elk/elk_spectralcontours_convert.py b/test/python/elk/elk_spectralcontours_convert.py new file mode 100644 index 00000000..8e81596a --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert.py @@ -0,0 +1,49 @@ +import os +from h5 import * +from triqs.utility.comparison_tests import * +from triqs.utility.h5diff import h5diff +import triqs.utility.mpi as mpi + +from triqs_dft_tools.converters import ElkConverter +from triqs_dft_tools.sumk_dft_tools import * +#get current working directory path +cwd = format(os.getcwd()) +#location of test directory +testdir = cwd+'/elk_spectralcontours_convert' +#change to test directory +os.chdir(testdir) + +Converter = ElkConverter(filename='SrVO3', repacking=True) +Converter.hdf_file = 'elk_spectralcontours_convert.out.h5' +Converter.convert_dft_input() +Converter.convert_contours_input() + +omin = -1.0 +omax = 1.0 +oN = 3 +mesh = MeshReFreq(omin,omax,oN) +SK = SumkDFTTools(hdf_file='elk_spectralcontours_convert.out.h5', use_dft_blocks=True) +fs_elk = SK.spectral_contours(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, FS=True, proj_type='wann', save_to_file=False) +omega_elk = SK.spectral_contours(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, FS=False, proj_type='wann', save_to_file=False) +omega_range_elk = SK.spectral_contours(broadening=0.01, mesh=mesh, plot_range=(-0.5,2), with_Sigma=False, with_dc=False, FS=False, proj_type='wann', save_to_file=False) + + +if mpi.is_master_node(): + + #with HDFArchive('elk_fermisurface_convert.ref.h5', 'a') as ar: + # ar['fs_elk'] = fs_elk + # ar['omega_elk'] = omega_elk + # ar['omega_range_elk'] = omega_range_elk + # ar['mesh'] = [omin,omax,oN] + with HDFArchive('elk_spectralcontours_convert.out.h5', 'a') as ar: + ar['fs_elk'] = fs_elk + ar['omega_elk'] = omega_elk + ar['omega_range_elk'] = omega_range_elk + ar['mesh'] = [omin,omax,oN] + + +if mpi.is_master_node(): + h5diff('elk_spectralcontours_convert.out.h5','elk_spectralcontours_convert.ref.h5') + +#return to cwd +os.chdir(cwd) diff --git a/test/python/elk/elk_spectralcontours_convert/EFERMI.OUT b/test/python/elk/elk_spectralcontours_convert/EFERMI.OUT new file mode 100644 index 00000000..d916e4e0 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/EFERMI.OUT @@ -0,0 +1 @@ + 0.3211418521 diff --git a/test/python/elk/elk_spectralcontours_convert/EIGVAL.OUT b/test/python/elk/elk_spectralcontours_convert/EIGVAL.OUT new file mode 100644 index 00000000..e1ace37a --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/EIGVAL.OUT @@ -0,0 +1,452 @@ + 10 : nkpt + 41 : nstsv + + 1 0.000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910719 2.000000000 + 2 -1.131688868 2.000000000 + 3 -1.131688868 2.000000000 + 4 -1.131688868 2.000000000 + 5 -0.9440722281 2.000000000 + 6 -0.4008874810 2.000000000 + 7 -0.3552838641 2.000000000 + 8 -0.3552838641 2.000000000 + 9 -0.2841899184 2.000000000 + 10 -0.2841899184 2.000000000 + 11 -0.2841899184 2.000000000 + 12 0.1240403570 2.000000000 + 13 0.1240403570 2.000000000 + 14 0.1240403570 2.000000000 + 15 0.1963433344 2.000000000 + 16 0.1963433344 2.000000000 + 17 0.1963433344 2.000000000 + 18 0.2274643503 2.000000000 + 19 0.2274643503 2.000000000 + 20 0.2274643503 2.000000000 + 21 0.2787404948 2.000000000 + 22 0.2787404948 2.000000000 + 23 0.2787404948 2.000000000 + 24 0.3627396356 0.1719262367E-17 + 25 0.3627396356 0.1719262367E-17 + 26 0.4679669876 0.000000000 + 27 0.4679669876 0.000000000 + 28 0.4816901801 0.000000000 + 29 0.6363316249 0.000000000 + 30 0.6363316249 0.000000000 + 31 0.6363316249 0.000000000 + 32 0.7997526405 0.000000000 + 33 0.8808335095 0.000000000 + 34 0.8808335095 0.000000000 + 35 0.8808335095 0.000000000 + 36 1.065261897 0.000000000 + 37 1.106455928 0.000000000 + 38 1.106455928 0.000000000 + 39 1.106455928 0.000000000 + 40 1.114323880 0.000000000 + 41 1.114323880 0.000000000 + + + 2 0.2500000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080913193 2.000000000 + 2 -1.132327830 2.000000000 + 3 -1.131627115 2.000000000 + 4 -1.131627115 2.000000000 + 5 -0.9434460805 2.000000000 + 6 -0.4030965189 2.000000000 + 7 -0.3558073194 2.000000000 + 8 -0.3545831852 2.000000000 + 9 -0.2829724423 2.000000000 + 10 -0.2829724423 2.000000000 + 11 -0.2705119332 2.000000000 + 12 0.9560796544E-01 2.000000000 + 13 0.1228952839 2.000000000 + 14 0.1228952839 2.000000000 + 15 0.1683146037 2.000000000 + 16 0.1683146037 2.000000000 + 17 0.1775868429 2.000000000 + 18 0.1784449782 2.000000000 + 19 0.2167722434 2.000000000 + 20 0.2167722434 2.000000000 + 21 0.2810750475 2.000000000 + 22 0.3212383247 0.9518010834 + 23 0.3212383247 0.9518010834 + 24 0.3630289786 0.1287306864E-17 + 25 0.4141859733 0.000000000 + 26 0.5095225831 0.000000000 + 27 0.5111532545 0.000000000 + 28 0.5351317989 0.000000000 + 29 0.6323948955 0.000000000 + 30 0.6642391006 0.000000000 + 31 0.6642391006 0.000000000 + 32 0.7959842788 0.000000000 + 33 0.8780219214 0.000000000 + 34 0.8780219214 0.000000000 + 35 0.8898914875 0.000000000 + 36 0.9650596386 0.000000000 + 37 1.041840477 0.000000000 + 38 1.050392091 0.000000000 + 39 1.073097886 0.000000000 + 40 1.073097886 0.000000000 + 41 1.117664142 0.000000000 + + + 3 0.5000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912294 2.000000000 + 2 -1.132926000 2.000000000 + 3 -1.131564883 2.000000000 + 4 -1.131564883 2.000000000 + 5 -0.9428157584 2.000000000 + 6 -0.4084852674 2.000000000 + 7 -0.3538266767 2.000000000 + 8 -0.3494064835 2.000000000 + 9 -0.2817319657 2.000000000 + 10 -0.2817319657 2.000000000 + 11 -0.2598027528 2.000000000 + 12 0.6746678864E-01 2.000000000 + 13 0.1234010884 2.000000000 + 14 0.1234010884 2.000000000 + 15 0.1468283741 2.000000000 + 16 0.1474941442 2.000000000 + 17 0.1474941442 2.000000000 + 18 0.1641425238 2.000000000 + 19 0.2112615509 2.000000000 + 20 0.2112615509 2.000000000 + 21 0.2834528906 2.000000000 + 22 0.3519041118 0.8732736605E-13 + 23 0.3519041118 0.8732736605E-13 + 24 0.3633785741 0.9075167915E-18 + 25 0.4481704980 0.000000000 + 26 0.5555294131 0.000000000 + 27 0.5580645177 0.000000000 + 28 0.6281608880 0.000000000 + 29 0.6332808152 0.000000000 + 30 0.6924728482 0.000000000 + 31 0.6924728482 0.000000000 + 32 0.7832086939 0.000000000 + 33 0.7952333683 0.000000000 + 34 0.8782579932 0.000000000 + 35 0.8782579932 0.000000000 + 36 0.9262397892 0.000000000 + 37 0.9863709064 0.000000000 + 38 1.036659717 0.000000000 + 39 1.044273941 0.000000000 + 40 1.044273941 0.000000000 + 41 1.063670948 0.000000000 + + + 4 0.2500000000 0.2500000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910305 2.000000000 + 2 -1.132253334 2.000000000 + 3 -1.132203942 2.000000000 + 4 -1.131564292 2.000000000 + 5 -0.9429128350 2.000000000 + 6 -0.3974642421 2.000000000 + 7 -0.3620613011 2.000000000 + 8 -0.3528792985 2.000000000 + 9 -0.2816629848 2.000000000 + 10 -0.2755380936 2.000000000 + 11 -0.2700258631 2.000000000 + 12 0.8547828315E-01 2.000000000 + 13 0.1039516055 2.000000000 + 14 0.1197230548 2.000000000 + 15 0.1233892019 2.000000000 + 16 0.1533643763 2.000000000 + 17 0.1753953421 2.000000000 + 18 0.1902845589 2.000000000 + 19 0.1940737286 2.000000000 + 20 0.2141345371 2.000000000 + 21 0.3192041969 1.748188638 + 22 0.3242569532 0.8497725960E-01 + 23 0.3326622012 0.1985188022E-04 + 24 0.3876946347 0.000000000 + 25 0.4473600939 0.000000000 + 26 0.5410462795 0.000000000 + 27 0.5568988187 0.000000000 + 28 0.5594024471 0.000000000 + 29 0.6584119709 0.000000000 + 30 0.6720929653 0.000000000 + 31 0.6729354314 0.000000000 + 32 0.7948725946 0.000000000 + 33 0.8323960461 0.000000000 + 34 0.8621206515 0.000000000 + 35 0.8968767900 0.000000000 + 36 0.9026311112 0.000000000 + 37 1.007375063 0.000000000 + 38 1.029511860 0.000000000 + 39 1.074335499 0.000000000 + 40 1.076877573 0.000000000 + 41 1.128715119 0.000000000 + + + 5 0.5000000000 0.2500000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080915142 2.000000000 + 2 -1.132870627 2.000000000 + 3 -1.132197689 2.000000000 + 4 -1.131556232 2.000000000 + 5 -0.9423759464 2.000000000 + 6 -0.3957985951 2.000000000 + 7 -0.3591886159 2.000000000 + 8 -0.3541237898 2.000000000 + 9 -0.2803411887 2.000000000 + 10 -0.2742745845 2.000000000 + 11 -0.2649434107 2.000000000 + 12 0.6526613080E-01 2.000000000 + 13 0.8555139360E-01 2.000000000 + 14 0.9994023735E-01 2.000000000 + 15 0.1245618184 2.000000000 + 16 0.1367849583 2.000000000 + 17 0.1699818356 2.000000000 + 18 0.1826235006 2.000000000 + 19 0.1855674022 2.000000000 + 20 0.2170412769 2.000000000 + 21 0.3221154164 0.5483412429 + 22 0.3512664743 0.1652238713E-12 + 23 0.3540552435 0.1016074895E-13 + 24 0.3921830392 0.000000000 + 25 0.4807900649 0.000000000 + 26 0.5824822150 0.000000000 + 27 0.6006494969 0.000000000 + 28 0.6229834244 0.000000000 + 29 0.6657915676 0.000000000 + 30 0.6890583665 0.000000000 + 31 0.6988887480 0.000000000 + 32 0.7600570316 0.000000000 + 33 0.7996674572 0.000000000 + 34 0.8243421355 0.000000000 + 35 0.8498168438 0.000000000 + 36 0.8644313429 0.000000000 + 37 0.9690404302 0.000000000 + 38 0.9869111018 0.000000000 + 39 1.034862996 0.000000000 + 40 1.123680910 0.000000000 + 41 1.128338774 0.000000000 + + + 6 0.5000000000 0.5000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080919469 2.000000000 + 2 -1.132821084 2.000000000 + 3 -1.132821084 2.000000000 + 4 -1.131556349 2.000000000 + 5 -0.9419324868 2.000000000 + 6 -0.3708454421 2.000000000 + 7 -0.3675374713 2.000000000 + 8 -0.3675374713 2.000000000 + 9 -0.2789251686 2.000000000 + 10 -0.2680364299 2.000000000 + 11 -0.2680364299 2.000000000 + 12 0.5665044952E-01 2.000000000 + 13 0.5993672713E-01 2.000000000 + 14 0.7465522869E-01 2.000000000 + 15 0.1269678634 2.000000000 + 16 0.1269678634 2.000000000 + 17 0.1634606661 2.000000000 + 18 0.1830616586 2.000000000 + 19 0.1830616586 2.000000000 + 20 0.2395130028 2.000000000 + 21 0.3509860321 0.2187093208E-12 + 22 0.3509860321 0.2187093208E-12 + 23 0.3642441290 0.3818993808E-18 + 24 0.4008409013 0.000000000 + 25 0.5180680382 0.000000000 + 26 0.6064481132 0.000000000 + 27 0.6159910731 0.000000000 + 28 0.6990396042 0.000000000 + 29 0.6990396042 0.000000000 + 30 0.7103343649 0.000000000 + 31 0.7103343649 0.000000000 + 32 0.7116369197 0.000000000 + 33 0.7967413206 0.000000000 + 34 0.8017159443 0.000000000 + 35 0.8017159443 0.000000000 + 36 0.8135759123 0.000000000 + 37 0.8435846616 0.000000000 + 38 0.9580135282 0.000000000 + 39 1.078257119 0.000000000 + 40 1.131319957 0.000000000 + 41 1.131319957 0.000000000 + + + 7 0.2500000000 0.2500000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080913977 2.000000000 + 2 -1.132241568 2.000000000 + 3 -1.132172611 2.000000000 + 4 -1.132172611 2.000000000 + 5 -0.9424245661 2.000000000 + 6 -0.3896839023 2.000000000 + 7 -0.3569612248 2.000000000 + 8 -0.3569612248 2.000000000 + 9 -0.2818665975 2.000000000 + 10 -0.2818665975 2.000000000 + 11 -0.2671909185 2.000000000 + 12 0.7777182416E-01 2.000000000 + 13 0.1043736461 2.000000000 + 14 0.1043736461 2.000000000 + 15 0.1248592859 2.000000000 + 16 0.1248592859 2.000000000 + 17 0.1271180018 2.000000000 + 18 0.2063953518 2.000000000 + 19 0.2063953518 2.000000000 + 20 0.2182014310 2.000000000 + 21 0.3336490597 0.7399751594E-05 + 22 0.3371547058 0.2221958444E-06 + 23 0.3371547058 0.2221958444E-06 + 24 0.4466894689 0.000000000 + 25 0.4466894689 0.000000000 + 26 0.5645507189 0.000000000 + 27 0.5734253550 0.000000000 + 28 0.5734253550 0.000000000 + 29 0.6611231279 0.000000000 + 30 0.6611231279 0.000000000 + 31 0.6990740794 0.000000000 + 32 0.7649259038 0.000000000 + 33 0.8586074180 0.000000000 + 34 0.8599856377 0.000000000 + 35 0.8599856377 0.000000000 + 36 0.9036846530 0.000000000 + 37 1.014152150 0.000000000 + 38 1.014152150 0.000000000 + 39 1.058268396 0.000000000 + 40 1.080994750 0.000000000 + 41 1.080994750 0.000000000 + + + 8 0.5000000000 0.2500000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080917843 2.000000000 + 2 -1.132810191 2.000000000 + 3 -1.132178689 2.000000000 + 4 -1.132133756 2.000000000 + 5 -0.9419326068 2.000000000 + 6 -0.3836090418 2.000000000 + 7 -0.3586874609 2.000000000 + 8 -0.3507955564 2.000000000 + 9 -0.2892621023 2.000000000 + 10 -0.2733714081 2.000000000 + 11 -0.2729057127 2.000000000 + 12 0.6418300003E-01 2.000000000 + 13 0.8759567475E-01 2.000000000 + 14 0.9829632479E-01 2.000000000 + 15 0.1062288532 2.000000000 + 16 0.1087052035 2.000000000 + 17 0.1320017692 2.000000000 + 18 0.2052277811 2.000000000 + 19 0.2110865712 2.000000000 + 20 0.2216363259 2.000000000 + 21 0.3392602725 0.2705826722E-07 + 22 0.3563641887 0.1009633014E-14 + 23 0.3578146532 0.2367199304E-15 + 24 0.4454329801 0.000000000 + 25 0.4886828614 0.000000000 + 26 0.5891619039 0.000000000 + 27 0.6102869678 0.000000000 + 28 0.6180362420 0.000000000 + 29 0.6198659280 0.000000000 + 30 0.6847871477 0.000000000 + 31 0.7249610769 0.000000000 + 32 0.7388741743 0.000000000 + 33 0.8161765665 0.000000000 + 34 0.8171066677 0.000000000 + 35 0.8708867936 0.000000000 + 36 0.8867366925 0.000000000 + 37 1.002008651 0.000000000 + 38 1.012283144 0.000000000 + 39 1.019094714 0.000000000 + 40 1.021550943 0.000000000 + 41 1.047281587 0.000000000 + + + 9 0.5000000000 0.5000000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080921208 2.000000000 + 2 -1.132758919 2.000000000 + 3 -1.132758919 2.000000000 + 4 -1.132120892 2.000000000 + 5 -0.9414857882 2.000000000 + 6 -0.3596463816 2.000000000 + 7 -0.3591916695 2.000000000 + 8 -0.3591916695 2.000000000 + 9 -0.2880719366 2.000000000 + 10 -0.2806057944 2.000000000 + 11 -0.2806057944 2.000000000 + 12 0.5632350433E-01 2.000000000 + 13 0.7486414205E-01 2.000000000 + 14 0.7925223839E-01 2.000000000 + 15 0.1088394444 2.000000000 + 16 0.1088394444 2.000000000 + 17 0.1098299671 2.000000000 + 18 0.2164711067 2.000000000 + 19 0.2164711067 2.000000000 + 20 0.2410400548 2.000000000 + 21 0.3601440638 0.2304542215E-16 + 22 0.3601440638 0.2304542215E-16 + 23 0.3681877804 0.7400190992E-20 + 24 0.4633895546 0.000000000 + 25 0.5180560838 0.000000000 + 26 0.5766243705 0.000000000 + 27 0.6015462210 0.000000000 + 28 0.6015462210 0.000000000 + 29 0.6440257883 0.000000000 + 30 0.6771775015 0.000000000 + 31 0.7573218888 0.000000000 + 32 0.7573218888 0.000000000 + 33 0.7888483171 0.000000000 + 34 0.8361695632 0.000000000 + 35 0.8661467170 0.000000000 + 36 0.8941930696 0.000000000 + 37 0.8941930696 0.000000000 + 38 0.9781855322 0.000000000 + 39 1.024091390 0.000000000 + 40 1.057340734 0.000000000 + 41 1.057340734 0.000000000 + + + 10 0.5000000000 0.5000000000 0.5000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080926396 2.000000000 + 2 -1.132723022 2.000000000 + 3 -1.132723022 2.000000000 + 4 -1.132723022 2.000000000 + 5 -0.9410358021 2.000000000 + 6 -0.3473222676 2.000000000 + 7 -0.3473222676 2.000000000 + 8 -0.3473222676 2.000000000 + 9 -0.2965701321 2.000000000 + 10 -0.2965701321 2.000000000 + 11 -0.2965701321 2.000000000 + 12 0.4839222808E-01 2.000000000 + 13 0.7509750358E-01 2.000000000 + 14 0.7509750358E-01 2.000000000 + 15 0.9821261830E-01 2.000000000 + 16 0.9821261830E-01 2.000000000 + 17 0.9821261830E-01 2.000000000 + 18 0.2427208550 2.000000000 + 19 0.2427208550 2.000000000 + 20 0.2427208550 2.000000000 + 21 0.3724696265 0.000000000 + 22 0.3724696265 0.000000000 + 23 0.3724696265 0.000000000 + 24 0.5181679961 0.000000000 + 25 0.5181679961 0.000000000 + 26 0.5489633359 0.000000000 + 27 0.5489633359 0.000000000 + 28 0.5489633359 0.000000000 + 29 0.6285960800 0.000000000 + 30 0.7678537640 0.000000000 + 31 0.7678537640 0.000000000 + 32 0.7814962950 0.000000000 + 33 0.7814962950 0.000000000 + 34 0.7814962950 0.000000000 + 35 0.8648320259 0.000000000 + 36 0.9932576734 0.000000000 + 37 0.9932576734 0.000000000 + 38 0.9932576734 0.000000000 + 39 1.011396116 0.000000000 + 40 1.011396116 0.000000000 + 41 1.011396116 0.000000000 + diff --git a/test/python/elk/elk_spectralcontours_convert/EIGVAL_FS.OUT b/test/python/elk/elk_spectralcontours_convert/EIGVAL_FS.OUT new file mode 100644 index 00000000..c0b99cb3 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/EIGVAL_FS.OUT @@ -0,0 +1,947 @@ + 21 : nkpt + 41 : nstsv + + 1 0.000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910732 2.000000000 + 2 -1.131688880 2.000000000 + 3 -1.131688880 2.000000000 + 4 -1.131688880 2.000000000 + 5 -0.9440722298 2.000000000 + 6 -0.4008874732 2.000000000 + 7 -0.3552838559 2.000000000 + 8 -0.3552838559 2.000000000 + 9 -0.2841899177 2.000000000 + 10 -0.2841899177 2.000000000 + 11 -0.2841899177 2.000000000 + 12 0.1240403629 2.000000000 + 13 0.1240403629 2.000000000 + 14 0.1240403629 2.000000000 + 15 0.1963433433 2.000000000 + 16 0.1963433433 2.000000000 + 17 0.1963433433 2.000000000 + 18 0.2274643581 2.000000000 + 19 0.2274643581 2.000000000 + 20 0.2274643581 2.000000000 + 21 0.2787404870 2.000000000 + 22 0.2787404870 2.000000000 + 23 0.2787404870 2.000000000 + 24 0.3627396270 2.000000000 + 25 0.3627396270 2.000000000 + 26 0.4679669946 2.000000000 + 27 0.4679669946 2.000000000 + 28 0.4816901860 2.000000000 + 29 0.6363316293 2.000000000 + 30 0.6363316293 2.000000000 + 31 0.6363316293 2.000000000 + 32 0.7997526401 2.000000000 + 33 0.8808335149 2.000000000 + 34 0.8808335149 2.000000000 + 35 0.8808335149 2.000000000 + 36 1.065261901 2.000000000 + 37 1.106455930 2.000000000 + 38 1.106455930 2.000000000 + 39 1.106455930 2.000000000 + 40 1.114323888 2.000000000 + 41 1.114323888 2.000000000 + + + 2 0.1000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080909159 2.000000000 + 2 -1.131788409 2.000000000 + 3 -1.131653113 2.000000000 + 4 -1.131653113 2.000000000 + 5 -0.9439528486 2.000000000 + 6 -0.4009441708 2.000000000 + 7 -0.3561077380 2.000000000 + 8 -0.3551451458 2.000000000 + 9 -0.2839587662 2.000000000 + 10 -0.2839587662 2.000000000 + 11 -0.2812507232 2.000000000 + 12 0.1185854297 2.000000000 + 13 0.1238063011 2.000000000 + 14 0.1238063011 2.000000000 + 15 0.1900774254 2.000000000 + 16 0.1900774254 2.000000000 + 17 0.1927286537 2.000000000 + 18 0.2152146297 2.000000000 + 19 0.2242641155 2.000000000 + 20 0.2242641155 2.000000000 + 21 0.2793078375 2.000000000 + 22 0.2893639648 2.000000000 + 23 0.2893639648 2.000000000 + 24 0.3628780162 2.000000000 + 25 0.3755200552 2.000000000 + 26 0.4755702213 2.000000000 + 27 0.4761395316 2.000000000 + 28 0.4907634054 2.000000000 + 29 0.6356210242 2.000000000 + 30 0.6416676790 2.000000000 + 31 0.6416676790 2.000000000 + 32 0.8002497481 2.000000000 + 33 0.8801972789 2.000000000 + 34 0.8801972789 2.000000000 + 35 0.8818430198 2.000000000 + 36 1.025278627 2.000000000 + 37 1.098903002 2.000000000 + 38 1.098903002 2.000000000 + 39 1.101951189 2.000000000 + 40 1.116225531 2.000000000 + 41 1.116225531 2.000000000 + + + 3 0.2000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910445 2.000000000 + 2 -1.132107679 2.000000000 + 3 -1.131626043 2.000000000 + 4 -1.131626043 2.000000000 + 5 -0.9436399455 2.000000000 + 6 -0.4019508784 2.000000000 + 7 -0.3565598745 2.000000000 + 8 -0.3547841695 2.000000000 + 9 -0.2833501825 2.000000000 + 10 -0.2833501825 2.000000000 + 11 -0.2743365029 2.000000000 + 12 0.1045156557 2.000000000 + 13 0.1232424025 2.000000000 + 14 0.1232424025 2.000000000 + 15 0.1759037011 2.000000000 + 16 0.1759037011 2.000000000 + 17 0.1838968913 2.000000000 + 18 0.1900394817 2.000000000 + 19 0.2190799893 2.000000000 + 20 0.2190799893 2.000000000 + 21 0.2804060656 2.000000000 + 22 0.3105844969 2.000000000 + 23 0.3105844969 2.000000000 + 24 0.3630983947 2.000000000 + 25 0.4013553450 2.000000000 + 26 0.4962419742 2.000000000 + 27 0.4976868664 2.000000000 + 28 0.5167033978 2.000000000 + 29 0.6336505977 2.000000000 + 30 0.6556290197 2.000000000 + 31 0.6556290197 2.000000000 + 32 0.7989330049 2.000000000 + 33 0.8787525961 2.000000000 + 34 0.8787525961 2.000000000 + 35 0.8870155563 2.000000000 + 36 0.9822209427 2.000000000 + 37 1.070125904 2.000000000 + 38 1.082474527 2.000000000 + 39 1.082474527 2.000000000 + 40 1.090295428 2.000000000 + 41 1.117834337 2.000000000 + + + 4 0.3000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912816 2.000000000 + 2 -1.132506423 2.000000000 + 3 -1.131613690 2.000000000 + 4 -1.131613690 2.000000000 + 5 -0.9432517439 2.000000000 + 6 -0.4045424160 2.000000000 + 7 -0.3544032421 2.000000000 + 8 -0.3543462199 2.000000000 + 9 -0.2825923712 2.000000000 + 10 -0.2825923712 2.000000000 + 11 -0.2669551929 2.000000000 + 12 0.8681362897E-01 2.000000000 + 13 0.1227133110 2.000000000 + 14 0.1227133110 2.000000000 + 15 0.1614128727 2.000000000 + 16 0.1614128727 2.000000000 + 17 0.1668308889 2.000000000 + 18 0.1740270749 2.000000000 + 19 0.2148269986 2.000000000 + 20 0.2148269986 2.000000000 + 21 0.2817670354 2.000000000 + 22 0.3312427488 2.000000000 + 23 0.3312427488 2.000000000 + 24 0.3631011061 2.000000000 + 25 0.4258988934 2.000000000 + 26 0.5231761026 2.000000000 + 27 0.5251906115 2.000000000 + 28 0.5566800096 2.000000000 + 29 0.6311158172 2.000000000 + 30 0.6728816770 2.000000000 + 31 0.6728816770 2.000000000 + 32 0.7917158637 2.000000000 + 33 0.8776391194 2.000000000 + 34 0.8776391194 2.000000000 + 35 0.8866799191 2.000000000 + 36 0.9510228646 2.000000000 + 37 1.005432117 2.000000000 + 38 1.030977041 2.000000000 + 39 1.064082112 2.000000000 + 40 1.064082112 2.000000000 + 41 1.116755918 2.000000000 + + + 5 0.4000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080913773 2.000000000 + 2 -1.132811074 2.000000000 + 3 -1.131593022 2.000000000 + 4 -1.131593022 2.000000000 + 5 -0.9429364678 2.000000000 + 6 -0.4073214723 2.000000000 + 7 -0.3540016654 2.000000000 + 8 -0.3510238123 2.000000000 + 9 -0.2819738743 2.000000000 + 10 -0.2819738743 2.000000000 + 11 -0.2616749848 2.000000000 + 12 0.7266757905E-01 2.000000000 + 13 0.1226684604 2.000000000 + 14 0.1226684604 2.000000000 + 15 0.1510793143 2.000000000 + 16 0.1510793143 2.000000000 + 17 0.1520090817 2.000000000 + 18 0.1665646486 2.000000000 + 19 0.2121892992 2.000000000 + 20 0.2121892992 2.000000000 + 21 0.2829072590 2.000000000 + 22 0.3462609687 2.000000000 + 23 0.3462609687 2.000000000 + 24 0.3632098974 2.000000000 + 25 0.4423450066 2.000000000 + 26 0.5463264649 2.000000000 + 27 0.5485586247 2.000000000 + 28 0.6046735437 2.000000000 + 29 0.6289897265 2.000000000 + 30 0.6867986244 2.000000000 + 31 0.6867986244 2.000000000 + 32 0.7826283996 2.000000000 + 33 0.8380263622 2.000000000 + 34 0.8777215736 2.000000000 + 35 0.8777215736 2.000000000 + 36 0.9323898655 2.000000000 + 37 0.9989170702 2.000000000 + 38 1.000888113 2.000000000 + 39 1.049750247 2.000000000 + 40 1.049750247 2.000000000 + 41 1.113716065 2.000000000 + + + 6 0.5000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912307 2.000000000 + 2 -1.132926012 2.000000000 + 3 -1.131564895 2.000000000 + 4 -1.131564895 2.000000000 + 5 -0.9428157601 2.000000000 + 6 -0.4084852604 2.000000000 + 7 -0.3538266685 2.000000000 + 8 -0.3494064753 2.000000000 + 9 -0.2817319652 2.000000000 + 10 -0.2817319652 2.000000000 + 11 -0.2598027512 2.000000000 + 12 0.6746679082E-01 2.000000000 + 13 0.1234010948 2.000000000 + 14 0.1234010948 2.000000000 + 15 0.1468283821 2.000000000 + 16 0.1474941488 2.000000000 + 17 0.1474941488 2.000000000 + 18 0.1641425322 2.000000000 + 19 0.2112615584 2.000000000 + 20 0.2112615584 2.000000000 + 21 0.2834528823 2.000000000 + 22 0.3519041066 2.000000000 + 23 0.3519041066 2.000000000 + 24 0.3633785655 2.000000000 + 25 0.4481704923 2.000000000 + 26 0.5555294202 2.000000000 + 27 0.5580645254 2.000000000 + 28 0.6281608941 2.000000000 + 29 0.6332808208 2.000000000 + 30 0.6924728550 2.000000000 + 31 0.6924728550 2.000000000 + 32 0.7832086999 2.000000000 + 33 0.7952333728 2.000000000 + 34 0.8782579967 2.000000000 + 35 0.8782579967 2.000000000 + 36 0.9262397905 2.000000000 + 37 0.9863709139 2.000000000 + 38 1.036659720 2.000000000 + 39 1.044273945 2.000000000 + 40 1.044273945 2.000000000 + 41 1.063670948 2.000000000 + + + 7 0.1000000000 0.1000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080909809 2.000000000 + 2 -1.131783983 2.000000000 + 3 -1.131778460 2.000000000 + 4 -1.131646823 2.000000000 + 5 -0.9438369886 2.000000000 + 6 -0.4007714455 2.000000000 + 7 -0.3567224439 2.000000000 + 8 -0.3553157995 2.000000000 + 9 -0.2837245234 2.000000000 + 10 -0.2824090445 2.000000000 + 11 -0.2799362929 2.000000000 + 12 0.1150485638 2.000000000 + 13 0.1216406841 2.000000000 + 14 0.1236018963 2.000000000 + 15 0.1779758078 2.000000000 + 16 0.1849552902 2.000000000 + 17 0.1965716424 2.000000000 + 18 0.2092220875 2.000000000 + 19 0.2177040299 2.000000000 + 20 0.2196304836 2.000000000 + 21 0.2884511446 2.000000000 + 22 0.2907991860 2.000000000 + 23 0.2957754366 2.000000000 + 24 0.3691861290 2.000000000 + 25 0.3821152784 2.000000000 + 26 0.4834116438 2.000000000 + 27 0.4835406850 2.000000000 + 28 0.4986254883 2.000000000 + 29 0.6392764593 2.000000000 + 30 0.6429031610 2.000000000 + 31 0.6465857201 2.000000000 + 32 0.8007754290 2.000000000 + 33 0.8727042784 2.000000000 + 34 0.8791858076 2.000000000 + 35 0.8886149302 2.000000000 + 36 0.9998809789 2.000000000 + 37 1.089546489 2.000000000 + 38 1.103794840 2.000000000 + 39 1.105521080 2.000000000 + 40 1.108420436 2.000000000 + 41 1.120487740 2.000000000 + + + 8 0.2000000000 0.1000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080911004 2.000000000 + 2 -1.132103557 2.000000000 + 3 -1.131753154 2.000000000 + 4 -1.131617529 2.000000000 + 5 -0.9435329353 2.000000000 + 6 -0.4010955001 2.000000000 + 7 -0.3576696458 2.000000000 + 8 -0.3547847781 2.000000000 + 9 -0.2831076533 2.000000000 + 10 -0.2814462403 2.000000000 + 11 -0.2741079299 2.000000000 + 12 0.1025888932 2.000000000 + 13 0.1195417824 2.000000000 + 14 0.1231287381 2.000000000 + 15 0.1604245817 2.000000000 + 16 0.1725472891 2.000000000 + 17 0.1877522008 2.000000000 + 18 0.1961162554 2.000000000 + 19 0.2117744813 2.000000000 + 20 0.2130070411 2.000000000 + 21 0.2902547402 2.000000000 + 22 0.3108105852 2.000000000 + 23 0.3124798806 2.000000000 + 24 0.3715895039 2.000000000 + 25 0.4062590170 2.000000000 + 26 0.5033406812 2.000000000 + 27 0.5046178472 2.000000000 + 28 0.5217695029 2.000000000 + 29 0.6389447777 2.000000000 + 30 0.6560922157 2.000000000 + 31 0.6592273872 2.000000000 + 32 0.7995469919 2.000000000 + 33 0.8661717790 2.000000000 + 34 0.8766911711 2.000000000 + 35 0.8954758696 2.000000000 + 36 0.9626908693 2.000000000 + 37 1.065754364 2.000000000 + 38 1.076861375 2.000000000 + 39 1.095167595 2.000000000 + 40 1.101831472 2.000000000 + 41 1.108118017 2.000000000 + + + 9 0.3000000000 0.1000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912737 2.000000000 + 2 -1.132490982 2.000000000 + 3 -1.131733187 2.000000000 + 4 -1.131610717 2.000000000 + 5 -0.9431557018 2.000000000 + 6 -0.4029515269 2.000000000 + 7 -0.3563178674 2.000000000 + 8 -0.3539100079 2.000000000 + 9 -0.2823394100 2.000000000 + 10 -0.2808340428 2.000000000 + 11 -0.2674029147 2.000000000 + 12 0.8596370241E-01 2.000000000 + 13 0.1177181505 2.000000000 + 14 0.1227466379 2.000000000 + 15 0.1425930075 2.000000000 + 16 0.1589935104 2.000000000 + 17 0.1713887295 2.000000000 + 18 0.1893763145 2.000000000 + 19 0.2069629201 2.000000000 + 20 0.2080166189 2.000000000 + 21 0.2911866382 2.000000000 + 22 0.3312889666 2.000000000 + 23 0.3315617908 2.000000000 + 24 0.3719776255 2.000000000 + 25 0.4309496521 2.000000000 + 26 0.5296378331 2.000000000 + 27 0.5313980966 2.000000000 + 28 0.5592603672 2.000000000 + 29 0.6371714677 2.000000000 + 30 0.6736694970 2.000000000 + 31 0.6737615918 2.000000000 + 32 0.7918906762 2.000000000 + 33 0.8640331406 2.000000000 + 34 0.8744581344 2.000000000 + 35 0.8895700430 2.000000000 + 36 0.9330817218 2.000000000 + 37 1.006821410 2.000000000 + 38 1.036724165 2.000000000 + 39 1.058789088 2.000000000 + 40 1.086295647 2.000000000 + 41 1.105453586 2.000000000 + + + 10 0.4000000000 0.1000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912743 2.000000000 + 2 -1.132795469 2.000000000 + 3 -1.131700197 2.000000000 + 4 -1.131575716 2.000000000 + 5 -0.9428493135 2.000000000 + 6 -0.4052812267 2.000000000 + 7 -0.3541493402 2.000000000 + 8 -0.3525554930 2.000000000 + 9 -0.2817092624 2.000000000 + 10 -0.2803570680 2.000000000 + 11 -0.2625950461 2.000000000 + 12 0.7234303420E-01 2.000000000 + 13 0.1173922479 2.000000000 + 14 0.1232433569 2.000000000 + 15 0.1287115262 2.000000000 + 16 0.1490856506 2.000000000 + 17 0.1618529377 2.000000000 + 18 0.1837267004 2.000000000 + 19 0.2039816629 2.000000000 + 20 0.2051453989 2.000000000 + 21 0.2921452827 2.000000000 + 22 0.3461954442 2.000000000 + 23 0.3462867264 2.000000000 + 24 0.3721207022 2.000000000 + 25 0.4476317903 2.000000000 + 26 0.5524612697 2.000000000 + 27 0.5543185122 2.000000000 + 28 0.6054150267 2.000000000 + 29 0.6356577046 2.000000000 + 30 0.6847531963 2.000000000 + 31 0.6880607942 2.000000000 + 32 0.7814144365 2.000000000 + 33 0.8371544856 2.000000000 + 34 0.8656912414 2.000000000 + 35 0.8747350444 2.000000000 + 36 0.9135038783 2.000000000 + 37 0.9951318914 2.000000000 + 38 1.007544309 2.000000000 + 39 1.049949285 2.000000000 + 40 1.073136852 2.000000000 + 41 1.099197941 2.000000000 + + + 11 0.5000000000 0.1000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080914315 2.000000000 + 2 -1.132923257 2.000000000 + 3 -1.131701512 2.000000000 + 4 -1.131575496 2.000000000 + 5 -0.9427320547 2.000000000 + 6 -0.4063131316 2.000000000 + 7 -0.3536388259 2.000000000 + 8 -0.3514535708 2.000000000 + 9 -0.2814703665 2.000000000 + 10 -0.2801731569 2.000000000 + 11 -0.2608952154 2.000000000 + 12 0.6694474275E-01 2.000000000 + 13 0.1197384269 2.000000000 + 14 0.1207529758 2.000000000 + 15 0.1232636010 2.000000000 + 16 0.1451677843 2.000000000 + 17 0.1586558483 2.000000000 + 18 0.1814609779 2.000000000 + 19 0.2028155005 2.000000000 + 20 0.2040686865 2.000000000 + 21 0.2924672053 2.000000000 + 22 0.3515327202 2.000000000 + 23 0.3516373277 2.000000000 + 24 0.3719997473 2.000000000 + 25 0.4533171831 2.000000000 + 26 0.5615841533 2.000000000 + 27 0.5636586733 2.000000000 + 28 0.6322343740 2.000000000 + 29 0.6350507924 2.000000000 + 30 0.6897146607 2.000000000 + 31 0.6932632682 2.000000000 + 32 0.7786790817 2.000000000 + 33 0.7963675073 2.000000000 + 34 0.8668828766 2.000000000 + 35 0.8758203487 2.000000000 + 36 0.9059146205 2.000000000 + 37 0.9940248633 2.000000000 + 38 1.006285494 2.000000000 + 39 1.063175015 2.000000000 + 40 1.068052560 2.000000000 + 41 1.080805203 2.000000000 + + + 12 0.2000000000 0.2000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912506 2.000000000 + 2 -1.132103952 2.000000000 + 3 -1.132056499 2.000000000 + 4 -1.131598670 2.000000000 + 5 -0.9432521117 2.000000000 + 6 -0.3994376314 2.000000000 + 7 -0.3601450101 2.000000000 + 8 -0.3539373788 2.000000000 + 9 -0.2824692360 2.000000000 + 10 -0.2780522962 2.000000000 + 11 -0.2724978893 2.000000000 + 12 0.9553776557E-01 2.000000000 + 13 0.1117828910 2.000000000 + 14 0.1228909517 2.000000000 + 15 0.1399337624 2.000000000 + 16 0.1636010391 2.000000000 + 17 0.1829107785 2.000000000 + 18 0.1940253975 2.000000000 + 19 0.2030573884 2.000000000 + 20 0.2096937316 2.000000000 + 21 0.3083523303 2.000000000 + 22 0.3134070723 2.000000000 + 23 0.3208846297 2.000000000 + 24 0.3816832264 2.000000000 + 25 0.4239980613 2.000000000 + 26 0.5199348173 2.000000000 + 27 0.5269839957 2.000000000 + 28 0.5373781759 2.000000000 + 29 0.6495551846 2.000000000 + 30 0.6606788271 2.000000000 + 31 0.6672316840 2.000000000 + 32 0.7992389682 2.000000000 + 33 0.8489760400 2.000000000 + 34 0.8709675253 2.000000000 + 35 0.9014609987 2.000000000 + 36 0.9303865476 2.000000000 + 37 1.040171815 2.000000000 + 38 1.077097353 2.000000000 + 39 1.082713392 2.000000000 + 40 1.088909303 2.000000000 + 41 1.118663171 2.000000000 + + + 13 0.3000000000 0.2000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912133 2.000000000 + 2 -1.132454475 2.000000000 + 3 -1.132033748 2.000000000 + 4 -1.131574407 2.000000000 + 5 -0.9429036059 2.000000000 + 6 -0.3988341452 2.000000000 + 7 -0.3605761620 2.000000000 + 8 -0.3529433976 2.000000000 + 9 -0.2816698826 2.000000000 + 10 -0.2767709619 2.000000000 + 11 -0.2684194473 2.000000000 + 12 0.8298732003E-01 2.000000000 + 13 0.1056640258 2.000000000 + 14 0.1213875142 2.000000000 + 15 0.1233525698 2.000000000 + 16 0.1526171699 2.000000000 + 17 0.1732429843 2.000000000 + 18 0.1917619289 2.000000000 + 19 0.1956090540 2.000000000 + 20 0.2099851872 2.000000000 + 21 0.3110899979 2.000000000 + 22 0.3315582607 2.000000000 + 23 0.3348943910 2.000000000 + 24 0.3854176231 2.000000000 + 25 0.4472154046 2.000000000 + 26 0.5430818043 2.000000000 + 27 0.5536360352 2.000000000 + 28 0.5682345260 2.000000000 + 29 0.6528989478 2.000000000 + 30 0.6743768747 2.000000000 + 31 0.6765465452 2.000000000 + 32 0.7914938418 2.000000000 + 33 0.8386821901 2.000000000 + 34 0.8643558564 2.000000000 + 35 0.8892499300 2.000000000 + 36 0.9034677194 2.000000000 + 37 0.9974717995 2.000000000 + 38 1.037498514 2.000000000 + 39 1.055618542 2.000000000 + 40 1.084095865 2.000000000 + 41 1.122522581 2.000000000 + + + 14 0.4000000000 0.2000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080914265 2.000000000 + 2 -1.132771899 2.000000000 + 3 -1.132016606 2.000000000 + 4 -1.131564584 2.000000000 + 5 -0.9426205890 2.000000000 + 6 -0.3995786453 2.000000000 + 7 -0.3583392890 2.000000000 + 8 -0.3528873988 2.000000000 + 9 -0.2810226947 2.000000000 + 10 -0.2764924767 2.000000000 + 11 -0.2648379220 2.000000000 + 12 0.7087498864E-01 2.000000000 + 13 0.9932707564E-01 2.000000000 + 14 0.1108048778 2.000000000 + 15 0.1236292000 2.000000000 + 16 0.1435793001 2.000000000 + 17 0.1675281467 2.000000000 + 18 0.1900930577 2.000000000 + 19 0.1912244858 2.000000000 + 20 0.2077179918 2.000000000 + 21 0.3116593413 2.000000000 + 22 0.3461002663 2.000000000 + 23 0.3475315866 2.000000000 + 24 0.3865239342 2.000000000 + 25 0.4637698796 2.000000000 + 26 0.5647847275 2.000000000 + 27 0.5751513546 2.000000000 + 28 0.6084438774 2.000000000 + 29 0.6535214406 2.000000000 + 30 0.6791323882 2.000000000 + 31 0.6910752928 2.000000000 + 32 0.7767791300 2.000000000 + 33 0.8325898080 2.000000000 + 34 0.8414369026 2.000000000 + 35 0.8619889029 2.000000000 + 36 0.8832336570 2.000000000 + 37 0.9782863714 2.000000000 + 38 1.022411299 2.000000000 + 39 1.032575179 2.000000000 + 40 1.091331552 2.000000000 + 41 1.118103456 2.000000000 + + + 15 0.5000000000 0.2000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080915413 2.000000000 + 2 -1.132891012 2.000000000 + 3 -1.132015592 2.000000000 + 4 -1.131566151 2.000000000 + 5 -0.9425122411 2.000000000 + 6 -0.4001227534 2.000000000 + 7 -0.3563639315 2.000000000 + 8 -0.3535917331 2.000000000 + 9 -0.2807743988 2.000000000 + 10 -0.2764149195 2.000000000 + 11 -0.2635225292 2.000000000 + 12 0.6600668299E-01 2.000000000 + 13 0.9601888614E-01 2.000000000 + 14 0.1084600340 2.000000000 + 15 0.1239913268 2.000000000 + 16 0.1399276136 2.000000000 + 17 0.1658165267 2.000000000 + 18 0.1893805363 2.000000000 + 19 0.1896718783 2.000000000 + 20 0.2065160207 2.000000000 + 21 0.3118758621 2.000000000 + 22 0.3513816352 2.000000000 + 23 0.3525644191 2.000000000 + 24 0.3867426607 2.000000000 + 25 0.4695667667 2.000000000 + 26 0.5741584825 2.000000000 + 27 0.5849285733 2.000000000 + 28 0.6272946748 2.000000000 + 29 0.6537010422 2.000000000 + 30 0.6877829689 2.000000000 + 31 0.6964877512 2.000000000 + 32 0.7671340909 2.000000000 + 33 0.7986908631 2.000000000 + 34 0.8399854218 2.000000000 + 35 0.8683713004 2.000000000 + 36 0.8691569600 2.000000000 + 37 0.9774250673 2.000000000 + 38 1.020782934 2.000000000 + 39 1.022953844 2.000000000 + 40 1.114830034 2.000000000 + 41 1.115916337 2.000000000 + + + 16 0.3000000000 0.3000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080914971 2.000000000 + 2 -1.132436968 2.000000000 + 3 -1.132418318 2.000000000 + 4 -1.131566223 2.000000000 + 5 -0.9425907807 2.000000000 + 6 -0.3941947599 2.000000000 + 7 -0.3638680315 2.000000000 + 8 -0.3525985296 2.000000000 + 9 -0.2808414814 2.000000000 + 10 -0.2731334556 2.000000000 + 11 -0.2687672089 2.000000000 + 12 0.7628097937E-01 2.000000000 + 13 0.9506503790E-01 2.000000000 + 14 0.9991662173E-01 2.000000000 + 15 0.1236247471 2.000000000 + 16 0.1443583254 2.000000000 + 17 0.1725632088 2.000000000 + 18 0.1849440665 2.000000000 + 19 0.1870269238 2.000000000 + 20 0.2204518612 2.000000000 + 21 0.3291533561 2.000000000 + 22 0.3334940275 2.000000000 + 23 0.3429692716 2.000000000 + 24 0.3923315456 2.000000000 + 25 0.4692595910 2.000000000 + 26 0.5617780604 2.000000000 + 27 0.5810461786 2.000000000 + 28 0.5906249070 2.000000000 + 29 0.6693193914 2.000000000 + 30 0.6712112119 2.000000000 + 31 0.6837327429 2.000000000 + 32 0.7863484353 2.000000000 + 33 0.8144049415 2.000000000 + 34 0.8480547574 2.000000000 + 35 0.8793045114 2.000000000 + 36 0.8811230337 2.000000000 + 37 0.9787079024 2.000000000 + 38 0.9809969101 2.000000000 + 39 1.068074555 2.000000000 + 40 1.081333640 2.000000000 + 41 1.142822231 2.000000000 + + + 17 0.4000000000 0.3000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080916149 2.000000000 + 2 -1.132733541 2.000000000 + 3 -1.132400746 2.000000000 + 4 -1.131568612 2.000000000 + 5 -0.9423366413 2.000000000 + 6 -0.3914794664 2.000000000 + 7 -0.3635836581 2.000000000 + 8 -0.3538096622 2.000000000 + 9 -0.2801657495 2.000000000 + 10 -0.2722594797 2.000000000 + 11 -0.2671308164 2.000000000 + 12 0.6791777276E-01 2.000000000 + 13 0.8235645579E-01 2.000000000 + 14 0.9198296479E-01 2.000000000 + 15 0.1244120614 2.000000000 + 16 0.1368848169 2.000000000 + 17 0.1730677251 2.000000000 + 18 0.1783102819 2.000000000 + 19 0.1848129957 2.000000000 + 20 0.2244940378 2.000000000 + 21 0.3312688690 2.000000000 + 22 0.3459275707 2.000000000 + 23 0.3522193117 2.000000000 + 24 0.3951048220 2.000000000 + 25 0.4861413807 2.000000000 + 26 0.5816109844 2.000000000 + 27 0.6007419184 2.000000000 + 28 0.6221902279 2.000000000 + 29 0.6722373150 2.000000000 + 30 0.6764926581 2.000000000 + 31 0.6961463328 2.000000000 + 32 0.7686733701 2.000000000 + 33 0.8052301596 2.000000000 + 34 0.8359038407 2.000000000 + 35 0.8375336935 2.000000000 + 36 0.8658094998 2.000000000 + 37 0.9487850813 2.000000000 + 38 0.9681844240 2.000000000 + 39 1.055395650 2.000000000 + 40 1.100695686 2.000000000 + 41 1.155650871 2.000000000 + + + 18 0.5000000000 0.3000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080915624 2.000000000 + 2 -1.132850089 2.000000000 + 3 -1.132388258 2.000000000 + 4 -1.131547752 2.000000000 + 5 -0.9422393049 2.000000000 + 6 -0.3908737675 2.000000000 + 7 -0.3618869250 2.000000000 + 8 -0.3553445021 2.000000000 + 9 -0.2799058677 2.000000000 + 10 -0.2722492654 2.000000000 + 11 -0.2661706205 2.000000000 + 12 0.6414383834E-01 2.000000000 + 13 0.7660769556E-01 2.000000000 + 14 0.9093097487E-01 2.000000000 + 15 0.1251700771 2.000000000 + 16 0.1336952547 2.000000000 + 17 0.1740886849 2.000000000 + 18 0.1763261642 2.000000000 + 19 0.1835857744 2.000000000 + 20 0.2255134950 2.000000000 + 21 0.3316233696 2.000000000 + 22 0.3511715339 2.000000000 + 23 0.3563289914 2.000000000 + 24 0.3959382304 2.000000000 + 25 0.4922753552 2.000000000 + 26 0.5914731571 2.000000000 + 27 0.6181130599 2.000000000 + 28 0.6193088746 2.000000000 + 29 0.6784747967 2.000000000 + 30 0.6913423708 2.000000000 + 31 0.7016502917 2.000000000 + 32 0.7525755071 2.000000000 + 33 0.8004113737 2.000000000 + 34 0.8092377498 2.000000000 + 35 0.8328494307 2.000000000 + 36 0.8590811936 2.000000000 + 37 0.9465071345 2.000000000 + 38 0.9633976262 2.000000000 + 39 1.048557906 2.000000000 + 40 1.128880774 2.000000000 + 41 1.135097909 2.000000000 + + + 19 0.4000000000 0.4000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080917731 2.000000000 + 2 -1.132706790 2.000000000 + 3 -1.132705960 2.000000000 + 4 -1.131565401 2.000000000 + 5 -0.9421058471 2.000000000 + 6 -0.3834790329 2.000000000 + 7 -0.3665756857 2.000000000 + 8 -0.3570864087 2.000000000 + 9 -0.2794661602 2.000000000 + 10 -0.2694169315 2.000000000 + 11 -0.2681876336 2.000000000 + 12 0.6262103867E-01 2.000000000 + 13 0.7013842048E-01 2.000000000 + 14 0.8024033427E-01 2.000000000 + 15 0.1254457466 2.000000000 + 16 0.1313479904 2.000000000 + 17 0.1698189050 2.000000000 + 18 0.1778454377 2.000000000 + 19 0.1838364258 2.000000000 + 20 0.2336514639 2.000000000 + 21 0.3450032871 2.000000000 + 22 0.3464698221 2.000000000 + 23 0.3585864382 2.000000000 + 24 0.3987603737 2.000000000 + 25 0.5043366555 2.000000000 + 26 0.5981716290 2.000000000 + 27 0.6101071207 2.000000000 + 28 0.6613991904 2.000000000 + 29 0.6670118773 2.000000000 + 30 0.6950159846 2.000000000 + 31 0.7028656497 2.000000000 + 32 0.7534178061 2.000000000 + 33 0.7865876965 2.000000000 + 34 0.8143653036 2.000000000 + 35 0.8276587658 2.000000000 + 36 0.8538559625 2.000000000 + 37 0.8846840956 2.000000000 + 38 0.9599417139 2.000000000 + 39 1.068976702 2.000000000 + 40 1.110556071 2.000000000 + 41 1.159698049 2.000000000 + + + 20 0.5000000000 0.4000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080917891 2.000000000 + 2 -1.132827350 2.000000000 + 3 -1.132688495 2.000000000 + 4 -1.131562003 2.000000000 + 5 -0.9420174680 2.000000000 + 6 -0.3800462132 2.000000000 + 7 -0.3660252128 2.000000000 + 8 -0.3604288618 2.000000000 + 9 -0.2791973288 2.000000000 + 10 -0.2691628168 2.000000000 + 11 -0.2676617893 2.000000000 + 12 0.5993194062E-01 2.000000000 + 13 0.6425223388E-01 2.000000000 + 14 0.7786030826E-01 2.000000000 + 15 0.1263728510 2.000000000 + 16 0.1287707523 2.000000000 + 17 0.1668697214 2.000000000 + 18 0.1805627823 2.000000000 + 19 0.1829975597 2.000000000 + 20 0.2360688023 2.000000000 + 21 0.3457297335 2.000000000 + 22 0.3509995361 2.000000000 + 23 0.3616826223 2.000000000 + 24 0.3997580283 2.000000000 + 25 0.5109441828 2.000000000 + 26 0.6083858840 2.000000000 + 27 0.6097125375 2.000000000 + 28 0.6627027592 2.000000000 + 29 0.6967353862 2.000000000 + 30 0.7008363829 2.000000000 + 31 0.7073978040 2.000000000 + 32 0.7347418759 2.000000000 + 33 0.7903798822 2.000000000 + 34 0.8013347673 2.000000000 + 35 0.8067730797 2.000000000 + 36 0.8485275110 2.000000000 + 37 0.8667098609 2.000000000 + 38 0.9586620793 2.000000000 + 39 1.069981813 2.000000000 + 40 1.131713603 2.000000000 + 41 1.135135916 2.000000000 + + + 21 0.5000000000 0.5000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080919482 2.000000000 + 2 -1.132821097 2.000000000 + 3 -1.132821097 2.000000000 + 4 -1.131556361 2.000000000 + 5 -0.9419324886 2.000000000 + 6 -0.3708454340 2.000000000 + 7 -0.3675374646 2.000000000 + 8 -0.3675374646 2.000000000 + 9 -0.2789251682 2.000000000 + 10 -0.2680364276 2.000000000 + 11 -0.2680364276 2.000000000 + 12 0.5665045277E-01 2.000000000 + 13 0.5993673263E-01 2.000000000 + 14 0.7465522991E-01 2.000000000 + 15 0.1269678685 2.000000000 + 16 0.1269678685 2.000000000 + 17 0.1634606715 2.000000000 + 18 0.1830616667 2.000000000 + 19 0.1830616667 2.000000000 + 20 0.2395130119 2.000000000 + 21 0.3509860264 2.000000000 + 22 0.3509860264 2.000000000 + 23 0.3642441218 2.000000000 + 24 0.4008408942 2.000000000 + 25 0.5180680338 2.000000000 + 26 0.6064481199 2.000000000 + 27 0.6159910807 2.000000000 + 28 0.6990396102 2.000000000 + 29 0.6990396102 2.000000000 + 30 0.7103343712 2.000000000 + 31 0.7103343712 2.000000000 + 32 0.7116369245 2.000000000 + 33 0.7967413245 2.000000000 + 34 0.8017159495 2.000000000 + 35 0.8017159495 2.000000000 + 36 0.8135759195 2.000000000 + 37 0.8435846655 2.000000000 + 38 0.9580135298 2.000000000 + 39 1.078257127 2.000000000 + 40 1.131319960 2.000000000 + 41 1.131319960 2.000000000 + diff --git a/test/python/elk/elk_spectralcontours_convert/GEOMETRY.OUT b/test/python/elk/elk_spectralcontours_convert/GEOMETRY.OUT new file mode 100644 index 00000000..069386d7 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/GEOMETRY.OUT @@ -0,0 +1,31 @@ + +scale + 1.0 + +scale1 + 1.0 + +scale2 + 1.0 + +scale3 + 1.0 + +avec + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +atoms + 3 : nspecies +'Sr.in' : spfname + 1 : natoms; atpos, bfcmt below + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 +'V.in' : spfname + 1 : natoms; atpos, bfcmt below + 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 +'O.in' : spfname + 3 : natoms; atpos, bfcmt below + 0.00000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 + 0.50000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 + 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 diff --git a/test/python/elk/elk_spectralcontours_convert/KPOINTS.OUT b/test/python/elk/elk_spectralcontours_convert/KPOINTS.OUT new file mode 100644 index 00000000..12fb88d5 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/KPOINTS.OUT @@ -0,0 +1,11 @@ + 10 : nkpt; k-point, vkl, wkpt, nmat below + 1 0.000000000 0.000000000 0.000000000 0.1562500000E-01 401 + 2 0.2500000000 0.000000000 0.000000000 0.9375000000E-01 397 + 3 0.5000000000 0.000000000 0.000000000 0.4687500000E-01 372 + 4 0.2500000000 0.2500000000 0.000000000 0.1875000000 374 + 5 0.5000000000 0.2500000000 0.000000000 0.1875000000 386 + 6 0.5000000000 0.5000000000 0.000000000 0.4687500000E-01 392 + 7 0.2500000000 0.2500000000 0.2500000000 0.1250000000 386 + 8 0.5000000000 0.2500000000 0.2500000000 0.1875000000 386 + 9 0.5000000000 0.5000000000 0.2500000000 0.9375000000E-01 388 + 10 0.5000000000 0.5000000000 0.5000000000 0.1562500000E-01 396 diff --git a/test/python/elk/elk_spectralcontours_convert/KPOINTS_FS.OUT b/test/python/elk/elk_spectralcontours_convert/KPOINTS_FS.OUT new file mode 100644 index 00000000..c58957c4 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/KPOINTS_FS.OUT @@ -0,0 +1,22 @@ + 21 : nkpt; k-point, vkl, wkpt, nmat below + 1 0.000000000 0.000000000 0.000000000 0.1000000000E-01 401 + 2 0.1000000000 0.000000000 0.000000000 0.4000000000E-01 389 + 3 0.2000000000 0.000000000 0.000000000 0.4000000000E-01 385 + 4 0.3000000000 0.000000000 0.000000000 0.4000000000E-01 393 + 5 0.4000000000 0.000000000 0.000000000 0.4000000000E-01 388 + 6 0.5000000000 0.000000000 0.000000000 0.2000000000E-01 372 + 7 0.1000000000 0.1000000000 0.000000000 0.4000000000E-01 392 + 8 0.2000000000 0.1000000000 0.000000000 0.8000000000E-01 387 + 9 0.3000000000 0.1000000000 0.000000000 0.8000000000E-01 392 + 10 0.4000000000 0.1000000000 0.000000000 0.8000000000E-01 381 + 11 0.5000000000 0.1000000000 0.000000000 0.4000000000E-01 388 + 12 0.2000000000 0.2000000000 0.000000000 0.4000000000E-01 392 + 13 0.3000000000 0.2000000000 0.000000000 0.8000000000E-01 380 + 14 0.4000000000 0.2000000000 0.000000000 0.8000000000E-01 388 + 15 0.5000000000 0.2000000000 0.000000000 0.4000000000E-01 390 + 16 0.3000000000 0.3000000000 0.000000000 0.4000000000E-01 382 + 17 0.4000000000 0.3000000000 0.000000000 0.8000000000E-01 389 + 18 0.5000000000 0.3000000000 0.000000000 0.4000000000E-01 386 + 19 0.4000000000 0.4000000000 0.000000000 0.4000000000E-01 390 + 20 0.5000000000 0.4000000000 0.000000000 0.4000000000E-01 394 + 21 0.5000000000 0.5000000000 0.000000000 0.1000000000E-01 392 diff --git a/test/python/elk/elk_spectralcontours_convert/LATTICE.OUT b/test/python/elk/elk_spectralcontours_convert/LATTICE.OUT new file mode 100644 index 00000000..9fbd2c10 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/LATTICE.OUT @@ -0,0 +1,41 @@ + ++----------------------------+ +| Real-space lattice vectors | ++----------------------------+ + +vector a1 : 7.260500000 0.000000000 0.000000000 +vector a2 : 0.000000000 7.260500000 0.000000000 +vector a3 : 0.000000000 0.000000000 7.260500000 + +Stored column-wise as a matrix : + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +Inverse of matrix : + 0.1377315612 0.000000000 0.000000000 + 0.000000000 0.1377315612 0.000000000 + 0.000000000 0.000000000 0.1377315612 + +Unit cell volume : 382.7362428 + + ++----------------------------------+ +| Reciprocal-space lattice vectors | ++----------------------------------+ + +vector b1 : 0.8653929216 0.000000000 0.000000000 +vector b2 : 0.000000000 0.8653929216 0.000000000 +vector b3 : 0.000000000 0.000000000 0.8653929216 + +Stored column-wise as a matrix : + 0.8653929216 0.000000000 0.000000000 + 0.000000000 0.8653929216 0.000000000 + 0.000000000 0.000000000 0.8653929216 + +Inverse of matrix : + 1.155544464 0.000000000 0.000000000 + 0.000000000 1.155544464 0.000000000 + 0.000000000 0.000000000 1.155544464 + +Brillouin zone volume : 0.6480970070 diff --git a/test/python/elk/elk_spectralcontours_convert/PROJ.OUT b/test/python/elk/elk_spectralcontours_convert/PROJ.OUT new file mode 100644 index 00000000..51b27a0f --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/PROJ.OUT @@ -0,0 +1,8 @@ + 1 10 1 0 5 : nproj, nkpt, nspinor, spinorb, natmtot + 1 : Proj index + 2 1 2 3 : Species index, natoms, l, lm submatrix size + 1 : Subset no. of equivalent atoms + 1 2 : atom, spatom + 3 4 5 : lm indices + 1 : Cubic Harmonics + diff --git a/test/python/elk/elk_spectralcontours_convert/PROJ_FS.OUT b/test/python/elk/elk_spectralcontours_convert/PROJ_FS.OUT new file mode 100644 index 00000000..52f3d953 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/PROJ_FS.OUT @@ -0,0 +1,8 @@ + 1 21 1 0 5 : nproj, nkpt, nspinor, spinorb, natmtot + 1 : Proj index + 2 1 2 3 : Species index, natoms, l, lm submatrix size + 1 : Subset no. of equivalent atoms + 1 2 : atom, spatom + 3 4 5 : lm indices + 1 : Cubic Harmonics + diff --git a/test/python/elk/elk_spectralcontours_convert/SYMCRYS.OUT b/test/python/elk/elk_spectralcontours_convert/SYMCRYS.OUT new file mode 100644 index 00000000..5308b334 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/SYMCRYS.OUT @@ -0,0 +1,580 @@ + +(translation vectors and rotation matrices are in lattice coordinates) + + 48 : nsymcrys + +Crystal symmetry : 1 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 2 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 -1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 3 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 -1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 4 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 -1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 5 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 6 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 7 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 8 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 9 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + -1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 10 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + -1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 11 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 -1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 12 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 -1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 13 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 14 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 15 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 16 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 17 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + -1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 18 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + -1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 19 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 -1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 20 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 -1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 21 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 22 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 23 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 24 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 25 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + -1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 26 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + -1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 27 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 -1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 28 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 -1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 29 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 30 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 31 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 32 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 33 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + -1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 34 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + -1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 35 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 -1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 36 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 -1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 37 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 38 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 39 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 40 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 41 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 -1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 42 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 -1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 43 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 -1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 44 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 -1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 45 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 46 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 47 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 48 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 -1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 diff --git a/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001.OUT b/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001.OUT new file mode 100644 index 00000000..cbd1e5da --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001.OUT @@ -0,0 +1,141 @@ + 10 5 3 : number of k-points, lmmax, reduced lmmax + 1 0.000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.7105655955802212E-031 -6.3882801826833444E-034 6.6550957365569281E-017 2.1138614120121491E-017 4.6399095851368767E-017 0.0000000000000000 0.0000000000000000 -2.7914921757873600E-018 -8.3744765273620791E-018 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.7795494640664351E-015 1.2776560365366689E-033 -0.48033027589968202 -0.30182410550742983 -0.42211967324074606 0.0000000000000000 0.0000000000000000 3.5748250748869175E-034 1.0724475224660752E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.8038606982369813E-015 -1.2776560365366689E-033 0.48033027589968202 0.30182410550742983 0.42211967324074606 0.0000000000000000 0.0000000000000000 -3.5748250748869175E-034 -1.0724475224660752E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.7105655955802212E-031 6.3882801826833444E-034 -6.6550957365569281E-017 -2.1138614120121491E-017 -4.6399095851368767E-017 0.0000000000000000 0.0000000000000000 2.7914921757873600E-018 8.3744765273620791E-018 0.0000000000000000 + + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.8255013034021984E-031 1.5172165433872943E-033 0.43321280875551299 -0.54988314907614744 -9.9775587396690527E-002 0.0000000000000000 0.0000000000000000 7.0219778256707301E-035 2.1065933477012192E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.6510026068043968E-031 3.7367733404265051E-015 0.28567371515838208 0.32639043313926341 -0.55844408562618808 0.0000000000000000 0.0000000000000000 -1.3618381237664447E-034 -4.0855143712993341E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.6510026068043968E-031 3.7629626999920564E-015 0.28567371515838241 0.32639043313926330 -0.55844408562618786 0.0000000000000000 0.0000000000000000 1.3618381237664447E-034 4.0855143712993341E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.8255013034021984E-031 -1.5172165433872943E-033 -0.43321280875551299 0.54988314907614744 9.9775587396690527E-002 0.0000000000000000 0.0000000000000000 -7.0219778256707301E-035 -2.1065933477012192E-034 0.0000000000000000 + + 2 0.2500000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -1.1479430934821716E-015 -4.1201831605635411E-002 3.2486659603760099E-002 -0.12807750971585008 -0.14798916110561403 6.5050108630656391E-015 -1.5203412994034713E-016 -5.5437384367849923E-002 -4.7068691699284550E-002 3.8676270967438337E-015 0.28354081699962441 0.35108151134858573 2.0116336114354248E-015 -9.6208564025172474E-016 6.0267012407814007E-016 -3.6044046536419372E-017 -8.7189011147812559E-016 + 8.5377531061272291E-030 -3.2486659603760328E-002 -4.1201831605645070E-002 -0.14798916110561686 0.12807750971585027 -4.8386162189772038E-029 1.1319321334491101E-030 4.7068691699284550E-002 -5.5437384367842069E-002 -0.50000000588867755 -0.35108151134858362 0.28354081699963019 -1.4965863616643814E-029 7.1586280823072410E-030 -4.4832527087694744E-030 2.6846185502485039E-031 6.4859609978193888E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 9.6023541003411349E-030 3.2486659603757316E-002 4.1201831605643016E-002 0.14798916110561308 -0.12807750971584711 -5.4388032826178798E-029 1.2663340192084875E-030 -4.7068691699288519E-002 5.5437384367849549E-002 -0.50000000588868243 0.35108151134858584 -0.28354081699962064 -1.6806651697050644E-029 8.0332260598548725E-030 -5.0369932458614618E-030 2.9974335319816809E-031 7.2871449951516586E-030 + 1.1479430934821716E-015 4.1201831605635411E-002 -3.2486659603760099E-002 0.12807750971585008 0.14798916110561403 -6.5050108630656391E-015 1.5203412994034713E-016 5.5437384367849923E-002 4.7068691699284550E-002 -3.8676270967438337E-015 -0.28354081699962441 -0.35108151134858573 -2.0116336114354248E-015 9.6208564025172474E-016 -6.0267012407814007E-016 3.6044046536419372E-017 8.7189011147812559E-016 + + 1.2026070503146559E-015 4.1201831605635363E-002 -3.2486659603760099E-002 0.12807750971584989 0.14798916110561408 -6.5050108630656391E-015 9.3099551480324920E-017 5.5437384367849923E-002 4.7068691699284480E-002 -3.8990903550046676E-015 -0.28354081699962458 -0.35108151134858545 -1.8585745323044683E-015 8.3089214385376231E-016 -5.7943794242433422E-016 1.6228362184643793E-017 8.3909173737863501E-016 + -8.9875410208915991E-030 -3.2486659603757254E-002 -4.1201831605643023E-002 -0.14798916110561297 0.12807750971584725 4.8619734901916953E-029 -6.9690248987368002E-031 4.7068691699288415E-002 -5.5437384367849514E-002 0.50000000588868232 -0.35108151134858606 0.28354081699962030 1.3894100743379659E-029 -6.2126072080984171E-030 4.3312506232071474E-030 -1.2164973826120052E-031 -6.2721260719165434E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -9.8628943930235077E-030 3.2486659603760279E-002 4.1201831605645146E-002 0.14798916110561680 -0.12807750971585041 5.3325135644498058E-029 -7.5837313976920981E-031 -4.7068691699284765E-002 5.5437384367842062E-002 0.50000000588867721 0.35108151134858406 -0.28354081699962996 1.5223248368559501E-029 -6.8005595393138963E-030 4.7480720351308591E-030 -1.3141386159899770E-031 -6.8758148150297549E-030 + -1.2026070503146559E-015 -4.1201831605635363E-002 3.2486659603760099E-002 -0.12807750971584989 -0.14798916110561408 6.5050108630656391E-015 -9.3099551480324920E-017 -5.5437384367849923E-002 -4.7068691699284480E-002 3.8990903550046676E-015 0.28354081699962458 0.35108151134858545 1.8585745323044683E-015 -8.3089214385376231E-016 5.7943794242433422E-016 -1.6228362184643793E-017 -8.3909173737863501E-016 + + 3 0.5000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 3.8301697230931260E-035 0.0000000000000000 -3.8473417400210853E-031 -1.4998533703594799E-014 -0.32186355830931351 3.8170613586327409E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5114882735402794E-035 -0.57790552524403449 -0.24692524177247691 4.1150949961117418E-014 -5.1068929641241676E-035 0.0000000000000000 0.0000000000000000 + 3.2684114970394673E-033 0.0000000000000000 -3.7571696679893411E-034 1.3809106840985814E-032 3.7975521566674866E-021 3.2021849668353347E-020 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678846348274 -2.4566319383574014E-020 5.7495181961827470E-020 0.0000000000000000 -4.3578819960526231E-033 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.2684114970394673E-033 0.0000000000000000 3.7571696679893411E-034 -1.3809106840985814E-032 -3.7975521566674866E-021 -3.2021849668353347E-020 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678846348252 2.4566319383574014E-020 -5.7495181961827470E-020 0.0000000000000000 4.3578819960526231E-033 0.0000000000000000 0.0000000000000000 + -3.8301697230931260E-035 0.0000000000000000 3.8473417400210853E-031 1.4998533703594799E-014 0.32186355830931351 -3.8170613586327409E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5114882735402794E-035 0.57790552524403449 0.24692524177247691 -4.1150949961117418E-014 5.1068929641241676E-035 0.0000000000000000 0.0000000000000000 + + 6.4164108193376199E-017 0.0000000000000000 3.7571696679893412E-033 -1.2913794316588710E-031 1.5415557644344527E-019 -3.4300380962353796E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.7157639921052461E-033 -7.3603942728612875E-018 -4.2755390331683307E-019 -2.4564375171018604E-032 -8.5552144257834928E-017 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 3.7774225529275110E-015 -1.3880436723964524E-013 -3.8170613586328082E-002 -0.32186355830931335 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5114882735402794E-036 0.24692524177247693 -0.57790552524403405 -2.0961600145935875E-030 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -3.7755202722709817E-015 1.3879660278213001E-013 3.8170613586328082E-002 0.32186355830931335 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5114882735402794E-036 -0.24692524177247699 0.57790552524403405 2.0961600145935875E-030 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.4164108193376199E-017 0.0000000000000000 -3.7571696679893412E-033 1.2913794316588710E-031 -1.5415557644344527E-019 3.4300380962353796E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.7157639921052461E-033 7.3603942728612875E-018 4.2755390331683307E-019 2.4564375171018604E-032 8.5552144257834928E-017 0.0000000000000000 0.0000000000000000 + + 4 0.2500000000 0.2500000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 0.11405873451729223 0.0000000000000000 -0.23546202097124866 -1.0249723439205300E-014 -7.5095022555978797E-029 1.4256280234270332E-002 1.6008330212215150E-072 -4.0356122523790583E-016 8.0041651061075750E-073 1.0211551832557298E-015 -8.2276812085473522E-030 0.65046168029731499 -2.8615062075332712E-002 0.0000000000000000 8.5241414050527639E-002 3.0015619147903406E-073 -1.2637206311404530E-002 + 1.2970648841605209E-016 0.0000000000000000 -2.6776513017420174E-016 0.10777800260674454 -0.20344147977690030 1.6212103833065352E-017 -2.4476840433737368E-032 -0.17944970424762796 -1.2238420216868684E-032 0.45407235424606457 -0.45674014977267807 7.3969872414969147E-016 -3.2540771500809966E-017 0.0000000000000000 9.6935710631055850E-017 -4.5894075813257564E-033 -1.4370908646132197E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2970648841603394E-016 0.0000000000000000 -2.6776513017416427E-016 0.10777800260674460 -0.20344147977690041 1.6212103833063084E-017 2.4476840433737368E-032 -0.17944970424762796 1.2238420216868684E-032 0.45407235424606457 -0.45674014977267796 7.3969872414958813E-016 -3.2540771500805417E-017 0.0000000000000000 9.6935710631042292E-017 4.5894075813257564E-033 -1.4370908646130188E-017 + -0.11405873451729223 0.0000000000000000 0.23546202097124866 1.0249723439205300E-014 7.5095022555978797E-029 -1.4256280234270332E-002 -1.6008330212215150E-072 4.0356122523790583E-016 -8.0041651061075750E-073 -1.0211551832557298E-015 8.2276812085473522E-030 -0.65046168029731499 2.8615062075332712E-002 0.0000000000000000 -8.5241414050527639E-002 -3.0015619147903406E-073 1.2637206311404530E-002 + + 8.4830568833071528E-057 0.0000000000000000 -1.7512360856982293E-056 -8.4996316805575910E-030 -1.5967693001622960E-029 1.0603031559441650E-057 -2.1523961360357707E-017 1.4098841695660923E-029 -1.0761980680178853E-017 -3.5706112729657061E-029 -3.5848571791187747E-029 4.8377736766289603E-056 -2.1282298136282648E-057 0.0000000000000000 6.3397842108666782E-057 -4.0357427550670704E-018 -9.3988540587814491E-058 + -1.2970648841600493E-016 0.0000000000000000 2.6776513017410441E-016 -0.10777800260674987 -0.20344147977689339 -1.6212103833059460E-017 -2.4476840433746263E-032 0.17944970424763437 -1.2238420216873132E-032 -0.45407235424593645 -0.45674014977280492 -7.3969872414942266E-016 3.2540771500798139E-017 0.0000000000000000 -9.6935710631020623E-017 -4.5894075813274246E-033 1.4370908646126974E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2970648841600493E-016 0.0000000000000000 -2.6776513017410441E-016 0.10777800260674987 0.20344147977689328 1.6212103833059460E-017 -2.4476840433742842E-032 -0.17944970424763437 -1.2238420216871421E-032 0.45407235424593645 0.45674014977280503 7.3969872414942266E-016 -3.2540771500798139E-017 0.0000000000000000 9.6935710631020623E-017 -4.5894075813267828E-033 -1.4370908646126974E-017 + -8.4830568833071528E-057 0.0000000000000000 1.7512360856982293E-056 8.4996316805575910E-030 1.5967693001622960E-029 -1.0603031559441650E-057 2.1523961360357707E-017 -1.4098841695660923E-029 1.0761980680178853E-017 3.5706112729657061E-029 3.5848571791187747E-029 -4.8377736766289603E-056 2.1282298136282648E-057 0.0000000000000000 -6.3397842108666782E-057 4.0357427550670704E-018 9.3988540587814491E-058 + + 5 0.5000000000 0.2500000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + -6.3668189435616237E-016 -0.18223854982126789 -4.9236733163543227E-015 7.4171311499880794E-016 -7.1437508893710305E-017 -2.4220390038509475E-002 8.5269507474275604E-016 1.3370319781479410E-015 -7.5133050247464681E-002 2.6175052499622367E-015 1.0144798346011778E-013 0.45708432412351058 1.4272285798483975E-015 1.8676002234447431E-015 4.0390906993363444E-002 + -3.9006444403437280E-030 -1.1192009657532371E-015 -3.0238277993990591E-029 0.13007658391645993 -0.22022796738043829 -1.4874725434660121E-016 0.14953984256448338 8.2084132100147222E-030 -4.6142258308914335E-016 0.45904020626500547 -0.44888712188601743 9.6109557704032248E-014 8.7670860389131959E-030 1.1465900567272340E-029 2.4805696796291071E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.5047980595012034E-030 -1.0001488463490106E-015 -2.7021759073373006E-029 0.13007658391648030 0.22022796738041847 -1.3292464837377286E-016 0.14953984256448932 7.3409867883768362E-030 -4.1233994454731150E-016 0.45904020626500514 0.44888712188601965 -1.0338072313387919E-013 7.8306949231194690E-030 1.0253874782319225E-029 2.2167054704958030E-016 + 6.3668189435616237E-016 0.18223854982126789 4.9236733163543227E-015 -7.4171311499880794E-016 7.1437508893710305E-017 2.4220390038509475E-002 -8.5269507474275604E-016 -1.3370319781479410E-015 7.5133050247464681E-002 -2.6175052499622367E-015 -1.0144798346011778E-013 -0.45708432412351058 -1.4272285798483975E-015 -1.8676002234447431E-015 -4.0390906993363444E-002 + + -5.3056824529680209E-016 -0.18223854982126789 -4.9236733163543227E-015 7.4036041072192792E-016 3.0045909029674252E-017 -2.4220390038509496E-002 8.5113996637112640E-016 1.3051978834301330E-015 -7.5133050247464597E-002 2.6127315571761811E-015 1.0168625660577876E-013 0.45708432412351024 1.4484513096602696E-015 1.8251547638209989E-015 4.0390906993363389E-002 + -3.1541802740951059E-030 -1.0866470977127699E-015 -2.9358746130001496E-029 0.13007658391648030 0.22022796738041847 -1.4442068687788747E-016 0.14953984256448924 7.7797553366254320E-030 -4.4800132065244875E-016 0.45904020626500491 0.44888712188601987 -1.0319415938154905E-013 8.6386818504508475E-030 1.0879192393604050E-029 2.4084180817599187E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.0284833209840673E-030 -1.0365749548733396E-015 -2.8005910114608585E-029 0.13007658391645993 -0.22022796738043829 -1.3776585544499688E-016 0.14953984256448336 7.4271620057299764E-030 -4.2735764878586052E-016 0.45904020626500536 -0.44888712188601754 9.5909708886168520E-014 8.2366865939716298E-030 1.0385743193524026E-029 2.2974394075787760E-016 + 5.3056824529680209E-016 0.18223854982126789 4.9236733163543227E-015 -7.4036041072192792E-016 -3.0045909029674252E-017 2.4220390038509496E-002 -8.5113996637112640E-016 -1.3051978834301330E-015 7.5133050247464597E-002 -2.6127315571761811E-015 -1.0168625660577876E-013 -0.45708432412351024 -1.4484513096602696E-015 -1.8251547638209989E-015 -4.0390906993363389E-002 + + 6 0.5000000000 0.5000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 25 : spinor index, minimum and maximum band indices + 1.9904393575877005E-044 -1.5213912285706144E-030 0.0000000000000000 8.3729592206912046E-018 7.3577767781499387E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.3025874687632881E-017 -5.5396052311209310E-018 3.8836854682080942E-030 0.0000000000000000 0.0000000000000000 + -1.2336801708594021E-029 9.4296276028308642E-016 0.0000000000000000 0.22619354084849880 0.19876862389466571 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.62203863526044945 -0.14965114353276954 -2.4005413215827795E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2336801708593996E-029 -9.4296276028308445E-016 0.0000000000000000 -0.22619354084849885 -0.19876862389466565 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.62203863526044945 0.14965114353276948 2.4005413215827748E-015 0.0000000000000000 0.0000000000000000 + -1.9904393575877005E-044 1.5213912285706144E-030 0.0000000000000000 -8.3729592206912046E-018 -7.3577767781499387E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.3025874687632881E-017 5.5396052311209310E-018 -3.8836854682080942E-030 0.0000000000000000 0.0000000000000000 + + 3.3823515129924870E-015 -0.25852985192404110 0.0000000000000000 -8.2896497133453311E-016 -6.9643953468960711E-016 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.2240652965211908E-015 -2.3491838355034916E-014 0.65815069114715030 0.0000000000000000 0.0000000000000000 + -1.4707475819705201E-031 1.1241651056193009E-017 0.0000000000000000 0.19876862389466440 -0.22619354084849866 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.14965114353277023 -0.62203863526045011 -2.2661669332034500E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.0115646914573124E-031 3.0662372662402646E-017 0.0000000000000000 0.19876862389466440 -0.22619354084849866 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.14965114353277012 -0.62203863526045011 -2.2717014727130095E-014 0.0000000000000000 0.0000000000000000 + -3.3823515129924870E-015 0.25852985192404110 0.0000000000000000 8.2896497133453311E-016 6.9643953468960711E-016 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.2240652965211908E-015 2.3491838355034916E-014 -0.65815069114715030 0.0000000000000000 0.0000000000000000 + + 7 0.2500000000 0.2500000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 6.5185430169567571E-002 -3.5038568544752853E-002 -6.5914736754188663E-003 -0.15525577702516663 6.8417886978873995E-003 8.2533393249869927E-002 7.8168717743380516E-004 -1.6579945584513589E-002 0.0000000000000000 0.26850385997716292 0.30136108599967554 -0.21680511699339700 2.5889253990976670E-003 1.5209320034720263E-002 1.3345850802680949E-002 4.6941946680567836E-002 -2.6538822391732445E-002 + 0.13037086033913570 3.5038568544752832E-002 6.5914736754215351E-003 0.15525577702517801 -6.8417886979202924E-003 0.16506678649971773 -7.8168717743100878E-004 1.6579945584513235E-002 0.0000000000000000 0.53700771995465735 -0.30136108599945866 0.21680511699328650 -2.5889253990982360E-003 -1.5209320034722170E-002 2.6691701605374533E-002 -4.6941946680564117E-002 2.6538822391730377E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.5796699765787707E-016 -1.1416767302579048E-002 6.0688580943984272E-002 -1.1850325639411172E-002 -0.26891089397617984 -3.1891156382357622E-014 2.8717308139104315E-002 1.3539219069360368E-003 0.0000000000000000 2.8532731732866523E-014 -0.37551747797341473 -0.52197271237544640 -2.6343315048716787E-002 4.4841503282434751E-003 9.7144514654701197E-017 4.5966588755524715E-002 8.1305836656931224E-002 + -6.5185430169567571E-002 3.5038568544752853E-002 6.5914736754188663E-003 0.15525577702516663 -6.8417886978873995E-003 -8.2533393249869927E-002 -7.8168717743380516E-004 1.6579945584513589E-002 0.0000000000000000 -0.26850385997716292 -0.30136108599967554 0.21680511699339700 -2.5889253990976670E-003 -1.5209320034720263E-002 -1.3345850802680949E-002 -4.6941946680567836E-002 2.6538822391732445E-002 + + 6.5185430169567432E-002 -3.5038568544752728E-002 -6.5914736754187509E-003 -0.15525577702516671 6.8417886978873821E-003 8.2533393249869955E-002 7.8168717743375485E-004 -1.6579945584513561E-002 0.0000000000000000 0.26850385997716264 0.30136108599967532 -0.21680511699339683 2.5889253990975781E-003 1.5209320034720286E-002 1.3345850802680918E-002 4.6941946680567830E-002 -2.6538822391732407E-002 + 4.5796699765787707E-016 -1.1416767302579090E-002 6.0688580943984292E-002 -1.1850325639411172E-002 -0.26891089397617984 -3.1891156382357622E-014 2.8717308139104281E-002 1.3539219069360420E-003 0.0000000000000000 2.8088642523016460E-014 -0.37551747797341473 -0.52197271237544651 -2.6343315048716776E-002 4.4841503282434759E-003 9.5409791178724390E-017 4.5966588755524763E-002 8.1305836656931169E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.13037086033913564 3.5038568544752853E-002 6.5914736754213929E-003 0.15525577702517812 -6.8417886979203479E-003 0.16506678649971770 -7.8168717743102439E-004 1.6579945584513207E-002 0.0000000000000000 0.53700771995465746 -0.30136108599945843 0.21680511699328692 -2.5889253990982568E-003 -1.5209320034722151E-002 2.6691701605374596E-002 -4.6941946680564152E-002 2.6538822391730353E-002 + -6.5185430169567432E-002 3.5038568544752728E-002 6.5914736754187509E-003 0.15525577702516671 -6.8417886978873821E-003 -8.2533393249869955E-002 -7.8168717743375485E-004 1.6579945584513561E-002 0.0000000000000000 -0.26850385997716264 -0.30136108599967532 0.21680511699339683 -2.5889253990975781E-003 -1.5209320034720286E-002 -1.3345850802680918E-002 -4.6941946680567830E-002 2.6538822391732407E-002 + + 8 0.5000000000 0.2500000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + -6.3902110296014757E-017 -9.3076033745933400E-018 1.4574573712154764E-018 6.3625020862179494E-017 6.9786660235996577E-018 3.9635343096053287E-017 -1.0602157366543321E-017 -2.0603807915533907E-020 4.4108003956556141E-019 3.4956394117262753E-018 -1.8376999757161989E-019 -3.0927763597852459E-018 0.0000000000000000 -3.1137320462453242E-019 -2.0826701349418139E-020 + 1.8469445908623847E-017 0.18939373930528577 5.3672720102345376E-015 3.6744061299585066E-014 0.19906928784828620 1.6855865508930965E-016 -4.5690151792572493E-035 -5.1234444209252668E-002 6.4757479001692958E-002 4.3669839910413437E-016 -0.45697153295168591 -0.45406815591303057 0.0000000000000000 1.7732931159954541E-017 -5.1788702007069407E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8469445908623835E-017 -0.18939373930528572 -5.3680060741837366E-015 -3.6728848115247388E-014 -0.19906928784828609 -1.6855865508930965E-016 5.3787778486691807E-036 5.1234444209252668E-002 -6.4757479001692930E-002 -4.3669839910413427E-016 0.45697153295168591 0.45406815591303057 0.0000000000000000 -1.7732931159954553E-017 5.1788702007069379E-002 + 6.3902110296014757E-017 9.3076033745933400E-018 -1.4574573712154764E-018 -6.3625020862179494E-017 -6.9786660235996577E-018 -3.9635343096053287E-017 1.0602157366543321E-017 2.0603807915533907E-020 -4.4108003956556141E-019 -3.4956394117262753E-018 1.8376999757161989E-019 3.0927763597852459E-018 0.0000000000000000 3.1137320462453242E-019 2.0826701349418139E-020 + + -5.1382803247400577E-020 0.18939373930528286 -9.8521484661681720E-018 -1.4975546199713079E-014 -0.19906928784828906 -4.6893752270371995E-019 -3.4045953094161118E-035 -5.1234444209262001E-002 -6.4757479001681537E-002 -1.2149139736317286E-018 -0.45697153295107440 0.45406815591364624 0.0000000000000000 -4.9333787126022779E-020 -5.1788702007072474E-002 + -2.7423270555167738E-002 -1.2886061741333177E-016 0.12444747797607369 1.0236327120419281E-014 -1.3662752402271416E-016 -0.25027440594582290 -1.9614254233517326E-020 3.4854439737542258E-017 -4.4448481912953314E-017 -0.64840593534262703 3.1087458843089252E-016 3.1166500806526016E-016 0.0000000000000000 -2.6329699945602331E-002 3.5231497502317978E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.7423270555167752E-002 -1.2973986782186648E-016 0.12444747797607361 1.0223036072694910E-014 -1.3569121362929055E-016 -0.25027440594582290 1.9614254233517085E-020 3.5101685432529068E-017 -4.4137131296789429E-017 -0.64840593534262703 3.1307982840172554E-016 3.0948187181129249E-016 0.0000000000000000 -2.6329699945602310E-002 3.5481417918511137E-017 + 5.1382803247400577E-020 -0.18939373930528286 9.8521484661681720E-018 1.4975546199713079E-014 0.19906928784828906 4.6893752270371995E-019 3.4045953094161118E-035 5.1234444209262001E-002 6.4757479001681537E-002 1.2149139736317286E-018 0.45697153295107440 -0.45406815591364624 0.0000000000000000 4.9333787126022779E-020 5.1788702007072474E-002 + + 9 0.5000000000 0.5000000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + 0.0000000000000000 -1.8230783598022972E-014 0.19293299718525062 2.5466225671343455E-016 1.0409089582396298E-015 1.5326428947128836E-028 1.1573175490054142E-016 -1.3550276889043726E-016 0.0000000000000000 -1.8661991535287374E-014 -3.5152784546027826E-014 -0.46127742169477443 0.0000000000000000 1.9322950357351540E-015 0.0000000000000000 + 0.0000000000000000 7.1307488708024601E-029 -7.5579680122416447E-016 -0.27507746919793985 -9.1363091035742541E-002 2.7706028680412377E-014 1.4396808402775799E-002 4.5999674987817193E-002 0.0000000000000000 -0.58187627301991085 0.27401082087626072 1.8070107492244622E-015 0.0000000000000000 -7.5695833700634030E-030 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -1.1638664467388150E-028 1.2328740225980597E-015 -9.1363091035743693E-002 0.27507746919793874 6.6430297191598048E-014 4.5999674987818318E-002 -1.4396808402775334E-002 0.0000000000000000 -0.27401082087626039 -0.58187627301991118 5.6651283044966971E-014 0.0000000000000000 1.2347687478599862E-029 0.0000000000000000 + 0.0000000000000000 1.8230783598022972E-014 -0.19293299718525062 -2.5466225671343455E-016 -1.0409089582396298E-015 -1.5326428947128836E-028 -1.1573175490054142E-016 1.3550276889043726E-016 0.0000000000000000 1.8661991535287374E-014 3.5152784546027826E-014 0.46127742169477443 0.0000000000000000 -1.9322950357351540E-015 0.0000000000000000 + + 0.0000000000000000 1.8209780391112807E-014 -0.19293299718525059 -2.6360054071206119E-016 -1.0849558116118420E-015 -1.6039482283692331E-028 -1.2080760720516328E-016 1.4098863375687541E-016 0.0000000000000000 1.8621223863448538E-014 3.5178394099917911E-014 0.46127742169477443 0.0000000000000000 -1.9322950357351540E-015 0.0000000000000000 + 0.0000000000000000 1.1931507925383082E-028 -1.2629814828551432E-015 9.1363091035743665E-002 -0.27507746919793874 -6.6430297191598061E-014 -4.5999674987818290E-002 1.4396808402775303E-002 0.0000000000000000 0.27401082087626039 0.58187627301991096 -5.6564282479981723E-014 0.0000000000000000 -1.2649224783478277E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -7.6399142749002089E-029 8.0827335401526789E-016 0.27507746919793996 9.1363091035742680E-002 -2.7811681194123867E-014 -1.4396808402775827E-002 -4.5999674987817159E-002 0.0000000000000000 0.58187627301991085 -0.27401082087626094 -1.9324752852243200E-015 0.0000000000000000 8.0951553765635636E-030 0.0000000000000000 + 0.0000000000000000 -1.8209780391112807E-014 0.19293299718525059 2.6360054071206119E-016 1.0849558116118420E-015 1.6039482283692331E-028 1.2080760720516328E-016 -1.4098863375687541E-016 0.0000000000000000 -1.8621223863448538E-014 -3.5178394099917911E-014 -0.46127742169477443 0.0000000000000000 1.9322950357351540E-015 0.0000000000000000 + + 10 0.5000000000 0.5000000000 0.5000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 1.8148523246257962E-036 -1.8037678867527362E-031 0.0000000000000000 0.10927326990241099 -8.6606668049354504E-002 -0.25411162833313000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.36421554683710755 0.10704988537924737 -0.52141469054033052 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 7.2594092985031848E-036 -6.9437201456989725E-015 0.0000000000000000 -0.22220175151177129 0.12479335934108761 -0.13808360224645710 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.49331257156752850 0.30519835063327877 -0.28192657826638168 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 7.2594092985031848E-036 -6.9472764684368455E-015 0.0000000000000000 -0.22220175151177129 0.12479335934108766 -0.13808360224645716 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.49331257156752861 0.30519835063327866 -0.28192657826638179 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8148523246257962E-036 1.8037678867527362E-031 0.0000000000000000 -0.10927326990241099 8.6606668049354504E-002 0.25411162833313000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.36421554683710755 -0.10704988537924737 0.52141469054033052 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + -2.2364641157415879E-018 -3.9333031062017203E-018 0.0000000000000000 -1.8675142556531655E-018 7.9250467726595417E-020 6.0409650092118317E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.3004004700794433E-018 -7.1582385332678389E-018 -3.7238990687529476E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9037637194012739E-035 8.5695585101572758E-031 0.0000000000000000 0.15066458186921941 0.24686025324795799 -1.9346349950785817E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.19993915125460091 0.55801452565309440 0.25422440281092951 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.7112911582038217E-035 -8.5655986057627803E-031 0.0000000000000000 -0.15066458186921936 -0.24686025324795799 1.9346349950785831E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.19993915125460079 -0.55801452565309440 -0.25422440281092951 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.2364641157415879E-018 3.9333031062017203E-018 0.0000000000000000 1.8675142556531655E-018 -7.9250467726595417E-020 -6.0409650092118317E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.3004004700794433E-018 7.1582385332678389E-018 3.7238990687529476E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + diff --git a/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001_FS.OUT b/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001_FS.OUT new file mode 100644 index 00000000..8783fc56 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/WANPROJ_L02_S02_A0001_FS.OUT @@ -0,0 +1,295 @@ + 21 5 3 : number of k-points, lmmax, reduced lmmax + 1 0.000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.5542014186597836E-016 1.6620939055735651E-016 1.3221331735509552E-016 -8.9312563355282092E-017 0.0000000000000000 8.3730528145576957E-018 -3.9684781568997410E-018 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.42645240659572586 0.45085559164801470 0.33892121244964918 -3.6497261716940715E-032 0.0000000000000000 3.4216182859631922E-033 -1.6217045001179713E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.42645240659572564 -0.45085559164801459 -0.33892121244964918 2.9960438722861782E-032 0.0000000000000000 -2.8087911302682922E-033 1.3312499627834093E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.5542014186597836E-016 -1.6620939055735651E-016 -1.3221331735509552E-016 8.9312563355282092E-017 0.0000000000000000 -8.3730528145576957E-018 3.9684781568997410E-018 0.0000000000000000 + + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.50597032509824225 0.49355584104985273 -1.9916569620737328E-002 1.3618381237664447E-034 0.0000000000000000 -1.2767232410310419E-035 6.0511361944700423E-036 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.24926368144717861 -0.23050352514700781 0.62027070692247610 -1.8589090389411971E-032 0.0000000000000000 1.7427272240073721E-033 -8.2598009054516083E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.24926368144717823 -0.23050352514700820 0.62027070692247632 1.6273965579009013E-032 0.0000000000000000 -1.5256842730320951E-033 7.2311077523917009E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.50597032509824225 -0.49355584104985273 1.9916569620737328E-002 -1.3618381237664447E-034 0.0000000000000000 1.2767232410310419E-035 -6.0511361944700423E-036 0.0000000000000000 + + 2 0.1000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -6.5616379710460803E-016 9.1774297637664658E-003 7.0616299462034409E-003 4.6299697697632395E-003 4.9928088266700039E-002 5.0885710992092785E-015 -1.4791488985578451E-015 -1.1601864318775735E-002 -3.7358943775689379E-002 1.9161822108927798E-015 9.5250763554214635E-003 -0.20850992057454473 -1.4235417971083021E-015 1.3345704347890333E-016 8.3410652174314562E-017 -7.5764675725002399E-017 -3.8160373369748917E-016 + -5.4096443934947909E-030 -2.1733462231057848E-002 2.8245224497529278E-002 0.15366285530104917 -1.4249581738015377E-002 4.1947190881895193E-029 -1.2191567422434593E-029 -0.11497900622469828 3.5706866814443627E-002 0.21850801458469318 -0.64172754989001135 -2.9315170689416421E-002 -1.1734694537320539E-029 1.0934358180841966E-030 6.8653208087183923E-031 -6.2470434191763571E-031 -3.1467536706179401E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.0423884317497752E-030 2.1733462231058133E-002 -2.8245224497529590E-002 -0.15366285530105417 1.4249581738014416E-002 4.6854141006953644E-029 -1.3617922627314472E-029 0.11497900622469620 -3.5706866814446001E-002 0.21850801458477767 0.64172754988998115 2.9315170689419232E-002 -1.3107427366077115E-029 1.2221295207801256E-030 7.6696564505679493E-031 -6.9776482938563715E-031 -3.5147372267641120E-030 + 6.5616379710460803E-016 -9.1774297637664658E-003 -7.0616299462034409E-003 -4.6299697697632395E-003 -4.9928088266700039E-002 -5.0885710992092785E-015 1.4791488985578451E-015 1.1601864318775735E-002 3.7358943775689379E-002 -1.9161822108927798E-015 -9.5250763554214635E-003 0.20850992057454473 1.4235417971083021E-015 -1.3345704347890333E-016 -8.3410652174314562E-017 7.5764675725002399E-017 3.8160373369748917E-016 + + 1.9351271304440980E-015 -2.8245224497526270E-002 -2.1733462231054313E-002 -1.4249581738019629E-002 -0.15366285530105561 -1.5454690556460265E-014 4.6487536811817994E-015 3.5706866814437258E-002 0.11497900622469487 -5.8730658233051053E-015 -2.9315170689416845E-002 0.64172754988999614 4.3373539130643573E-015 -1.0342920869615008E-015 -3.5241000543647910E-016 2.1652015126915824E-016 1.0617480933022127E-015 + 1.6021706647560694E-029 -7.0616299462050811E-003 9.1774297637681017E-003 4.9928088266706368E-002 -4.6299697697602931E-003 -1.2795406692314205E-028 3.8487891679708066E-029 -3.7358943775686833E-002 1.1601864318781714E-002 -0.67249851922830406 -0.20850992057449885 -9.5250763554261524E-003 3.5910218895880737E-029 -8.5610097630354848E-030 -2.9173614322690058E-030 1.7926836496388188E-030 8.7908755737010241E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.7887765336651667E-029 7.0616299462042953E-003 -9.1774297637669394E-003 -4.9928088266691074E-002 4.6299697697630114E-003 -1.4285714959217394E-028 4.2970722323616256E-029 3.7358943775693342E-002 -1.1601864318774672E-002 -0.67249851922827697 0.20850992057459056 9.5250763554173955E-003 4.0092764233498434E-029 -9.5583859589289362E-030 -3.2571932409504434E-030 2.0014757766689329E-030 9.8147278178053567E-030 + -1.9351271304440980E-015 2.8245224497526270E-002 2.1733462231054313E-002 1.4249581738019629E-002 0.15366285530105561 1.5454690556460265E-014 -4.6487536811817994E-015 -3.5706866814437258E-002 -0.11497900622469487 5.8730658233051053E-015 2.9315170689416845E-002 -0.64172754988999614 -4.3373539130643573E-015 1.0342920869615008E-015 3.5241000543647910E-016 -2.1652015126915824E-016 -1.0617480933022127E-015 + + 3 0.2000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -1.0895594823529376E-015 2.9220007290805341E-002 -2.5687334946960773E-002 -0.13195347755734876 -6.9493256621066257E-002 1.0847445098930446E-015 1.3867120684491934E-015 5.1286530058284083E-002 4.9429201298983483E-002 -2.4594463449377128E-015 -0.37011046698759020 -8.3281236726477539E-002 1.4967685818181770E-015 -2.6413563208556062E-016 3.7969497112299345E-016 -4.8390473221924970E-016 -9.6299449197860650E-017 + -6.8479146404007476E-030 3.5355583406080554E-002 4.0217889751095338E-002 -9.5649262007899763E-002 0.18161838085323267 6.8153269554050907E-030 8.7132423976161248E-030 -6.8033459011246064E-002 7.0589852735921430E-002 -0.41562693619222801 0.11462678854480500 -0.50941335533885579 9.4026850465905659E-030 -1.6553217304391978E-030 2.3875267523931063E-030 -3.0409098385064137E-030 -6.0376028176189763E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.1616844098348362E-030 -3.5355583406081456E-002 -4.0217889751096338E-002 9.5649262007895600E-002 -0.18161838085322907 6.1367400413088177E-030 7.8443896746531334E-030 6.8033459011265798E-002 -7.0589852735927064E-002 -0.41562693619220525 -0.11462678854480075 0.50941335533887377 8.4690088289362906E-030 -1.4984379785813035E-030 2.1461409449555040E-030 -2.7370199169320687E-030 -5.4605239126729451E-031 + 1.0895594823529376E-015 -2.9220007290805341E-002 2.5687334946960773E-002 0.13195347755734876 6.9493256621066257E-002 -1.0847445098930446E-015 -1.3867120684491934E-015 -5.1286530058284083E-002 -4.9429201298983483E-002 2.4594463449377128E-015 0.37011046698759020 8.3281236726477539E-002 -1.4967685818181770E-015 2.6413563208556062E-016 -3.7969497112299345E-016 4.8390473221924970E-016 9.6299449197860650E-017 + + 1.6068250951871604E-015 -4.0217889751100369E-002 3.5355583406084211E-002 0.18161838085323351 9.5649262007899333E-002 -1.5065704900401020E-015 -1.9535031122994587E-015 -7.0589852735923650E-002 -6.8033459011251074E-002 3.3853944005460286E-015 0.50941335533886234 0.11462678854480327 -2.0250398459892981E-015 1.9810172406417050E-016 -6.0531082352940976E-016 6.9576352045454308E-016 8.2542385026737697E-017 + 1.0012590839437388E-029 2.5687334946959090E-002 2.9220007290802721E-002 -6.9493256621062260E-002 0.13195347755734430 -9.3862986282223532E-030 -1.2171291963518073E-029 -4.9429201299000622E-002 5.1286530058288475E-002 0.57206140063578459 8.3281236726474361E-002 -0.37011046698760464 -1.2615521527222219E-029 1.2311885962584632E-030 -3.7726341750832067E-030 4.3352007143677870E-030 5.1333867182672426E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 9.1717919818239852E-030 -2.5687334946957841E-002 -2.9220007290801354E-002 6.9493256621067950E-002 -0.13195347755734924 -8.6010861726513748E-030 -1.1152160403597455E-029 4.9429201298973463E-002 -5.1286530058280454E-002 0.57206140063580124 -8.3281236726480162E-002 0.37011046698757977 -1.1562003554676496E-029 1.1339533542215391E-030 -3.4543726055589884E-030 3.9717303748786603E-030 4.7214306858278935E-031 + -1.6068250951871604E-015 4.0217889751100369E-002 -3.5355583406084211E-002 -0.18161838085323351 -9.5649262007899333E-002 1.5065704900401020E-015 1.9535031122994587E-015 7.0589852735923650E-002 6.8033459011251074E-002 -3.3853944005460286E-015 -0.50941335533886234 -0.11462678854480327 2.0250398459892981E-015 -1.9810172406417050E-016 6.0531082352940976E-016 -6.9576352045454308E-016 -8.2542385026737697E-017 + + 4 0.3000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -6.6238118985177078E-016 -6.1505303534190592E-002 5.7707004961796626E-003 6.3760016538400757E-002 -0.22835759885696572 2.7255357156195813E-015 -7.2736377072093787E-016 5.1767001974233735E-002 4.3525989845775721E-002 1.7698438188476770E-015 -0.48773496349929729 -0.15737148041183435 -1.9545674454642417E-015 4.3434832121427594E-016 -1.7197478843077735E-015 1.3675185425730717E-016 7.2210408401873374E-016 + -1.8587106046106837E-030 -4.1926593268594922E-003 -4.4686218715462293E-002 0.16591150716277711 4.6324363601475169E-002 7.6413951696709891E-030 -2.0395958653783902E-030 3.1623482696493975E-002 -3.7610928481620627E-002 0.57206140983524689 0.11433707321436240 -0.35436019337737990 -5.4775684423836395E-030 1.2163983962836890E-030 -4.8220677915368572E-030 3.8334301477666172E-031 2.0249488604939491E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.2296753095246636E-030 4.1926593268570046E-003 4.4686218715464236E-002 -0.16591150716277273 -4.6324363601475002E-002 9.2184037169925308E-030 -2.4579270025346211E-030 -3.1623482696494183E-002 3.7610928481614549E-002 0.57206140983524667 -0.11433707321435937 0.35436019337738400 -6.6258703483435063E-030 1.4778713160468464E-030 -5.8131454861078868E-030 4.6290840715771629E-031 2.4394923853684548E-030 + 6.6238118985177078E-016 6.1505303534190592E-002 -5.7707004961796626E-003 -6.3760016538400757E-002 0.22835759885696572 -2.7255357156195813E-015 7.2736377072093787E-016 -5.1767001974233735E-002 -4.3525989845775721E-002 -1.7698438188476770E-015 0.48773496349929729 0.15737148041183435 1.9545674454642417E-015 -4.3434832121427594E-016 1.7197478843077735E-015 -1.3675185425730717E-016 -7.2210408401873374E-016 + + 6.0808764969998625E-016 4.4686218715467914E-002 -4.1926593268561269E-003 -4.6324363601473406E-002 0.16591150716277389 -1.9980022775856692E-015 5.5837512699850860E-016 -3.7610928481618275E-002 -3.1623482696485447E-002 -1.2542490523905294E-015 0.35436019337738178 0.11433707321436047 1.2596101315214002E-015 -2.1717416060713797E-016 1.3003302866352384E-015 -9.5862031830494487E-017 -5.6193814057096939E-016 + 1.6900333832384510E-030 -5.7707004961816870E-003 -6.1505303534184846E-002 0.22835759885696558 6.3760016538403019E-002 -5.5456229662236348E-030 1.5502761609121027E-030 4.3525989845787656E-002 -5.1767001974230516E-002 -0.41562694287601043 0.15737148041183377 -0.48773496349929907 3.4929935466274866E-030 -6.0093831524369092E-031 3.6098989450238524E-030 -2.6599309260647344E-031 -1.5603009440376835E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.1530583453190420E-030 5.7707004961834929E-003 6.1505303534183445E-002 -0.22835759885696869 -6.3760016538403103E-002 -7.1220867782956712E-030 1.9874006641763109E-030 -4.3525989845787434E-002 5.1767001974235054E-002 -0.41562694287601121 -0.15737148041183599 0.48773496349929585 4.5105589927057737E-030 -7.8614830007592734E-031 4.6304604349744268E-030 -3.4223049307257371E-031 -1.9992213713276086E-030 + -6.0808764969998625E-016 -4.4686218715467914E-002 4.1926593268561269E-003 4.6324363601473406E-002 -0.16591150716277389 1.9980022775856692E-015 -5.5837512699850860E-016 3.7610928481618275E-002 3.1623482696485447E-002 1.2542490523905294E-015 -0.35436019337738178 -0.11433707321436047 -1.2596101315214002E-015 2.1717416060713797E-016 -1.3003302866352384E-015 9.5862031830494487E-017 5.6193814057096939E-016 + + 5 0.4000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + -2.1478216923582181E-017 5.1617094404904217E-002 1.5811566199850826E-002 -0.29842158648747952 1.8772396642662177E-002 4.2372494824554481E-014 -3.6958473972684326E-015 -3.9532787642303030E-002 4.5275501336490770E-003 -6.0858277874854733E-016 0.36682335066112559 0.47306380644910156 8.3228090578880949E-015 -1.2027801477206022E-015 -1.4336709796491104E-015 7.8630409768676640E-016 + -2.2507962895665999E-032 -5.1374892866224101E-003 1.6771410634470175E-002 -6.0995214146972176E-003 -9.6963051230852956E-002 -4.6158699815691134E-014 -3.5199017289620999E-030 -1.4710902141008000E-003 -1.2844981351977933E-002 -0.67249850863872229 0.15370774829022507 -0.11918813166795099 7.9276905765685922E-030 -1.1454816306853621E-030 -1.3657327315859497E-030 7.4863758788356489E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.7760549881850175E-032 5.1374892866212895E-003 -1.6771410634471715E-002 6.0995214146955593E-003 9.6963051230852512E-002 4.4587880687568892E-014 -3.6412585287662371E-030 1.4710902141100587E-003 1.2844981351973392E-002 -0.67249850863872296 -0.15370774829022490 0.11918813166794902 8.2087739653139862E-030 -1.1847025686498357E-030 -1.4150312716662949E-030 7.7280170309214573E-031 + 2.1478216923582181E-017 -5.1617094404904217E-002 -1.5811566199850826E-002 0.29842158648747952 -1.8772396642662177E-002 -4.2372494824554481E-014 3.6958473972684326E-015 3.9532787642303030E-002 -4.5275501336490770E-003 6.0858277874854733E-016 -0.36682335066112559 -0.47306380644910156 -8.3228090578880949E-015 1.2027801477206022E-015 1.4336709796491104E-015 -7.8630409768676640E-016 + + 1.5034751846507527E-016 -1.6771410634466740E-002 -5.1374892866220233E-003 9.6963051230853886E-002 -6.0995214146974440E-003 -1.3772906602247076E-014 1.1962360035016982E-015 1.2844981351976989E-002 -1.4710902141045203E-003 2.4496378364689371E-016 -0.11918813166794974 -0.15370774829022443 -2.7706899831421013E-015 3.8660790462447930E-016 4.8594465789604684E-016 -2.3819006971113207E-016 + 1.4218618258624834E-031 -1.5811566199850042E-002 5.1617094404917352E-002 -1.8772396642658857E-002 -0.29842158648747608 -1.3941335877144333E-013 1.0808522100513636E-030 -4.5275501336534268E-003 -3.9532787642298062E-002 0.21850801114397708 0.47306380644910312 -0.36682335066112604 -2.5068389297320078E-030 3.4919814215436238E-031 4.4004122704487332E-031 -2.1449395457721539E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.4000724158822202E-031 1.5811566199850417E-002 -5.1617094404916797E-002 1.8772396642659294E-002 0.29842158648747641 1.3997321225547331E-013 7.0591264011364075E-031 4.5275501336503026E-003 3.9532787642299588E-002 0.21850801114397564 -0.47306380644910312 0.36682335066112637 -1.6624992929968124E-030 2.2717744626488891E-031 2.9459691542661697E-031 -1.3472428647759588E-031 + -1.5034751846507527E-016 1.6771410634466740E-002 5.1374892866220233E-003 -9.6963051230853886E-002 6.0995214146974440E-003 1.3772906602247076E-014 -1.1962360035016982E-015 -1.2844981351976989E-002 1.4710902141045203E-003 -2.4496378364689371E-016 0.11918813166794974 0.15370774829022443 2.7706899831421013E-015 -3.8660790462447930E-016 -4.8594465789604684E-016 2.3819006971113207E-016 + + 6 0.5000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.8123212870620182E-014 -0.10309402751274051 -0.30759288697893145 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.9445903109961137E-002 0.62634921318993109 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.2684114970394673E-033 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678895799506 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.2684114970394673E-033 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678895799506 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.8123212870620182E-014 0.10309402751274051 0.30759288697893145 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.9445903109961137E-002 -0.62634921318993109 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + 6.4157641415697420E-017 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -5.3785919473849223E-015 -2.0072050127628000E-013 -0.30759288697893294 0.10309402751273784 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.62634921318993042 -4.9445903109962976E-002 -5.3894903440817019E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 5.3774674433722840E-015 2.0072826475542358E-013 0.30759288697893272 -0.10309402751273784 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.62634921318993042 4.9445903109962948E-002 5.3924890214487379E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.4157641415697420E-017 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + 7 0.1000000000 0.1000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 3.0788407076943844E-002 1.7723466470562960E-016 8.7795569383201812E-017 -0.11603565438726157 -2.9292999823460665E-015 2.7485219487552714E-016 -5.8334248033952270E-002 1.9495813117619253E-015 -3.1968117421585247E-016 -1.0537472269389074E-015 -2.2944868006384485E-015 0.39316745717559665 -6.9272103616299860E-003 0.0000000000000000 1.7270125299885176E-002 -3.8936240402518001E-015 -1.9440137947226508E-003 + -4.7355820043297248E-017 -1.4397347577999889E-031 8.7914192884218575E-003 1.4610663039950842E-014 -0.19781503976123604 -3.9443624733631288E-031 8.9724231115731039E-017 -2.6713289136694936E-030 -3.2011310603611440E-002 -0.10551709797111819 0.66980097594864341 7.0100826850097188E-015 1.0654780757821944E-017 -2.9494798104122192E-031 -2.6563275709025207E-017 5.9505213590466795E-030 2.9900984222569696E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 7.8430705829988953E-017 6.8621199542482698E-031 -5.5506836848415918E-002 -2.9559042311912255E-016 3.1330824360362067E-002 7.5183015409449963E-031 -1.4860126527269029E-016 5.5636870521584148E-030 0.20211146081028186 0.66620873713895601 -0.10608605270440502 1.0007908167775396E-015 -1.7646447142837687E-017 -5.3820878576669328E-031 4.3994095363792627E-017 -9.9885160355730955E-030 -4.9522007969521796E-018 + -3.0788407076943844E-002 -1.7723466470562960E-016 -8.7795569383201812E-017 0.11603565438726157 2.9292999823460665E-015 -2.7485219487552714E-016 5.8334248033952270E-002 -1.9495813117619253E-015 3.1968117421585247E-016 1.0537472269389074E-015 2.2944868006384485E-015 -0.39316745717559665 6.9272103616299860E-003 0.0000000000000000 -1.7270125299885176E-002 3.8936240402518001E-015 1.9440137947226508E-003 + + -4.2376606860812314E-002 -3.2123782977895365E-016 -3.6381835464919133E-017 0.15970937682866851 9.2595935328927439E-015 -3.9531638104263479E-016 8.0290204338212989E-002 -2.8800633014664809E-015 1.3247351732282972E-016 4.3666506751359030E-016 5.8814046632663823E-015 -0.54114857977411568 9.5344871010481815E-003 1.7723466470562960E-016 -2.3770288227033712E-002 5.3821182946154858E-015 2.6757054402027853E-003 + 2.1348155836609008E-016 1.5248501092349218E-030 5.5506836848415869E-002 -8.0457141750512574E-016 3.1330824360356294E-002 1.9709215987210708E-030 -4.0447971683887098E-016 1.4271136526983162E-029 -0.20211146081028175 -0.66620873713894069 -0.10608605270450583 -1.1245392890877936E-015 -4.8032094009759262E-017 -6.7856669141721365E-031 1.1974810041270520E-016 -2.7085800408020513E-029 -1.3479459763715679E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.6266445608681993E-016 1.0625495004255580E-030 8.7914192884216251E-003 -1.5497518760427262E-014 0.19781503976123493 1.4798995850828836E-030 -3.0819745574893130E-016 1.0621282361064828E-029 -3.2011310603610302E-002 -0.10551709797101871 -0.66980097594865984 -8.9582058168679777E-015 -3.6598545123087917E-017 -2.8929142877730472E-031 9.1243289444511888E-017 -2.0608741322135353E-029 -1.0270812184389964E-017 + 4.2376606860812314E-002 3.2123782977895365E-016 3.6381835464919133E-017 -0.15970937682866851 -9.2595935328927439E-015 3.9531638104263479E-016 -8.0290204338212989E-002 2.8800633014664809E-015 -1.3247351732282972E-016 -4.3666506751359030E-016 -5.8814046632663823E-015 0.54114857977411568 -9.5344871010481815E-003 -1.7723466470562960E-016 2.3770288227033712E-002 -5.3821182946154858E-015 -2.6757054402027853E-003 + + 8 0.2000000000 0.1000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 4.2880644128402721E-002 4.5952834945004392E-002 0.0000000000000000 -0.19075627606984355 0.0000000000000000 -3.2487896824577381E-002 3.6508607423469244E-002 7.6079354943214633E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.52630869557796112 1.7722685645690628E-002 1.2340188229129126E-003 3.6616535883868685E-002 -5.5238015884463689E-003 -7.1927179370141368E-003 + 0.0000000000000000 0.0000000000000000 4.0912444713592580E-003 0.0000000000000000 0.22228943423739242 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.8386194741947386E-002 0.51737903882507397 -0.42490984666421072 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -7.8833309110497213E-002 0.0000000000000000 -5.6540508217662960E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.21760646584344950 0.57657404041555582 0.33286376293069486 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.2880644128402721E-002 -4.5952834945004392E-002 0.0000000000000000 0.19075627606984355 0.0000000000000000 3.2487896824577381E-002 -3.6508607423469244E-002 -7.6079354943214633E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.52630869557796112 -1.7722685645690628E-002 -1.2340188229129126E-003 -3.6616535883868685E-002 5.5238015884463689E-003 7.1927179370141368E-003 + + -3.1154611587547933E-002 -3.3386688869956584E-002 0.0000000000000000 0.13859254704867260 0.0000000000000000 2.3603838688505758E-002 -2.6525055931402589E-002 -5.5274886869460298E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.38238565019641574 -1.2876284832064339E-002 -8.9656715520537082E-004 -2.6603470547865049E-002 4.0132767702698302E-003 5.2258154731877286E-003 + 0.0000000000000000 0.0000000000000000 8.4219572452234881E-002 0.0000000000000000 0.13167642397830426 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.21308335088696212 -0.43813918284106906 -0.48805525084393431 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -2.9916283860975511E-002 0.0000000000000000 -0.25210006770285198 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.9828370834376080E-002 -0.35666425286966724 0.55493064521267621 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.1154611587547933E-002 3.3386688869956584E-002 0.0000000000000000 -0.13859254704867260 0.0000000000000000 -2.3603838688505758E-002 2.6525055931402589E-002 5.5274886869460298E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.38238565019641574 1.2876284832064339E-002 8.9656715520537082E-004 2.6603470547865049E-002 -4.0132767702698302E-003 -5.2258154731877286E-003 + + 9 0.3000000000 0.1000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -3.5078213767307548E-002 9.2083770302766724E-002 -2.9438987463159270E-016 -0.22484591824043940 4.2077700365633579E-016 3.6971078141894785E-002 0.11728354598396173 7.9824009568421339E-002 -4.6779521558727316E-015 3.7141477912905948E-015 1.3046782664213495E-013 0.60608308516379250 -3.1626681471672621E-002 -4.5873613431354496E-003 -4.3182385287965072E-002 6.2571715282321210E-003 1.5251905549217230E-002 + -2.6232898542192230E-016 6.8863945574855483E-016 -2.7994816855102914E-002 -1.6814881738147944E-015 0.15331197854889561 2.7648458622362416E-016 8.7709350962825776E-016 2.0525234859421539E-014 0.12927323416536096 0.64025569084965317 -0.22152382669456960 4.1289804722770672E-014 -2.3651703925866682E-016 -3.4306132429981954E-017 -3.2293523826027781E-016 4.6793644325808589E-017 1.1405988158399443E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.7552424642891088E-016 4.6076845582683852E-016 -7.8927227659658233E-002 -1.1250832389462017E-015 -2.2029766731482880E-002 1.8499575473162841E-016 5.8686300744684407E-016 3.3162123317447647E-014 0.19057455823242975 0.65413413844963098 0.17051406431883276 -4.4007152802228186E-014 -1.5825348089805616E-016 -2.2954223045456085E-017 -2.1607587224800497E-016 3.1309613555436184E-017 7.6317432976769246E-017 + 3.5078213767307548E-002 -9.2083770302766724E-002 2.9438987463159270E-016 0.22484591824043940 -4.2077700365633579E-016 -3.6971078141894785E-002 -0.11728354598396173 -7.9824009568421339E-002 4.6779521558727316E-015 -3.7141477912905948E-015 -1.3046782664213495E-013 -0.60608308516379250 3.1626681471672621E-002 4.5873613431354496E-003 4.3182385287965072E-002 -6.2571715282321210E-003 -1.5251905549217230E-002 + + 1.1397602561666591E-002 -2.9919830674755690E-002 2.4591572944959019E-016 7.3056867453892435E-002 2.1347170426449095E-016 -1.2012631479267481E-002 -3.8107734134227057E-002 -2.5936392941064052E-002 5.1749320093500128E-015 -1.6711444206401803E-015 -4.2741464424661317E-014 -0.19692833192332221 1.0276131736630818E-002 1.4905240541221415E-003 1.4030807510377923E-002 -2.0330782722304064E-003 -4.9556445180246487E-003 + 7.1706139836703885E-017 -1.8823568822010400E-016 9.5747460233081977E-002 4.5962525235783780E-016 0.24849511322224990 -7.5575493003783964E-017 -2.3974853465054090E-016 -1.4647905273610370E-014 -0.14629546171745927 -0.23164310992144396 -0.59499724331240889 1.3083388867448561E-013 6.4650590797534682E-017 9.3773866632549603E-018 8.8272515199364767E-017 -1.2790777191848415E-017 -3.1177621510124818E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.2838203270176160E-017 -5.9952535725144652E-017 -6.1006382008744475E-002 1.4638934637060433E-016 -0.29115128960674780 -2.4070581339266223E-017 -7.6359232006423265E-017 -1.6251904342348781E-016 4.2370614170803511E-002 -0.18892964022144296 0.61157131980844581 -1.2945819701713772E-013 2.0591030803408355E-017 2.9866712006275192E-018 2.8114547092951690E-017 -4.0738264555338082E-018 -9.9299845055161416E-018 + -1.1397602561666591E-002 2.9919830674755690E-002 -2.4591572944959019E-016 -7.3056867453892435E-002 -2.1347170426449095E-016 1.2012631479267481E-002 3.8107734134227057E-002 2.5936392941064052E-002 -5.1749320093500128E-015 1.6711444206401803E-015 4.2741464424661317E-014 0.19692833192332221 -1.0276131736630818E-002 -1.4905240541221415E-003 -1.4030807510377923E-002 2.0330782722304064E-003 4.9556445180246487E-003 + + 10 0.4000000000 0.1000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 1.8343301895278205E-002 -0.13078895694947643 -2.1883323780291835E-016 0.21640457186044515 5.3574188316094589E-017 7.9107727388591190E-002 0.15866850218633816 4.5589463664744541E-002 1.0114860874737584E-014 -1.8843533244728955E-015 0.63220370164859852 -3.1673950238380092E-013 -3.3603941113487794E-002 4.0269134358907064E-003 3.6200359404509504E-002 -8.7918688871145238E-003 + 5.1685944444245451E-017 -3.6852420580569195E-016 -6.8157461095877683E-002 6.0976342986203912E-016 -3.7561983384366296E-002 2.2290194133313221E-016 4.4708043491154274E-016 5.6375457824723727E-014 -0.16686941012142201 -0.68261887147120903 1.8177041861243595E-015 1.1389889307452584E-002 -9.4685866449513766E-017 1.1346638970315858E-017 1.0200179748035587E-016 -2.4772859840324778E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 5.1674526040547373E-017 -3.6844279183135870E-016 -6.8157461095877739E-002 6.0962872157572840E-016 -3.7561983384366324E-002 2.2285269807408807E-016 4.4698166637889446E-016 5.6390613037529777E-014 -0.16686941012142201 -0.68261887147120903 1.8173117407556495E-015 1.1389889307452924E-002 -9.4664948548926988E-017 1.1344132282941341E-017 1.0197926335209188E-016 -2.4767387046561382E-017 + -1.8343301895278205E-002 0.13078895694947643 2.1883323780291835E-016 -0.21640457186044515 -5.3574188316094589E-017 -7.9107727388591190E-002 -0.15866850218633816 -4.5589463664744541E-002 -1.0114860874737584E-014 1.8843533244728955E-015 -0.63220370164859852 3.1673950238380092E-013 3.3603941113487794E-002 -4.0269134358907064E-003 -3.6200359404509504E-002 8.7918688871145238E-003 + + 8.5767489196832789E-017 5.1913105566099374E-020 -2.4114942638908665E-019 2.2698027413398155E-017 -2.3963335284345167E-019 5.3295234768257920E-018 1.0658867128851949E-017 -1.8095492884856859E-020 8.9196666795124435E-020 -2.6035225454318056E-018 9.0884757200568976E-017 2.3918267956804185E-019 -6.4317739385327671E-017 -1.5983733426645010E-021 9.3672467320760745E-018 1.8766720645059192E-017 + -9.3692417547866557E-018 6.6803314011393563E-017 6.1502123859922778E-002 -1.1053335774425536E-016 -0.30998862781890091 -4.0405998157086226E-017 -8.1043400165397999E-017 -7.8187201907883293E-015 5.0138289418002906E-002 9.1803833368779408E-003 3.1580318303116765E-013 0.63049695930515381 1.7163946273322324E-017 -2.0568339180075059E-018 -1.8490123577932780E-017 4.4906389018745889E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 9.2259192208746589E-018 -6.5781414855789839E-017 -6.1502123859922722E-002 1.0884251430906850E-016 0.30998862781890080 3.9787902243595952E-017 7.9803668523010528E-017 7.8481389455796147E-015 -5.0138289418002906E-002 -9.1803833368779165E-003 -3.1579842604016647E-013 -0.63049695930515381 -1.6901387110456236E-017 2.0253702567335980E-018 1.8207277704926059E-017 -4.4219450029286291E-018 + -8.5767489196832789E-017 -5.1913105566099374E-020 2.4114942638908665E-019 -2.2698027413398155E-017 2.3963335284345167E-019 -5.3295234768257920E-018 -1.0658867128851949E-017 1.8095492884856859E-020 -8.9196666795124435E-020 2.6035225454318056E-018 -9.0884757200568976E-017 -2.3918267956804185E-019 6.4317739385327671E-017 1.5983733426645010E-021 -9.3672467320760745E-018 -1.8766720645059192E-017 + + 11 0.5000000000 0.1000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + -5.9797866429707410E-016 3.2899504726772950E-014 0.23848184151136467 9.2518809834077592E-014 5.3276924331532434E-016 8.5255624086416668E-002 0.16073175005339710 3.7373666518525876E-017 3.6721913990168682E-016 1.5116285412403470E-015 -0.60112450463750700 -5.1411610902538564E-013 -5.1148532178267585E-015 1.7405450407218406E-015 2.9234077510984620E-002 -8.4942968226531506E-003 + 2.5349534972964868E-030 -1.4260830560471783E-028 3.0134904654840544E-014 -7.0893370048889987E-002 -9.9347242199013239E-002 -3.6969693224910741E-016 -6.9698668617497826E-016 1.5419356430925832E-014 -0.15786792682478132 -0.64985083293498969 -1.6874847862526112E-013 0.19461726164335852 2.2083511342764826E-029 -7.4163183332524981E-030 -1.2676874855773388E-016 3.6834115175382777E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.0486466483878273E-030 -5.7087972534939471E-029 2.0709672751503801E-014 -7.0893370048899618E-002 9.9347242199006272E-002 -1.4791001014507677E-016 -2.7885356580037826E-016 1.5972258625219499E-014 -0.15786792682478160 -0.64985083293499057 1.6212186557749382E-013 -0.19461726164335530 8.8923336857731693E-030 -3.0450145230963876E-030 -5.0718210646711088E-017 1.4736758339138060E-017 + 5.9797866429707410E-016 -3.2899504726772950E-014 -0.23848184151136467 -9.2518809834077592E-014 -5.3276924331532434E-016 -8.5255624086416668E-002 -0.16073175005339710 -3.7373666518525876E-017 -3.6721913990168682E-016 -1.5116285412403470E-015 0.60112450463750700 5.1411610902538564E-013 5.1148532178267585E-015 -1.7405450407218406E-015 -2.9234077510984620E-002 8.4942968226531506E-003 + + -1.7085104694202122E-016 1.0667512243442450E-014 7.7487447500936821E-002 2.9530244904668420E-014 -1.0393481470418224E-016 2.7701231480305368E-002 5.2224911402333228E-002 4.2712761735490408E-017 1.2679059446410230E-015 1.1912864386151256E-015 -0.19531719144497506 -1.6648466316392354E-013 -1.6230849459492015E-015 5.1255314082606363E-016 9.4987275845183645E-003 -2.7599643433286040E-003 + -8.7814971433049936E-031 4.3837385995152923E-029 4.1084946557347078E-016 -2.3034652261228653E-002 0.30575937177965362 1.1339698268642869E-016 2.1378642961418893E-016 8.5506724834699934E-030 -5.1294398828827310E-002 -0.21114933523393956 5.0906281613829027E-013 -0.59897034220988787 -6.9403029117764351E-030 2.5021737303157143E-030 3.8883724292565574E-017 -1.1298112471212932E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 6.0897462628737822E-031 -3.5900736870925364E-029 7.4603773800004359E-015 -2.3034652261199218E-002 -0.30575937177965595 -9.3141676457538386E-017 -1.7559926187101437E-016 -8.4020819374694517E-030 -5.1294398828825978E-002 -0.21114933523393678 -5.1253034966169660E-013 0.59897034220988898 5.5145678138255937E-030 -1.8013869792485025E-030 -3.1938197840212116E-017 9.2800100271145588E-018 + 1.7085104694202122E-016 -1.0667512243442450E-014 -7.7487447500936821E-002 -2.9530244904668420E-014 1.0393481470418224E-016 -2.7701231480305368E-002 -5.2224911402333228E-002 -4.2712761735490408E-017 -1.2679059446410230E-015 -1.1912864386151256E-015 0.19531719144497506 1.6648466316392354E-013 1.6230849459492015E-015 -5.1255314082606363E-016 -9.4987275845183645E-003 2.7599643433286040E-003 + + 12 0.2000000000 0.2000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 9.0754407863649952E-002 2.9888961840234052E-015 -4.2515774803730621E-031 0.23016116260876465 1.0783617023023083E-030 1.3321675789822242E-002 -1.8884389526329694E-015 -9.2897775383221497E-031 -1.1058915880886599E-015 2.3271040046284548E-030 -2.5648700447515603E-030 0.62063380861833106 2.5053576859953415E-002 -3.4779882868635984E-016 7.0289113175049947E-002 1.4655780720523855E-015 1.0568093338979359E-002 + 4.1133169154228317E-031 1.3682278093084360E-044 -5.3702369373283987E-002 1.0431733573253925E-030 -0.24418555486511767 6.0378636870598256E-032 -8.4043013909077914E-045 -0.11734069696757857 -1.7736443307345117E-018 0.29394030663561521 0.58079233869066904 2.8129361464277484E-030 1.1355184163034820E-031 -1.4158184695197768E-045 3.1857559869420394E-031 6.7866132930440828E-045 4.7898408593333146E-032 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.6913302466701338E-031 -1.8851628353154700E-044 -0.10539683430252678 -1.4433714209584880E-030 -0.12441875460269673 -8.3542009852412163E-032 1.1719462379532973E-044 -0.23029408459186410 8.1317234247802996E-015 0.57689033379449994 0.29592847743430140 -3.8920775863608076E-030 -1.5711432990070636E-031 2.0533286345780789E-045 -4.4079242567016968E-031 -9.3055111917897185E-045 -6.6273926176820968E-032 + -9.0754407863649952E-002 -2.9888961840234052E-015 4.2515774803730621E-031 -0.23016116260876465 -1.0783617023023083E-030 -1.3321675789822242E-002 1.8884389526329694E-015 9.2897775383221497E-031 1.1058915880886599E-015 -2.3271040046284548E-030 2.5648700447515603E-030 -0.62063380861833106 -2.5053576859953415E-002 3.4779882868635984E-016 -7.0289113175049947E-002 -1.4655780720523855E-015 -1.0568093338979359E-002 + + -2.9487894634854395E-002 -9.5644677888748976E-016 7.6180943702352610E-031 -7.4783895039452208E-002 -2.1737431838071352E-030 -4.3284748509422729E-003 6.3038537699402720E-016 2.1485644007251871E-016 3.6953625547925733E-016 -4.1697694557965542E-030 5.1702214249879019E-030 -0.20165614856813982 -8.1404005828838687E-003 1.3042456075738496E-016 -2.2838317301317614E-002 -4.6056173017451557E-016 -3.4337816774621726E-003 + -1.0583893547533350E-030 -3.4746204338936288E-044 0.10539683430252800 -2.6841685171782987E-030 -0.12441875460269355 -1.5535906382207114E-031 2.2149624039597048E-044 0.23029408459186312 -1.4070514193475847E-014 -0.57689033379452515 0.29592847743425377 -7.2379097798593953E-030 -2.9217797428536681E-031 4.1871776387099394E-045 -8.1972050604191270E-031 -1.6974083839036409E-044 -1.2324643786801011E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 9.2090858451815593E-031 3.0201847339985227E-044 -5.3702369373286263E-002 2.3355051887676547E-030 0.24418555486511576 1.3517850960414573E-031 -1.9307828110569107E-044 -0.11734069696757631 3.7453568942936054E-015 0.29394030663566506 -0.58079233869064484 6.2977327013968907E-030 2.5422516157981186E-031 -3.6799481282709554E-045 7.1324191567997781E-031 1.4736302250322072E-044 1.0723719218659912E-031 + 2.9487894634854395E-002 9.5644677888748976E-016 -7.6180943702352610E-031 7.4783895039452208E-002 2.1737431838071352E-030 4.3284748509422729E-003 -6.3038537699402720E-016 -2.1485644007251871E-016 -3.6953625547925733E-016 4.1697694557965542E-030 -5.1702214249879019E-030 0.20165614856813982 8.1404005828838687E-003 -1.3042456075738496E-016 2.2838317301317614E-002 4.6056173017451557E-016 3.4337816774621726E-003 + + 13 0.3000000000 0.2000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 8.5681970465115206E-002 -0.10929900939465186 0.22096657688723395 -1.7842778676991566E-014 6.4520418436464329E-016 2.2564878399565762E-002 1.0934174902677706E-003 2.8624958211240537E-016 -8.0442092959573497E-002 -5.1473496456166413E-017 7.0458207717193054E-014 0.64625128058468484 -2.9857100742995968E-002 3.8304067292930497E-003 -7.7401549291324631E-002 -3.4650213286869651E-004 -1.9152984031370876E-002 + -1.6178215989896477E-017 2.0637515359060748E-017 -4.2687348385890476E-017 0.10504059653613795 -0.14101739767345098 -4.2606335329619136E-018 -1.0670219228702578E-014 0.20640653088058414 1.5188837832682461E-017 -0.64871526221606157 7.5136011367370012E-002 -5.2502914560678590E-015 5.6375293662153262E-018 -7.2324605817599923E-019 1.4614731379193772E-017 6.5425506860851092E-020 3.6164097397446940E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.5787192256129355E-017 2.0138711392268796E-017 -4.1678284465716392E-017 0.10504059653613795 -0.14101739767345098 -4.1576550071892448E-018 -1.0701368317038552E-014 0.20640653088058414 1.4821727139845098E-017 -0.64871526221606157 7.5136011367369984E-002 -5.2532488801565590E-015 5.5012715870279441E-018 -7.0576536844645010E-019 1.4261496706380243E-017 6.3844187511737301E-020 3.5290019538583370E-018 + -8.5681970465115206E-002 0.10929900939465186 -0.22096657688723395 1.7842778676991566E-014 -6.4520418436464329E-016 -2.2564878399565762E-002 -1.0934174902677706E-003 -2.8624958211240537E-016 8.0442092959573497E-002 5.1473496456166413E-017 -7.0458207717193054E-014 -0.64625128058468484 2.9857100742995968E-002 -3.8304067292930497E-003 7.7401549291324631E-002 3.4650213286869651E-004 1.9152984031370876E-002 + + 1.0754217584112434E-017 6.9878456273999305E-047 5.3771087920562177E-017 5.9748801946535679E-019 8.3805436933588428E-020 1.3442771980140543E-017 -3.2262652752337304E-017 -1.5806369948836245E-018 4.8393979128505952E-017 -2.4351607464834189E-018 -1.1726462866984624E-018 -1.3442771980139099E-018 -3.2262652752337297E-017 4.3016870336449734E-017 1.3610806629892297E-017 3.3606929950351354E-017 1.4787049178154596E-017 + -2.0972897409176129E-016 2.6753783771720225E-016 -3.1420740385056717E-015 -0.10102119239367330 -0.25537811843567776 -5.5233426257080266E-017 3.6743199972962590E-015 -0.13355869048224933 1.9690300699928886E-016 7.0081068202823088E-002 0.63389861266027814 -7.0383891366362793E-014 7.3083042724051205E-017 -9.3759196868130800E-018 1.8946048320155864E-016 8.4815436027753358E-019 4.6881924749043509E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.0911812404932297E-016 -2.6675861538880856E-016 3.1422574841958580E-015 0.10102119239367319 0.25537811843567765 5.5072555109356117E-017 -3.6813339249860950E-015 0.13355869048224944 -1.9632951346696883E-016 -7.0081068202823088E-002 -0.63389861266027814 7.0387974610497753E-014 -7.2870183342352336E-017 9.3486116767329608E-018 -1.8890866653099496E-016 -8.4568405244710255E-019 -4.6745377923090831E-017 + -1.0754217584112434E-017 -6.9878456273999305E-047 -5.3771087920562177E-017 -5.9748801946535679E-019 -8.3805436933588428E-020 -1.3442771980140543E-017 3.2262652752337304E-017 1.5806369948836245E-018 -4.8393979128505952E-017 2.4351607464834189E-018 1.1726462866984624E-018 1.3442771980139099E-018 3.2262652752337297E-017 -4.3016870336449734E-017 -1.3610806629892297E-017 -3.3606929950351354E-017 -1.4787049178154596E-017 + + 14 0.4000000000 0.2000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 4.1779244173511469E-002 0.21572965070514255 0.10936513049252788 3.8609498372159383E-016 -3.0203467363552558E-016 3.7865331798713389E-002 3.7666257666826128E-003 -6.4268456152201027E-016 -0.11700593571272204 -1.9907581787895690E-015 -1.5198658806119703E-013 0.61052759192148054 2.3404113174929450E-002 3.8702878218168321E-003 -5.9662575436007372E-002 2.0166510820759970E-003 + -1.0064529042995442E-016 -5.1968803598743586E-016 -2.6345822044116718E-016 -0.14984363218783892 -1.4018963798280978E-002 -9.1216760654667257E-017 -9.0737195401220575E-018 0.22567890936407453 2.8186475401346948E-016 0.63023269592359465 0.17095651321810393 4.5179419913410121E-014 -5.6379999551062258E-017 -9.3234391760786184E-018 1.4372584644226552E-016 -4.8580685904342834E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.6449867726047402E-016 -8.4939885555324054E-016 -4.3060662442156165E-016 -0.10047122021546236 0.16867835476400317 -1.4908831210657582E-016 -1.4830449152724171E-017 0.18354201172963663 4.6069099709970014E-016 0.61577318823343097 -0.22042879420219533 -5.2050702153463419E-014 -9.2149720175436729E-017 -1.5238600886653651E-017 2.3491125642236766E-016 -7.9402210848929159E-018 + -4.1779244173511469E-002 -0.21572965070514255 -0.10936513049252788 -3.8609498372159383E-016 3.0203467363552558E-016 -3.7865331798713389E-002 -3.7666257666826128E-003 6.4268456152201027E-016 0.11700593571272204 1.9907581787895690E-015 1.5198658806119703E-013 -0.61052759192148054 -2.3404113174929450E-002 -3.8702878218168321E-003 5.9662575436007372E-002 -2.0166510820759970E-003 + + 1.3574899325697784E-002 7.0094812575546048E-002 3.5534884978104336E-002 1.7075917597725375E-016 1.5653671077728965E-016 1.2303192105796168E-002 1.2238508999334651E-003 -2.3174565572355793E-016 -3.8017533089224620E-002 -5.6570702311568032E-016 -4.9281812099436796E-014 0.19837243970893534 7.6044573433986734E-003 1.2575327433985027E-003 -1.9385545887140365E-002 6.5524965699588337E-004 + -3.6830310230682273E-017 -1.9017553138179078E-016 -9.6410353134454666E-017 3.5310216856275979E-002 0.30626820597867677 -3.3380017870656425E-017 -3.3204524939143574E-018 1.6399506083857596E-003 1.0314607160516806E-016 0.18017503230551946 -0.61031731792451438 -1.5103802895993374E-013 -2.0631793752103312E-017 -3.4118353258747002E-018 5.2595282799845456E-017 -1.7777699536984284E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.3069583756341562E-017 -3.2566360505154037E-016 -1.6509665012070457E-016 -0.11664244266174170 -0.25601632364652804 -5.7161175664703171E-017 -5.6860655086044842E-018 0.13132398676553328 1.7663114324842985E-016 0.22467682107919523 0.59424279941521452 1.4903618412885554E-013 -3.5330645762734294E-017 -5.8425528457492438E-018 9.0066105144286617E-017 -3.0443189398085478E-018 + -1.3574899325697784E-002 -7.0094812575546048E-002 -3.5534884978104336E-002 -1.7075917597725375E-016 -1.5653671077728965E-016 -1.2303192105796168E-002 -1.2238508999334651E-003 2.3174565572355793E-016 3.8017533089224620E-002 5.6570702311568032E-016 4.9281812099436796E-014 -0.19837243970893534 -7.6044573433986734E-003 -1.2575327433985027E-003 1.9385545887140365E-002 -6.5524965699588337E-004 + + 15 0.5000000000 0.2000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 1.1382499888117683E-015 0.20767834140131219 5.4359415353533989E-015 -7.3092638707465832E-016 1.2685980609606438E-016 3.6186078395840288E-002 -2.6701004410444637E-015 1.0697824228567171E-015 -0.10967271301796849 3.2336395133470038E-015 3.9813127606175369E-013 -0.51861895632275945 5.3508387324515835E-015 7.6592522611633006E-016 4.2637900780595213E-002 1.6770647739595731E-003 + -7.5005704194625036E-030 -1.3771807336207859E-015 -3.6055921038194252E-029 0.12003126608874806 -0.18531802113908410 -2.3996132507502641E-016 7.5444694660417186E-015 -0.17567752502257963 7.2727443003025378E-016 -0.53102179880937439 -0.37202550818274605 -2.9023313818450075E-013 -3.5515058525383891E-029 -5.1556440675003356E-030 -2.8274539887431600E-016 -1.1121146673971968E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.6995510641708950E-030 -1.2138935026348466E-015 -3.1765159543555914E-029 0.12003126608873038 0.18531802113909082 -2.1150999740345660E-016 3.6471848759377223E-015 -0.17567752502257908 6.4104418809657803E-016 -0.53102179880936351 0.37202550818276414 2.8113616065572561E-013 -3.1244800244473849E-029 -4.4021349438749496E-030 -2.4922132165692822E-016 -9.8025534048031727E-018 + -1.1382499888117683E-015 -0.20767834140131219 -5.4359415353533989E-015 7.3092638707465832E-016 -1.2685980609606438E-016 -3.6186078395840288E-002 2.6701004410444637E-015 -1.0697824228567171E-015 0.10967271301796849 -3.2336395133470038E-015 -3.9813127606175369E-013 0.51861895632275945 -5.3508387324515835E-015 -7.6592522611633006E-016 -4.2637900780595213E-002 -1.6770647739595731E-003 + + 7.2337382466542285E-016 0.15088714717366991 3.9679181852970987E-015 -5.3201763635484065E-016 6.7417861409632177E-017 2.6290724876313985E-002 -1.9786401674671985E-015 7.7865996642977028E-016 -7.9681890169281275E-002 2.3536614372341336E-015 2.8919670613001831E-013 -0.37679872759823951 3.9572803349343725E-015 7.2337382466542285E-016 3.0978248221975389E-002 1.2184588805012795E-003 + -4.0337668210927928E-030 -8.5503992163733159E-016 -2.2496868985427307E-029 8.7207819503784645E-002 0.25506837383333747 -1.4898299662434658E-016 3.4739419315072263E-017 -0.12763719314362953 4.5153744637930121E-016 -0.38580992013290549 0.51204918341685124 3.8994443686204320E-013 -2.2468905862837586E-029 -4.2045439537580227E-030 -1.7554602514747379E-016 -6.9047033177914154E-018 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.9733405740322333E-030 -1.0240566613449090E-015 -2.6918492815929091E-029 8.7207819503808903E-002 -0.25506837383333247 -1.7843263952884776E-016 3.7947338131932444E-015 -0.12763719314363026 5.4079338064816317E-016 -0.38580992013292070 -0.51204918341683792 -3.9654173891946701E-013 -2.6814737270893125E-029 -4.8065870795368688E-030 -2.1024641291677747E-016 -8.2695640849781969E-018 + -7.2337382466542285E-016 -0.15088714717366991 -3.9679181852970987E-015 5.3201763635484065E-016 -6.7417861409632177E-017 -2.6290724876313985E-002 1.9786401674671985E-015 -7.7865996642977028E-016 7.9681890169281275E-002 -2.3536614372341336E-015 -2.8919670613001831E-013 0.37679872759823951 -3.9572803349343725E-015 -7.2337382466542285E-016 -3.0978248221975389E-002 -1.2184588805012795E-003 + + 16 0.3000000000 0.3000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -0.12083716358684617 4.4258978301571703E-015 0.21621523124532555 5.1650286130525329E-016 -1.2156115869245871E-015 -2.2829920441905585E-002 -6.4038649283722106E-016 -6.7188328506000410E-016 8.9584438008000546E-016 1.7523272698950978E-015 -9.6681027355584170E-015 -0.61887181243114553 2.4670008771438604E-002 -1.4504147106057233E-015 -8.1130660649098241E-002 1.3758334882526356E-002 9.8666193721237223E-016 + 9.0113549355030110E-017 -2.7520439532728292E-030 -1.6124113918092461E-016 -0.16809956227866080 -0.13400969751293196 1.7025268563462300E-017 0.20841837906387567 3.3451457880213453E-031 -5.7819787117504093E-031 -0.57030748347424987 -0.29171062666395331 4.6320123501863002E-016 -1.8397502779981031E-017 -2.9933383190024442E-031 6.0502676292581721E-017 -1.0260191092523271E-017 -9.6973586088712809E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.5584553120338470E-016 -1.3123152016229293E-029 -6.3671822089285481E-016 -8.5651005029856689E-002 -0.26300884017845338 6.7230353029117601E-017 0.10619446827542151 2.0057920097800644E-030 -2.6527960407701570E-030 -0.29058617686721566 -0.57251434045809202 4.3942420111191576E-015 -7.2649109888742467E-017 4.4968344190624477E-030 2.3891642420761496E-016 -4.0516028673811040E-017 -2.8673393928091911E-030 + 0.12083716358684617 -4.4258978301571703E-015 -0.21621523124532555 -5.1650286130525329E-016 1.2156115869245871E-015 2.2829920441905585E-002 6.4038649283722106E-016 6.7188328506000410E-016 -8.9584438008000546E-016 -1.7523272698950978E-015 9.6681027355584170E-015 0.61887181243114553 -2.4670008771438604E-002 1.4504147106057233E-015 8.1130660649098241E-002 -1.3758334882526356E-002 -9.8666193721237223E-016 + + -3.9262374486284085E-002 1.3864258263142942E-015 7.0252587257158744E-002 1.2125991545418797E-015 -1.0582790543425890E-016 -7.4178908150053947E-003 -1.5034420483790451E-015 -2.0263146692285840E-016 2.8261757228714461E-016 4.1139570080702270E-015 -2.3036485557113621E-016 -0.20108364130223588 8.0157717560789439E-003 -3.4127404955428790E-016 -2.6360949613280001E-002 4.4703539907010384E-003 3.4260715131035928E-016 + -1.3899359858377861E-015 5.0769403301469804E-029 2.4870273488182937E-015 8.5651005029842450E-002 -0.26300884017845694 -2.6260239014309743E-016 -0.10619446827542135 -7.6859529352402201E-030 1.0281605869432503E-029 0.29058617686731825 -0.57251434045804050 1.6424751100186554E-014 2.8376810531233766E-016 -1.6331710950236461E-029 -9.3320979609000468E-016 1.5825598839620840E-016 1.1408721270431276E-029 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 3.4747112863821693E-016 -1.2545635754929656E-029 -6.2173381267420381E-016 -0.16809956227865358 0.13400969751293945 6.5648166401790349E-017 0.20841837906387556 1.8770168183072686E-030 -2.5463456543230032E-030 -0.57030748347430216 0.29171062666385217 -3.4786796293343158E-015 -7.0939399245048155E-017 3.7145996450883185E-030 2.3329380950460388E-016 -3.9562531988580793E-017 -2.9144445068574328E-030 + 3.9262374486284085E-002 -1.3864258263142942E-015 -7.0252587257158744E-002 -1.2125991545418797E-015 1.0582790543425890E-016 7.4178908150053947E-003 1.5034420483790451E-015 2.0263146692285840E-016 -2.8261757228714461E-016 -4.1139570080702270E-015 2.3036485557113621E-016 0.20108364130223588 -8.0157717560789439E-003 3.4127404955428790E-016 2.6360949613280001E-002 -4.4703539907010384E-003 -3.4260715131035928E-016 + + 17 0.4000000000 0.3000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + 7.4251882376526454E-002 -0.18837580232409529 -5.3759671735562432E-002 0.0000000000000000 0.0000000000000000 2.1181766680498627E-002 0.0000000000000000 1.3065715036865112E-003 4.5217619994178934E-002 0.0000000000000000 0.0000000000000000 0.52662127279925686 1.4857584531603714E-002 1.3342900572931755E-003 -5.7600833291741531E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.21473855472238285 -4.7827588415706376E-002 0.0000000000000000 0.20227664633750778 0.0000000000000000 0.0000000000000000 -0.55082794176353544 0.32752497214231374 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 7.7756962571035884E-002 0.26833611771488436 0.0000000000000000 9.7225186772278677E-002 0.0000000000000000 0.0000000000000000 -0.48685740150136553 -0.41888746815351702 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -7.4251882376526454E-002 0.18837580232409529 5.3759671735562432E-002 0.0000000000000000 0.0000000000000000 -2.1181766680498627E-002 0.0000000000000000 -1.3065715036865112E-003 -4.5217619994178934E-002 0.0000000000000000 0.0000000000000000 -0.52662127279925686 -1.4857584531603714E-002 -1.3342900572931755E-003 5.7600833291741531E-002 + + 5.3947150330998422E-002 -0.13686303163558627 -3.9058687807493851E-002 0.0000000000000000 0.0000000000000000 1.5389454311669180E-002 0.0000000000000000 9.4927976330817158E-004 3.2852523940956453E-002 0.0000000000000000 0.0000000000000000 0.38261275084097301 1.0794667025644739E-002 9.6941847131815377E-004 -4.1849455034997297E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.1985722845063038E-002 0.29768541667553761 0.0000000000000000 3.6504944652567164E-002 0.0000000000000000 0.0000000000000000 -0.33293731875508398 -0.54686366342740500 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.20052470971953307 -0.13747659235176848 0.0000000000000000 0.18109587431725693 0.0000000000000000 0.0000000000000000 -0.42098521381470794 0.48048492461054571 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -5.3947150330998422E-002 0.13686303163558627 3.9058687807493851E-002 0.0000000000000000 0.0000000000000000 -1.5389454311669180E-002 0.0000000000000000 -9.4927976330817158E-004 -3.2852523940956453E-002 0.0000000000000000 0.0000000000000000 -0.38261275084097301 -1.0794667025644739E-002 -9.6941847131815377E-004 4.1849455034997297E-002 + + 18 0.5000000000 0.3000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + -1.8622350339211433E-015 -0.15193623851251251 1.1004116109534027E-015 -3.3645852347485579E-016 1.6907242756878624E-016 1.5374196235391676E-002 2.9525569776852492E-016 -2.6452202186379875E-016 4.3894773929544786E-002 -9.9130292488964765E-016 8.4989842449808352E-014 -0.38258233201331099 -1.6188747738064483E-015 4.2323523498207799E-017 3.3597254619527006E-002 + -7.1141743342468886E-030 -5.8990913492089738E-016 4.3326061458600011E-030 -0.12856759259009828 0.24946220091996993 4.3978248984611992E-014 0.11282316128764028 -1.0453713918656284E-030 1.7042628124687756E-016 -0.37879685514962480 0.51480370605708381 1.1759072066128276E-013 -6.3636410074089878E-030 1.8620502253012478E-031 1.3044503143132704E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.7820448381349048E-030 -2.1740044688101986E-016 1.5137432247113124E-030 -0.12856759259006514 -0.24946220091998197 4.3781933974001608E-014 0.11282316128764283 -3.5995837907082123E-031 6.2807553757087990E-017 -0.37879685514971528 -0.51480370605701919 -1.1134884560773624E-013 -2.2373515337034156E-030 3.8439343696078937E-032 4.8073180169318588E-017 + 1.8622350339211433E-015 0.15193623851251251 -1.1004116109534027E-015 3.3645852347485579E-016 -1.6907242756878624E-016 -1.5374196235391676E-002 -2.9525569776852492E-016 2.6452202186379875E-016 -4.3894773929544786E-002 9.9130292488964765E-016 -8.4989842449808352E-014 0.38258233201331099 1.6188747738064483E-015 -4.2323523498207799E-017 -3.3597254619527006E-002 + + -2.4230217202723966E-015 -0.20912229175301819 1.5871321311827922E-015 -4.6143207422048316E-016 1.9184744588418434E-016 2.1160765740169108E-002 4.0492494480357238E-016 -3.8620215192114619E-016 6.0415973239794848E-002 -1.3595107060702852E-015 1.1691656534360535E-013 -0.52657940487482102 -2.3225033519641528E-015 8.4647046996415598E-017 4.6242653835783576E-002 + -5.0993531448266047E-030 -4.4739053572920987E-016 3.4391594874832948E-030 -0.17695810999948006 -0.18124489809818889 6.0388495518346940E-014 0.15528775940671405 -8.3955194933777042E-031 1.2925228777750959E-016 -0.52136914295937631 -0.37402678602517458 -7.8923544654919719E-014 -5.0255028797102512E-030 1.9698782439706220E-031 9.8930274241473989E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -7.8227052366144334E-030 -6.6778573784300316E-016 5.0239822265298069E-030 -0.17695810999950409 0.18124489809817257 6.0524098437706729E-014 0.15528775940671216 -1.2197829471594703E-030 1.9292503409960956E-016 -0.52136914295931058 0.37402678602526351 8.7533100254532930E-014 -7.3589729656507809E-030 2.5423051105190281E-031 1.4766567663679803E-016 + 2.4230217202723966E-015 0.20912229175301819 -1.5871321311827922E-015 4.6143207422048316E-016 -1.9184744588418434E-016 -2.1160765740169108E-002 -4.0492494480357238E-016 3.8620215192114619E-016 -6.0415973239794848E-002 1.3595107060702852E-015 -1.1691656534360535E-013 0.52657940487482102 2.3225033519641528E-015 -8.4647046996415598E-017 -4.6242653835783576E-002 + + 19 0.4000000000 0.4000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 25 : spinor index, minimum and maximum band indices + 6.8838148557406650E-002 -0.13618403296258713 1.8629878338884712E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.0096744844111242E-002 1.4051797440266738E-015 -3.3343248163344800E-016 0.0000000000000000 0.0000000000000000 0.38641309107431104 6.6293691106675970E-003 -8.4681265176748707E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.25823771330028128 -4.6972100907429898E-002 0.14980323917638061 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.63137658853197665 0.10014735390355251 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.0900835691729712E-002 0.29657017325161961 -2.3726502195752203E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.10000022760850708 -0.63230550739833502 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.8838148557406650E-002 0.13618403296258713 -1.8629878338884712E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.0096744844111242E-002 -1.4051797440266738E-015 3.3343248163344800E-016 0.0000000000000000 0.0000000000000000 -0.38641309107431104 -6.6293691106675970E-003 8.4681265176748707E-017 + + 9.4747583113123576E-002 -0.18744124082655558 2.6251192204792098E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 1.3896977059045275E-002 1.9317913618445800E-015 -4.3663777356761047E-016 0.0000000000000000 0.0000000000000000 0.53185199238806280 9.1245437880529360E-003 -1.6936253035349741E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -4.0900835691777895E-002 0.29657017325161239 2.3726502195755658E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.10000022760880523 -0.63230550739828784 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.25823771330028861 4.6972100907386224E-002 0.14980323917638111 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.63137658853202383 -0.10014735390325480 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -9.4747583113123576E-002 0.18744124082655558 -2.6251192204792098E-015 0.0000000000000000 0.0000000000000000 0.0000000000000000 -1.3896977059045275E-002 -1.9317913618445800E-015 4.3663777356761047E-016 0.0000000000000000 0.0000000000000000 -0.53185199238806280 -9.1245437880529360E-003 1.6936253035349741E-016 + + 20 0.5000000000 0.4000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 25 : spinor index, minimum and maximum band indices + 2.8650189353718422E-015 8.0057453661863731E-002 1.5195680541198723E-015 -1.9263314345823502E-016 -4.0611078285625349E-016 -7.9533793586162972E-017 -3.9928494709277175E-003 -1.9522228473067803E-016 6.4173915061303795E-003 4.4585465808259792E-016 8.5538113734036068E-016 -0.20317339427619863 4.5112176606683705E-016 -2.5326134235331206E-016 + 6.1043196459792832E-032 2.5710790353075221E-018 4.8491026944092392E-032 -8.5525140857301785E-002 0.28842692222050748 -3.5311363233037532E-002 -1.2823205206103120E-019 -1.0226394269137092E-032 2.0609724651578764E-019 0.19795026831752069 -0.60750652083985612 -6.5249996179258882E-018 1.8742341172889426E-032 -1.5022464648545555E-032 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 8.4674100616700880E-032 -2.5710790353077663E-018 -4.7029789568531945E-032 -8.5525140857353327E-002 -0.28842692222049182 -3.5311363233036977E-002 1.2823205206108787E-019 2.8844475629822233E-032 -2.0609724651597937E-019 0.19795026831759679 0.60750652083983170 6.5249996179264768E-018 -3.8760875031504016E-032 4.7437350162972460E-032 + -2.8650189353718422E-015 -8.0057453661863731E-002 -1.5195680541198723E-015 1.9263314345823502E-016 4.0611078285625349E-016 7.9533793586162972E-017 3.9928494709277175E-003 1.9522228473067803E-016 -6.4173915061303795E-003 -4.4585465808259792E-016 -8.5538113734036068E-016 0.20317339427619863 -4.5112176606683705E-016 2.5326134235331206E-016 + + 8.6214381959439978E-015 0.24639150716328911 4.6747822776048844E-015 -2.6513677593936762E-016 2.9873331348820553E-016 -1.0946887555848171E-016 -1.2288727083093235E-002 -6.2589847368045092E-016 1.9750700190026036E-002 6.1366629054263094E-016 -6.2921461886776478E-016 -0.62530341075587392 1.4153615642974157E-015 -8.2309936264826416E-016 + -4.3638453600088934E-030 -1.2442648008962695E-016 -2.3608425960328369E-030 -0.26321931803120002 -9.3715587953252327E-002 -0.10867720129753448 6.2057457796953573E-018 3.1478997675148467E-031 -9.9740049169869206E-018 0.60922828198038792 0.19739083421075418 3.2123669573918917E-016 -7.1336818841053742E-031 4.1342273640593450E-031 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.6200319574889218E-029 7.4713651003613198E-016 1.4175985206021128E-029 -0.26321931803118337 9.3715587953301344E-002 -0.10867720129753465 -3.7263283833740606E-017 -1.8905859348723516E-030 5.9890332181646849E-017 0.60922828198036283 -0.19739083421082962 1.7273284953248995E-015 4.2839344768783337E-030 -2.4831254686136000E-030 + -8.6214381959439978E-015 -0.24639150716328911 -4.6747822776048844E-015 2.6513677593936762E-016 -2.9873331348820553E-016 1.0946887555848171E-016 1.2288727083093235E-002 6.2589847368045092E-016 -1.9750700190026036E-002 -6.1366629054263094E-016 6.2921461886776478E-016 0.62530341075587392 -1.4153615642974157E-015 8.2309936264826416E-016 + + 21 0.5000000000 0.5000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 25 : spinor index, minimum and maximum band indices + 0.0000000000000000 1.7849183856723121E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.22715070919725411 -0.19805624165001615 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.55127477918107093 0.32445708811524526 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.22715070919725411 0.19805624165001620 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.55127477918107093 -0.32445708811524537 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -1.7849183856723121E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + 1.7820061115311498E-014 0.25869245017425352 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.65808678348514615 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.19805624165001609 0.22715070919725860 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.32445708811524593 -0.55127477918106915 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.19805624165001609 0.22715070919725860 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.32445708811524593 -0.55127477918106915 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.7820061115311498E-014 -0.25869245017425352 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.65808678348514615 0.0000000000000000 0.0000000000000000 + diff --git a/test/python/elk/elk_spectralcontours_convert/elk.in b/test/python/elk/elk_spectralcontours_convert/elk.in new file mode 100644 index 00000000..303e7d29 --- /dev/null +++ b/test/python/elk/elk_spectralcontours_convert/elk.in @@ -0,0 +1,50 @@ +tasks + 0 + 807 + +ngridk + 4 4 4 + +! Path for species files +sppath + '/home/elk-6.2.8/species/' + +! Maximum length for G+k vectors +rgkmax + 7.0 + +!generate eigenvalues in kz=0 plane +!these inputs are in terms of lattice +!vectors +plot3d + 0.00000000 0.00000000 0.00000000 + 1.00000000 0.00000000 0.00000000 + 0.00000000 1.00000000 0.00000000 + 0.00000000 0.00000000 1.00000000 + 10 10 1 + +avec + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +atoms + 3 : nspecies +'Sr.in' : spfname + 1 : natoms; atposl, bfcmt below + 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 +'V.in' : spfname + 1 : natoms; atposl, bfcmt below + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 +'O.in' : spfname + 3 : natoms; atposl, bfcmt below + 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 + +!Wannier projectors +wanproj !projector flag + 1 !number of projectors - next 3 lines are repeated for each projector + 2 2 3 !species, l, reduced max lm (rlmmax) value + 7 8 9 !the lm quanties which will be projected (vector length eq. rlmmax) +-0.294 0.27562 ![-8.0, 7.5] eV t2g correlated energy window diff --git a/test/python/elk/elk_spectralcontours_convert/elk_spectralcontours_convert.ref.h5 b/test/python/elk/elk_spectralcontours_convert/elk_spectralcontours_convert.ref.h5 new file mode 100644 index 0000000000000000000000000000000000000000..9d34e53effe619d381502e26eee0006f92b9caf9 GIT binary patch literal 608945 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 P;=S6tkK6;?`y2ls)tGjJ literal 0 HcmV?d00001 diff --git a/test/python/elk/occ_test.py b/test/python/elk/occ_test.py new file mode 100644 index 00000000..2e921e17 --- /dev/null +++ b/test/python/elk/occ_test.py @@ -0,0 +1,42 @@ +import os +from h5 import * +from triqs.utility.comparison_tests import * +from triqs.utility.h5diff import h5diff +import triqs.utility.mpi as mpi + +from triqs_dft_tools.converters import ElkConverter +from triqs_dft_tools.sumk_dft_tools import * +#get current working directory path +cwd = format(os.getcwd()) +#location of test directory +testdir = cwd+'/occ_test' +#change to test directory +os.chdir(testdir) + +Converter = ElkConverter(filename='SrVO3', repacking=True) +Converter.hdf_file = 'elk_occ_convert.out.h5' +Converter.convert_dft_input() + +SK = SumkDFTTools(hdf_file='elk_occ_convert.out.h5', use_dft_blocks=True) +SK.occupations(with_Sigma=False, with_dc=False) + +omin = -1.0 +omax = 1.0 +oN = 3 +mesh = MeshReFreq(omin,omax,oN) +dos_occ = SK.density_of_states(broadening=0.01, mesh=mesh, with_Sigma=False, with_dc=False, dosocc=True, save_to_file=False) + +if mpi.is_master_node(): + + with HDFArchive('elk_occ_convert.ref.h5', 'a') as ar: + ar['dos_occ'] = dos_occ + ar['dos_mesh'] = [omin,omax,oN] + with HDFArchive('elk_occ_convert.out.h5', 'a') as ar: + ar['dos_occ'] = dos_occ + ar['dos_mesh'] = [omin,omax,oN] + +if mpi.is_master_node(): + h5diff('elk_occ_convert.out.h5','elk_occ_convert.ref.h5') + +#return to cwd +os.chdir(cwd) diff --git a/test/python/elk/occ_test/EFERMI.OUT b/test/python/elk/occ_test/EFERMI.OUT new file mode 100644 index 00000000..f3527f85 --- /dev/null +++ b/test/python/elk/occ_test/EFERMI.OUT @@ -0,0 +1 @@ + 0.3211418522 diff --git a/test/python/elk/occ_test/EIGVAL.OUT b/test/python/elk/occ_test/EIGVAL.OUT new file mode 100644 index 00000000..0f4f59dc --- /dev/null +++ b/test/python/elk/occ_test/EIGVAL.OUT @@ -0,0 +1,452 @@ + 10 : nkpt + 41 : nstsv + + 1 0.000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910719 2.000000000 + 2 -1.131688868 2.000000000 + 3 -1.131688868 2.000000000 + 4 -1.131688868 2.000000000 + 5 -0.9440722282 2.000000000 + 6 -0.4008874811 2.000000000 + 7 -0.3552838642 2.000000000 + 8 -0.3552838642 2.000000000 + 9 -0.2841899184 2.000000000 + 10 -0.2841899184 2.000000000 + 11 -0.2841899184 2.000000000 + 12 0.1240403569 2.000000000 + 13 0.1240403569 2.000000000 + 14 0.1240403569 2.000000000 + 15 0.1963433343 2.000000000 + 16 0.1963433343 2.000000000 + 17 0.1963433343 2.000000000 + 18 0.2274643503 2.000000000 + 19 0.2274643503 2.000000000 + 20 0.2274643503 2.000000000 + 21 0.2787404949 2.000000000 + 22 0.2787404949 2.000000000 + 23 0.2787404949 2.000000000 + 24 0.3627396357 0.1719262325E-17 + 25 0.3627396357 0.1719262325E-17 + 26 0.4679669877 0.000000000 + 27 0.4679669877 0.000000000 + 28 0.4816901801 0.000000000 + 29 0.6363316249 0.000000000 + 30 0.6363316249 0.000000000 + 31 0.6363316249 0.000000000 + 32 0.7997526405 0.000000000 + 33 0.8808335095 0.000000000 + 34 0.8808335095 0.000000000 + 35 0.8808335095 0.000000000 + 36 1.065261897 0.000000000 + 37 1.106455928 0.000000000 + 38 1.106455928 0.000000000 + 39 1.106455928 0.000000000 + 40 1.114323880 0.000000000 + 41 1.114323880 0.000000000 + + + 2 0.2500000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080913192 2.000000000 + 2 -1.132327830 2.000000000 + 3 -1.131627115 2.000000000 + 4 -1.131627115 2.000000000 + 5 -0.9434460805 2.000000000 + 6 -0.4030965190 2.000000000 + 7 -0.3558073195 2.000000000 + 8 -0.3545831853 2.000000000 + 9 -0.2829724423 2.000000000 + 10 -0.2829724423 2.000000000 + 11 -0.2705119332 2.000000000 + 12 0.9560796539E-01 2.000000000 + 13 0.1228952838 2.000000000 + 14 0.1228952838 2.000000000 + 15 0.1683146036 2.000000000 + 16 0.1683146036 2.000000000 + 17 0.1775868428 2.000000000 + 18 0.1784449781 2.000000000 + 19 0.2167722433 2.000000000 + 20 0.2167722433 2.000000000 + 21 0.2810750477 2.000000000 + 22 0.3212383248 0.9518010858 + 23 0.3212383248 0.9518010858 + 24 0.3630289787 0.1287306833E-17 + 25 0.4141859734 0.000000000 + 26 0.5095225832 0.000000000 + 27 0.5111532546 0.000000000 + 28 0.5351317989 0.000000000 + 29 0.6323948955 0.000000000 + 30 0.6642391007 0.000000000 + 31 0.6642391007 0.000000000 + 32 0.7959842788 0.000000000 + 33 0.8780219214 0.000000000 + 34 0.8780219214 0.000000000 + 35 0.8898914875 0.000000000 + 36 0.9650596386 0.000000000 + 37 1.041840477 0.000000000 + 38 1.050392091 0.000000000 + 39 1.073097886 0.000000000 + 40 1.073097886 0.000000000 + 41 1.117664142 0.000000000 + + + 3 0.5000000000 0.000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080912294 2.000000000 + 2 -1.132926000 2.000000000 + 3 -1.131564883 2.000000000 + 4 -1.131564883 2.000000000 + 5 -0.9428157584 2.000000000 + 6 -0.4084852675 2.000000000 + 7 -0.3538266768 2.000000000 + 8 -0.3494064836 2.000000000 + 9 -0.2817319657 2.000000000 + 10 -0.2817319657 2.000000000 + 11 -0.2598027528 2.000000000 + 12 0.6746678860E-01 2.000000000 + 13 0.1234010883 2.000000000 + 14 0.1234010883 2.000000000 + 15 0.1468283740 2.000000000 + 16 0.1474941442 2.000000000 + 17 0.1474941442 2.000000000 + 18 0.1641425237 2.000000000 + 19 0.2112615508 2.000000000 + 20 0.2112615508 2.000000000 + 21 0.2834528907 2.000000000 + 22 0.3519041119 0.8732736636E-13 + 23 0.3519041119 0.8732736636E-13 + 24 0.3633785743 0.9075167699E-18 + 25 0.4481704981 0.000000000 + 26 0.5555294132 0.000000000 + 27 0.5580645178 0.000000000 + 28 0.6281608880 0.000000000 + 29 0.6332808152 0.000000000 + 30 0.6924728482 0.000000000 + 31 0.6924728482 0.000000000 + 32 0.7832086940 0.000000000 + 33 0.7952333683 0.000000000 + 34 0.8782579932 0.000000000 + 35 0.8782579932 0.000000000 + 36 0.9262397893 0.000000000 + 37 0.9863709065 0.000000000 + 38 1.036659717 0.000000000 + 39 1.044273941 0.000000000 + 40 1.044273941 0.000000000 + 41 1.063670948 0.000000000 + + + 4 0.2500000000 0.2500000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080910305 2.000000000 + 2 -1.132253334 2.000000000 + 3 -1.132203942 2.000000000 + 4 -1.131564292 2.000000000 + 5 -0.9429128350 2.000000000 + 6 -0.3974642422 2.000000000 + 7 -0.3620613012 2.000000000 + 8 -0.3528792986 2.000000000 + 9 -0.2816629848 2.000000000 + 10 -0.2755380936 2.000000000 + 11 -0.2700258631 2.000000000 + 12 0.8547828310E-01 2.000000000 + 13 0.1039516054 2.000000000 + 14 0.1197230548 2.000000000 + 15 0.1233892019 2.000000000 + 16 0.1533643762 2.000000000 + 17 0.1753953420 2.000000000 + 18 0.1902845589 2.000000000 + 19 0.1940737286 2.000000000 + 20 0.2141345370 2.000000000 + 21 0.3192041970 1.748188638 + 22 0.3242569533 0.8497725960E-01 + 23 0.3326622013 0.1985187990E-04 + 24 0.3876946349 0.000000000 + 25 0.4473600940 0.000000000 + 26 0.5410462796 0.000000000 + 27 0.5568988188 0.000000000 + 28 0.5594024472 0.000000000 + 29 0.6584119710 0.000000000 + 30 0.6720929654 0.000000000 + 31 0.6729354315 0.000000000 + 32 0.7948725946 0.000000000 + 33 0.8323960461 0.000000000 + 34 0.8621206515 0.000000000 + 35 0.8968767900 0.000000000 + 36 0.9026311112 0.000000000 + 37 1.007375063 0.000000000 + 38 1.029511860 0.000000000 + 39 1.074335499 0.000000000 + 40 1.076877573 0.000000000 + 41 1.128715119 0.000000000 + + + 5 0.5000000000 0.2500000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080915141 2.000000000 + 2 -1.132870627 2.000000000 + 3 -1.132197689 2.000000000 + 4 -1.131556232 2.000000000 + 5 -0.9423759464 2.000000000 + 6 -0.3957985951 2.000000000 + 7 -0.3591886159 2.000000000 + 8 -0.3541237899 2.000000000 + 9 -0.2803411887 2.000000000 + 10 -0.2742745846 2.000000000 + 11 -0.2649434107 2.000000000 + 12 0.6526613075E-01 2.000000000 + 13 0.8555139358E-01 2.000000000 + 14 0.9994023730E-01 2.000000000 + 15 0.1245618184 2.000000000 + 16 0.1367849583 2.000000000 + 17 0.1699818355 2.000000000 + 18 0.1826235005 2.000000000 + 19 0.1855674021 2.000000000 + 20 0.2170412769 2.000000000 + 21 0.3221154165 0.5483412414 + 22 0.3512664744 0.1652238712E-12 + 23 0.3540552436 0.1016074878E-13 + 24 0.3921830393 0.000000000 + 25 0.4807900650 0.000000000 + 26 0.5824822151 0.000000000 + 27 0.6006494969 0.000000000 + 28 0.6229834244 0.000000000 + 29 0.6657915676 0.000000000 + 30 0.6890583666 0.000000000 + 31 0.6988887480 0.000000000 + 32 0.7600570316 0.000000000 + 33 0.7996674572 0.000000000 + 34 0.8243421355 0.000000000 + 35 0.8498168438 0.000000000 + 36 0.8644313430 0.000000000 + 37 0.9690404303 0.000000000 + 38 0.9869111018 0.000000000 + 39 1.034862996 0.000000000 + 40 1.123680910 0.000000000 + 41 1.128338774 0.000000000 + + + 6 0.5000000000 0.5000000000 0.000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080919469 2.000000000 + 2 -1.132821084 2.000000000 + 3 -1.132821084 2.000000000 + 4 -1.131556348 2.000000000 + 5 -0.9419324869 2.000000000 + 6 -0.3708454422 2.000000000 + 7 -0.3675374714 2.000000000 + 8 -0.3675374714 2.000000000 + 9 -0.2789251686 2.000000000 + 10 -0.2680364299 2.000000000 + 11 -0.2680364299 2.000000000 + 12 0.5665044947E-01 2.000000000 + 13 0.5993672712E-01 2.000000000 + 14 0.7465522865E-01 2.000000000 + 15 0.1269678633 2.000000000 + 16 0.1269678633 2.000000000 + 17 0.1634606660 2.000000000 + 18 0.1830616585 2.000000000 + 19 0.1830616585 2.000000000 + 20 0.2395130027 2.000000000 + 21 0.3509860322 0.2187093199E-12 + 22 0.3509860322 0.2187093199E-12 + 23 0.3642441292 0.3818993694E-18 + 24 0.4008409014 0.000000000 + 25 0.5180680383 0.000000000 + 26 0.6064481133 0.000000000 + 27 0.6159910732 0.000000000 + 28 0.6990396042 0.000000000 + 29 0.6990396042 0.000000000 + 30 0.7103343650 0.000000000 + 31 0.7103343650 0.000000000 + 32 0.7116369197 0.000000000 + 33 0.7967413206 0.000000000 + 34 0.8017159443 0.000000000 + 35 0.8017159443 0.000000000 + 36 0.8135759124 0.000000000 + 37 0.8435846616 0.000000000 + 38 0.9580135283 0.000000000 + 39 1.078257120 0.000000000 + 40 1.131319957 0.000000000 + 41 1.131319957 0.000000000 + + + 7 0.2500000000 0.2500000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080913977 2.000000000 + 2 -1.132241567 2.000000000 + 3 -1.132172610 2.000000000 + 4 -1.132172610 2.000000000 + 5 -0.9424245661 2.000000000 + 6 -0.3896839024 2.000000000 + 7 -0.3569612248 2.000000000 + 8 -0.3569612248 2.000000000 + 9 -0.2818665975 2.000000000 + 10 -0.2818665975 2.000000000 + 11 -0.2671909185 2.000000000 + 12 0.7777182412E-01 2.000000000 + 13 0.1043736460 2.000000000 + 14 0.1043736460 2.000000000 + 15 0.1248592859 2.000000000 + 16 0.1248592859 2.000000000 + 17 0.1271180017 2.000000000 + 18 0.2063953518 2.000000000 + 19 0.2063953518 2.000000000 + 20 0.2182014310 2.000000000 + 21 0.3336490598 0.7399751479E-05 + 22 0.3371547059 0.2221958420E-06 + 23 0.3371547059 0.2221958420E-06 + 24 0.4466894690 0.000000000 + 25 0.4466894690 0.000000000 + 26 0.5645507189 0.000000000 + 27 0.5734253551 0.000000000 + 28 0.5734253551 0.000000000 + 29 0.6611231280 0.000000000 + 30 0.6611231280 0.000000000 + 31 0.6990740795 0.000000000 + 32 0.7649259038 0.000000000 + 33 0.8586074180 0.000000000 + 34 0.8599856377 0.000000000 + 35 0.8599856377 0.000000000 + 36 0.9036846531 0.000000000 + 37 1.014152150 0.000000000 + 38 1.014152150 0.000000000 + 39 1.058268396 0.000000000 + 40 1.080994750 0.000000000 + 41 1.080994750 0.000000000 + + + 8 0.5000000000 0.2500000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080917842 2.000000000 + 2 -1.132810191 2.000000000 + 3 -1.132178689 2.000000000 + 4 -1.132133755 2.000000000 + 5 -0.9419326068 2.000000000 + 6 -0.3836090418 2.000000000 + 7 -0.3586874610 2.000000000 + 8 -0.3507955565 2.000000000 + 9 -0.2892621023 2.000000000 + 10 -0.2733714081 2.000000000 + 11 -0.2729057127 2.000000000 + 12 0.6418299998E-01 2.000000000 + 13 0.8759567473E-01 2.000000000 + 14 0.9829632474E-01 2.000000000 + 15 0.1062288532 2.000000000 + 16 0.1087052035 2.000000000 + 17 0.1320017691 2.000000000 + 18 0.2052277810 2.000000000 + 19 0.2110865712 2.000000000 + 20 0.2216363259 2.000000000 + 21 0.3392602726 0.2705826697E-07 + 22 0.3563641889 0.1009632998E-14 + 23 0.3578146533 0.2367199275E-15 + 24 0.4454329802 0.000000000 + 25 0.4886828615 0.000000000 + 26 0.5891619040 0.000000000 + 27 0.6102869679 0.000000000 + 28 0.6180362420 0.000000000 + 29 0.6198659280 0.000000000 + 30 0.6847871478 0.000000000 + 31 0.7249610770 0.000000000 + 32 0.7388741744 0.000000000 + 33 0.8161765665 0.000000000 + 34 0.8171066678 0.000000000 + 35 0.8708867936 0.000000000 + 36 0.8867366925 0.000000000 + 37 1.002008651 0.000000000 + 38 1.012283145 0.000000000 + 39 1.019094714 0.000000000 + 40 1.021550943 0.000000000 + 41 1.047281587 0.000000000 + + + 9 0.5000000000 0.5000000000 0.2500000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080921208 2.000000000 + 2 -1.132758919 2.000000000 + 3 -1.132758919 2.000000000 + 4 -1.132120891 2.000000000 + 5 -0.9414857882 2.000000000 + 6 -0.3596463817 2.000000000 + 7 -0.3591916696 2.000000000 + 8 -0.3591916696 2.000000000 + 9 -0.2880719366 2.000000000 + 10 -0.2806057945 2.000000000 + 11 -0.2806057945 2.000000000 + 12 0.5632350428E-01 2.000000000 + 13 0.7486414202E-01 2.000000000 + 14 0.7925223837E-01 2.000000000 + 15 0.1088394444 2.000000000 + 16 0.1088394444 2.000000000 + 17 0.1098299671 2.000000000 + 18 0.2164711067 2.000000000 + 19 0.2164711067 2.000000000 + 20 0.2410400547 2.000000000 + 21 0.3601440639 0.2304542190E-16 + 22 0.3601440639 0.2304542190E-16 + 23 0.3681877805 0.7400190809E-20 + 24 0.4633895547 0.000000000 + 25 0.5180560839 0.000000000 + 26 0.5766243705 0.000000000 + 27 0.6015462211 0.000000000 + 28 0.6015462211 0.000000000 + 29 0.6440257884 0.000000000 + 30 0.6771775015 0.000000000 + 31 0.7573218889 0.000000000 + 32 0.7573218889 0.000000000 + 33 0.7888483172 0.000000000 + 34 0.8361695632 0.000000000 + 35 0.8661467170 0.000000000 + 36 0.8941930697 0.000000000 + 37 0.8941930697 0.000000000 + 38 0.9781855322 0.000000000 + 39 1.024091390 0.000000000 + 40 1.057340734 0.000000000 + 41 1.057340734 0.000000000 + + + 10 0.5000000000 0.5000000000 0.5000000000 : k-point, vkl + (state, eigenvalue and occupancy below) + 1 -2.080926396 2.000000000 + 2 -1.132723022 2.000000000 + 3 -1.132723022 2.000000000 + 4 -1.132723022 2.000000000 + 5 -0.9410358021 2.000000000 + 6 -0.3473222677 2.000000000 + 7 -0.3473222677 2.000000000 + 8 -0.3473222677 2.000000000 + 9 -0.2965701321 2.000000000 + 10 -0.2965701321 2.000000000 + 11 -0.2965701321 2.000000000 + 12 0.4839222801E-01 2.000000000 + 13 0.7509750354E-01 2.000000000 + 14 0.7509750354E-01 2.000000000 + 15 0.9821261827E-01 2.000000000 + 16 0.9821261827E-01 2.000000000 + 17 0.9821261827E-01 2.000000000 + 18 0.2427208549 2.000000000 + 19 0.2427208549 2.000000000 + 20 0.2427208549 2.000000000 + 21 0.3724696266 0.000000000 + 22 0.3724696266 0.000000000 + 23 0.3724696266 0.000000000 + 24 0.5181679962 0.000000000 + 25 0.5181679962 0.000000000 + 26 0.5489633359 0.000000000 + 27 0.5489633359 0.000000000 + 28 0.5489633359 0.000000000 + 29 0.6285960801 0.000000000 + 30 0.7678537640 0.000000000 + 31 0.7678537640 0.000000000 + 32 0.7814962951 0.000000000 + 33 0.7814962951 0.000000000 + 34 0.7814962951 0.000000000 + 35 0.8648320260 0.000000000 + 36 0.9932576734 0.000000000 + 37 0.9932576734 0.000000000 + 38 0.9932576734 0.000000000 + 39 1.011396116 0.000000000 + 40 1.011396116 0.000000000 + 41 1.011396116 0.000000000 + diff --git a/test/python/elk/occ_test/GEOMETRY.OUT b/test/python/elk/occ_test/GEOMETRY.OUT new file mode 100644 index 00000000..069386d7 --- /dev/null +++ b/test/python/elk/occ_test/GEOMETRY.OUT @@ -0,0 +1,31 @@ + +scale + 1.0 + +scale1 + 1.0 + +scale2 + 1.0 + +scale3 + 1.0 + +avec + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +atoms + 3 : nspecies +'Sr.in' : spfname + 1 : natoms; atpos, bfcmt below + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 +'V.in' : spfname + 1 : natoms; atpos, bfcmt below + 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 +'O.in' : spfname + 3 : natoms; atpos, bfcmt below + 0.00000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 + 0.50000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 + 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 diff --git a/test/python/elk/occ_test/KPOINTS.OUT b/test/python/elk/occ_test/KPOINTS.OUT new file mode 100644 index 00000000..12fb88d5 --- /dev/null +++ b/test/python/elk/occ_test/KPOINTS.OUT @@ -0,0 +1,11 @@ + 10 : nkpt; k-point, vkl, wkpt, nmat below + 1 0.000000000 0.000000000 0.000000000 0.1562500000E-01 401 + 2 0.2500000000 0.000000000 0.000000000 0.9375000000E-01 397 + 3 0.5000000000 0.000000000 0.000000000 0.4687500000E-01 372 + 4 0.2500000000 0.2500000000 0.000000000 0.1875000000 374 + 5 0.5000000000 0.2500000000 0.000000000 0.1875000000 386 + 6 0.5000000000 0.5000000000 0.000000000 0.4687500000E-01 392 + 7 0.2500000000 0.2500000000 0.2500000000 0.1250000000 386 + 8 0.5000000000 0.2500000000 0.2500000000 0.1875000000 386 + 9 0.5000000000 0.5000000000 0.2500000000 0.9375000000E-01 388 + 10 0.5000000000 0.5000000000 0.5000000000 0.1562500000E-01 396 diff --git a/test/python/elk/occ_test/LATTICE.OUT b/test/python/elk/occ_test/LATTICE.OUT new file mode 100644 index 00000000..9fbd2c10 --- /dev/null +++ b/test/python/elk/occ_test/LATTICE.OUT @@ -0,0 +1,41 @@ + ++----------------------------+ +| Real-space lattice vectors | ++----------------------------+ + +vector a1 : 7.260500000 0.000000000 0.000000000 +vector a2 : 0.000000000 7.260500000 0.000000000 +vector a3 : 0.000000000 0.000000000 7.260500000 + +Stored column-wise as a matrix : + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +Inverse of matrix : + 0.1377315612 0.000000000 0.000000000 + 0.000000000 0.1377315612 0.000000000 + 0.000000000 0.000000000 0.1377315612 + +Unit cell volume : 382.7362428 + + ++----------------------------------+ +| Reciprocal-space lattice vectors | ++----------------------------------+ + +vector b1 : 0.8653929216 0.000000000 0.000000000 +vector b2 : 0.000000000 0.8653929216 0.000000000 +vector b3 : 0.000000000 0.000000000 0.8653929216 + +Stored column-wise as a matrix : + 0.8653929216 0.000000000 0.000000000 + 0.000000000 0.8653929216 0.000000000 + 0.000000000 0.000000000 0.8653929216 + +Inverse of matrix : + 1.155544464 0.000000000 0.000000000 + 0.000000000 1.155544464 0.000000000 + 0.000000000 0.000000000 1.155544464 + +Brillouin zone volume : 0.6480970070 diff --git a/test/python/elk/occ_test/PROJ.OUT b/test/python/elk/occ_test/PROJ.OUT new file mode 100644 index 00000000..51b27a0f --- /dev/null +++ b/test/python/elk/occ_test/PROJ.OUT @@ -0,0 +1,8 @@ + 1 10 1 0 5 : nproj, nkpt, nspinor, spinorb, natmtot + 1 : Proj index + 2 1 2 3 : Species index, natoms, l, lm submatrix size + 1 : Subset no. of equivalent atoms + 1 2 : atom, spatom + 3 4 5 : lm indices + 1 : Cubic Harmonics + diff --git a/test/python/elk/occ_test/SYMCRYS.OUT b/test/python/elk/occ_test/SYMCRYS.OUT new file mode 100644 index 00000000..5308b334 --- /dev/null +++ b/test/python/elk/occ_test/SYMCRYS.OUT @@ -0,0 +1,580 @@ + +(translation vectors and rotation matrices are in lattice coordinates) + + 48 : nsymcrys + +Crystal symmetry : 1 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 2 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 -1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 3 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 -1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 4 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 -1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 5 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 6 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 0 1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 7 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 8 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 9 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + -1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 10 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + -1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 11 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 -1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 12 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 -1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 13 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 14 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 0 0 1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 15 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 16 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 -1 0 + 1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 17 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + -1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 18 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + -1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 19 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 -1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 20 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 -1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 21 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 22 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 0 1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 23 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 24 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 -1 + 1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 25 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + -1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 26 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + -1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 27 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 -1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 28 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 -1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 29 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 1 0 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 30 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 0 1 0 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 31 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 1 0 0 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 32 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 0 1 + 1 0 0 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 33 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + -1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 34 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + -1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 35 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 -1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 36 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 -1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 37 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 1 + -1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 38 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 0 0 1 + 1 0 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 39 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 1 0 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 40 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 0 1 0 + 1 0 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 41 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 -1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 42 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 -1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 43 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 -1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 44 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 -1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 45 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 1 + 0 -1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 46 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 0 1 + 0 1 0 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 47 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + 1 0 0 + 0 1 0 + 0 0 -1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 + +Crystal symmetry : 48 + spatial translation : + 0.000000000 0.000000000 0.000000000 + spatial rotation : + -1 0 0 + 0 -1 0 + 0 0 1 + global spin rotation : + 1 0 0 + 0 1 0 + 0 0 1 diff --git a/test/python/elk/occ_test/WANPROJ_L02_S02_A0001.OUT b/test/python/elk/occ_test/WANPROJ_L02_S02_A0001.OUT new file mode 100644 index 00000000..cbd1e5da --- /dev/null +++ b/test/python/elk/occ_test/WANPROJ_L02_S02_A0001.OUT @@ -0,0 +1,141 @@ + 10 5 3 : number of k-points, lmmax, reduced lmmax + 1 0.000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -6.7105655955802212E-031 -6.3882801826833444E-034 6.6550957365569281E-017 2.1138614120121491E-017 4.6399095851368767E-017 0.0000000000000000 0.0000000000000000 -2.7914921757873600E-018 -8.3744765273620791E-018 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.7795494640664351E-015 1.2776560365366689E-033 -0.48033027589968202 -0.30182410550742983 -0.42211967324074606 0.0000000000000000 0.0000000000000000 3.5748250748869175E-034 1.0724475224660752E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.8038606982369813E-015 -1.2776560365366689E-033 0.48033027589968202 0.30182410550742983 0.42211967324074606 0.0000000000000000 0.0000000000000000 -3.5748250748869175E-034 -1.0724475224660752E-033 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 6.7105655955802212E-031 6.3882801826833444E-034 -6.6550957365569281E-017 -2.1138614120121491E-017 -4.6399095851368767E-017 0.0000000000000000 0.0000000000000000 2.7914921757873600E-018 8.3744765273620791E-018 0.0000000000000000 + + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.8255013034021984E-031 1.5172165433872943E-033 0.43321280875551299 -0.54988314907614744 -9.9775587396690527E-002 0.0000000000000000 0.0000000000000000 7.0219778256707301E-035 2.1065933477012192E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.6510026068043968E-031 3.7367733404265051E-015 0.28567371515838208 0.32639043313926341 -0.55844408562618808 0.0000000000000000 0.0000000000000000 -1.3618381237664447E-034 -4.0855143712993341E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -5.6510026068043968E-031 3.7629626999920564E-015 0.28567371515838241 0.32639043313926330 -0.55844408562618786 0.0000000000000000 0.0000000000000000 1.3618381237664447E-034 4.0855143712993341E-034 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.8255013034021984E-031 -1.5172165433872943E-033 -0.43321280875551299 0.54988314907614744 9.9775587396690527E-002 0.0000000000000000 0.0000000000000000 -7.0219778256707301E-035 -2.1065933477012192E-034 0.0000000000000000 + + 2 0.2500000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + -1.1479430934821716E-015 -4.1201831605635411E-002 3.2486659603760099E-002 -0.12807750971585008 -0.14798916110561403 6.5050108630656391E-015 -1.5203412994034713E-016 -5.5437384367849923E-002 -4.7068691699284550E-002 3.8676270967438337E-015 0.28354081699962441 0.35108151134858573 2.0116336114354248E-015 -9.6208564025172474E-016 6.0267012407814007E-016 -3.6044046536419372E-017 -8.7189011147812559E-016 + 8.5377531061272291E-030 -3.2486659603760328E-002 -4.1201831605645070E-002 -0.14798916110561686 0.12807750971585027 -4.8386162189772038E-029 1.1319321334491101E-030 4.7068691699284550E-002 -5.5437384367842069E-002 -0.50000000588867755 -0.35108151134858362 0.28354081699963019 -1.4965863616643814E-029 7.1586280823072410E-030 -4.4832527087694744E-030 2.6846185502485039E-031 6.4859609978193888E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 9.6023541003411349E-030 3.2486659603757316E-002 4.1201831605643016E-002 0.14798916110561308 -0.12807750971584711 -5.4388032826178798E-029 1.2663340192084875E-030 -4.7068691699288519E-002 5.5437384367849549E-002 -0.50000000588868243 0.35108151134858584 -0.28354081699962064 -1.6806651697050644E-029 8.0332260598548725E-030 -5.0369932458614618E-030 2.9974335319816809E-031 7.2871449951516586E-030 + 1.1479430934821716E-015 4.1201831605635411E-002 -3.2486659603760099E-002 0.12807750971585008 0.14798916110561403 -6.5050108630656391E-015 1.5203412994034713E-016 5.5437384367849923E-002 4.7068691699284550E-002 -3.8676270967438337E-015 -0.28354081699962441 -0.35108151134858573 -2.0116336114354248E-015 9.6208564025172474E-016 -6.0267012407814007E-016 3.6044046536419372E-017 8.7189011147812559E-016 + + 1.2026070503146559E-015 4.1201831605635363E-002 -3.2486659603760099E-002 0.12807750971584989 0.14798916110561408 -6.5050108630656391E-015 9.3099551480324920E-017 5.5437384367849923E-002 4.7068691699284480E-002 -3.8990903550046676E-015 -0.28354081699962458 -0.35108151134858545 -1.8585745323044683E-015 8.3089214385376231E-016 -5.7943794242433422E-016 1.6228362184643793E-017 8.3909173737863501E-016 + -8.9875410208915991E-030 -3.2486659603757254E-002 -4.1201831605643023E-002 -0.14798916110561297 0.12807750971584725 4.8619734901916953E-029 -6.9690248987368002E-031 4.7068691699288415E-002 -5.5437384367849514E-002 0.50000000588868232 -0.35108151134858606 0.28354081699962030 1.3894100743379659E-029 -6.2126072080984171E-030 4.3312506232071474E-030 -1.2164973826120052E-031 -6.2721260719165434E-030 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -9.8628943930235077E-030 3.2486659603760279E-002 4.1201831605645146E-002 0.14798916110561680 -0.12807750971585041 5.3325135644498058E-029 -7.5837313976920981E-031 -4.7068691699284765E-002 5.5437384367842062E-002 0.50000000588867721 0.35108151134858406 -0.28354081699962996 1.5223248368559501E-029 -6.8005595393138963E-030 4.7480720351308591E-030 -1.3141386159899770E-031 -6.8758148150297549E-030 + -1.2026070503146559E-015 -4.1201831605635363E-002 3.2486659603760099E-002 -0.12807750971584989 -0.14798916110561408 6.5050108630656391E-015 -9.3099551480324920E-017 -5.5437384367849923E-002 -4.7068691699284480E-002 3.8990903550046676E-015 0.28354081699962458 0.35108151134858545 1.8585745323044683E-015 -8.3089214385376231E-016 5.7943794242433422E-016 -1.6228362184643793E-017 -8.3909173737863501E-016 + + 3 0.5000000000 0.000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 27 : spinor index, minimum and maximum band indices + 3.8301697230931260E-035 0.0000000000000000 -3.8473417400210853E-031 -1.4998533703594799E-014 -0.32186355830931351 3.8170613586327409E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5114882735402794E-035 -0.57790552524403449 -0.24692524177247691 4.1150949961117418E-014 -5.1068929641241676E-035 0.0000000000000000 0.0000000000000000 + 3.2684114970394673E-033 0.0000000000000000 -3.7571696679893411E-034 1.3809106840985814E-032 3.7975521566674866E-021 3.2021849668353347E-020 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678846348274 -2.4566319383574014E-020 5.7495181961827470E-020 0.0000000000000000 -4.3578819960526231E-033 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.2684114970394673E-033 0.0000000000000000 3.7571696679893411E-034 -1.3809106840985814E-032 -3.7975521566674866E-021 -3.2021849668353347E-020 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.70710678846348252 2.4566319383574014E-020 -5.7495181961827470E-020 0.0000000000000000 4.3578819960526231E-033 0.0000000000000000 0.0000000000000000 + -3.8301697230931260E-035 0.0000000000000000 3.8473417400210853E-031 1.4998533703594799E-014 0.32186355830931351 -3.8170613586327409E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5114882735402794E-035 0.57790552524403449 0.24692524177247691 -4.1150949961117418E-014 5.1068929641241676E-035 0.0000000000000000 0.0000000000000000 + + 6.4164108193376199E-017 0.0000000000000000 3.7571696679893412E-033 -1.2913794316588710E-031 1.5415557644344527E-019 -3.4300380962353796E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.7157639921052461E-033 -7.3603942728612875E-018 -4.2755390331683307E-019 -2.4564375171018604E-032 -8.5552144257834928E-017 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 3.7774225529275110E-015 -1.3880436723964524E-013 -3.8170613586328082E-002 -0.32186355830931335 0.0000000000000000 0.0000000000000000 0.0000000000000000 -8.5114882735402794E-036 0.24692524177247693 -0.57790552524403405 -2.0961600145935875E-030 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 -3.7755202722709817E-015 1.3879660278213001E-013 3.8170613586328082E-002 0.32186355830931335 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.5114882735402794E-036 -0.24692524177247699 0.57790552524403405 2.0961600145935875E-030 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -6.4164108193376199E-017 0.0000000000000000 -3.7571696679893412E-033 1.2913794316588710E-031 -1.5415557644344527E-019 3.4300380962353796E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 8.7157639921052461E-033 7.3603942728612875E-018 4.2755390331683307E-019 2.4564375171018604E-032 8.5552144257834928E-017 0.0000000000000000 0.0000000000000000 + + 4 0.2500000000 0.2500000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 0.11405873451729223 0.0000000000000000 -0.23546202097124866 -1.0249723439205300E-014 -7.5095022555978797E-029 1.4256280234270332E-002 1.6008330212215150E-072 -4.0356122523790583E-016 8.0041651061075750E-073 1.0211551832557298E-015 -8.2276812085473522E-030 0.65046168029731499 -2.8615062075332712E-002 0.0000000000000000 8.5241414050527639E-002 3.0015619147903406E-073 -1.2637206311404530E-002 + 1.2970648841605209E-016 0.0000000000000000 -2.6776513017420174E-016 0.10777800260674454 -0.20344147977690030 1.6212103833065352E-017 -2.4476840433737368E-032 -0.17944970424762796 -1.2238420216868684E-032 0.45407235424606457 -0.45674014977267807 7.3969872414969147E-016 -3.2540771500809966E-017 0.0000000000000000 9.6935710631055850E-017 -4.5894075813257564E-033 -1.4370908646132197E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2970648841603394E-016 0.0000000000000000 -2.6776513017416427E-016 0.10777800260674460 -0.20344147977690041 1.6212103833063084E-017 2.4476840433737368E-032 -0.17944970424762796 1.2238420216868684E-032 0.45407235424606457 -0.45674014977267796 7.3969872414958813E-016 -3.2540771500805417E-017 0.0000000000000000 9.6935710631042292E-017 4.5894075813257564E-033 -1.4370908646130188E-017 + -0.11405873451729223 0.0000000000000000 0.23546202097124866 1.0249723439205300E-014 7.5095022555978797E-029 -1.4256280234270332E-002 -1.6008330212215150E-072 4.0356122523790583E-016 -8.0041651061075750E-073 -1.0211551832557298E-015 8.2276812085473522E-030 -0.65046168029731499 2.8615062075332712E-002 0.0000000000000000 -8.5241414050527639E-002 -3.0015619147903406E-073 1.2637206311404530E-002 + + 8.4830568833071528E-057 0.0000000000000000 -1.7512360856982293E-056 -8.4996316805575910E-030 -1.5967693001622960E-029 1.0603031559441650E-057 -2.1523961360357707E-017 1.4098841695660923E-029 -1.0761980680178853E-017 -3.5706112729657061E-029 -3.5848571791187747E-029 4.8377736766289603E-056 -2.1282298136282648E-057 0.0000000000000000 6.3397842108666782E-057 -4.0357427550670704E-018 -9.3988540587814491E-058 + -1.2970648841600493E-016 0.0000000000000000 2.6776513017410441E-016 -0.10777800260674987 -0.20344147977689339 -1.6212103833059460E-017 -2.4476840433746263E-032 0.17944970424763437 -1.2238420216873132E-032 -0.45407235424593645 -0.45674014977280492 -7.3969872414942266E-016 3.2540771500798139E-017 0.0000000000000000 -9.6935710631020623E-017 -4.5894075813274246E-033 1.4370908646126974E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2970648841600493E-016 0.0000000000000000 -2.6776513017410441E-016 0.10777800260674987 0.20344147977689328 1.6212103833059460E-017 -2.4476840433742842E-032 -0.17944970424763437 -1.2238420216871421E-032 0.45407235424593645 0.45674014977280503 7.3969872414942266E-016 -3.2540771500798139E-017 0.0000000000000000 9.6935710631020623E-017 -4.5894075813267828E-033 -1.4370908646126974E-017 + -8.4830568833071528E-057 0.0000000000000000 1.7512360856982293E-056 8.4996316805575910E-030 1.5967693001622960E-029 -1.0603031559441650E-057 2.1523961360357707E-017 -1.4098841695660923E-029 1.0761980680178853E-017 3.5706112729657061E-029 3.5848571791187747E-029 -4.8377736766289603E-056 2.1282298136282648E-057 0.0000000000000000 -6.3397842108666782E-057 4.0357427550670704E-018 9.3988540587814491E-058 + + 5 0.5000000000 0.2500000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + -6.3668189435616237E-016 -0.18223854982126789 -4.9236733163543227E-015 7.4171311499880794E-016 -7.1437508893710305E-017 -2.4220390038509475E-002 8.5269507474275604E-016 1.3370319781479410E-015 -7.5133050247464681E-002 2.6175052499622367E-015 1.0144798346011778E-013 0.45708432412351058 1.4272285798483975E-015 1.8676002234447431E-015 4.0390906993363444E-002 + -3.9006444403437280E-030 -1.1192009657532371E-015 -3.0238277993990591E-029 0.13007658391645993 -0.22022796738043829 -1.4874725434660121E-016 0.14953984256448338 8.2084132100147222E-030 -4.6142258308914335E-016 0.45904020626500547 -0.44888712188601743 9.6109557704032248E-014 8.7670860389131959E-030 1.1465900567272340E-029 2.4805696796291071E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.5047980595012034E-030 -1.0001488463490106E-015 -2.7021759073373006E-029 0.13007658391648030 0.22022796738041847 -1.3292464837377286E-016 0.14953984256448932 7.3409867883768362E-030 -4.1233994454731150E-016 0.45904020626500514 0.44888712188601965 -1.0338072313387919E-013 7.8306949231194690E-030 1.0253874782319225E-029 2.2167054704958030E-016 + 6.3668189435616237E-016 0.18223854982126789 4.9236733163543227E-015 -7.4171311499880794E-016 7.1437508893710305E-017 2.4220390038509475E-002 -8.5269507474275604E-016 -1.3370319781479410E-015 7.5133050247464681E-002 -2.6175052499622367E-015 -1.0144798346011778E-013 -0.45708432412351058 -1.4272285798483975E-015 -1.8676002234447431E-015 -4.0390906993363444E-002 + + -5.3056824529680209E-016 -0.18223854982126789 -4.9236733163543227E-015 7.4036041072192792E-016 3.0045909029674252E-017 -2.4220390038509496E-002 8.5113996637112640E-016 1.3051978834301330E-015 -7.5133050247464597E-002 2.6127315571761811E-015 1.0168625660577876E-013 0.45708432412351024 1.4484513096602696E-015 1.8251547638209989E-015 4.0390906993363389E-002 + -3.1541802740951059E-030 -1.0866470977127699E-015 -2.9358746130001496E-029 0.13007658391648030 0.22022796738041847 -1.4442068687788747E-016 0.14953984256448924 7.7797553366254320E-030 -4.4800132065244875E-016 0.45904020626500491 0.44888712188601987 -1.0319415938154905E-013 8.6386818504508475E-030 1.0879192393604050E-029 2.4084180817599187E-016 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -3.0284833209840673E-030 -1.0365749548733396E-015 -2.8005910114608585E-029 0.13007658391645993 -0.22022796738043829 -1.3776585544499688E-016 0.14953984256448336 7.4271620057299764E-030 -4.2735764878586052E-016 0.45904020626500536 -0.44888712188601754 9.5909708886168520E-014 8.2366865939716298E-030 1.0385743193524026E-029 2.2974394075787760E-016 + 5.3056824529680209E-016 0.18223854982126789 4.9236733163543227E-015 -7.4036041072192792E-016 -3.0045909029674252E-017 2.4220390038509496E-002 -8.5113996637112640E-016 -1.3051978834301330E-015 7.5133050247464597E-002 -2.6127315571761811E-015 -1.0168625660577876E-013 -0.45708432412351024 -1.4484513096602696E-015 -1.8251547638209989E-015 -4.0390906993363389E-002 + + 6 0.5000000000 0.5000000000 0.000000000 : k-point index, k-point (lattice coordinates) + 1 12 25 : spinor index, minimum and maximum band indices + 1.9904393575877005E-044 -1.5213912285706144E-030 0.0000000000000000 8.3729592206912046E-018 7.3577767781499387E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.3025874687632881E-017 -5.5396052311209310E-018 3.8836854682080942E-030 0.0000000000000000 0.0000000000000000 + -1.2336801708594021E-029 9.4296276028308642E-016 0.0000000000000000 0.22619354084849880 0.19876862389466571 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.62203863526044945 -0.14965114353276954 -2.4005413215827795E-015 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 1.2336801708593996E-029 -9.4296276028308445E-016 0.0000000000000000 -0.22619354084849885 -0.19876862389466565 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.62203863526044945 0.14965114353276948 2.4005413215827748E-015 0.0000000000000000 0.0000000000000000 + -1.9904393575877005E-044 1.5213912285706144E-030 0.0000000000000000 -8.3729592206912046E-018 -7.3577767781499387E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.3025874687632881E-017 5.5396052311209310E-018 -3.8836854682080942E-030 0.0000000000000000 0.0000000000000000 + + 3.3823515129924870E-015 -0.25852985192404110 0.0000000000000000 -8.2896497133453311E-016 -6.9643953468960711E-016 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.2240652965211908E-015 -2.3491838355034916E-014 0.65815069114715030 0.0000000000000000 0.0000000000000000 + -1.4707475819705201E-031 1.1241651056193009E-017 0.0000000000000000 0.19876862389466440 -0.22619354084849866 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.14965114353277023 -0.62203863526045011 -2.2661669332034500E-014 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -4.0115646914573124E-031 3.0662372662402646E-017 0.0000000000000000 0.19876862389466440 -0.22619354084849866 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.14965114353277012 -0.62203863526045011 -2.2717014727130095E-014 0.0000000000000000 0.0000000000000000 + -3.3823515129924870E-015 0.25852985192404110 0.0000000000000000 8.2896497133453311E-016 6.9643953468960711E-016 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.2240652965211908E-015 2.3491838355034916E-014 -0.65815069114715030 0.0000000000000000 0.0000000000000000 + + 7 0.2500000000 0.2500000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 6.5185430169567571E-002 -3.5038568544752853E-002 -6.5914736754188663E-003 -0.15525577702516663 6.8417886978873995E-003 8.2533393249869927E-002 7.8168717743380516E-004 -1.6579945584513589E-002 0.0000000000000000 0.26850385997716292 0.30136108599967554 -0.21680511699339700 2.5889253990976670E-003 1.5209320034720263E-002 1.3345850802680949E-002 4.6941946680567836E-002 -2.6538822391732445E-002 + 0.13037086033913570 3.5038568544752832E-002 6.5914736754215351E-003 0.15525577702517801 -6.8417886979202924E-003 0.16506678649971773 -7.8168717743100878E-004 1.6579945584513235E-002 0.0000000000000000 0.53700771995465735 -0.30136108599945866 0.21680511699328650 -2.5889253990982360E-003 -1.5209320034722170E-002 2.6691701605374533E-002 -4.6941946680564117E-002 2.6538822391730377E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 4.5796699765787707E-016 -1.1416767302579048E-002 6.0688580943984272E-002 -1.1850325639411172E-002 -0.26891089397617984 -3.1891156382357622E-014 2.8717308139104315E-002 1.3539219069360368E-003 0.0000000000000000 2.8532731732866523E-014 -0.37551747797341473 -0.52197271237544640 -2.6343315048716787E-002 4.4841503282434751E-003 9.7144514654701197E-017 4.5966588755524715E-002 8.1305836656931224E-002 + -6.5185430169567571E-002 3.5038568544752853E-002 6.5914736754188663E-003 0.15525577702516663 -6.8417886978873995E-003 -8.2533393249869927E-002 -7.8168717743380516E-004 1.6579945584513589E-002 0.0000000000000000 -0.26850385997716292 -0.30136108599967554 0.21680511699339700 -2.5889253990976670E-003 -1.5209320034720263E-002 -1.3345850802680949E-002 -4.6941946680567836E-002 2.6538822391732445E-002 + + 6.5185430169567432E-002 -3.5038568544752728E-002 -6.5914736754187509E-003 -0.15525577702516671 6.8417886978873821E-003 8.2533393249869955E-002 7.8168717743375485E-004 -1.6579945584513561E-002 0.0000000000000000 0.26850385997716264 0.30136108599967532 -0.21680511699339683 2.5889253990975781E-003 1.5209320034720286E-002 1.3345850802680918E-002 4.6941946680567830E-002 -2.6538822391732407E-002 + 4.5796699765787707E-016 -1.1416767302579090E-002 6.0688580943984292E-002 -1.1850325639411172E-002 -0.26891089397617984 -3.1891156382357622E-014 2.8717308139104281E-002 1.3539219069360420E-003 0.0000000000000000 2.8088642523016460E-014 -0.37551747797341473 -0.52197271237544651 -2.6343315048716776E-002 4.4841503282434759E-003 9.5409791178724390E-017 4.5966588755524763E-002 8.1305836656931169E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.13037086033913564 3.5038568544752853E-002 6.5914736754213929E-003 0.15525577702517812 -6.8417886979203479E-003 0.16506678649971770 -7.8168717743102439E-004 1.6579945584513207E-002 0.0000000000000000 0.53700771995465746 -0.30136108599945843 0.21680511699328692 -2.5889253990982568E-003 -1.5209320034722151E-002 2.6691701605374596E-002 -4.6941946680564152E-002 2.6538822391730353E-002 + -6.5185430169567432E-002 3.5038568544752728E-002 6.5914736754187509E-003 0.15525577702516671 -6.8417886978873821E-003 -8.2533393249869955E-002 -7.8168717743375485E-004 1.6579945584513561E-002 0.0000000000000000 -0.26850385997716264 -0.30136108599967532 0.21680511699339683 -2.5889253990975781E-003 -1.5209320034720286E-002 -1.3345850802680918E-002 -4.6941946680567830E-002 2.6538822391732407E-002 + + 8 0.5000000000 0.2500000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + -6.3902110296014757E-017 -9.3076033745933400E-018 1.4574573712154764E-018 6.3625020862179494E-017 6.9786660235996577E-018 3.9635343096053287E-017 -1.0602157366543321E-017 -2.0603807915533907E-020 4.4108003956556141E-019 3.4956394117262753E-018 -1.8376999757161989E-019 -3.0927763597852459E-018 0.0000000000000000 -3.1137320462453242E-019 -2.0826701349418139E-020 + 1.8469445908623847E-017 0.18939373930528577 5.3672720102345376E-015 3.6744061299585066E-014 0.19906928784828620 1.6855865508930965E-016 -4.5690151792572493E-035 -5.1234444209252668E-002 6.4757479001692958E-002 4.3669839910413437E-016 -0.45697153295168591 -0.45406815591303057 0.0000000000000000 1.7732931159954541E-017 -5.1788702007069407E-002 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8469445908623835E-017 -0.18939373930528572 -5.3680060741837366E-015 -3.6728848115247388E-014 -0.19906928784828609 -1.6855865508930965E-016 5.3787778486691807E-036 5.1234444209252668E-002 -6.4757479001692930E-002 -4.3669839910413427E-016 0.45697153295168591 0.45406815591303057 0.0000000000000000 -1.7732931159954553E-017 5.1788702007069379E-002 + 6.3902110296014757E-017 9.3076033745933400E-018 -1.4574573712154764E-018 -6.3625020862179494E-017 -6.9786660235996577E-018 -3.9635343096053287E-017 1.0602157366543321E-017 2.0603807915533907E-020 -4.4108003956556141E-019 -3.4956394117262753E-018 1.8376999757161989E-019 3.0927763597852459E-018 0.0000000000000000 3.1137320462453242E-019 2.0826701349418139E-020 + + -5.1382803247400577E-020 0.18939373930528286 -9.8521484661681720E-018 -1.4975546199713079E-014 -0.19906928784828906 -4.6893752270371995E-019 -3.4045953094161118E-035 -5.1234444209262001E-002 -6.4757479001681537E-002 -1.2149139736317286E-018 -0.45697153295107440 0.45406815591364624 0.0000000000000000 -4.9333787126022779E-020 -5.1788702007072474E-002 + -2.7423270555167738E-002 -1.2886061741333177E-016 0.12444747797607369 1.0236327120419281E-014 -1.3662752402271416E-016 -0.25027440594582290 -1.9614254233517326E-020 3.4854439737542258E-017 -4.4448481912953314E-017 -0.64840593534262703 3.1087458843089252E-016 3.1166500806526016E-016 0.0000000000000000 -2.6329699945602331E-002 3.5231497502317978E-017 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.7423270555167752E-002 -1.2973986782186648E-016 0.12444747797607361 1.0223036072694910E-014 -1.3569121362929055E-016 -0.25027440594582290 1.9614254233517085E-020 3.5101685432529068E-017 -4.4137131296789429E-017 -0.64840593534262703 3.1307982840172554E-016 3.0948187181129249E-016 0.0000000000000000 -2.6329699945602310E-002 3.5481417918511137E-017 + 5.1382803247400577E-020 -0.18939373930528286 9.8521484661681720E-018 1.4975546199713079E-014 0.19906928784828906 4.6893752270371995E-019 3.4045953094161118E-035 5.1234444209262001E-002 6.4757479001681537E-002 1.2149139736317286E-018 0.45697153295107440 -0.45406815591364624 0.0000000000000000 4.9333787126022779E-020 5.1788702007072474E-002 + + 9 0.5000000000 0.5000000000 0.2500000000 : k-point index, k-point (lattice coordinates) + 1 12 26 : spinor index, minimum and maximum band indices + 0.0000000000000000 -1.8230783598022972E-014 0.19293299718525062 2.5466225671343455E-016 1.0409089582396298E-015 1.5326428947128836E-028 1.1573175490054142E-016 -1.3550276889043726E-016 0.0000000000000000 -1.8661991535287374E-014 -3.5152784546027826E-014 -0.46127742169477443 0.0000000000000000 1.9322950357351540E-015 0.0000000000000000 + 0.0000000000000000 7.1307488708024601E-029 -7.5579680122416447E-016 -0.27507746919793985 -9.1363091035742541E-002 2.7706028680412377E-014 1.4396808402775799E-002 4.5999674987817193E-002 0.0000000000000000 -0.58187627301991085 0.27401082087626072 1.8070107492244622E-015 0.0000000000000000 -7.5695833700634030E-030 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -1.1638664467388150E-028 1.2328740225980597E-015 -9.1363091035743693E-002 0.27507746919793874 6.6430297191598048E-014 4.5999674987818318E-002 -1.4396808402775334E-002 0.0000000000000000 -0.27401082087626039 -0.58187627301991118 5.6651283044966971E-014 0.0000000000000000 1.2347687478599862E-029 0.0000000000000000 + 0.0000000000000000 1.8230783598022972E-014 -0.19293299718525062 -2.5466225671343455E-016 -1.0409089582396298E-015 -1.5326428947128836E-028 -1.1573175490054142E-016 1.3550276889043726E-016 0.0000000000000000 1.8661991535287374E-014 3.5152784546027826E-014 0.46127742169477443 0.0000000000000000 -1.9322950357351540E-015 0.0000000000000000 + + 0.0000000000000000 1.8209780391112807E-014 -0.19293299718525059 -2.6360054071206119E-016 -1.0849558116118420E-015 -1.6039482283692331E-028 -1.2080760720516328E-016 1.4098863375687541E-016 0.0000000000000000 1.8621223863448538E-014 3.5178394099917911E-014 0.46127742169477443 0.0000000000000000 -1.9322950357351540E-015 0.0000000000000000 + 0.0000000000000000 1.1931507925383082E-028 -1.2629814828551432E-015 9.1363091035743665E-002 -0.27507746919793874 -6.6430297191598061E-014 -4.5999674987818290E-002 1.4396808402775303E-002 0.0000000000000000 0.27401082087626039 0.58187627301991096 -5.6564282479981723E-014 0.0000000000000000 -1.2649224783478277E-029 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 -7.6399142749002089E-029 8.0827335401526789E-016 0.27507746919793996 9.1363091035742680E-002 -2.7811681194123867E-014 -1.4396808402775827E-002 -4.5999674987817159E-002 0.0000000000000000 0.58187627301991085 -0.27401082087626094 -1.9324752852243200E-015 0.0000000000000000 8.0951553765635636E-030 0.0000000000000000 + 0.0000000000000000 -1.8209780391112807E-014 0.19293299718525059 2.6360054071206119E-016 1.0849558116118420E-015 1.6039482283692331E-028 1.2080760720516328E-016 -1.4098863375687541E-016 0.0000000000000000 -1.8621223863448538E-014 -3.5178394099917911E-014 -0.46127742169477443 0.0000000000000000 1.9322950357351540E-015 0.0000000000000000 + + 10 0.5000000000 0.5000000000 0.5000000000 : k-point index, k-point (lattice coordinates) + 1 12 28 : spinor index, minimum and maximum band indices + 1.8148523246257962E-036 -1.8037678867527362E-031 0.0000000000000000 0.10927326990241099 -8.6606668049354504E-002 -0.25411162833313000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.36421554683710755 0.10704988537924737 -0.52141469054033052 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 7.2594092985031848E-036 -6.9437201456989725E-015 0.0000000000000000 -0.22220175151177129 0.12479335934108761 -0.13808360224645710 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.49331257156752850 0.30519835063327877 -0.28192657826638168 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 7.2594092985031848E-036 -6.9472764684368455E-015 0.0000000000000000 -0.22220175151177129 0.12479335934108766 -0.13808360224645716 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.49331257156752861 0.30519835063327866 -0.28192657826638179 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -1.8148523246257962E-036 1.8037678867527362E-031 0.0000000000000000 -0.10927326990241099 8.6606668049354504E-002 0.25411162833313000 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.36421554683710755 -0.10704988537924737 0.52141469054033052 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + + -2.2364641157415879E-018 -3.9333031062017203E-018 0.0000000000000000 -1.8675142556531655E-018 7.9250467726595417E-020 6.0409650092118317E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 -2.3004004700794433E-018 -7.1582385332678389E-018 -3.7238990687529476E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -2.9037637194012739E-035 8.5695585101572758E-031 0.0000000000000000 0.15066458186921941 0.24686025324795799 -1.9346349950785817E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.19993915125460091 0.55801452565309440 0.25422440281092951 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + -8.7112911582038217E-035 -8.5655986057627803E-031 0.0000000000000000 -0.15066458186921936 -0.24686025324795799 1.9346349950785831E-002 0.0000000000000000 0.0000000000000000 0.0000000000000000 -0.19993915125460079 -0.55801452565309440 -0.25422440281092951 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 2.2364641157415879E-018 3.9333031062017203E-018 0.0000000000000000 1.8675142556531655E-018 -7.9250467726595417E-020 -6.0409650092118317E-019 0.0000000000000000 0.0000000000000000 0.0000000000000000 2.3004004700794433E-018 7.1582385332678389E-018 3.7238990687529476E-018 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 + diff --git a/test/python/elk/occ_test/elk.in b/test/python/elk/occ_test/elk.in new file mode 100644 index 00000000..cc19f39a --- /dev/null +++ b/test/python/elk/occ_test/elk.in @@ -0,0 +1,40 @@ +tasks + 0 + 805 + +ngridk + 4 4 4 + +! Path for species files +sppath + '/home/elk-6.2.8/species/' + +! Maximum length for G+k vectors +rgkmax + 7.0 + +avec + 7.260500000 0.000000000 0.000000000 + 0.000000000 7.260500000 0.000000000 + 0.000000000 0.000000000 7.260500000 + +atoms + 3 : nspecies +'Sr.in' : spfname + 1 : natoms; atposl, bfcmt below + 0.50000000 0.50000000 0.50000000 0.00000000 0.00000000 0.00000000 +'V.in' : spfname + 1 : natoms; atposl, bfcmt below + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 +'O.in' : spfname + 3 : natoms; atposl, bfcmt below + 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.50000000 0.00000000 0.00000000 0.00000000 + +!Wannier projectors +wanproj !projector flag + 1 !number of projectors - next 3 lines are repeated for each projector + 2 2 3 !species, l, reduced max lm (rlmmax) value + 7 8 9 !the lm quanties which will be projected (vector length eq. rlmmax) +-0.294 0.27562 ![-8.0, 7.5] eV t2g correlated energy window diff --git a/test/python/elk/occ_test/elk_occ_convert.ref.h5 b/test/python/elk/occ_test/elk_occ_convert.ref.h5 new file mode 100644 index 0000000000000000000000000000000000000000..6b89e4582fde4af4863485ecf622c752b817833e GIT binary patch literal 550627 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 literal 0 HcmV?d00001 diff --git a/test/python/srvo3_spectral.py b/test/python/srvo3_spectral.py index 55a47856..30d975c7 100644 --- a/test/python/srvo3_spectral.py +++ b/test/python/srvo3_spectral.py @@ -13,9 +13,13 @@ SK.chemical_potential = chemical_potential SK.dc_imp = dc_imp SK.set_Sigma([Sigma]) -dos_wannier = SK.dos_wannier_basis(broadening=0.01, with_Sigma=True, with_dc=True, save_to_file=False) -dos_parproj = SK.dos_parproj_basis(broadening=0.01, with_Sigma=True, with_dc=True, save_to_file=False) -spaghetti = SK.spaghettis(broadening=0.01, plot_shift=0.0, plot_range=(-1,1), ishell=None, save_to_file=False) +#dos_wannier = SK.dos_wannier_basis(broadening=0.01, with_Sigma=True, with_dc=True, save_to_file=False) +#dos_parproj = SK.dos_parproj_basis(broadening=0.01, with_Sigma=True, with_dc=True, save_to_file=False) +dos_wannier = SK.density_of_states(broadening=0.01, with_Sigma=True, with_dc=True, proj_type='wann', save_to_file=False) +dos_parproj = SK.density_of_states(broadening=0.01, with_Sigma=True, with_dc=True, proj_type='wien2k', save_to_file=False) +#spaghetti = SK.spaghettis(broadening=0.01, plot_shift=0.0, plot_range=(-1,1), ishell=None, save_to_file=False) +[spaghetti, pAkw, pAkw_orb] = SK.spaghettis(broadening=0.01, plot_shift=0.0, plot_range=(-1,1), shell_list=None, save_to_file=False) + if mpi.is_master_node():