From 0a07681455084df7a4989434eca6b00da096e500 Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Mon, 12 Oct 2015 14:09:03 +0200 Subject: [PATCH 01/20] Small change to doc and faq added regarding optics --- doc/faqs/faqs.rst | 6 ++++++ doc/guide/transport.rst | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/faqs/faqs.rst b/doc/faqs/faqs.rst index 378bb04f..9a3cd2f8 100644 --- a/doc/faqs/faqs.rst +++ b/doc/faqs/faqs.rst @@ -20,6 +20,12 @@ the parameters as desired. .. literalinclude:: plotting_spaghettis.py +x optic does not write a case.pmat file +--------------------------------------- +Make sure that you set line 6 to "ON" and put a "1" to the following line. +The "1" is undocumented in Wien2k, but needed to have `case.pmat` written. +However, we are working on reading directly the `case.mommat2` file. + Why is my calculation not working? ---------------------------------- diff --git a/doc/guide/transport.rst b/doc/guide/transport.rst index a0479b7a..030939cd 100644 --- a/doc/guide/transport.rst +++ b/doc/guide/transport.rst @@ -65,7 +65,7 @@ The basics steps to calculate the matrix elements of the momentum operator with 6) Run `x optic`. Additionally the input file :file:`case.inop` is required. A detail description on how to setup this file can be found in the Wien2k user guide [#userguide]_ on page 166. -Here the energy window can be chosen according to the window used for :program:`dmftproj`. However, keep in mind that energies have to be specified in absolute values! Furthermore it is important to set line 6 to ON for printing the matrix elements to the :file:`.pmat` file. +Here the energy window can be chosen according to the window used for :program:`dmftproj`. However, keep in mind that energies have to be specified in absolute values! Furthermore it is important to set line 6 to "ON" and a "1" in the next line for printing the matrix elements to the :file:`.pmat` file. Using the transport code From f93fd828c07a71228efc308ae92186656df1262c Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Mon, 2 Nov 2015 11:42:47 +0100 Subject: [PATCH 02/20] Added a wrapper function set_Sigma for more standard API --- dft_dmft_cthyb.py | 2 +- doc/guide/analysis.rst | 8 ++++---- doc/guide/dftdmft_selfcons.rst | 2 +- doc/guide/dftdmft_singleshot.rst | 4 ++-- doc/guide/images_scripts/Ce-gamma.py | 2 +- doc/guide/images_scripts/Ce-gamma_DOS.py | 2 +- doc/guide/images_scripts/dft_dmft_cthyb.py | 2 +- doc/guide/images_scripts/dft_dmft_cthyb_slater.py | 2 +- doc/guide/transport.rst | 2 +- python/sumk_dft.py | 3 ++- test/sigma_from_file.py | 2 +- test/srvo3_Gloc.py | 2 +- test/srvo3_transp.py | 2 +- 13 files changed, 18 insertions(+), 17 deletions(-) diff --git a/dft_dmft_cthyb.py b/dft_dmft_cthyb.py index 59ad7212..be87a74d 100644 --- a/dft_dmft_cthyb.py +++ b/dft_dmft_cthyb.py @@ -77,7 +77,7 @@ for iteration_number in range(1,loops+1): if mpi.is_master_node(): print "Iteration = ", iteration_number SK.symm_deg_gf(S.Sigma_iw,orb=0) # symmetrise Sigma - SK.put_Sigma(Sigma_imp = [ S.Sigma_iw ]) # put Sigma into the SumK class + SK.set_Sigma([ S.Sigma_iw ]) # set Sigma into the SumK class chemical_potential = SK.calc_mu( precision = prec_mu ) # find the chemical potential for given density S.G_iw << SK.extract_G_loc()[0] # calc the local Green function mpi.report("Total charge of Gloc : %.6f"%S.G_iw.total_density()) diff --git a/doc/guide/analysis.rst b/doc/guide/analysis.rst index e2cea32c..b22fea9e 100644 --- a/doc/guide/analysis.rst +++ b/doc/guide/analysis.rst @@ -64,9 +64,9 @@ where: It is important that each data file has to contain three columns: the real frequency mesh, the real part and the imaginary part of the self energy - exactly in this order! The mesh should be the same for all files read in and non-uniform meshes are not supported. -Finally, we put the self energy into the `SK` object:: +Finally, we set the self energy into the `SK` object:: - SK.put_Sigma(Sigma_imp = [SigmaReFreq]) + SK.set_Sigma([SigmaReFreq]) and additionally set the chemical potential and the double counting correction from the DMFT calculation:: @@ -96,7 +96,7 @@ the output is printed into the files * `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, -otherwise, the ouptput is returned by the function for a further usage in :program:`python`. +otherwise, the output is returned by the function for a further usage in :program:`python`. Partial charges --------------- @@ -104,7 +104,7 @@ Partial charges Since we can calculate the partial charges directly from the Matsubara Green's functions, we also do not need a real frequency self energy for this purpose. The calculation is done by:: - SK.put_Sigma(Sigma_imp = SigmaImFreq) + SK.set_Sigma(SigmaImFreq) dm = SK.partial_charges(beta=40.0, with_Sigma=True, with_dc=True) which calculates the partial charges using the self energy, double counting, and chemical potential as set in the diff --git a/doc/guide/dftdmft_selfcons.rst b/doc/guide/dftdmft_selfcons.rst index 952968f4..bbd2ffac 100644 --- a/doc/guide/dftdmft_selfcons.rst +++ b/doc/guide/dftdmft_selfcons.rst @@ -41,7 +41,7 @@ These steps are not necessary, but can help to reduce fluctuations in the total Now we calculate the modified charge density:: # find exact chemical potential - SK.put_Sigma(Sigma_imp = [ S.Sigma_iw ]) + SK.set_Sigma([ S.Sigma_iw ]) chemical_potential = SK.calc_mu( precision = 0.000001 ) dN, d = SK.calc_density_correction(filename = dft_filename+'.qdmft') SK.save(['chemical_potential','dc_imp','dc_energ']) diff --git a/doc/guide/dftdmft_singleshot.rst b/doc/guide/dftdmft_singleshot.rst index f2cef4c6..5b6a99f7 100644 --- a/doc/guide/dftdmft_singleshot.rst +++ b/doc/guide/dftdmft_singleshot.rst @@ -50,7 +50,7 @@ iterations and the self-consistency condition:: n_loops = 5 for iteration_number in range(n_loops) : # start the DMFT loop - SK.put_Sigma(Sigma_imp = [ S.Sigma ]) # Put self energy to the SumK class + SK.set_Sigma([ S.Sigma ]) # Put self energy to the SumK class chemical_potential = SK.calc_mu() # calculate the chemical potential for the given density S.G_iw << SK.extract_G_loc()[0] # extract the local Green function S.G0_iw << inverse(S.Sigma_iw + inverse(S.G_iw)) # finally get G0, the input for the Solver @@ -239,7 +239,7 @@ refinements:: if mpi.is_master_node(): print "Iteration = ", iteration_number SK.symm_deg_gf(S.Sigma_iw,orb=0) # symmetrise Sigma - SK.put_Sigma(Sigma_imp = [ S.Sigma_iw ]) # put Sigma into the SumK class + SK.set_Sigma([ S.Sigma_iw ]) # put Sigma into the SumK class chemical_potential = SK.calc_mu( precision = prec_mu ) # find the chemical potential for given density S.G_iw << SK.extract_G_loc()[0] # calc the local Green function mpi.report("Total charge of Gloc : %.6f"%S.G_iw.total_density()) diff --git a/doc/guide/images_scripts/Ce-gamma.py b/doc/guide/images_scripts/Ce-gamma.py index b0bc20e5..35ae85a7 100644 --- a/doc/guide/images_scripts/Ce-gamma.py +++ b/doc/guide/images_scripts/Ce-gamma.py @@ -65,7 +65,7 @@ for iteration_number in range(1,Loops+1): itn = iteration_number + previous_runs # put Sigma into the SumK class: - SK.put_Sigma(Sigma_imp = [ S.Sigma ]) + SK.set_Sigma([ S.Sigma ]) # Compute the SumK, possibly fixing mu by dichotomy chemical_potential = SK.calc_mu( precision = 0.000001 ) diff --git a/doc/guide/images_scripts/Ce-gamma_DOS.py b/doc/guide/images_scripts/Ce-gamma_DOS.py index b9b92aae..1f5907cd 100644 --- a/doc/guide/images_scripts/Ce-gamma_DOS.py +++ b/doc/guide/images_scripts/Ce-gamma_DOS.py @@ -47,7 +47,7 @@ S.set_atomic_levels( eal = eal ) # Run the solver to get GF and self-energy on the real axis S.GF_realomega(ommin=ommin, ommax = ommax, N_om=N_om,U_int=U_int,J_hund=J_hund) -SK.put_Sigma(Sigma_imp = [S.Sigma]) +SK.set_Sigma([S.Sigma]) # compute DOS SK.dos_parproj_basis(broadening=broadening) diff --git a/doc/guide/images_scripts/dft_dmft_cthyb.py b/doc/guide/images_scripts/dft_dmft_cthyb.py index 2de25a3e..39221eb9 100644 --- a/doc/guide/images_scripts/dft_dmft_cthyb.py +++ b/doc/guide/images_scripts/dft_dmft_cthyb.py @@ -82,7 +82,7 @@ for iteration_number in range(1,loops+1): if mpi.is_master_node(): print "Iteration = ", iteration_number SK.symm_deg_gf(S.Sigma_iw,orb=0) # symmetrise Sigma - SK.put_Sigma(Sigma_imp = [ S.Sigma_iw ]) # put Sigma into the SumK class + SK.set_Sigma([ S.Sigma_iw ]) # set Sigma into the SumK class chemical_potential = SK.calc_mu( precision = prec_mu ) # find the chemical potential for given density S.G_iw << SK.extract_G_loc()[0] # calc the local Green function mpi.report("Total charge of Gloc : %.6f"%S.G_iw.total_density()) diff --git a/doc/guide/images_scripts/dft_dmft_cthyb_slater.py b/doc/guide/images_scripts/dft_dmft_cthyb_slater.py index 5d7d95e2..14129055 100644 --- a/doc/guide/images_scripts/dft_dmft_cthyb_slater.py +++ b/doc/guide/images_scripts/dft_dmft_cthyb_slater.py @@ -83,7 +83,7 @@ for iteration_number in range(1,loops+1): if mpi.is_master_node(): print "Iteration = ", iteration_number SK.symm_deg_gf(S.Sigma_iw,orb=0) # symmetrise Sigma - SK.put_Sigma(Sigma_imp = [ S.Sigma_iw ]) # put Sigma into the SumK class + SK.set_Sigma([ S.Sigma_iw ]) # set Sigma into the SumK class chemical_potential = SK.calc_mu( precision = prec_mu ) # find the chemical potential for given density S.G_iw << SK.extract_G_loc()[0] # calc the local Green function mpi.report("Total charge of Gloc : %.6f"%S.G_iw.total_density()) diff --git a/doc/guide/transport.rst b/doc/guide/transport.rst index 030939cd..0ef2e244 100644 --- a/doc/guide/transport.rst +++ b/doc/guide/transport.rst @@ -86,7 +86,7 @@ reads the required data of the Wien2k output and stores it in the `dft_transp_in Additionally we need to read and set the self energy, the chemical potential and the double counting:: ar = HDFArchive('case.h5', 'a') - SK.put_Sigma(Sigma_imp = [ar['dmft_output']['Sigma_w']]) + SK.set_Sigma([ar['dmft_output']['Sigma_w']]) chemical_potential,dc_imp,dc_energ = SK.load(['chemical_potential','dc_imp','dc_energ']) SK.set_mu(chemical_potential) SK.set_dc(dc_imp,dc_energ) diff --git a/python/sumk_dft.py b/python/sumk_dft.py index a2a2557f..b837cdf7 100644 --- a/python/sumk_dft.py +++ b/python/sumk_dft.py @@ -510,6 +510,8 @@ class SumkDFT: return G_latt + def set_Sigma(self,Sigma_imp): + self.put_Sigma(Sigma_imp) def put_Sigma(self, Sigma_imp): r""" @@ -557,7 +559,6 @@ class SumkDFT: for icrsh in range(self.n_corr_shells): for bname,gf in SK_Sigma_imp[icrsh]: gf << self.rotloc(icrsh,gf,direction='toGlobal') - def extract_G_loc(self, mu=None, with_Sigma=True, with_dc=True): r""" Extracts the local downfolded Green function by the Brillouin-zone integration of the lattice Green's function. diff --git a/test/sigma_from_file.py b/test/sigma_from_file.py index fb5ffd82..57dede2e 100644 --- a/test/sigma_from_file.py +++ b/test/sigma_from_file.py @@ -24,7 +24,7 @@ a_list = [a for a,al in SK.gf_struct_solver[0].iteritems()] g_list = [read_gf_from_txt([['Sigma_' + a + '.dat']], a) for a in a_list] Sigma_txt = BlockGf(name_list = a_list, block_list = g_list, make_copies=False) -SK.put_Sigma(Sigma_imp = [Sigma_txt]) +SK.set_Sigma([Sigma_txt]) SK.hdf_file = 'sigma_from_file.output.h5' SK.save(['Sigma_imp_w']) diff --git a/test/srvo3_Gloc.py b/test/srvo3_Gloc.py index fb5be147..f6d295f6 100644 --- a/test/srvo3_Gloc.py +++ b/test/srvo3_Gloc.py @@ -41,7 +41,7 @@ gf_struct = set_operator_structure(spin_names,orb_names,orb_hybridized) glist = [ GfImFreq(indices=inner,beta=beta) for block,inner in gf_struct.iteritems()] Sigma_iw = BlockGf(name_list = gf_struct.keys(), block_list = glist, make_copies = False) -SK.put_Sigma([Sigma_iw]) +SK.set_Sigma([Sigma_iw]) Gloc=SK.extract_G_loc() ar = HDFArchive('srvo3_Gloc.output.h5','w') diff --git a/test/srvo3_transp.py b/test/srvo3_transp.py index def2d164..8ea79e8f 100644 --- a/test/srvo3_transp.py +++ b/test/srvo3_transp.py @@ -34,7 +34,7 @@ SK = SumkDFTTools(hdf_file='SrVO3.h5', use_dft_blocks=True) ar = HDFArchive('SrVO3_Sigma.h5', 'a') Sigma = ar['dmft_transp_input']['Sigma_w'] -SK.put_Sigma(Sigma_imp = [Sigma]) +SK.set_Sigma([Sigma]) SK.chemical_potential = ar['dmft_transp_input']['chemical_potential'] SK.dc_imp = ar['dmft_transp_input']['dc_imp'] del ar From 3ada2b6e47f00d6d06ec3d74f4e500a267a6da9c Mon Sep 17 00:00:00 2001 From: Olivier Parcollet Date: Fri, 23 Oct 2015 19:02:55 +0200 Subject: [PATCH 03/20] Version to 1.3 --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eef8f3de..8f66c1a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ # Version number of the application -set (DFT_TOOLS_VERSION "1.2") -set (DFT_TOOLS_RELEASE "1.2.0") +set (DFT_TOOLS_VERSION "1.3") # Append triqs installed files to the cmake load path list(APPEND CMAKE_MODULE_PATH ${TRIQS_PATH}/share/triqs/cmake) From 117fff4289f0ce32e24521f35bd52accf3aac8f1 Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Wed, 28 Oct 2015 14:25:47 +0100 Subject: [PATCH 04/20] First commit of v1.4 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f66c1a2..b188120e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ # Version number of the application -set (DFT_TOOLS_VERSION "1.3") +set (DFT_TOOLS_VERSION "1.4") # Append triqs installed files to the cmake load path list(APPEND CMAKE_MODULE_PATH ${TRIQS_PATH}/share/triqs/cmake) From 8cd2a73ae2e401a1b79ecd497ab018f6e58a47f1 Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Mon, 9 Nov 2015 10:01:37 +0100 Subject: [PATCH 05/20] [transp] Update doc. --- doc/guide/transport.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/guide/transport.rst b/doc/guide/transport.rst index 0ef2e244..4f98f930 100644 --- a/doc/guide/transport.rst +++ b/doc/guide/transport.rst @@ -1,6 +1,6 @@ .. _Transport: -Transport calculations +Transport calculations test ====================== Formalism @@ -65,7 +65,10 @@ The basics steps to calculate the matrix elements of the momentum operator with 6) Run `x optic`. Additionally the input file :file:`case.inop` is required. A detail description on how to setup this file can be found in the Wien2k user guide [#userguide]_ on page 166. -Here the energy window can be chosen according to the window used for :program:`dmftproj`. However, keep in mind that energies have to be specified in absolute values! Furthermore it is important to set line 6 to "ON" and a "1" in the next line for printing the matrix elements to the :file:`.pmat` file. +The optics energy window should be chosen according to the window used for :program:`dmftproj`. Note that the current version of the transport code uses only the smaller +of those two windows. However, keep in mind that the optics energy window has to be specified in absolute values and NOT relative to the Fermi energy! +You can read off the Fermi energy from the :file:`case.scf2` file. Please do not set the optional parameter NBvalMAX in :file:`case.inop`. +Furthermore it is necessary to set line 6 to "ON" and put a "1" in the following line to enable the printing of the matrix elements to :file:`case.pmat`. Using the transport code From cff294e1b2c85fc3e597cd14087aaa3c5b8dc041 Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Mon, 30 Nov 2015 17:19:04 +0100 Subject: [PATCH 06/20] Added shell info to filename for spaghetti. --- python/sumk_dft_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/sumk_dft_tools.py b/python/sumk_dft_tools.py index 1f63ac7b..bee0054b 100644 --- a/python/sumk_dft_tools.py +++ b/python/sumk_dft_tools.py @@ -394,7 +394,7 @@ class SumkDFTTools(SumkDFT): else: # ishell is not None for sp in spn: for ish in range(self.shells[ishell]['dim']): - f = open(save_to_file+sp+'_proj'+str(ish)+'.dat','w') # Open file for storage: + f = open(save_to_file+str(ishell)+'_'+sp+'_proj'+str(ish)+'.dat','w') # Open file for storage: for ik in range(self.n_k): for iom in range(n_om): if (mesh[iom] > om_minplot) and (mesh[iom] < om_maxplot): From b3e62640da92820f478ea1575a3ec2d65aea74cd Mon Sep 17 00:00:00 2001 From: pdelange Date: Mon, 30 Nov 2015 16:22:53 +0100 Subject: [PATCH 07/20] [PATCH] fixed a missing mpi.reduce_all in spaghetti function from sumk_dft_tools --- python/sumk_dft_tools.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/python/sumk_dft_tools.py b/python/sumk_dft_tools.py index bee0054b..0e880559 100644 --- a/python/sumk_dft_tools.py +++ b/python/sumk_dft_tools.py @@ -377,6 +377,11 @@ class SumkDFTTools(SumkDFT): for sp in spn: Akw[sp][ish,ik,iom] = G_loc[sp].data[iom,ish,ish].imag/(-1.0*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: From cbcb4c929f1e24feee55101881f33bdb142aa9fb Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Wed, 2 Dec 2015 17:00:08 +0100 Subject: [PATCH 08/20] Switch to a new CMake macro triqs_prepare_local_pytriqs() --- python/CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 9289c44a..33c5f133 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -2,8 +2,4 @@ set(python_destination applications/dft) # make a local pytriqs copy -triqs_prepare_local_pytriqs_merged_with_my_python(${python_destination}) - -# to be able to run from toplevel -execute_process(COMMAND ln -fs ${CMAKE_BINARY_DIR}/fortran/vertex/vertex.so ${CMAKE_BINARY_DIR}/pytriqs/${python_destination}) - +triqs_prepare_local_pytriqs(${python_destination}) From 90dafa478a525a507c6580f4eb7a43b51938378e Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Wed, 9 Dec 2015 14:55:03 +0100 Subject: [PATCH 09/20] Adapt to complex g(tau) * Fix sumk to work with pos and neg imfreqs mesh * Checked that GF.data is only used and modified for GfReFreq quantities --- python/sumk_dft.py | 20 +++++++++++--------- python/sumk_dft_tools.py | 4 ++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/python/sumk_dft.py b/python/sumk_dft.py index b837cdf7..1fffe50d 100644 --- a/python/sumk_dft.py +++ b/python/sumk_dft.py @@ -448,7 +448,6 @@ class SumkDFT: 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) ) - n_iw = 1025 # Default number of Matsubara frequencies # Are we including Sigma? if with_Sigma: @@ -457,10 +456,16 @@ class SumkDFT: if with_dc: sigma_minus_dc = self.add_dc(iw_or_w) if iw_or_w == "iw": beta = Sigma_imp[0].mesh.beta # override beta if Sigma_iw is present - n_iw = len(Sigma_imp[0].mesh) + mesh = Sigma_imp[0].mesh + elif iw_or_w == "w": + mesh = Sigma_imp[0].mesh else: - if (iw_or_w == "w") and (mesh is None): - raise ValueError, "lattice_gf: Give the mesh=(om_min,om_max,n_points) for the lattice GfReFreq." + if iw_or_w == "iw": + if beta is None: raise ValueError, "lattice_gf: Give the beta for the lattice GfReFreq." + mesh = MeshImFreq(beta=beta, S='Fermion', n_max=1025) # Default number of Matsubara frequencies + elif iw_or_w == "w": + if mesh is None: raise ValueError, "lattice_gf: Give the mesh=(om_min,om_max,n_points) for the lattice GfReFreq." + mesh = MeshReFreq(mesh[0],mesh[1],mesh[2]) # Check if G_latt is present set_up_G_latt = False # Assume not @@ -479,12 +484,9 @@ class SumkDFT: gf_struct = [ (spn[isp], block_structure[isp]) for isp in range(self.n_spin_blocks[self.SO]) ] block_ind_list = [block for block,inner in gf_struct] if iw_or_w == "iw": - glist = lambda : [ GfImFreq(indices=inner,beta=beta,n_points=n_iw) for block,inner in gf_struct] + glist = lambda : [ GfImFreq(indices=inner,mesh=mesh) for block,inner in gf_struct ] elif iw_or_w == "w": - if with_Sigma: - glist = lambda : [ GfReFreq(indices=inner,mesh=Sigma_imp[0].mesh) for block,inner in gf_struct] - else: - glist = lambda : [ GfReFreq(indices=inner,window=(mesh[0],mesh[1]),n_points=mesh[2]) for block,inner in gf_struct] + glist = lambda : [ GfReFreq(indices=inner,mesh=mesh) for block,inner in gf_struct ] G_latt = BlockGf(name_list = block_ind_list, block_list = glist(), make_copies = False) G_latt.zero() diff --git a/python/sumk_dft_tools.py b/python/sumk_dft_tools.py index 0e880559..c394c185 100644 --- a/python/sumk_dft_tools.py +++ b/python/sumk_dft_tools.py @@ -47,6 +47,7 @@ class SumkDFTTools(SumkDFT): misc_data=misc_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. @@ -163,6 +164,7 @@ class SumkDFTTools(SumkDFT): 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. @@ -290,6 +292,7 @@ class SumkDFTTools(SumkDFT): return DOS, DOSproj, DOSproj_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_'): """ Calculates the correlated band structure using a real-frequency self energy. @@ -570,6 +573,7 @@ class SumkDFTTools(SumkDFT): return vol_c, vol_p + # Uses .data of only GfReFreq objects. def transport_distribution(self, beta, directions=['xx'], energy_window=None, Om_mesh=[0.0], with_Sigma=False, n_om=None, broadening=0.0): r""" Calculates the transport distribution From 86526601153e734a80356f6008a7fb77fc7fb1fb Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Wed, 9 Dec 2015 15:35:51 +0100 Subject: [PATCH 10/20] [tests] Use new testing API --- test/CMakeLists.txt | 19 +++++++++----- test/hk_convert.py | 7 ++++- ...hk_convert.output.h5 => hk_convert.ref.h5} | Bin test/sigma_from_file.py | 24 +++++++++++++++++- ..._file.output.h5 => sigma_from_file.ref.h5} | Bin test/srvo3_Gloc.py | 13 +++++++--- ...srvo3_Gloc.output.h5 => srvo3_Gloc.ref.h5} | Bin test/srvo3_transp.py | 6 ++++- ...3_transp.output.h5 => srvo3_transp.ref.h5} | Bin test/sumkdft_basic.py | 14 ++++++---- ...t_basic.output.h5 => sumkdft_basic.ref.h5} | Bin test/wien2k_convert.py | 10 +++++--- ...onvert.output.h5 => wien2k_convert.ref.h5} | Bin 13 files changed, 70 insertions(+), 23 deletions(-) rename test/{hk_convert.output.h5 => hk_convert.ref.h5} (100%) rename test/{sigma_from_file.output.h5 => sigma_from_file.ref.h5} (100%) rename test/{srvo3_Gloc.output.h5 => srvo3_Gloc.ref.h5} (100%) rename test/{srvo3_transp.output.h5 => srvo3_transp.ref.h5} (100%) rename test/{sumkdft_basic.output.h5 => sumkdft_basic.ref.h5} (100%) rename test/{wien2k_convert.output.h5 => wien2k_convert.ref.h5} (100%) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 0c2c2d11..b488f1af 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,10 +1,15 @@ # load triqs helper to set up tests find_package(TriqsTest) -FILE(COPY SrVO3.h5 SrVO3_Sigma.h5 SrVO3.pmat SrVO3.struct SrVO3.outputs SrVO3.oubwin SrVO3.ctqmcout SrVO3.symqmc SrVO3.sympar SrVO3.parproj hk_convert_hamiltonian.hk DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) -triqs_add_test_hdf(wien2k_convert " -p 1.e-6" ) -triqs_add_test_hdf(hk_convert " -p 1.e-6" ) -triqs_add_test_hdf(sumkdft_basic " -d 1.e-6" ) -triqs_add_test_hdf(srvo3_Gloc " -d 1.e-6" ) -triqs_add_test_hdf(srvo3_transp " -d 1.e-6" ) -triqs_add_test_hdf(sigma_from_file " -d 1.e-6" ) +# Copy h5 files to binary dir +FILE(GLOB all_h5_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h5) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${all_h5_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +# Copy other files +FILE(COPY SrVO3.pmat SrVO3.struct SrVO3.outputs SrVO3.oubwin SrVO3.ctqmcout SrVO3.symqmc SrVO3.sympar SrVO3.parproj hk_convert_hamiltonian.hk DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) + +triqs_add_python_test(wien2k_convert) +triqs_add_python_test(hk_convert) +triqs_add_python_test(sumkdft_basic) +triqs_add_python_test(srvo3_Gloc) +triqs_add_python_test(srvo3_transp) +triqs_add_python_test(sigma_from_file) diff --git a/test/hk_convert.py b/test/hk_convert.py index af16a6ae..439d457b 100644 --- a/test/hk_convert.py +++ b/test/hk_convert.py @@ -23,7 +23,12 @@ from pytriqs.applications.dft.converters import * from pytriqs.archive import * +from pytriqs.utility.h5diff import h5diff +import pytriqs.utility.mpi as mpi -Converter = HkConverter(filename='hk_convert_hamiltonian.hk',hdf_filename='hk_convert.output.h5') +Converter = HkConverter(filename='hk_convert_hamiltonian.hk',hdf_filename='hk_convert.out.h5') Converter.convert_dft_input() + +if mpi.is_master_node(): + h5diff("hk_convert.out.h5","hk_convert.ref.h5") diff --git a/test/hk_convert.output.h5 b/test/hk_convert.ref.h5 similarity index 100% rename from test/hk_convert.output.h5 rename to test/hk_convert.ref.h5 diff --git a/test/sigma_from_file.py b/test/sigma_from_file.py index 57dede2e..baeb3c34 100644 --- a/test/sigma_from_file.py +++ b/test/sigma_from_file.py @@ -1,7 +1,29 @@ +################################################################################ +# +# 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 . +# +################################################################################ + from pytriqs.archive import * from pytriqs.gf.local import * from pytriqs.gf.local.tools import * from pytriqs.applications.dft.sumk_dft_tools import * +from pytriqs.utility.comparison_tests import * import numpy as np # Read self energy from hdf file @@ -26,7 +48,7 @@ Sigma_txt = BlockGf(name_list = a_list, block_list = g_list, make_copies=False) SK.set_Sigma([Sigma_txt]) -SK.hdf_file = 'sigma_from_file.output.h5' +SK.hdf_file = 'sigma_from_file.out.h5' SK.save(['Sigma_imp_w']) if ((Sigma_txt - Sigma_hdf).real < 1e-6) & ((Sigma_txt - Sigma_hdf).imag < 1e-6): diff --git a/test/sigma_from_file.output.h5 b/test/sigma_from_file.ref.h5 similarity index 100% rename from test/sigma_from_file.output.h5 rename to test/sigma_from_file.ref.h5 diff --git a/test/srvo3_Gloc.py b/test/srvo3_Gloc.py index f6d295f6..d433b800 100644 --- a/test/srvo3_Gloc.py +++ b/test/srvo3_Gloc.py @@ -24,6 +24,8 @@ from pytriqs.gf.local import * from pytriqs.applications.dft.sumk_dft import * from pytriqs.applications.dft.converters.wien2k_converter import * from pytriqs.operators.util import set_operator_structure +from pytriqs.utility.comparison_tests import * +from pytriqs.utility.h5diff import h5diff # Basic input parameters beta = 40 @@ -42,8 +44,11 @@ glist = [ GfImFreq(indices=inner,beta=beta) for block,inner in gf_struct.iterite Sigma_iw = BlockGf(name_list = gf_struct.keys(), block_list = glist, make_copies = False) SK.set_Sigma([Sigma_iw]) -Gloc=SK.extract_G_loc() +Gloc = SK.extract_G_loc() -ar = HDFArchive('srvo3_Gloc.output.h5','w') -ar['Gloc'] = Gloc[0] -del ar +if mpi.is_master_node(): + with HDFArchive('srvo3_Gloc.out.h5','w') as ar: + ar['Gloc'] = Gloc[0] + +if mpi.is_master_node(): + h5diff("srvo3_Gloc.out.h5","srvo3_Gloc.ref.h5") diff --git a/test/srvo3_Gloc.output.h5 b/test/srvo3_Gloc.ref.h5 similarity index 100% rename from test/srvo3_Gloc.output.h5 rename to test/srvo3_Gloc.ref.h5 diff --git a/test/srvo3_transp.py b/test/srvo3_transp.py index 8ea79e8f..920459f0 100644 --- a/test/srvo3_transp.py +++ b/test/srvo3_transp.py @@ -23,6 +23,8 @@ from numpy import * from pytriqs.applications.dft.converters.wien2k_converter import * from pytriqs.applications.dft.sumk_dft import * from pytriqs.applications.dft.sumk_dft_tools import * +from pytriqs.utility.comparison_tests import * +from pytriqs.utility.h5diff import h5diff beta = 40 @@ -43,6 +45,8 @@ SK.transport_distribution(directions=['xx'], broadening=0.0, energy_window=[-0.3 #SK.save(['Gamma_w','Om_meshr','omega','directions']) #SK.load(['Gamma_w','Om_meshr','omega','directions']) SK.conductivity_and_seebeck(beta=beta) -SK.hdf_file = 'srvo3_transp.output.h5' +SK.hdf_file = 'srvo3_transp.out.h5' SK.save(['seebeck','optic_cond']) +if mpi.is_master_node(): + h5diff("srvo3_transp.out.h5","srvo3_transp.ref.h5") diff --git a/test/srvo3_transp.output.h5 b/test/srvo3_transp.ref.h5 similarity index 100% rename from test/srvo3_transp.output.h5 rename to test/srvo3_transp.ref.h5 diff --git a/test/sumkdft_basic.py b/test/sumkdft_basic.py index 6d63505d..ba456060 100644 --- a/test/sumkdft_basic.py +++ b/test/sumkdft_basic.py @@ -22,14 +22,18 @@ from pytriqs.archive import * from pytriqs.applications.dft.sumk_dft_tools import SumkDFTTools - +import pytriqs.utility.mpi as mpi +from pytriqs.utility.comparison_tests import * +from pytriqs.utility.h5diff import h5diff SK = SumkDFTTools(hdf_file = 'SrVO3.h5') dm = SK.density_matrix(method = 'using_gf', beta = 40) dm_pc = SK.partial_charges(beta=40,with_Sigma=False,with_dc=False) -ar = HDFArchive('sumkdft_basic.output.h5','w') -ar['dm'] = dm -ar['dm_pc'] = dm_pc -del ar +with HDFArchive('sumkdft_basic.out.h5','w') as ar: + ar['dm'] = dm + ar['dm_pc'] = dm_pc + +if mpi.is_master_node(): + h5diff('sumkdft_basic.out.h5','sumkdft_basic.ref.h5') diff --git a/test/sumkdft_basic.output.h5 b/test/sumkdft_basic.ref.h5 similarity index 100% rename from test/sumkdft_basic.output.h5 rename to test/sumkdft_basic.ref.h5 diff --git a/test/wien2k_convert.py b/test/wien2k_convert.py index 13b01c7a..c643f19a 100644 --- a/test/wien2k_convert.py +++ b/test/wien2k_convert.py @@ -22,13 +22,15 @@ from pytriqs.archive import * from pytriqs.applications.dft.converters import Wien2kConverter - +from pytriqs.utility.comparison_tests import * +from pytriqs.utility.h5diff import h5diff +import pytriqs.utility.mpi as mpi Converter = Wien2kConverter(filename='SrVO3') -Converter.hdf_file = 'wien2k_convert.output.h5' +Converter.hdf_file = 'wien2k_convert.out.h5' Converter.convert_dft_input() Converter.convert_parproj_input() - - +if mpi.is_master_node(): + h5diff('wien2k_convert.out.h5','wien2k_convert.ref.h5') diff --git a/test/wien2k_convert.output.h5 b/test/wien2k_convert.ref.h5 similarity index 100% rename from test/wien2k_convert.output.h5 rename to test/wien2k_convert.ref.h5 From 919e0a3ead80455ec10ca0502e011c8f0e61e261 Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Mon, 18 Jan 2016 11:04:55 +0100 Subject: [PATCH 11/20] [doc] Corrected errors in the Ce example scripts --- doc/guide/dftdmft_singleshot.rst | 2 +- doc/guide/images_scripts/Ce-gamma.py | 35 +++++++++++------------- doc/guide/images_scripts/Ce-gamma_DOS.py | 14 ++++------ 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/doc/guide/dftdmft_singleshot.rst b/doc/guide/dftdmft_singleshot.rst index 5b6a99f7..ca6b8d0e 100644 --- a/doc/guide/dftdmft_singleshot.rst +++ b/doc/guide/dftdmft_singleshot.rst @@ -145,7 +145,7 @@ Most of these parameters are self-explanatory. The first, details on the solver parameters, we refer the user to the :ref:`CTHYB solver ` documentation. -We assume that the conversion to the hdf5 archive is alreadz done. We +We assume that the conversion to the hdf5 archive is already done. We can check now in this archive, if previous runs are present, or if we have to start from scratch:: diff --git a/doc/guide/images_scripts/Ce-gamma.py b/doc/guide/images_scripts/Ce-gamma.py index 35ae85a7..a8d3453c 100644 --- a/doc/guide/images_scripts/Ce-gamma.py +++ b/doc/guide/images_scripts/Ce-gamma.py @@ -2,7 +2,6 @@ from pytriqs.applications.dft.sumk_dft import * from pytriqs.applications.dft.converters.wien2k_converter import * from pytriqs.applications.impurity_solvers.hubbard_I.hubbard_solver import Solver - import os dft_filename = os.getcwd().rpartition('/')[2] @@ -10,14 +9,12 @@ beta = 40 U_int = 6.00 J_hund = 0.70 Loops = 5 # Number of DMFT sc-loops -Mix = 0.7 # Mixing factor in QMC +mixing = 0.7 # Mixing factor DC_type = 0 # 0...FLL, 1...Held, 2... AMF, 3...Lichtenstein chemical_potential_init=0.0 # initial chemical potential -HDFfilename = dft_filename+'.h5' - # Convert DMFT input: -Converter = Wien2kConverter(filename=filename) +Converter = Wien2kConverter(filename=dft_filename) Converter.convert_dft_input() mpi.barrier() @@ -25,7 +22,7 @@ mpi.barrier() previous_runs = 0 previous_present = False if mpi.is_master_node(): - f = HDFArchive(filename+'.h5','a') + f = HDFArchive(dft_filename+'.h5','a') if 'dmft_output' in f: ar = f['dmft_output'] if 'iterations' in ar: @@ -53,11 +50,11 @@ if previous_present: ar = HDFArchive(dft_filename+'.h5','a') S.Sigma << ar['dmft_output']['Sigma'] del ar - chemical_potential,dc_imp,dc_energ = SK.load(['chemical_potential','dc_imp','dc_energ']) + SK.chemical_potential,SK.dc_imp,SK.dc_energ = SK.load(['chemical_potential','dc_imp','dc_energ']) S.Sigma << mpi.bcast(S.Sigma) - SK.set_mu(chemical_potential) - SK.set_dc(dc_imp,dc_energ) - + SK.chemical_potential = mpi.bcast(SK.chemical_potential) + SK.dc_imp = mpi.bcast(SK.dc_imp) + SK.dc_energ = mpi.bcast(SK.dc_energ) # DMFT loop: for iteration_number in range(1,Loops+1): @@ -78,7 +75,7 @@ for iteration_number in range(1,Loops+1): if ((iteration_number==1)and(previous_present==False)): dc_value_init=U_int/2.0 dm=S.G.density() - SK.calc_dc( dm, U_interact = U_int, J_hund = J_hund, orb = 0, use_dc_formula = DC_type, use_dc_value=dc_value_init) + SK.calc_dc( dm, U_interact = U_int, J_hund = J_hund, orb = 0, use_dc_formula = DC_type, use_dc_value=dc_value_init) # calculate non-interacting atomic level positions: eal = SK.eff_atomic_levels()[0] @@ -89,11 +86,11 @@ for iteration_number in range(1,Loops+1): # Now mix Sigma and G with factor Mix, if wanted: if (iteration_number>1 or previous_present): - if (mpi.is_master_node() and (sigma_mix<1.0)): + if (mpi.is_master_node() and (mixing<1.0)): ar = HDFArchive(dft_filename+'.h5','a') - mpi.report("Mixing Sigma and G with factor %s"%sigma_mix) - S.Sigma << sigma_mix * S.Sigma + (1.0-sigma_mix) * ar['dmft_output']['Sigma'] - S.G << sigma_mix * S.G + (1.0-sigma_mix) * ar['dmft_output']['G'] + mpi.report("Mixing Sigma and G with factor %s"%mixing) + S.Sigma << mixing * S.Sigma + (1.0-mixing) * ar['dmft_output']['Sigma'] + S.G << mixing * S.G + (1.0-mixing) * ar['dmft_output']['G'] del ar S.G << mpi.bcast(S.G) S.Sigma << mpi.bcast(S.Sigma) @@ -104,8 +101,8 @@ for iteration_number in range(1,Loops+1): SK.calc_dc( dm, U_interact = U_int, J_hund = J_hund, orb = 0, use_dc_formula = DC_type ) # correlation energy calculations: - correnerg = 0.5 * (S.G * S.Sigma).total_density() - mpi.report("Corr. energy = %s"%correnerg) + SK.correnerg = 0.5 * (S.G * S.Sigma).total_density() + mpi.report("Corr. energy = %s"%SK.correnerg) # store the impurity self-energy, GF as well as correlation energy in h5 if mpi.is_master_node(): @@ -145,7 +142,7 @@ mpi.report("Trace of Density Matrix: %s"%d) # store correlation energy contribution to be read by Wien2ki and then included to DFT+DMFT total energy if (mpi.is_master_node()): - correnerg -= DCenerg[0] + SK.correnerg -= SK.dc_energ[0] f=open(dft_filename+'.qdmft','a') - f.write("%.16f\n"%correnerg) + f.write("%.16f\n"%SK.correnerg) f.close() diff --git a/doc/guide/images_scripts/Ce-gamma_DOS.py b/doc/guide/images_scripts/Ce-gamma_DOS.py index 1f5907cd..bc72d14d 100644 --- a/doc/guide/images_scripts/Ce-gamma_DOS.py +++ b/doc/guide/images_scripts/Ce-gamma_DOS.py @@ -14,24 +14,22 @@ ommax=6.0 N_om=2001 broadening = 0.02 -HDFfilename = dft_filename+'.h5' - # Convert DMFT input: Converter = Wien2kConverter(filename=dft_filename,repacking=True) Converter.convert_dft_input() Converter.convert_parproj_input() - - # Init the SumK class SK = SumkDFTTools(hdf_file=dft_filename+'.h5',use_dft_blocks=False) # load old chemical potential and DC if mpi.is_master_node(): - chemical_potential,dc_imp,dc_energ = SK.load(['chemical_potential','dc_imp','dc_energ']) -SK.set_mu(chemical_potential) -SK.set_dc(dc_imp,dc_energ) - + SK.chemical_potential,SK.dc_imp,SK.dc_energ = SK.load(['chemical_potential','dc_imp','dc_energ']) + +SK.chemical_potential = mpi.bcast(SK.chemical_potential) +SK.dc_imp = mpi.bcast(SK.dc_imp) +SK.dc_energ = mpi.bcast(SK.dc_energ) + if (mpi.is_master_node()): print 'DC after reading SK: ',SK.dc_imp[0] From 1434193a3804010c093009a12626dcf8c12dc6ed Mon Sep 17 00:00:00 2001 From: Olivier Parcollet Date: Thu, 4 Feb 2016 08:28:47 +0100 Subject: [PATCH 12/20] [cmake] Fix broken tests after change in TRIQS install macros - After the change in main lib, need to put explicitely the sitecustomize file --- cmake/sitecustomize.py | 8 ++++++++ python/CMakeLists.txt | 4 ++++ 2 files changed, 12 insertions(+) create mode 100644 cmake/sitecustomize.py diff --git a/cmake/sitecustomize.py b/cmake/sitecustomize.py new file mode 100644 index 00000000..0f31ba93 --- /dev/null +++ b/cmake/sitecustomize.py @@ -0,0 +1,8 @@ +def application_pytriqs_import(name,*args,**kwargs): + if name.startswith('@package_name@'): + name = name[len('@package_name@')+1:] + return builtin_import(name,*args,**kwargs) + +import __builtin__ +__builtin__.__import__, builtin_import = application_pytriqs_import, __builtin__.__import__ + diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 33c5f133..4283e74b 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,5 +1,9 @@ # where will the python end up in triqs? set(python_destination applications/dft) +# site_customize for build +set(package_name "pytriqs.applications") +configure_file(${CMAKE_SOURCE_DIR}/cmake/sitecustomize.py ${CMAKE_CURRENT_BINARY_DIR}/sitecustomize.py @ONLY) + # make a local pytriqs copy triqs_prepare_local_pytriqs(${python_destination}) From f81be0543e961850f76f84b15d3f994549645d51 Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Thu, 4 Feb 2016 09:35:42 +0100 Subject: [PATCH 13/20] doc changes following cmake changes --- doc/reference/converters.rst | 6 +++--- doc/reference/sumk_dft.rst | 2 +- doc/reference/sumk_dft_tools.rst | 2 +- doc/reference/symmetry.rst | 2 +- doc/reference/transbasis.rst | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/reference/converters.rst b/doc/reference/converters.rst index 90830ef9..2d8e5fd8 100644 --- a/doc/reference/converters.rst +++ b/doc/reference/converters.rst @@ -5,19 +5,19 @@ Converters Wien2k Converter ---------------- -.. autoclass:: pytriqs.applications.dft.converters.wien2k_converter.Wien2kConverter +.. autoclass:: converters.wien2k_converter.Wien2kConverter :members: :special-members: :show-inheritance: H(k) Converter -------------- -.. autoclass:: pytriqs.applications.dft.converters.hk_converter.HkConverter +.. autoclass:: converters.hk_converter.HkConverter :members: :special-members: Converter Tools --------------- -.. autoclass:: pytriqs.applications.dft.converters.converter_tools.ConverterTools +.. autoclass:: converters.converter_tools.ConverterTools :members: :special-members: diff --git a/doc/reference/sumk_dft.rst b/doc/reference/sumk_dft.rst index 65c59c81..5ce56900 100644 --- a/doc/reference/sumk_dft.rst +++ b/doc/reference/sumk_dft.rst @@ -2,7 +2,7 @@ SumK DFT ======== -.. autoclass:: pytriqs.applications.dft.sumk_dft.SumkDFT +.. autoclass:: sumk_dft.SumkDFT :members: :special-members: :show-inheritance: diff --git a/doc/reference/sumk_dft_tools.rst b/doc/reference/sumk_dft_tools.rst index f6205b5c..6dd278da 100644 --- a/doc/reference/sumk_dft_tools.rst +++ b/doc/reference/sumk_dft_tools.rst @@ -2,7 +2,7 @@ SumK DFT Tools ============== -.. autoclass:: pytriqs.applications.dft.sumk_dft_tools.SumkDFTTools +.. autoclass:: sumk_dft_tools.SumkDFTTools :members: :special-members: :show-inheritance: diff --git a/doc/reference/symmetry.rst b/doc/reference/symmetry.rst index e1d1b5a1..dd2e3621 100644 --- a/doc/reference/symmetry.rst +++ b/doc/reference/symmetry.rst @@ -1,6 +1,6 @@ Symmetry ======== -.. autoclass:: pytriqs.applications.dft.Symmetry +.. autoclass:: Symmetry :members: :special-members: diff --git a/doc/reference/transbasis.rst b/doc/reference/transbasis.rst index 822be890..19b838b7 100644 --- a/doc/reference/transbasis.rst +++ b/doc/reference/transbasis.rst @@ -1,6 +1,6 @@ TransBasis ========== -.. autoclass:: pytriqs.applications.dft.trans_basis.TransBasis +.. autoclass:: trans_basis.TransBasis :members: :special-members: From 69bbe87234aafb77c9a70d175eb2d367feef3552 Mon Sep 17 00:00:00 2001 From: Olivier Parcollet Date: Fri, 5 Feb 2016 15:24:34 +0100 Subject: [PATCH 14/20] Fix #43 --- python/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 4283e74b..632b5113 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,5 +1,5 @@ # where will the python end up in triqs? -set(python_destination applications/dft) +set(python_destination pytriqs/applications/dft) # site_customize for build set(package_name "pytriqs.applications") From 3e4b74225cbb516d149f5bfc2cd86b0692cb07b0 Mon Sep 17 00:00:00 2001 From: Priyanka Seth Date: Sun, 7 Feb 2016 10:41:53 +0100 Subject: [PATCH 15/20] Able to get dft_tools hash now --- CMakeLists.txt | 13 +++++++++---- python/version.py.in | 30 ++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 python/version.py.in diff --git a/CMakeLists.txt b/CMakeLists.txt index b188120e..3a0805cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,14 +13,19 @@ enable_testing() # Load TRIQS, including all predefined variables from TRIQS installation find_package(TRIQS REQUIRED) -if (NOT ${TRIQS_WITH_PYTHON_SUPPORT}) - MESSAGE(FATAL_ERROR "dft_tools require Python support in TRIQS") -endif() - # Check that versions are compatible if(NOT DFT_TOOLS_VERSION EQUAL TRIQS_VERSION) message(FATAL_ERROR "The application version is not compatible with the TRIQS library (TRIQS library version: ${TRIQS_VERSION} while this application version: ${DFT_TOOLS_VERSION})") endif() +if (NOT ${TRIQS_WITH_PYTHON_SUPPORT}) + MESSAGE(FATAL_ERROR "dft_tools require Python support in TRIQS") +endif() + +# Get hash +triqs_get_git_hash(${CMAKE_SOURCE_DIR} "DFT_TOOLS") +if(${GIT_RESULT} EQUAL 0) + message(STATUS "Hash: ${DFT_TOOLS_GIT_HASH}") +endif(${GIT_RESULT} EQUAL 0) # We want to be installed in the TRIQS tree set(CMAKE_INSTALL_PREFIX ${TRIQS_PATH}) diff --git a/python/version.py.in b/python/version.py.in new file mode 100644 index 00000000..736d90d3 --- /dev/null +++ b/python/version.py.in @@ -0,0 +1,30 @@ +################################################################################ +# +# 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 . +# +################################################################################ + +version = "@DFT_TOOLS_VERSION@" +triqs_hash = "@TRIQS_GIT_HASH@" +cthyb_hash = "@CTHYB_GIT_HASH@" + +def show_version(): + print "\nYou are using the dft_tools version %s\n"%version + +def show_git_hash(): + print "\nYou are using the dft_tools git hash %s based on triqs git hash %s\n"%(cthyb_hash, triqs_hash) From 9e1ebfe5e01221e825991e3430adf820a22c8975 Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Wed, 10 Feb 2016 09:14:42 +0100 Subject: [PATCH 16/20] Add a faq for issue #45 --- doc/faqs/faqs.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/faqs/faqs.rst b/doc/faqs/faqs.rst index 9a3cd2f8..bb27caac 100644 --- a/doc/faqs/faqs.rst +++ b/doc/faqs/faqs.rst @@ -3,6 +3,7 @@ Frequently-Asked Questions wien2k: FERMI ERROR when running `x lapw2 -almd -band` ------------------------------------------------------ + In some versions of Wien2k, there is a problem in running `x lapw2 -almd -band`. A hack solution is as follows: @@ -22,10 +23,18 @@ the parameters as desired. x optic does not write a case.pmat file --------------------------------------- + Make sure that you set line 6 to "ON" and put a "1" to the following line. The "1" is undocumented in Wien2k, but needed to have `case.pmat` written. However, we are working on reading directly the `case.mommat2` file. +No module named pytriqs.*** error when running a script +------------------------------------------------------- + +Make sure that have propaly build, tested and installed TRIQS and DFTTools +using, make, make test and make install. Additionally, you should always +use pytriqs to call your scripts, e.g. pytriqs yourscript.py + Why is my calculation not working? ---------------------------------- From f586c98508585d91a9cd8296d1bcc5906006b772 Mon Sep 17 00:00:00 2001 From: Manuel Zingl Date: Wed, 10 Feb 2016 09:36:33 +0100 Subject: [PATCH 17/20] [doc] Correct typos in guide --- doc/faqs/faqs.rst | 4 ++-- doc/guide/conversion.rst | 8 ++++---- doc/guide/dftdmft_selfcons.rst | 10 +++++----- doc/guide/dftdmft_singleshot.rst | 10 +++++----- doc/guide/full_tutorial.rst | 6 +++--- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/doc/faqs/faqs.rst b/doc/faqs/faqs.rst index bb27caac..718da3a4 100644 --- a/doc/faqs/faqs.rst +++ b/doc/faqs/faqs.rst @@ -10,7 +10,7 @@ A hack solution is as follows: 1) `x lapw1 -band` 2) edit in2 file: replace 'TOT' with 'QTL', 'TETRA' with 'ROOT' 3) `x lapw2 -almd -band` -4) `dmftproj -band` (add the fermi energy to file, it can be found by running `grep :FER *.scf`) +4) `dmftproj -band` (add the Fermi energy to file, it can be found by running `grep :FER *.scf`) How do I plot the output of `spaghettis`? ----------------------------------------- @@ -31,7 +31,7 @@ However, we are working on reading directly the `case.mommat2` file. No module named pytriqs.*** error when running a script ------------------------------------------------------- -Make sure that have propaly build, tested and installed TRIQS and DFTTools +Make sure that have properly build, tested and installed TRIQS and DFTTools using, make, make test and make install. Additionally, you should always use pytriqs to call your scripts, e.g. pytriqs yourscript.py diff --git a/doc/guide/conversion.rst b/doc/guide/conversion.rst index e98261fa..359efafc 100644 --- a/doc/guide/conversion.rst +++ b/doc/guide/conversion.rst @@ -15,7 +15,7 @@ Interface with Wien2k We assume that the user has obtained a self-consistent solution of the Kohn-Sham equations. We further have to require that the user is -familiar with the main inout/output files of Wien2k, and how to run +familiar with the main in/output files of Wien2k, and how to run the DFT code. Conversion for the DMFT self-consistency cycle @@ -31,7 +31,7 @@ We note that any other flag for lapw2, such as -c or -so (for spin-orbit coupling) has to be added also to this line. This creates some files that we need for the Wannier orbital construction. -The orbital construction itself is done by the fortran program +The orbital construction itself is done by the Fortran program :program:`dmftproj`. For an extensive manual to this program see :download:`TutorialDmftproj.pdf `. Here we will only describe only the basic steps. @@ -79,7 +79,7 @@ following 3 to 5 lines: These lines have to be repeated for each inequivalent atom. -The last line gives the energy window, relativ to the Fermi energy, +The last line gives the energy window, relative to the Fermi energy, that is used for the projective Wannier functions. Note that, in accordance with Wien2k, we give energies in Rydberg units! @@ -207,7 +207,7 @@ The lines of this header define 2 3. Thiw would mean, 2 irreps (eg and t2g), of dimension 2 and 3, resp. -After these header lines, the file has to contain the hamiltonian +After these header lines, the file has to contain the Hamiltonian matrix in orbital space. The standard convention is that you give for each :math:`\mathbf{k}`-point first the matrix of the real part, then the diff --git a/doc/guide/dftdmft_selfcons.rst b/doc/guide/dftdmft_selfcons.rst index bbd2ffac..47198c7d 100644 --- a/doc/guide/dftdmft_selfcons.rst +++ b/doc/guide/dftdmft_selfcons.rst @@ -56,10 +56,10 @@ We need also the correlation energy, which we evaluate by the Migdal formula:: correnerg = 0.5 * (S.G_iw * S.Sigma_iw).total_density() Other ways of calculating the correlation energy are possible, for -instance a direct measurment of the expectation value of the -interacting hamiltonian. However, the Migdal formula works always, +instance a direct measurement of the expectation value of the +interacting Hamiltonian. However, the Migdal formula works always, independent of the solver that is used to solve the impurity problem. -From this value, we substract the double counting energy:: +From this value, we subtract the double counting energy:: correnerg -= SK.dc_energ[0] @@ -104,13 +104,13 @@ number of nodes to be used: In that case, you will run on 64 computing cores. As standard setting, we use `mpirun` as the proper MPI execution statement. If you happen -to have a differnet, non-standard MPI setup, you have to give the +to have a different, non-standard MPI setup, you have to give the proper MPI execution statement, in the `run_lapw` script (see the corresponding :program:`Wien2k` documentation). In many cases it is advisable to start from a converged one-shot calculation. For practical purposes, you keep the number of DMFT loops -within one DFT cycle low, or even to `loops=1`. If you encouter +within one DFT cycle low, or even to `loops=1`. If you encounter unstable convergence, you have to adjust the parameters such as the number of DMFT loops, or some mixing of the self energy to improve the convergence. diff --git a/doc/guide/dftdmft_singleshot.rst b/doc/guide/dftdmft_singleshot.rst index ca6b8d0e..37028594 100644 --- a/doc/guide/dftdmft_singleshot.rst +++ b/doc/guide/dftdmft_singleshot.rst @@ -107,7 +107,7 @@ execution. For the convenience of the user, we provide also two working python scripts in this documentation. One for a calculation using Kanamori definitions (:download:`dft_dmft_cthyb.py `) and one with a -rotational-invariant Slater interaction hamiltonian (:download:`dft_dmft_cthyb_slater.py +rotational-invariant Slater interaction Hamiltonian (:download:`dft_dmft_cthyb_slater.py `). The user has to adapt these scripts to his own needs. @@ -165,7 +165,7 @@ from scratch:: previous_present = mpi.bcast(previous_present) -You can see in this code snipet, that all results of this calculation +You can see in this code snippet, that all results of this calculation will be stored in a separate subgroup in the hdf5 file, called `dmft_output`. Removing this subgroup allows you to reset your calculation to the starting point easily. @@ -178,7 +178,7 @@ The next step is to initialise the :class:`Solver ` library. -Next, we construct the hamiltonian and the solver:: +Next, we construct the Hamiltonian and the solver:: h_int = h_int_density(spin_names, orb_names, map_operator_structure=SK.sumk_to_solver[0], U=Umat, Uprime=Upmat) S = Solver(beta=beta, gf_struct=gf_struct) As you see, we take only density-density interactions into -account. Other choices for the hamiltonian are +account. Other choices for the Hamiltonian are * h_int_kanamori * h_int_slater diff --git a/doc/guide/full_tutorial.rst b/doc/guide/full_tutorial.rst index 300e2a3f..2a35360a 100644 --- a/doc/guide/full_tutorial.rst +++ b/doc/guide/full_tutorial.rst @@ -73,7 +73,7 @@ This program produces the following files: * :file:`Ce-gamma.ctqmcout` and :file:`Ce-gamma.symqmc` containing projector operators and symmetry operations for orthonormalized Wannier orbitals, respectively. * :file:`Ce-gamma.parproj` and :file:`Ce-gamma.sympar` containing projector operators and symmetry operations for uncorrelated states, respectively. These files are needed for projected density-of-states or spectral-function calculations. - * :file:`Ce-gamma.oubwin` needed for the charge desity recalculation in the case of fully self-consistent DFT+DMFT run (see below). + * :file:`Ce-gamma.oubwin` needed for the charge density recalculation in the case of fully self-consistent DFT+DMFT run (see below). Now we have all necessary input from :program:`Wien2k` for running DMFT calculations. @@ -101,9 +101,9 @@ The Hubbard-I initialization `Solver` has also optional parameters one may use: * `n_msb`: the number of Matsubara frequencies used. The default is `n_msb=1025`. * `use_spin_orbit`: if set 'True' the solver is run with spin-orbit coupling included. To perform actual DFT+DMFT calculations with spin-orbit one should also run :program:`Wien2k` and :program:`dmftproj` in spin-polarized mode and with spin-orbit included. By default, `use_spin_orbit=False`. - * `Nmoments`: the number of moments used to describe high-ferquency tails of the Hubbard-I Green's function and self-energy. By default `Nmoments = 5` + * `Nmoments`: the number of moments used to describe high-frequency tails of the Hubbard-I Green's function and self-energy. By default `Nmoments = 5` -The `Solver.solve(U_int, J_hund)` statement has two necessary parameters, the Hubbard U parameter `U_int` and Hund's rule coupling `J_hund`. Notice that the solver constructs the full 4-index `U`-matrix by default, and the `U_int` parameter is in fact the Slatter `F0` integral. Other optional parameters are: +The `Solver.solve(U_int, J_hund)` statement has two necessary parameters, the Hubbard U parameter `U_int` and Hund's rule coupling `J_hund`. Notice that the solver constructs the full 4-index `U`-matrix by default, and the `U_int` parameter is in fact the Slater `F0` integral. Other optional parameters are: * `T`: matrix that transforms the interaction matrix from complex spherical harmonics to a symmetry adapted basis. By default, the complex spherical harmonics basis is used and `T=None`. * `verbosity`: tunes output from the solver. If `verbosity=0` only basic information is printed, if `verbosity=1` the ground state atomic occupancy and its energy are printed, if `verbosity=2` additional information is printed for all occupancies that were diagonalized. By default, `verbosity=0`. From 703d114e96c618fb56d039cdfc444157f7fdeb1e Mon Sep 17 00:00:00 2001 From: Michel Ferrero Date: Fri, 12 Feb 2016 10:58:11 +0100 Subject: [PATCH 18/20] [doc] Adding path to find numpydoc extension --- doc/conf.py.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/conf.py.in b/doc/conf.py.in index 927a0b9a..eef3fb3d 100644 --- a/doc/conf.py.in +++ b/doc/conf.py.in @@ -2,6 +2,9 @@ # # TRIQS documentation build configuration file +import sys +sys.path.insert(0, "@TRIQS_SPHINXEXT_PATH@/numpydoc") + extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'sphinx.ext.intersphinx', From 0d3e59a73cd7e2e88b00c86bffb8eec306fc160a Mon Sep 17 00:00:00 2001 From: Gabriele Sclauzero Date: Wed, 3 Feb 2016 16:49:40 +0100 Subject: [PATCH 19/20] [wannier90] First commit with working version Implements the Wannier90 converter, provides related docs and a test --- doc/guide/conversion.rst | 110 + doc/guide/images_scripts/LaVO3_w90.inp | 7 + doc/reference/converters.rst | 12 +- python/converters/__init__.py | 3 +- python/converters/wannier90_converter.py | 556 +++ test/CMakeLists.txt | 3 +- test/LaVO3-Pnma.inp | 7 + test/LaVO3-Pnma_hr.dat | 3893 ++++++++++++++++++++++ test/w90_convert.py | 34 + test/w90_convert.ref.h5 | Bin 0 -> 128048 bytes 10 files changed, 4620 insertions(+), 5 deletions(-) create mode 100644 doc/guide/images_scripts/LaVO3_w90.inp create mode 100644 python/converters/wannier90_converter.py create mode 100644 test/LaVO3-Pnma.inp create mode 100644 test/LaVO3-Pnma_hr.dat create mode 100644 test/w90_convert.py create mode 100644 test/w90_convert.ref.h5 diff --git a/doc/guide/conversion.rst b/doc/guide/conversion.rst index 359efafc..dc732294 100644 --- a/doc/guide/conversion.rst +++ b/doc/guide/conversion.rst @@ -226,6 +226,116 @@ with the For more options of this converter, have a look at the :ref:`refconverters` section of the reference manual. + + +Wannier90 Converter +------------------- + +Using this converter it is possible to convert the output of +:program:`Wannier90` (http://wannier.org) calculations of +Maximally Localized Wannier Functions (MLWF) and create a HDF5 archive +suitable for one-shot DMFT calculations with the +:class:`SumkDFT ` class. + +The user must supply two files in order to run the Wannier90 Converter: + +#. The file :file:`seedname_hr.dat`, which contains the DFT Hamiltonian + in the MLWF basis calculated through :program:`wannier90` with ``hr_plot = true`` + (please refer to the :program:`wannier90` documentation). +#. A file named :file:`seedname.inp`, which contains the required + information about the :math:`\mathbf{k}`-point mesh, the electron density, + the correlated shell structure, ... (see below). + +Here and in the following, the keyword ``seedname`` should always be intended +as a placeholder for the actual prefix chosen by the user when creating the +input for :program:`wannier90`. +Once these two files are available, one can use the converter as follows:: + + from pytriqs.applications.dft.converters import Wannier90Converter + Converter = Wannier90Converter(seedname='seedname') + Converter.convert_dft_input() + +The converter input :file:`seedname.inp` is a simple text file with +the following format: + +.. literalinclude:: images_scripts/LaVO3_w90.inp + +The example shows the input for the perovskite crystal of LaVO\ :sub:`3` +in the room-temperature `Pnma` symmetry. The unit cell contains four +symmetry-equivalent correlated sites (the V atoms) and the total number +of electrons per unit cell is 8 (see second line). +The first line specifies how to generate the :math:`\mathbf{k}`-point +mesh that will be used to obtain :math:`H(\mathbf{k})` +by Fourier transforming :math:`H(\mathbf{R})`. +Currently implemented options are: + +* :math:`\Gamma`-centered uniform grid with dimensions + :math:`n_{k_x} \times n_{k_y} \times n_{k_z}`; + specify ``0`` followed by the three grid dimensions, + like in the example above +* :math:`\Gamma`-centered uniform grid with dimensions + automatically determined by the converter (from the number of + :math:`\mathbf{R}` vectors found in :file:`seedname_hr.dat`); + just specify ``-1`` + +Inside :file:`seedname.inp`, it is crucial to correctly specify the +correlated shell structure, which depends on the contents of the +:program:`wannier90` output :file:`seedname_hr.dat` and on the order +of the MLWFs contained in it. + +The number of MLWFs must be equal to, or greater than the total number +of correlated orbitals (i.e., the sum of all ``dim`` in :file:`seedname.inp`). +If the converter finds fewer MLWFs inside :file:`seedname_hr.dat`, then it +stops with an error; if it finds more MLWFs, then it assumes that the +additional MLWFs correspond to uncorrelated orbitals (e.g., the O-\ `2p` shells). +When reading the hoppings :math:`\langle w_i | H(\mathbf{R}) | w_j \rangle` +(where :math:`w_i` is the :math:`i`-th MLWF), the converter also assumes that +the first indices correspond to the correlated shells (in our example, +the V-t\ :sub:`2g` shells). Therefore, the MLWFs corresponding to the +uncorrelated shells (if present) must be listed **after** those of the +correlated shells. +With the :program:`wannier90` code, this can be achieved this by listing the +projections for the uncorrelated shells after those for the correlated shells. +In our `Pnma`-LaVO\ :sub:`3` example, for instance, we could use:: + + Begin Projections + V:l=2,mr=2,3,5:z=0,0,1:x=-1,1,0 + O:l=1:mr=1,2,3:z=0,0,1:x=-1,1,0 + End Projections + +where the ``x=-1,1,0`` option indicates that the V--O bonds in the octahedra are +rotated by (approximatively) 45 degrees with respect to the axes of the `Pbnm` cell. + +The converter will analyse the matrix elements of the local hamiltonian +to find the symmetry matrices `rot_mat` needed for the global-to-local +transformation of the basis set for correlated orbitals +(see section :ref:`hdfstructure`). +The matrices are obtained by finding the unitary transformations that diagonalize +:math:`\langle w_i | H_I(\mathbf{R}=0,0,0) | w_j \rangle`, where :math:`I` runs +over the correlated shells and `i,j` belong to the same shell (more details elsewhere...). +If two correlated shells are defined as equivalent in :file:`seedname.inp`, +then the corresponding eigenvalues have to match within a threshold of 10\ :sup:`-5`, +otherwise the converter will produce an error/warning. +If this happens, please carefully check your data in :file:`seedname_hr.dat`. +This method might fail in non-trivial cases (i.e., more than one correlated +shell is present) when there are some degenerate eigenvalues: +so far tests have not shown any issue, but one must be careful in those cases +(the converter will print a warning message). + +The current implementation of the Wannier90 Converter has some limitations: + +* Since :program:`wannier90` does not make use of symmetries (symmetry-reduction + of the :math:`\mathbf{k}`-point grid is not possible), the converter always + sets ``symm_op=0`` (see the :ref:`hdfstructure` section). +* No charge self-consistency possible at the moment. +* Calculations with spin-orbit (``SO=1``) are not supported. +* The spin-polarized case (``SP=1``) is not yet tested. +* The post-processing routines in the module + :class:`SumkDFTTools ` + were not tested with this converter. +* ``proj_mat_all`` are not used, so there are no projectors onto the + uncorrelated orbitals for now. + MPI issues ---------- diff --git a/doc/guide/images_scripts/LaVO3_w90.inp b/doc/guide/images_scripts/LaVO3_w90.inp new file mode 100644 index 00000000..11ed8336 --- /dev/null +++ b/doc/guide/images_scripts/LaVO3_w90.inp @@ -0,0 +1,7 @@ + 0 6 4 6 +8.0 + 4 + 0 0 2 3 0 0 + 1 0 2 3 0 0 + 2 0 2 3 0 0 + 3 0 2 3 0 0 diff --git a/doc/reference/converters.rst b/doc/reference/converters.rst index 2d8e5fd8..8cf047d2 100644 --- a/doc/reference/converters.rst +++ b/doc/reference/converters.rst @@ -5,19 +5,25 @@ Converters Wien2k Converter ---------------- -.. autoclass:: converters.wien2k_converter.Wien2kConverter +.. autoclass:: dft.converters.wien2k_converter.Wien2kConverter :members: :special-members: :show-inheritance: H(k) Converter -------------- -.. autoclass:: converters.hk_converter.HkConverter +.. autoclass:: dft.converters.hk_converter.HkConverter + :members: + :special-members: + +Wannier90 Converter +-------------- +.. autoclass:: dft.converters.wannier90_converter.Wannier90Converter :members: :special-members: Converter Tools --------------- -.. autoclass:: converters.converter_tools.ConverterTools +.. autoclass:: dft.converters.converter_tools.ConverterTools :members: :special-members: diff --git a/python/converters/__init__.py b/python/converters/__init__.py index 8553e770..dcbb6e08 100644 --- a/python/converters/__init__.py +++ b/python/converters/__init__.py @@ -22,7 +22,8 @@ from wien2k_converter import Wien2kConverter from hk_converter import HkConverter +from wannier90_converter import Wannier90Converter -__all__ =['Wien2kConverter','HkConverter'] +__all__ =['Wien2kConverter','HkConverter','Wannier90Converter'] diff --git a/python/converters/wannier90_converter.py b/python/converters/wannier90_converter.py new file mode 100644 index 00000000..f204bc4c --- /dev/null +++ b/python/converters/wannier90_converter.py @@ -0,0 +1,556 @@ + +################################################################################ +# +# 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 . +# +################################################################################ + +### +# Wannier90 to HDF5 converter for the SumkDFT class of dfttools/TRIQS; +# +# written by Gabriele Sclauzero (Materials Theory, ETH Zurich), Dec 2015 -- Jan 2016, +# under the supervision of Claude Ederer (Materials Theory). +# Partially based on previous work by K. Dymkovski and the DFT_tools/TRIQS team. +# +# Limitations of the current implementation: +# - the case with SO=1 is not considered at the moment +# - the T rotation matrices are not used in this implementation +# - projectors for uncorrelated shells (proj_mat_all) cannot be set +# +# Things to be improved/checked: +# - the case with SP=1 might work, but was never tested (do we need to define +# rot_mat_time_inv also if symm_op = 0?) +# - the calculation of rot_mat in find_rot_mat() relies on the eigenvalues of H(0); +# this might fail in presence of degenerate eigenvalues (now just prints warning) +# - the FFT is always done in serial mode (because all converters run serially); +# this can become very slow with a large number of R-vectors/k-points +# - make the code more MPI safe (error handling): if we run with more than one process +# and an error occurs on the masternode, the calculation does not abort +### + + +from types import * +import numpy +import math +from pytriqs.archive import * +from converter_tools import * +import os.path + +class Wannier90Converter(ConverterTools): + """ + Conversion from Wannier90 output to an hdf5 file that can be used as input for the SumkDFT class. + """ + + def __init__(self, seedname, hdf_filename = None, dft_subgrp = 'dft_input', + symmcorr_subgrp = 'dft_symmcorr_input', repacking = False): + """ + Initialise the class. + + Parameters + ---------- + seedname : string + Base name of Wannier90 files + hdf_filename : string, optional + Name of hdf5 archive to be created + dft_subgrp : string, optional + Name of subgroup storing necessary DFT data + symmcorr_subgrp : string, optional + Name of subgroup storing correlated-shell symmetry data + repacking : boolean, optional + Does the hdf5 archive need to be repacked to save space? + + """ + + self._name = "Wannier90Converter" + assert type(seedname)==StringType, self._name + ": Please provide the DFT files' base name as a string." + if hdf_filename is None: hdf_filename = seedname+'.h5' + self.hdf_file = hdf_filename + # if the w90 output is seedname_hr.dat, the input file for the converter must be called seedname.inp + self.inp_file = seedname+'.inp' + self.w90_seed = seedname + self.dft_subgrp = dft_subgrp + self.symmcorr_subgrp = symmcorr_subgrp + self.fortran_to_replace = {'D':'E'} + # threshold below which matrix elements from wannier90 should be considered equal + self._w90zero = 2.e-6 + + # Checks if h5 file is there and repacks it if wanted: + if (os.path.exists(self.hdf_file) and repacking): + ConverterTools.repack(self) + + + def convert_dft_input(self): + """ + Reads the appropriate files and stores the data for the + + - dft_subgrp + - symmcorr_subgrp + + in the hdf5 archive. + + """ + + # Read and write only on the master node + if not (mpi.is_master_node()): return + mpi.report("Reading input from %s..."%self.inp_file) + + # R is a generator : each R.Next() will return the next number in the file + R = ConverterTools.read_fortran_file(self,self.inp_file,self.fortran_to_replace) + shell_entries = ['atom', 'sort', 'l', 'dim'] + corr_shell_entries = ['atom', 'sort', 'l', 'dim', 'SO', 'irep'] + # First, let's read the input file with the parameters needed for the conversion + try: + kmesh_mode = int(R.next()) # read k-point mesh generation option + if kmesh_mode >= 0: + # read k-point mesh size from input + nki = [int(R.next()) for idir in range(3)] + else: + # some default grid, if everything else fails... + nki = [8, 8, 8] + density_required = float(R.next()) # read the total number of electrons per cell + # we do not read shells, because we have no additional shells beyond correlated ones, + # and the data will be copied from corr_shells into shells (see below) + n_corr_shells = int(R.next()) # number of corr. shells (e.g. Fe d, Ce f) in the unit cell, + # now read the information about the correlated shells (atom, sort, l, dim, SO flag, irep): + corr_shells = [ {name: int(val) for name, val in zip(corr_shell_entries, R)} for icrsh in range(n_corr_shells) ] + except StopIteration: # a more explicit error if the file is corrupted. + mpi.report(self._name + ": reading input file %s failed!"%self.inp_file) + # close the input file + R.close() + + # Set or derive some quantities + symm_op = 0 # Wannier90 does not use symmetries to reduce the k-points + # the following might change in future versions + ### copy corr_shells into shells (see above) + n_shells = n_corr_shells + shells = [] + for ish in range(n_shells): + shells.append({key: corr_shells[ish].get(key,None) for key in shell_entries}) + ### + SP = 0 # NO spin-polarised calculations for now + SO = 0 # NO spin-orbit calculation for now + charge_below = 0 # total charge below energy window NOT used for now + energy_unit = 1.0 # should be understood as eV units + ### + # this is more general + n_spin = SP + 1 - SO + dim_corr_shells = sum([sh['dim'] for sh in corr_shells]) + mpi.report("Total number of WFs expected in the correlated shells: %d"%dim_corr_shells) + + # determine the number of inequivalent correlated shells and maps, needed for further processing + n_inequiv_shells, corr_to_inequiv, inequiv_to_corr = ConverterTools.det_shell_equivalence(self,corr_shells) + mpi.report("Number of inequivalent shells: %d"%n_inequiv_shells) + mpi.report("Shell representatives: " + format(inequiv_to_corr)) + shells_map = [inequiv_to_corr[corr_to_inequiv[ish]] for ish in range(n_corr_shells)] + mpi.report("Mapping: " + format(shells_map)) + + # build the k-point mesh, if its size was given on input (kmesh_mode >= 0), + # otherwise it is built according to the data in the hr file (see below) + if kmesh_mode >= 0: + n_k, k_mesh, bz_weights = self.kmesh_build(nki,kmesh_mode) + self.n_k = n_k + self.k_mesh = k_mesh + + # not used in this version: reset to dummy values? + n_reps = [1 for i in range(n_inequiv_shells)] + dim_reps = [0 for i in range(n_inequiv_shells)] + T = [] + for ish in range(n_inequiv_shells): + ll = 2*corr_shells[inequiv_to_corr[ish]]['l']+1 + lmax = ll * (corr_shells[inequiv_to_corr[ish]]['SO'] + 1) + T.append(numpy.zeros([lmax,lmax],numpy.complex_)) + + + spin_w90name = ['_up', '_down'] + hamr_full = [] + + # TODO: generalise to SP=1 (only partially done) + rot_mat_time_inv = [0 for i in range(n_corr_shells)] + + + # Second, let's read the file containing the Hamiltonian in WF basis produced by Wannier90 + for isp in range(n_spin): + ### begin loop on isp + + # build filename according to wannier90 conventions + if SP == 1: + mpi.report("Reading information for spin component n. %d"%isp) + hr_file = self.w90_seed + spin_w90name[isp] + '_hr.dat' + else: + hr_file = self.w90_seed + '_hr.dat' + # now grab the data from the H(R) file + mpi.report("The Hamiltonian in MLWF basis is extracted from %s ..."%hr_file) + nr, rvec, rdeg, nw, hamr = self.read_wannier90hr(hr_file) + # number of R vectors, their indices, their degeneracy, number of WFs, H(R) + mpi.report("... done: %d R vectors, %d WFs found"%(nr, nw)) + + if isp == 0: + # set or check some quantities that must be the same for both spins + self.nrpt = nr + + # k-point grid: (if not defined before) + if kmesh_mode == -1: + # the size of the k-point mesh is determined from the largest R vector + nki = [2*rvec[:,idir].max()+1 for idir in range(3)] + # it will be the same as in the win only when nki is odd, because of the + # wannier90 convention: if we have nki k-points along the i-th direction, + # then we should get 2*(nki/2)+nki%2 R points along that direction + n_k, k_mesh, bz_weights = self.kmesh_build(nki) + self.n_k = n_k + self.k_mesh = k_mesh + + # set the R vectors and their degeneracy + self.rvec = rvec + self.rdeg = rdeg + + self.nwfs = nw + # check that the total number of WFs makes sense + if self.nwfs < dim_corr_shells: + mpi.report("ERROR: number of WFs in the file smaller than number of correlated orbitals!") + elif self.nwfs > dim_corr_shells: + # NOTE: correlated shells must appear before uncorrelated ones inside the file + mpi.report("Number of WFs larger than correlated orbitals:\n" + + "WFs from %d to %d treated as uncorrelated"%(dim_corr_shells+1,self.nwfs)) + else: + mpi.report("Number of WFs equal to number of correlated orbitals") + + # we assume spin up and spin down always have same total number of WFs + n_orbitals = numpy.ones([self.n_k,n_spin],numpy.int)*self.nwfs + + else: + # consistency check between the _up and _down file contents + if nr != self.nrpt: mpi.report("Different number of R vectors for spin-up/spin-down!") + if nw != self.nwfs: mpi.report("Different number of WFs for spin-up/spin-down!") + + hamr_full.append(hamr) + ##FIXME: when do we actually need deepcopy()? + #hamr_full.append(deepcopy(hamr)) + + for ir in range(nr): + # checks if the Hamiltonian is real (it should, if wannierisation worked fine) + if numpy.abs((hamr[ir].imag.max()).max()) > self._w90zero: + mpi.report("H(R) has large complex components at R %d"%ir) + # copy the R=0 block corresponding to the correlated shells + # into another variable (needed later for finding rot_mat) + if rvec[ir,0] == 0 and rvec[ir,1] == 0 and rvec[ir,2] == 0: + ham_corr0 = hamr[ir][0:dim_corr_shells,0:dim_corr_shells] + + # checks if ham0 is Hermitian + if not numpy.allclose(ham_corr0.transpose().conjugate(), ham_corr0, atol=self._w90zero, rtol=1.e-9): + raise ValueError("H(R=0) matrix is not Hermitian!") + + # find rot_mat symmetries by diagonalising the on-site Hamiltonian of the first spin + if isp == 0: + use_rotations, rot_mat = self.find_rot_mat(n_corr_shells, corr_shells, shells_map, ham_corr0) + else: + # consistency check + use_rotations_, rot_mat_ = self.find_rot_mat(n_corr_shells, corr_shells, shells_map, ham_corr0) + if (use_rotations and not use_rotations_): + mpi.report("Rotations cannot be used for spin component n. %d"%isp) + for icrsh in range(n_corr_shells): + if not numpy.allclose(rot_mat_[icrsh], rot_mat[icrsh], atol=self._w90zero, rtol=1.e-15): + mpi.report("Rotations for spin component n. %d do not match!"%isp) + ### end loop on isp + + + mpi.report("The k-point grid has dimensions: %d, %d, %d"%tuple(nki)) + # if calculations are spin-polarized, then renormalize k-point weights + if SP == 1: bz_weights = 0.5 * bz_weights + + # Third, compute the hoppings in reciprocal space + hopping = numpy.zeros([self.n_k,n_spin,numpy.max(n_orbitals),numpy.max(n_orbitals)],numpy.complex_) + for isp in range(n_spin): + # make Fourier transform H(R) -> H(k) : it can be done one spin at a time + hamk = self.fourierham(self.nwfs, hamr_full[isp]) + # copy the H(k) in the right place of hoppings... is there a better way to do this?? + for ik in range(self.n_k): + #hopping[ik,isp,:,:] = deepcopy(hamk[ik][:,:])*energy_unit + hopping[ik,isp,:,:] = hamk[ik][:,:]*energy_unit + + # Then, initialise the projectors + k_dep_projection = 0 # we always have the same number of WFs at each k-point + proj_mat = numpy.zeros([self.n_k,n_spin,n_corr_shells,max([crsh['dim'] for crsh in corr_shells]),numpy.max(n_orbitals)],numpy.complex_) + iorb = 0 + # Projectors simply consist in identity matrix blocks selecting those MLWFs that + # correspond to the specific correlated shell indexed by icrsh. + # NOTE: we assume that the correlated orbitals appear at the beginning of the H(R) + # file and that the ordering of MLWFs matches the corr_shell info from the input. + for icrsh in range(n_corr_shells): + norb = corr_shells[icrsh]['dim'] + proj_mat[:,:,icrsh,0:norb,iorb:iorb+norb] = numpy.identity(norb,numpy.complex_) + iorb += norb + + # Finally, save all required data into the HDF archive: + ar = HDFArchive(self.hdf_file,'a') + if not (self.dft_subgrp in ar): ar.create_group(self.dft_subgrp) + # The subgroup containing the data. If it does not exist, it is created. If it exists, the data is overwritten! + things_to_save = ['energy_unit','n_k','k_dep_projection','SP','SO','charge_below','density_required', + 'symm_op','n_shells','shells','n_corr_shells','corr_shells','use_rotations','rot_mat', + 'rot_mat_time_inv','n_reps','dim_reps','T','n_orbitals','proj_mat','bz_weights','hopping', + 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr'] + for it in things_to_save: ar[self.dft_subgrp][it] = locals()[it] + del ar + + + + def read_wannier90hr(self, hr_filename="wannier_hr.dat"): + """ + Method for reading the seedname_hr.dat file produced by Wannier90 (http://wannier.org) + + Parameters + ---------- + hr_filename : string + full name of the H(R) file produced by Wannier90 (usually seedname_hr.dat) + + Returns + ------- + nrpt : integer + number of R vectors found in the file + rvec_idx : numpy.array of integers + Miller indices of the R vectors + rvec_deg : numpy.array of floats + weight of the R vectors + num_wf : integer + number of Wannier functions found + h_of_r : list of numpy.array + = Hamilonian matrix elements in the Wannier basis + + """ + + # Read only from the master node + if not (mpi.is_master_node()): return + + try: + with open(hr_filename, "r") as hr_filedesc: + hr_data = hr_filedesc.readlines() + hr_filedesc.close() + except IOError: + mpi.report("The file %s could not be read!"%hr_filename) + + mpi.report("Reading %s..."%hr_filename + hr_data[0]) + + try: + num_wf = int(hr_data[1]) # reads number of Wannier functions per spin + nrpt = int(hr_data[2]) + except ValueError: + mpi.report("Could not read number of WFs or R vectors") + + # allocate arrays to save the R vector indexes and degeneracies and the Hamiltonian + rvec_idx = numpy.zeros((nrpt, 3), dtype=int) + rvec_deg = numpy.zeros(nrpt, dtype=int) + h_of_r = [numpy.zeros((num_wf, num_wf), dtype=numpy.complex_) for n in range(nrpt)] + + # variable currpos points to the current line in the file + currpos = 2 + try: + ir = 0 + # read the degeneracy of the R vectors (needed for the Fourier transform) + while ir < nrpt: + currpos += 1 + for x in hr_data[currpos].split(): + if ir >= nrpt: + raise IndexError("wrong number of R vectors??") + rvec_deg[ir] = int(x) + ir += 1 + # for each direct lattice vector R + for ir in range(nrpt): + # read the block of the Hamiltonian H(R) + for jj in range(num_wf): + for ii in range(num_wf): + # advance one line, split the line into tokens + currpos += 1 + cline = hr_data[currpos].split() + # check if the orbital indexes in the file make sense + if int(cline[3]) != ii+1 or int(cline[4]) != jj+1: + mpi.report("Inconsistent indices at %s%s of R n. %s"%(ii,jj,ir)) + rcurr = numpy.array([int(cline[0]), int(cline[1]), int(cline[2])]) + if ii == 0 and jj == 0: + rvec_idx[ir] = rcurr + rprec = rcurr + else: + # check if the vector indices are consistent + if not numpy.array_equal(rcurr, rprec): + mpi.report("Inconsistent indices for R vector n. %s"%ir) + + # fill h_of_r with the matrix elements of the Hamiltonian + h_of_r[ir][ii, jj] = complex(float(cline[5]), float(cline[6])) + + except ValueError: + mpi.report("Wrong data or structure in file %s"%hr_filename) + + # return the data into variables + return nrpt, rvec_idx, rvec_deg, num_wf, h_of_r + + + + def find_rot_mat(self, n_sh, sh_lst, sh_map, ham0): + """ + Method for finding the matrices that bring from local to global coordinate systems + (and viceversa), based on the eigenvalues of H(R=0) + + Parameters + ---------- + n_sh : integer + number of shells + sh_lst : list of shells-type dictionaries + contains the shells (could be correlated or not) + sh_map : list of integers + mapping between shells + ham0 : numpy.array of floats + local Hamiltonian matrix elements + + Returns + ------- + istatus : integer + if 0, something failed in the construction of the matrices + rot_mat : list of numpy.array + rotation matrix for each of the shell + + """ + + # initialize the rotation matrices to identities + rot_mat = [numpy.identity(sh_lst[ish]['dim'], dtype=complex) for ish in range(n_sh)] + istatus = 0 + + hs = ham0.shape + if hs[0] != hs[1] or hs[0] != sum([sh['dim'] for sh in sh_lst]): + mpi.report("find_rot_mat: wrong block structure of input Hamiltonian!") + istatus = 0 + # this error will lead into troubles later... early return + return istatus, rot_mat + + # TODO: better handling of degenerate eigenvalue case + eigval_lst = [] + eigvec_lst = [] + iwf = 0 + # loop over shells + for ish in range(n_sh): + # nw = number of orbitals in this shell + nw = sh_lst[ish]["dim"] + # diagonalize the sub-block of H(0) corresponding to this shell + eigval, eigvec = numpy.linalg.eigh(ham0[iwf:iwf+nw, iwf:iwf+nw]) + # find the indices sorting the eigenvalues in ascending order + eigsrt = eigval[0:nw].argsort() + # order eigenvalues and eigenvectors and save in a list + eigval_lst.append(eigval[eigsrt]) + eigvec_lst.append(eigvec[eigsrt]) + iwf += nw + # TODO: better handling of degenerate eigenvalue case + if sh_map[ish] != ish: # issue warning only when there are equivalent shells + for i in range(nw): + for j in range(i+1,nw): + if ( abs(eigval[j] - eigval[i]) < self._w90zero ): + mpi.report("WARNING: degenerate eigenvalue of H(0) detected for shell %d: "%(ish) + + "global-to-local transformation might not work!") + + for ish in range(n_sh): + try: + # build rotation matrices by combining the unitary transformations that diagonalize H(0) + rot_mat[ish] = numpy.dot(eigvec_lst[ish],eigvec_lst[sh_map[ish]].conjugate().transpose()) + except ValueError: + mpi.report("Global-to-local rotation matrices cannot be constructed!") + + istatus = 1 + # check that eigenvalues are the same (within accuracy) for equivalent shells + if not numpy.allclose(eigval_lst[ish], eigval_lst[sh_map[ish]], atol=self._w90zero, rtol=1.e-15): + mpi.report("ERROR: eigenvalue mismatch between equivalent shells! %d"%ish) + eigval_diff = eigval_lst[ish] - eigval_lst[sh_map[ish]] + mpi.report("Eigenvalue difference: " + format(eigval_diff)) + istatus = 0 + + #TODO: add additional consistency check on rot_mat matrices? + + return istatus, rot_mat + + + + def kmesh_build(self, msize=None, mmode=0): + """ + Method for the generation of the k-point mesh. + Right now it only supports the option for generating a full grid containing k=0,0,0. + + Parameters + ---------- + msize : list of 3 integers + the dimensions of the mesh + mmode : integer + mesh generation mode (right now, only full grid available) + + Returns + ------- + nkpt : integer + total number of k-points in the mesh + k_mesh : numpy.array[nkpt,3] of floats + the coordinates of all k-points + wk : numpy.array[nkpt] of floats + the weight of each k-point + + """ + + if mmode == 0: + # a regular mesh including Gamma point + nkpt = msize[0] * msize[1] * msize[2] # total number of k-points + kmesh = numpy.zeros((nkpt, 3), dtype=float) + ii = 0 + for ix in range(msize[0]): + for iy in range(msize[1]): + for iz in range(msize[2]): + kmesh[ii,:] = [float(ix)/msize[0], float(iy)/msize[1], float(iz)/msize[2]] + ii += 1 + # weight is equal for all k-points because wannier90 uses uniform grid on whole BZ + # (normalization is always 1 and takes into account spin degeneracy) + wk = numpy.ones([nkpt], dtype=float) / float(nkpt) + else: + raise ValueError("Mesh generation mode not supported: %s"%mmode) + + return nkpt, kmesh, wk + + + + def fourierham(self, norb, h_of_r): + """ + Method for obtaining H(k) from H(R) via Fourier transform + The R vectors and k-point mesh are read from global module variables + + Parameters + ---------- + norb : integer + number of orbitals + h_of_r : list of numpy.array[norb,norb] + Hamiltonian H(R) in Wannier basis + + Returns + ------- + h_of_k : list of numpy.array[norb,norb] + transformed Hamiltonian H(k) in Wannier basis + + """ + + imag = 1j + twopi = 2 * numpy.pi + + h_of_k = [numpy.zeros((norb, norb), dtype=numpy.complex_) for ik in range(self.n_k)] + for ik in range(self.n_k): + ridx = numpy.array(range(self.nrpt)) + for ir in ridx: + rdotk = twopi * numpy.dot(self.k_mesh[ik], self.rvec[ir]) + factor = (math.cos(rdotk) + imag * math.sin(rdotk)) / float(self.rdeg[ir]) + h_of_k[ik][:, :] += factor * h_of_r[ir][:,:] + + return h_of_k + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index b488f1af..697eaf6d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,10 +5,11 @@ find_package(TriqsTest) FILE(GLOB all_h5_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h5) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/${all_h5_files} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # Copy other files -FILE(COPY SrVO3.pmat SrVO3.struct SrVO3.outputs SrVO3.oubwin SrVO3.ctqmcout SrVO3.symqmc SrVO3.sympar SrVO3.parproj hk_convert_hamiltonian.hk DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +FILE(COPY SrVO3.pmat SrVO3.struct SrVO3.outputs SrVO3.oubwin SrVO3.ctqmcout SrVO3.symqmc SrVO3.sympar SrVO3.parproj hk_convert_hamiltonian.hk LaVO3-Pnma_hr.dat LaVO3-Pnma.inp DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) triqs_add_python_test(wien2k_convert) triqs_add_python_test(hk_convert) +triqs_add_python_test(w90_convert) triqs_add_python_test(sumkdft_basic) triqs_add_python_test(srvo3_Gloc) triqs_add_python_test(srvo3_transp) diff --git a/test/LaVO3-Pnma.inp b/test/LaVO3-Pnma.inp new file mode 100644 index 00000000..f97a2540 --- /dev/null +++ b/test/LaVO3-Pnma.inp @@ -0,0 +1,7 @@ + 0 3 2 3 + 8.0 + 4 + 0 0 2 3 0 0 + 1 0 2 3 0 0 + 2 0 2 3 0 0 + 3 0 2 3 0 0 diff --git a/test/LaVO3-Pnma_hr.dat b/test/LaVO3-Pnma_hr.dat new file mode 100644 index 00000000..4b08fc3d --- /dev/null +++ b/test/LaVO3-Pnma_hr.dat @@ -0,0 +1,3893 @@ + written on 23Nov2015 at 18:54:56 + 12 + 27 + 2 2 2 1 1 1 2 2 2 2 2 2 1 1 1 + 2 2 2 2 2 2 1 1 1 2 2 2 + -1 -1 -1 1 1 -0.004024 -0.000000 + -1 -1 -1 2 1 -0.005064 0.000000 + -1 -1 -1 3 1 -0.001761 0.000000 + -1 -1 -1 4 1 -0.000117 0.000000 + -1 -1 -1 5 1 0.001789 0.000000 + -1 -1 -1 6 1 0.001063 0.000000 + -1 -1 -1 7 1 0.000182 0.000000 + -1 -1 -1 8 1 0.004941 0.000000 + -1 -1 -1 9 1 0.014966 0.000000 + -1 -1 -1 10 1 0.001052 0.000000 + -1 -1 -1 11 1 0.004249 0.000000 + -1 -1 -1 12 1 0.001055 -0.000000 + -1 -1 -1 1 2 -0.005064 0.000000 + -1 -1 -1 2 2 -0.005524 -0.000000 + -1 -1 -1 3 2 -0.000745 0.000000 + -1 -1 -1 4 2 -0.002085 0.000000 + -1 -1 -1 5 2 -0.000117 0.000000 + -1 -1 -1 6 2 -0.000794 -0.000000 + -1 -1 -1 7 2 0.001251 -0.000000 + -1 -1 -1 8 2 -0.008805 -0.000000 + -1 -1 -1 9 2 0.003121 0.000000 + -1 -1 -1 10 2 -0.000692 -0.000000 + -1 -1 -1 11 2 0.001052 -0.000000 + -1 -1 -1 12 2 0.000790 0.000000 + -1 -1 -1 1 3 -0.001761 -0.000000 + -1 -1 -1 2 3 -0.000745 -0.000000 + -1 -1 -1 3 3 -0.001184 -0.000000 + -1 -1 -1 4 3 -0.000794 -0.000000 + -1 -1 -1 5 3 0.001063 0.000000 + -1 -1 -1 6 3 0.000522 0.000000 + -1 -1 -1 7 3 -0.000792 0.000000 + -1 -1 -1 8 3 0.001717 0.000000 + -1 -1 -1 9 3 -0.004089 -0.000000 + -1 -1 -1 10 3 -0.000790 0.000000 + -1 -1 -1 11 3 -0.001055 -0.000000 + -1 -1 -1 12 3 0.001687 -0.000000 + -1 -1 -1 1 4 0.001100 0.000000 + -1 -1 -1 2 4 -0.001519 -0.000000 + -1 -1 -1 3 4 0.000143 0.000000 + -1 -1 -1 4 4 -0.002725 0.000000 + -1 -1 -1 5 4 0.003360 -0.000000 + -1 -1 -1 6 4 0.002175 0.000000 + -1 -1 -1 7 4 -0.018379 0.000000 + -1 -1 -1 8 4 -0.023064 -0.000000 + -1 -1 -1 9 4 0.002867 0.000000 + -1 -1 -1 10 4 -0.004057 -0.000000 + -1 -1 -1 11 4 -0.000661 -0.000000 + -1 -1 -1 12 4 -0.002825 0.000000 + -1 -1 -1 1 5 0.003927 0.000000 + -1 -1 -1 2 5 0.001100 -0.000000 + -1 -1 -1 3 5 0.001020 0.000000 + -1 -1 -1 4 5 0.003360 -0.000000 + -1 -1 -1 5 5 -0.006576 0.000000 + -1 -1 -1 6 5 0.000661 0.000000 + -1 -1 -1 7 5 0.036873 0.000000 + -1 -1 -1 8 5 0.042521 0.000000 + -1 -1 -1 9 5 -0.001922 0.000000 + -1 -1 -1 10 5 -0.003898 0.000000 + -1 -1 -1 11 5 0.000656 -0.000000 + -1 -1 -1 12 5 -0.002035 -0.000000 + -1 -1 -1 1 6 0.001020 -0.000000 + -1 -1 -1 2 6 0.000143 -0.000000 + -1 -1 -1 3 6 0.000617 0.000000 + -1 -1 -1 4 6 0.002175 -0.000000 + -1 -1 -1 5 6 0.000661 -0.000000 + -1 -1 -1 6 6 -0.001782 0.000000 + -1 -1 -1 7 6 -0.012364 0.000000 + -1 -1 -1 8 6 0.003338 0.000000 + -1 -1 -1 9 6 0.001533 -0.000000 + -1 -1 -1 10 6 0.005418 -0.000000 + -1 -1 -1 11 6 0.005132 0.000000 + -1 -1 -1 12 6 0.003373 -0.000000 + -1 -1 -1 1 7 -0.001131 -0.000000 + -1 -1 -1 2 7 0.000633 -0.000000 + -1 -1 -1 3 7 -0.000561 -0.000000 + -1 -1 -1 4 7 0.001052 -0.000000 + -1 -1 -1 5 7 0.004249 0.000000 + -1 -1 -1 6 7 -0.001055 0.000000 + -1 -1 -1 7 7 -0.004024 -0.000000 + -1 -1 -1 8 7 -0.005064 0.000000 + -1 -1 -1 9 7 0.001761 -0.000000 + -1 -1 -1 10 7 -0.000117 0.000000 + -1 -1 -1 11 7 0.001789 0.000000 + -1 -1 -1 12 7 -0.001063 -0.000000 + -1 -1 -1 1 8 0.000572 0.000000 + -1 -1 -1 2 8 -0.000480 -0.000000 + -1 -1 -1 3 8 0.000746 -0.000000 + -1 -1 -1 4 8 -0.000692 0.000000 + -1 -1 -1 5 8 0.001052 0.000000 + -1 -1 -1 6 8 -0.000790 0.000000 + -1 -1 -1 7 8 -0.005064 0.000000 + -1 -1 -1 8 8 -0.005524 -0.000000 + -1 -1 -1 9 8 0.000745 -0.000000 + -1 -1 -1 10 8 -0.002085 -0.000000 + -1 -1 -1 11 8 -0.000117 0.000000 + -1 -1 -1 12 8 0.000794 0.000000 + -1 -1 -1 1 9 0.000060 -0.000000 + -1 -1 -1 2 9 0.002537 0.000000 + -1 -1 -1 3 9 0.002086 -0.000000 + -1 -1 -1 4 9 0.000790 -0.000000 + -1 -1 -1 5 9 0.001055 -0.000000 + -1 -1 -1 6 9 0.001687 -0.000000 + -1 -1 -1 7 9 0.001761 0.000000 + -1 -1 -1 8 9 0.000745 0.000000 + -1 -1 -1 9 9 -0.001184 -0.000000 + -1 -1 -1 10 9 0.000794 0.000000 + -1 -1 -1 11 9 -0.001063 -0.000000 + -1 -1 -1 12 9 0.000522 -0.000000 + -1 -1 -1 1 10 -0.018379 -0.000000 + -1 -1 -1 2 10 -0.023064 -0.000000 + -1 -1 -1 3 10 -0.002867 -0.000000 + -1 -1 -1 4 10 -0.008805 0.000000 + -1 -1 -1 5 10 0.004941 0.000000 + -1 -1 -1 6 10 0.001717 -0.000000 + -1 -1 -1 7 10 0.011154 -0.000000 + -1 -1 -1 8 10 -0.004731 0.000000 + -1 -1 -1 9 10 -0.004392 -0.000000 + -1 -1 -1 10 10 -0.002725 0.000000 + -1 -1 -1 11 10 0.003360 0.000000 + -1 -1 -1 12 10 -0.002175 -0.000000 + -1 -1 -1 1 11 0.036873 0.000000 + -1 -1 -1 2 11 0.042521 0.000000 + -1 -1 -1 3 11 0.001922 -0.000000 + -1 -1 -1 4 11 0.001251 -0.000000 + -1 -1 -1 5 11 0.000182 0.000000 + -1 -1 -1 6 11 -0.000792 -0.000000 + -1 -1 -1 7 11 -0.003540 0.000000 + -1 -1 -1 8 11 -0.010651 -0.000000 + -1 -1 -1 9 11 -0.000453 -0.000000 + -1 -1 -1 10 11 0.003360 -0.000000 + -1 -1 -1 11 11 -0.006576 0.000000 + -1 -1 -1 12 11 -0.000661 -0.000000 + -1 -1 -1 1 12 0.012364 -0.000000 + -1 -1 -1 2 12 -0.003338 -0.000000 + -1 -1 -1 3 12 0.001533 -0.000000 + -1 -1 -1 4 12 0.003121 -0.000000 + -1 -1 -1 5 12 0.014966 -0.000000 + -1 -1 -1 6 12 -0.004089 0.000000 + -1 -1 -1 7 12 0.003444 0.000000 + -1 -1 -1 8 12 0.000487 0.000000 + -1 -1 -1 9 12 -0.000782 -0.000000 + -1 -1 -1 10 12 -0.002175 0.000000 + -1 -1 -1 11 12 -0.000661 0.000000 + -1 -1 -1 12 12 -0.001782 0.000000 + -1 -1 0 1 1 -0.006750 -0.000000 + -1 -1 0 2 1 -0.003264 -0.000000 + -1 -1 0 3 1 -0.003360 -0.000000 + -1 -1 0 4 1 -0.010651 -0.000000 + -1 -1 0 5 1 -0.003540 -0.000000 + -1 -1 0 6 1 0.000453 0.000000 + -1 -1 0 7 1 -0.177076 0.000000 + -1 -1 0 8 1 0.021015 -0.000000 + -1 -1 0 9 1 0.019597 -0.000000 + -1 -1 0 10 1 -0.002409 -0.000000 + -1 -1 0 11 1 -0.000864 -0.000000 + -1 -1 0 12 1 -0.000583 -0.000000 + -1 -1 0 1 2 -0.003264 -0.000000 + -1 -1 0 2 2 0.003393 -0.000000 + -1 -1 0 3 2 -0.003295 -0.000000 + -1 -1 0 4 2 -0.004731 -0.000000 + -1 -1 0 5 2 0.011154 -0.000000 + -1 -1 0 6 2 0.004392 0.000000 + -1 -1 0 7 2 0.021015 -0.000000 + -1 -1 0 8 2 -0.223461 -0.000000 + -1 -1 0 9 2 0.045911 0.000000 + -1 -1 0 10 2 -0.003521 -0.000000 + -1 -1 0 11 2 -0.002409 0.000000 + -1 -1 0 12 2 -0.003296 0.000000 + -1 -1 0 1 3 -0.003360 -0.000000 + -1 -1 0 2 3 -0.003295 0.000000 + -1 -1 0 3 3 0.000512 0.000000 + -1 -1 0 4 3 -0.000487 -0.000000 + -1 -1 0 5 3 -0.003444 -0.000000 + -1 -1 0 6 3 -0.000782 0.000000 + -1 -1 0 7 3 -0.019597 0.000000 + -1 -1 0 8 3 -0.045911 -0.000000 + -1 -1 0 9 3 -0.039538 -0.000000 + -1 -1 0 10 3 0.003296 -0.000000 + -1 -1 0 11 3 0.000583 -0.000000 + -1 -1 0 12 3 -0.002678 -0.000000 + -1 -1 0 1 4 0.001100 0.000000 + -1 -1 0 2 4 -0.001519 -0.000000 + -1 -1 0 3 4 0.000143 0.000000 + -1 -1 0 4 4 0.003393 0.000000 + -1 -1 0 5 4 -0.003264 0.000000 + -1 -1 0 6 4 -0.003295 0.000000 + -1 -1 0 7 4 0.053346 -0.000000 + -1 -1 0 8 4 -0.023372 0.000000 + -1 -1 0 9 4 -0.001648 0.000000 + -1 -1 0 10 4 -0.001053 -0.000000 + -1 -1 0 11 4 -0.008855 0.000000 + -1 -1 0 12 4 0.005382 0.000000 + -1 -1 0 1 5 0.003927 -0.000000 + -1 -1 0 2 5 0.001100 -0.000000 + -1 -1 0 3 5 0.001020 0.000000 + -1 -1 0 4 5 -0.003264 0.000000 + -1 -1 0 5 5 -0.006750 -0.000000 + -1 -1 0 6 5 -0.003360 0.000000 + -1 -1 0 7 5 0.020930 -0.000000 + -1 -1 0 8 5 -0.021525 0.000000 + -1 -1 0 9 5 0.002735 0.000000 + -1 -1 0 10 5 0.001885 0.000000 + -1 -1 0 11 5 -0.009884 0.000000 + -1 -1 0 12 5 0.003898 0.000000 + -1 -1 0 1 6 0.001020 -0.000000 + -1 -1 0 2 6 0.000143 -0.000000 + -1 -1 0 3 6 0.000617 0.000000 + -1 -1 0 4 6 -0.003295 -0.000000 + -1 -1 0 5 6 -0.003360 -0.000000 + -1 -1 0 6 6 0.000512 -0.000000 + -1 -1 0 7 6 0.003970 0.000000 + -1 -1 0 8 6 0.008426 0.000000 + -1 -1 0 9 6 0.001823 -0.000000 + -1 -1 0 10 6 0.012679 0.000000 + -1 -1 0 11 6 -0.016241 0.000000 + -1 -1 0 12 6 -0.006667 -0.000000 + -1 -1 0 1 7 -0.009884 -0.000000 + -1 -1 0 2 7 0.001885 -0.000000 + -1 -1 0 3 7 -0.003898 -0.000000 + -1 -1 0 4 7 -0.002409 0.000000 + -1 -1 0 5 7 -0.000864 0.000000 + -1 -1 0 6 7 0.000583 0.000000 + -1 -1 0 7 7 -0.006750 0.000000 + -1 -1 0 8 7 -0.003264 0.000000 + -1 -1 0 9 7 0.003360 -0.000000 + -1 -1 0 10 7 0.011154 0.000000 + -1 -1 0 11 7 -0.003540 -0.000000 + -1 -1 0 12 7 0.003444 -0.000000 + -1 -1 0 1 8 -0.008855 -0.000000 + -1 -1 0 2 8 -0.001053 0.000000 + -1 -1 0 3 8 -0.005382 -0.000000 + -1 -1 0 4 8 -0.003521 0.000000 + -1 -1 0 5 8 -0.002409 0.000000 + -1 -1 0 6 8 0.003296 -0.000000 + -1 -1 0 7 8 -0.003264 0.000000 + -1 -1 0 8 8 0.003393 0.000000 + -1 -1 0 9 8 0.003295 0.000000 + -1 -1 0 10 8 -0.004731 -0.000000 + -1 -1 0 11 8 -0.010651 0.000000 + -1 -1 0 12 8 0.000487 -0.000000 + -1 -1 0 1 9 0.016241 -0.000000 + -1 -1 0 2 9 -0.012679 -0.000000 + -1 -1 0 3 9 -0.006667 0.000000 + -1 -1 0 4 9 -0.003296 0.000000 + -1 -1 0 5 9 -0.000583 0.000000 + -1 -1 0 6 9 -0.002678 -0.000000 + -1 -1 0 7 9 0.003360 0.000000 + -1 -1 0 8 9 0.003295 -0.000000 + -1 -1 0 9 9 0.000512 -0.000000 + -1 -1 0 10 9 -0.004392 0.000000 + -1 -1 0 11 9 -0.000453 0.000000 + -1 -1 0 12 9 -0.000782 0.000000 + -1 -1 0 1 10 0.053346 -0.000000 + -1 -1 0 2 10 -0.023372 0.000000 + -1 -1 0 3 10 0.001648 -0.000000 + -1 -1 0 4 10 -0.223461 0.000000 + -1 -1 0 5 10 0.021015 -0.000000 + -1 -1 0 6 10 -0.045911 0.000000 + -1 -1 0 7 10 -0.010651 0.000000 + -1 -1 0 8 10 -0.004731 0.000000 + -1 -1 0 9 10 0.000487 0.000000 + -1 -1 0 10 10 0.003393 -0.000000 + -1 -1 0 11 10 -0.003264 -0.000000 + -1 -1 0 12 10 0.003295 -0.000000 + -1 -1 0 1 11 0.020930 0.000000 + -1 -1 0 2 11 -0.021525 -0.000000 + -1 -1 0 3 11 -0.002735 -0.000000 + -1 -1 0 4 11 0.021015 0.000000 + -1 -1 0 5 11 -0.177076 -0.000000 + -1 -1 0 6 11 -0.019597 0.000000 + -1 -1 0 7 11 -0.003540 0.000000 + -1 -1 0 8 11 0.011154 0.000000 + -1 -1 0 9 11 0.003444 0.000000 + -1 -1 0 10 11 -0.003264 0.000000 + -1 -1 0 11 11 -0.006750 -0.000000 + -1 -1 0 12 11 0.003360 -0.000000 + -1 -1 0 1 12 -0.003970 -0.000000 + -1 -1 0 2 12 -0.008426 0.000000 + -1 -1 0 3 12 0.001823 0.000000 + -1 -1 0 4 12 0.045911 0.000000 + -1 -1 0 5 12 0.019597 0.000000 + -1 -1 0 6 12 -0.039538 0.000000 + -1 -1 0 7 12 -0.000453 0.000000 + -1 -1 0 8 12 -0.004392 0.000000 + -1 -1 0 9 12 -0.000782 0.000000 + -1 -1 0 10 12 0.003295 0.000000 + -1 -1 0 11 12 0.003360 0.000000 + -1 -1 0 12 12 0.000512 0.000000 + -1 -1 1 1 1 -0.006576 -0.000000 + -1 -1 1 2 1 0.003360 0.000000 + -1 -1 1 3 1 0.000661 -0.000000 + -1 -1 1 4 1 0.011154 0.000000 + -1 -1 1 5 1 -0.003540 -0.000000 + -1 -1 1 6 1 -0.003444 0.000000 + -1 -1 1 7 1 0.000182 -0.000000 + -1 -1 1 8 1 0.001251 0.000000 + -1 -1 1 9 1 0.000792 -0.000000 + -1 -1 1 10 1 0.001463 -0.000000 + -1 -1 1 11 1 0.005262 -0.000000 + -1 -1 1 12 1 0.004782 0.000000 + -1 -1 1 1 2 0.003360 -0.000000 + -1 -1 1 2 2 -0.002725 0.000000 + -1 -1 1 3 2 0.002175 -0.000000 + -1 -1 1 4 2 -0.004731 -0.000000 + -1 -1 1 5 2 -0.010651 0.000000 + -1 -1 1 6 2 -0.000487 0.000000 + -1 -1 1 7 2 0.004941 -0.000000 + -1 -1 1 8 2 -0.008805 0.000000 + -1 -1 1 9 2 -0.001717 0.000000 + -1 -1 1 10 2 0.002999 -0.000000 + -1 -1 1 11 2 0.001463 0.000000 + -1 -1 1 12 2 -0.000263 0.000000 + -1 -1 1 1 3 0.000661 -0.000000 + -1 -1 1 2 3 0.002175 -0.000000 + -1 -1 1 3 3 -0.001782 0.000000 + -1 -1 1 4 3 0.004392 -0.000000 + -1 -1 1 5 3 0.000453 -0.000000 + -1 -1 1 6 3 -0.000782 0.000000 + -1 -1 1 7 3 -0.014966 -0.000000 + -1 -1 1 8 3 -0.003121 0.000000 + -1 -1 1 9 3 -0.004089 0.000000 + -1 -1 1 10 3 0.000263 -0.000000 + -1 -1 1 11 3 -0.004782 -0.000000 + -1 -1 1 12 3 -0.004078 -0.000000 + -1 -1 1 1 4 -0.000136 0.000000 + -1 -1 1 2 4 -0.000701 -0.000000 + -1 -1 1 3 4 -0.000218 0.000000 + -1 -1 1 4 4 -0.005524 -0.000000 + -1 -1 1 5 4 -0.005064 -0.000000 + -1 -1 1 6 4 -0.000745 0.000000 + -1 -1 1 7 4 -0.000808 -0.000000 + -1 -1 1 8 4 -0.000289 -0.000000 + -1 -1 1 9 4 0.004567 -0.000000 + -1 -1 1 10 4 -0.000480 -0.000000 + -1 -1 1 11 4 0.000572 0.000000 + -1 -1 1 12 4 -0.000746 0.000000 + -1 -1 1 1 5 -0.000898 -0.000000 + -1 -1 1 2 5 -0.000136 0.000000 + -1 -1 1 3 5 -0.000411 0.000000 + -1 -1 1 4 5 -0.005064 0.000000 + -1 -1 1 5 5 -0.004024 0.000000 + -1 -1 1 6 5 -0.001761 0.000000 + -1 -1 1 7 5 -0.001067 -0.000000 + -1 -1 1 8 5 -0.000059 0.000000 + -1 -1 1 9 5 -0.003255 -0.000000 + -1 -1 1 10 5 0.000633 -0.000000 + -1 -1 1 11 5 -0.001131 -0.000000 + -1 -1 1 12 5 0.000561 -0.000000 + -1 -1 1 1 6 -0.000411 0.000000 + -1 -1 1 2 6 -0.000218 -0.000000 + -1 -1 1 3 6 0.000726 -0.000000 + -1 -1 1 4 6 -0.000745 -0.000000 + -1 -1 1 5 6 -0.001761 -0.000000 + -1 -1 1 6 6 -0.001184 -0.000000 + -1 -1 1 7 6 0.000143 -0.000000 + -1 -1 1 8 6 0.002151 0.000000 + -1 -1 1 9 6 -0.000284 0.000000 + -1 -1 1 10 6 -0.002537 0.000000 + -1 -1 1 11 6 -0.000060 0.000000 + -1 -1 1 12 6 0.002086 -0.000000 + -1 -1 1 1 7 0.000656 -0.000000 + -1 -1 1 2 7 -0.003898 -0.000000 + -1 -1 1 3 7 0.002035 -0.000000 + -1 -1 1 4 7 0.001463 -0.000000 + -1 -1 1 5 7 0.005262 0.000000 + -1 -1 1 6 7 -0.004782 0.000000 + -1 -1 1 7 7 -0.006576 0.000000 + -1 -1 1 8 7 0.003360 -0.000000 + -1 -1 1 9 7 -0.000661 -0.000000 + -1 -1 1 10 7 -0.010651 -0.000000 + -1 -1 1 11 7 -0.003540 -0.000000 + -1 -1 1 12 7 -0.000453 -0.000000 + -1 -1 1 1 8 -0.000661 -0.000000 + -1 -1 1 2 8 -0.004057 0.000000 + -1 -1 1 3 8 0.002825 0.000000 + -1 -1 1 4 8 0.002999 -0.000000 + -1 -1 1 5 8 0.001463 0.000000 + -1 -1 1 6 8 0.000263 -0.000000 + -1 -1 1 7 8 0.003360 -0.000000 + -1 -1 1 8 8 -0.002725 -0.000000 + -1 -1 1 9 8 -0.002175 -0.000000 + -1 -1 1 10 8 -0.004731 -0.000000 + -1 -1 1 11 8 0.011154 -0.000000 + -1 -1 1 12 8 -0.004392 -0.000000 + -1 -1 1 1 9 -0.005132 -0.000000 + -1 -1 1 2 9 -0.005418 0.000000 + -1 -1 1 3 9 0.003373 -0.000000 + -1 -1 1 4 9 -0.000263 -0.000000 + -1 -1 1 5 9 0.004782 -0.000000 + -1 -1 1 6 9 -0.004078 -0.000000 + -1 -1 1 7 9 -0.000661 0.000000 + -1 -1 1 8 9 -0.002175 0.000000 + -1 -1 1 9 9 -0.001782 -0.000000 + -1 -1 1 10 9 0.000487 -0.000000 + -1 -1 1 11 9 0.003444 -0.000000 + -1 -1 1 12 9 -0.000782 -0.000000 + -1 -1 1 1 10 -0.000808 -0.000000 + -1 -1 1 2 10 -0.000289 0.000000 + -1 -1 1 3 10 -0.004567 0.000000 + -1 -1 1 4 10 -0.008805 0.000000 + -1 -1 1 5 10 0.001251 0.000000 + -1 -1 1 6 10 -0.003121 -0.000000 + -1 -1 1 7 10 -0.000117 0.000000 + -1 -1 1 8 10 -0.002085 -0.000000 + -1 -1 1 9 10 0.000794 -0.000000 + -1 -1 1 10 10 -0.005524 -0.000000 + -1 -1 1 11 10 -0.005064 -0.000000 + -1 -1 1 12 10 0.000745 -0.000000 + -1 -1 1 1 11 -0.001067 -0.000000 + -1 -1 1 2 11 -0.000059 -0.000000 + -1 -1 1 3 11 0.003255 0.000000 + -1 -1 1 4 11 0.004941 -0.000000 + -1 -1 1 5 11 0.000182 0.000000 + -1 -1 1 6 11 -0.014966 -0.000000 + -1 -1 1 7 11 0.001789 -0.000000 + -1 -1 1 8 11 -0.000117 -0.000000 + -1 -1 1 9 11 -0.001063 0.000000 + -1 -1 1 10 11 -0.005064 0.000000 + -1 -1 1 11 11 -0.004024 -0.000000 + -1 -1 1 12 11 0.001761 0.000000 + -1 -1 1 1 12 -0.000143 0.000000 + -1 -1 1 2 12 -0.002151 -0.000000 + -1 -1 1 3 12 -0.000284 0.000000 + -1 -1 1 4 12 -0.001717 -0.000000 + -1 -1 1 5 12 0.000792 -0.000000 + -1 -1 1 6 12 -0.004089 -0.000000 + -1 -1 1 7 12 -0.001063 0.000000 + -1 -1 1 8 12 0.000794 -0.000000 + -1 -1 1 9 12 0.000522 -0.000000 + -1 -1 1 10 12 0.000745 0.000000 + -1 -1 1 11 12 0.001761 0.000000 + -1 -1 1 12 12 -0.001184 0.000000 + -1 0 -1 1 1 -0.003709 0.000000 + -1 0 -1 2 1 -0.001875 0.000000 + -1 0 -1 3 1 -0.010883 0.000000 + -1 0 -1 4 1 0.000046 0.000000 + -1 0 -1 5 1 -0.000356 0.000000 + -1 0 -1 6 1 -0.007908 0.000000 + -1 0 -1 7 1 0.000182 -0.000000 + -1 0 -1 8 1 0.001251 0.000000 + -1 0 -1 9 1 0.000792 0.000000 + -1 0 -1 10 1 0.001052 -0.000000 + -1 0 -1 11 1 0.004249 0.000000 + -1 0 -1 12 1 0.001055 0.000000 + -1 0 -1 1 2 -0.001875 0.000000 + -1 0 -1 2 2 0.000971 0.000000 + -1 0 -1 3 2 -0.016089 0.000000 + -1 0 -1 4 2 0.004160 0.000000 + -1 0 -1 5 2 0.000046 -0.000000 + -1 0 -1 6 2 0.003257 0.000000 + -1 0 -1 7 2 0.004941 -0.000000 + -1 0 -1 8 2 -0.008805 -0.000000 + -1 0 -1 9 2 -0.001717 0.000000 + -1 0 -1 10 2 -0.000692 0.000000 + -1 0 -1 11 2 0.001052 -0.000000 + -1 0 -1 12 2 0.000790 0.000000 + -1 0 -1 1 3 -0.010883 -0.000000 + -1 0 -1 2 3 -0.016089 -0.000000 + -1 0 -1 3 3 -0.005433 -0.000000 + -1 0 -1 4 3 0.003257 -0.000000 + -1 0 -1 5 3 -0.007908 -0.000000 + -1 0 -1 6 3 -0.001138 0.000000 + -1 0 -1 7 3 -0.014966 -0.000000 + -1 0 -1 8 3 -0.003121 0.000000 + -1 0 -1 9 3 -0.004089 0.000000 + -1 0 -1 10 3 -0.000790 0.000000 + -1 0 -1 11 3 -0.001055 0.000000 + -1 0 -1 12 3 0.001687 -0.000000 + -1 0 -1 1 4 -0.001355 0.000000 + -1 0 -1 2 4 0.006074 0.000000 + -1 0 -1 3 4 0.008388 0.000000 + -1 0 -1 4 4 0.005370 0.000000 + -1 0 -1 5 4 -0.002479 -0.000000 + -1 0 -1 6 4 -0.013477 -0.000000 + -1 0 -1 7 4 -0.021525 0.000000 + -1 0 -1 8 4 -0.023372 -0.000000 + -1 0 -1 9 4 -0.008426 0.000000 + -1 0 -1 10 4 -0.004057 -0.000000 + -1 0 -1 11 4 -0.003898 -0.000000 + -1 0 -1 12 4 -0.005418 -0.000000 + -1 0 -1 1 5 -0.001701 0.000000 + -1 0 -1 2 5 -0.001355 -0.000000 + -1 0 -1 3 5 0.002485 0.000000 + -1 0 -1 4 5 -0.002479 -0.000000 + -1 0 -1 5 5 -0.002576 -0.000000 + -1 0 -1 6 5 0.012014 0.000000 + -1 0 -1 7 5 0.020930 0.000000 + -1 0 -1 8 5 0.053346 0.000000 + -1 0 -1 9 5 -0.003970 0.000000 + -1 0 -1 10 5 -0.000661 0.000000 + -1 0 -1 11 5 0.000656 0.000000 + -1 0 -1 12 5 -0.005132 0.000000 + -1 0 -1 1 6 0.002485 -0.000000 + -1 0 -1 2 6 0.008388 -0.000000 + -1 0 -1 3 6 -0.009679 -0.000000 + -1 0 -1 4 6 -0.013477 0.000000 + -1 0 -1 5 6 0.012014 -0.000000 + -1 0 -1 6 6 -0.011804 0.000000 + -1 0 -1 7 6 -0.002735 -0.000000 + -1 0 -1 8 6 0.001648 0.000000 + -1 0 -1 9 6 0.001823 -0.000000 + -1 0 -1 10 6 0.002825 -0.000000 + -1 0 -1 11 6 0.002035 -0.000000 + -1 0 -1 12 6 0.003373 -0.000000 + -1 0 -1 1 7 -0.001131 0.000000 + -1 0 -1 2 7 0.000572 -0.000000 + -1 0 -1 3 7 -0.000060 -0.000000 + -1 0 -1 4 7 0.001052 -0.000000 + -1 0 -1 5 7 0.004249 0.000000 + -1 0 -1 6 7 -0.001055 0.000000 + -1 0 -1 7 7 -0.003709 -0.000000 + -1 0 -1 8 7 -0.001875 0.000000 + -1 0 -1 9 7 0.010883 -0.000000 + -1 0 -1 10 7 0.000046 0.000000 + -1 0 -1 11 7 -0.000356 0.000000 + -1 0 -1 12 7 0.007908 -0.000000 + -1 0 -1 1 8 0.000633 0.000000 + -1 0 -1 2 8 -0.000480 -0.000000 + -1 0 -1 3 8 -0.002537 -0.000000 + -1 0 -1 4 8 -0.000692 0.000000 + -1 0 -1 5 8 0.001052 0.000000 + -1 0 -1 6 8 -0.000790 0.000000 + -1 0 -1 7 8 -0.001875 0.000000 + -1 0 -1 8 8 0.000971 0.000000 + -1 0 -1 9 8 0.016089 -0.000000 + -1 0 -1 10 8 0.004160 -0.000000 + -1 0 -1 11 8 0.000046 -0.000000 + -1 0 -1 12 8 -0.003257 -0.000000 + -1 0 -1 1 9 0.000561 -0.000000 + -1 0 -1 2 9 -0.000746 -0.000000 + -1 0 -1 3 9 0.002086 0.000000 + -1 0 -1 4 9 0.000790 0.000000 + -1 0 -1 5 9 0.001055 -0.000000 + -1 0 -1 6 9 0.001687 -0.000000 + -1 0 -1 7 9 0.010883 0.000000 + -1 0 -1 8 9 0.016089 0.000000 + -1 0 -1 9 9 -0.005433 0.000000 + -1 0 -1 10 9 -0.003257 0.000000 + -1 0 -1 11 9 0.007908 0.000000 + -1 0 -1 12 9 -0.001138 0.000000 + -1 0 -1 1 10 -0.021525 -0.000000 + -1 0 -1 2 10 -0.023372 -0.000000 + -1 0 -1 3 10 0.008426 -0.000000 + -1 0 -1 4 10 -0.008805 0.000000 + -1 0 -1 5 10 0.001251 -0.000000 + -1 0 -1 6 10 -0.003121 -0.000000 + -1 0 -1 7 10 0.131177 -0.000000 + -1 0 -1 8 10 -0.114958 0.000000 + -1 0 -1 9 10 0.031897 0.000000 + -1 0 -1 10 10 0.005370 0.000000 + -1 0 -1 11 10 -0.002479 0.000000 + -1 0 -1 12 10 0.013477 0.000000 + -1 0 -1 1 11 0.020930 0.000000 + -1 0 -1 2 11 0.053346 0.000000 + -1 0 -1 3 11 0.003970 -0.000000 + -1 0 -1 4 11 0.004941 -0.000000 + -1 0 -1 5 11 0.000182 0.000000 + -1 0 -1 6 11 -0.014966 0.000000 + -1 0 -1 7 11 0.117955 -0.000000 + -1 0 -1 8 11 -0.029678 -0.000000 + -1 0 -1 9 11 0.021868 -0.000000 + -1 0 -1 10 11 -0.002479 -0.000000 + -1 0 -1 11 11 -0.002576 0.000000 + -1 0 -1 12 11 -0.012014 -0.000000 + -1 0 -1 1 12 0.002735 -0.000000 + -1 0 -1 2 12 -0.001648 -0.000000 + -1 0 -1 3 12 0.001823 -0.000000 + -1 0 -1 4 12 -0.001717 -0.000000 + -1 0 -1 5 12 0.000792 -0.000000 + -1 0 -1 6 12 -0.004089 -0.000000 + -1 0 -1 7 12 0.042312 -0.000000 + -1 0 -1 8 12 -0.080588 0.000000 + -1 0 -1 9 12 -0.191389 -0.000000 + -1 0 -1 10 12 0.013477 -0.000000 + -1 0 -1 11 12 -0.012014 0.000000 + -1 0 -1 12 12 -0.011804 -0.000000 + -1 0 0 1 1 0.001945 0.000000 + -1 0 0 2 1 0.005620 0.000000 + -1 0 0 3 1 0.009668 0.000000 + -1 0 0 4 1 -0.029678 0.000000 + -1 0 0 5 1 0.117955 0.000000 + -1 0 0 6 1 -0.021868 0.000000 + -1 0 0 7 1 -0.177076 0.000000 + -1 0 0 8 1 0.021015 -0.000000 + -1 0 0 9 1 0.019597 -0.000000 + -1 0 0 10 1 0.001463 -0.000000 + -1 0 0 11 1 0.005262 -0.000000 + -1 0 0 12 1 0.004782 -0.000000 + -1 0 0 1 2 0.005620 -0.000000 + -1 0 0 2 2 -0.000637 -0.000000 + -1 0 0 3 2 0.014431 0.000000 + -1 0 0 4 2 -0.114958 0.000000 + -1 0 0 5 2 0.131177 -0.000000 + -1 0 0 6 2 -0.031897 0.000000 + -1 0 0 7 2 0.021015 -0.000000 + -1 0 0 8 2 -0.223461 -0.000000 + -1 0 0 9 2 0.045911 0.000000 + -1 0 0 10 2 0.002999 -0.000000 + -1 0 0 11 2 0.001463 0.000000 + -1 0 0 12 2 -0.000263 0.000000 + -1 0 0 1 3 0.009668 -0.000000 + -1 0 0 2 3 0.014431 -0.000000 + -1 0 0 3 3 -0.073208 -0.000000 + -1 0 0 4 3 0.080588 -0.000000 + -1 0 0 5 3 -0.042312 -0.000000 + -1 0 0 6 3 -0.191389 0.000000 + -1 0 0 7 3 -0.019597 -0.000000 + -1 0 0 8 3 -0.045911 -0.000000 + -1 0 0 9 3 -0.039538 -0.000000 + -1 0 0 10 3 0.000263 -0.000000 + -1 0 0 11 3 -0.004782 -0.000000 + -1 0 0 12 3 -0.004078 -0.000000 + -1 0 0 1 4 -0.001355 0.000000 + -1 0 0 2 4 0.006074 0.000000 + -1 0 0 3 4 0.008388 0.000000 + -1 0 0 4 4 -0.000637 0.000000 + -1 0 0 5 4 0.005620 0.000000 + -1 0 0 6 4 0.014431 0.000000 + -1 0 0 7 4 0.042521 -0.000000 + -1 0 0 8 4 -0.023064 0.000000 + -1 0 0 9 4 -0.003338 0.000000 + -1 0 0 10 4 -0.001053 0.000000 + -1 0 0 11 4 0.001885 0.000000 + -1 0 0 12 4 -0.012679 0.000000 + -1 0 0 1 5 -0.001701 0.000000 + -1 0 0 2 5 -0.001355 -0.000000 + -1 0 0 3 5 0.002485 0.000000 + -1 0 0 4 5 0.005620 -0.000000 + -1 0 0 5 5 0.001945 -0.000000 + -1 0 0 6 5 0.009668 0.000000 + -1 0 0 7 5 0.036873 -0.000000 + -1 0 0 8 5 -0.018379 0.000000 + -1 0 0 9 5 0.012364 0.000000 + -1 0 0 10 5 -0.008855 0.000000 + -1 0 0 11 5 -0.009884 -0.000000 + -1 0 0 12 5 0.016241 0.000000 + -1 0 0 1 6 0.002485 -0.000000 + -1 0 0 2 6 0.008388 -0.000000 + -1 0 0 3 6 -0.009679 -0.000000 + -1 0 0 4 6 0.014431 0.000000 + -1 0 0 5 6 0.009668 -0.000000 + -1 0 0 6 6 -0.073208 0.000000 + -1 0 0 7 6 0.001922 0.000000 + -1 0 0 8 6 -0.002867 0.000000 + -1 0 0 9 6 0.001533 -0.000000 + -1 0 0 10 6 -0.005382 0.000000 + -1 0 0 11 6 -0.003898 0.000000 + -1 0 0 12 6 -0.006667 0.000000 + -1 0 0 1 7 -0.009884 -0.000000 + -1 0 0 2 7 -0.008855 -0.000000 + -1 0 0 3 7 -0.016241 -0.000000 + -1 0 0 4 7 0.001463 0.000000 + -1 0 0 5 7 0.005262 0.000000 + -1 0 0 6 7 -0.004782 0.000000 + -1 0 0 7 7 0.001945 0.000000 + -1 0 0 8 7 0.005620 0.000000 + -1 0 0 9 7 -0.009668 -0.000000 + -1 0 0 10 7 0.131177 0.000000 + -1 0 0 11 7 0.117955 0.000000 + -1 0 0 12 7 0.042312 0.000000 + -1 0 0 1 8 0.001885 -0.000000 + -1 0 0 2 8 -0.001053 0.000000 + -1 0 0 3 8 0.012679 -0.000000 + -1 0 0 4 8 0.002999 -0.000000 + -1 0 0 5 8 0.001463 -0.000000 + -1 0 0 6 8 0.000263 -0.000000 + -1 0 0 7 8 0.005620 -0.000000 + -1 0 0 8 8 -0.000637 0.000000 + -1 0 0 9 8 -0.014431 -0.000000 + -1 0 0 10 8 -0.114958 -0.000000 + -1 0 0 11 8 -0.029678 0.000000 + -1 0 0 12 8 -0.080588 -0.000000 + -1 0 0 1 9 0.003898 -0.000000 + -1 0 0 2 9 0.005382 -0.000000 + -1 0 0 3 9 -0.006667 0.000000 + -1 0 0 4 9 -0.000263 0.000000 + -1 0 0 5 9 0.004782 0.000000 + -1 0 0 6 9 -0.004078 0.000000 + -1 0 0 7 9 -0.009668 0.000000 + -1 0 0 8 9 -0.014431 0.000000 + -1 0 0 9 9 -0.073208 -0.000000 + -1 0 0 10 9 0.031897 -0.000000 + -1 0 0 11 9 0.021868 0.000000 + -1 0 0 12 9 -0.191389 0.000000 + -1 0 0 1 10 0.042521 -0.000000 + -1 0 0 2 10 -0.023064 0.000000 + -1 0 0 3 10 0.003338 -0.000000 + -1 0 0 4 10 -0.223461 0.000000 + -1 0 0 5 10 0.021015 -0.000000 + -1 0 0 6 10 -0.045911 0.000000 + -1 0 0 7 10 -0.029678 0.000000 + -1 0 0 8 10 -0.114958 -0.000000 + -1 0 0 9 10 -0.080588 0.000000 + -1 0 0 10 10 -0.000637 -0.000000 + -1 0 0 11 10 0.005620 0.000000 + -1 0 0 12 10 -0.014431 -0.000000 + -1 0 0 1 11 0.036873 -0.000000 + -1 0 0 2 11 -0.018379 -0.000000 + -1 0 0 3 11 -0.012364 -0.000000 + -1 0 0 4 11 0.021015 0.000000 + -1 0 0 5 11 -0.177076 -0.000000 + -1 0 0 6 11 -0.019597 0.000000 + -1 0 0 7 11 0.117955 0.000000 + -1 0 0 8 11 0.131177 0.000000 + -1 0 0 9 11 0.042312 0.000000 + -1 0 0 10 11 0.005620 -0.000000 + -1 0 0 11 11 0.001945 -0.000000 + -1 0 0 12 11 -0.009668 -0.000000 + -1 0 0 1 12 -0.001922 -0.000000 + -1 0 0 2 12 0.002867 0.000000 + -1 0 0 3 12 0.001533 0.000000 + -1 0 0 4 12 0.045911 0.000000 + -1 0 0 5 12 0.019597 0.000000 + -1 0 0 6 12 -0.039538 -0.000000 + -1 0 0 7 12 0.021868 -0.000000 + -1 0 0 8 12 0.031897 0.000000 + -1 0 0 9 12 -0.191389 -0.000000 + -1 0 0 10 12 -0.014431 0.000000 + -1 0 0 11 12 -0.009668 0.000000 + -1 0 0 12 12 -0.073208 0.000000 + -1 0 1 1 1 -0.002576 0.000000 + -1 0 1 2 1 -0.002479 -0.000000 + -1 0 1 3 1 0.012014 0.000000 + -1 0 1 4 1 0.131177 0.000000 + -1 0 1 5 1 0.117955 0.000000 + -1 0 1 6 1 -0.042312 0.000000 + -1 0 1 7 1 0.000182 -0.000000 + -1 0 1 8 1 0.004941 0.000000 + -1 0 1 9 1 0.014966 0.000000 + -1 0 1 10 1 -0.002409 0.000000 + -1 0 1 11 1 -0.000864 -0.000000 + -1 0 1 12 1 -0.000583 -0.000000 + -1 0 1 1 2 -0.002479 0.000000 + -1 0 1 2 2 0.005370 -0.000000 + -1 0 1 3 2 -0.013477 -0.000000 + -1 0 1 4 2 -0.114958 0.000000 + -1 0 1 5 2 -0.029678 0.000000 + -1 0 1 6 2 0.080588 0.000000 + -1 0 1 7 2 0.001251 -0.000000 + -1 0 1 8 2 -0.008805 -0.000000 + -1 0 1 9 2 0.003121 0.000000 + -1 0 1 10 2 -0.003521 -0.000000 + -1 0 1 11 2 -0.002409 -0.000000 + -1 0 1 12 2 -0.003296 -0.000000 + -1 0 1 1 3 0.012014 -0.000000 + -1 0 1 2 3 -0.013477 -0.000000 + -1 0 1 3 3 -0.011804 -0.000000 + -1 0 1 4 3 -0.031897 0.000000 + -1 0 1 5 3 -0.021868 -0.000000 + -1 0 1 6 3 -0.191389 0.000000 + -1 0 1 7 3 -0.000792 -0.000000 + -1 0 1 8 3 0.001717 0.000000 + -1 0 1 9 3 -0.004089 -0.000000 + -1 0 1 10 3 0.003296 -0.000000 + -1 0 1 11 3 0.000583 -0.000000 + -1 0 1 12 3 -0.002678 0.000000 + -1 0 1 1 4 -0.002049 0.000000 + -1 0 1 2 4 0.001565 -0.000000 + -1 0 1 3 4 0.011447 -0.000000 + -1 0 1 4 4 0.000971 0.000000 + -1 0 1 5 4 -0.001875 -0.000000 + -1 0 1 6 4 -0.016089 0.000000 + -1 0 1 7 4 -0.000059 -0.000000 + -1 0 1 8 4 -0.000289 -0.000000 + -1 0 1 9 4 -0.002151 -0.000000 + -1 0 1 10 4 -0.000480 0.000000 + -1 0 1 11 4 0.000633 0.000000 + -1 0 1 12 4 0.002537 0.000000 + -1 0 1 1 5 -0.007888 0.000000 + -1 0 1 2 5 -0.002049 0.000000 + -1 0 1 3 5 0.000537 0.000000 + -1 0 1 4 5 -0.001875 0.000000 + -1 0 1 5 5 -0.003709 -0.000000 + -1 0 1 6 5 -0.010883 0.000000 + -1 0 1 7 5 -0.001067 0.000000 + -1 0 1 8 5 -0.000808 0.000000 + -1 0 1 9 5 -0.000143 -0.000000 + -1 0 1 10 5 0.000572 -0.000000 + -1 0 1 11 5 -0.001131 -0.000000 + -1 0 1 12 5 0.000060 0.000000 + -1 0 1 1 6 0.000537 0.000000 + -1 0 1 2 6 0.011447 0.000000 + -1 0 1 3 6 0.017130 -0.000000 + -1 0 1 4 6 -0.016089 -0.000000 + -1 0 1 5 6 -0.010883 -0.000000 + -1 0 1 6 6 -0.005433 -0.000000 + -1 0 1 7 6 0.003255 0.000000 + -1 0 1 8 6 -0.004567 0.000000 + -1 0 1 9 6 -0.000284 -0.000000 + -1 0 1 10 6 0.000746 0.000000 + -1 0 1 11 6 -0.000561 -0.000000 + -1 0 1 12 6 0.002086 0.000000 + -1 0 1 1 7 0.000656 0.000000 + -1 0 1 2 7 -0.000661 -0.000000 + -1 0 1 3 7 0.005132 0.000000 + -1 0 1 4 7 -0.002409 -0.000000 + -1 0 1 5 7 -0.000864 -0.000000 + -1 0 1 6 7 0.000583 0.000000 + -1 0 1 7 7 -0.002576 0.000000 + -1 0 1 8 7 -0.002479 -0.000000 + -1 0 1 9 7 -0.012014 -0.000000 + -1 0 1 10 7 -0.029678 -0.000000 + -1 0 1 11 7 0.117955 -0.000000 + -1 0 1 12 7 0.021868 0.000000 + -1 0 1 1 8 -0.003898 -0.000000 + -1 0 1 2 8 -0.004057 -0.000000 + -1 0 1 3 8 0.005418 0.000000 + -1 0 1 4 8 -0.003521 0.000000 + -1 0 1 5 8 -0.002409 0.000000 + -1 0 1 6 8 0.003296 0.000000 + -1 0 1 7 8 -0.002479 0.000000 + -1 0 1 8 8 0.005370 -0.000000 + -1 0 1 9 8 0.013477 0.000000 + -1 0 1 10 8 -0.114958 0.000000 + -1 0 1 11 8 0.131177 -0.000000 + -1 0 1 12 8 0.031897 -0.000000 + -1 0 1 1 9 -0.002035 -0.000000 + -1 0 1 2 9 -0.002825 0.000000 + -1 0 1 3 9 0.003373 -0.000000 + -1 0 1 4 9 -0.003296 -0.000000 + -1 0 1 5 9 -0.000583 0.000000 + -1 0 1 6 9 -0.002678 -0.000000 + -1 0 1 7 9 -0.012014 0.000000 + -1 0 1 8 9 0.013477 -0.000000 + -1 0 1 9 9 -0.011804 -0.000000 + -1 0 1 10 9 -0.080588 -0.000000 + -1 0 1 11 9 0.042312 -0.000000 + -1 0 1 12 9 -0.191389 0.000000 + -1 0 1 1 10 -0.000059 -0.000000 + -1 0 1 2 10 -0.000289 0.000000 + -1 0 1 3 10 0.002151 0.000000 + -1 0 1 4 10 -0.008805 0.000000 + -1 0 1 5 10 0.004941 0.000000 + -1 0 1 6 10 0.001717 -0.000000 + -1 0 1 7 10 0.000046 -0.000000 + -1 0 1 8 10 0.004160 0.000000 + -1 0 1 9 10 -0.003257 -0.000000 + -1 0 1 10 10 0.000971 0.000000 + -1 0 1 11 10 -0.001875 -0.000000 + -1 0 1 12 10 0.016089 -0.000000 + -1 0 1 1 11 -0.001067 -0.000000 + -1 0 1 2 11 -0.000808 -0.000000 + -1 0 1 3 11 0.000143 -0.000000 + -1 0 1 4 11 0.001251 -0.000000 + -1 0 1 5 11 0.000182 -0.000000 + -1 0 1 6 11 -0.000792 0.000000 + -1 0 1 7 11 -0.000356 0.000000 + -1 0 1 8 11 0.000046 -0.000000 + -1 0 1 9 11 0.007908 -0.000000 + -1 0 1 10 11 -0.001875 0.000000 + -1 0 1 11 11 -0.003709 -0.000000 + -1 0 1 12 11 0.010883 -0.000000 + -1 0 1 1 12 -0.003255 -0.000000 + -1 0 1 2 12 0.004567 -0.000000 + -1 0 1 3 12 -0.000284 -0.000000 + -1 0 1 4 12 0.003121 -0.000000 + -1 0 1 5 12 0.014966 -0.000000 + -1 0 1 6 12 -0.004089 0.000000 + -1 0 1 7 12 0.007908 0.000000 + -1 0 1 8 12 -0.003257 0.000000 + -1 0 1 9 12 -0.001138 0.000000 + -1 0 1 10 12 0.016089 0.000000 + -1 0 1 11 12 0.010883 0.000000 + -1 0 1 12 12 -0.005433 0.000000 + -1 1 -1 1 1 -0.004024 -0.000000 + -1 1 -1 2 1 -0.005064 0.000000 + -1 1 -1 3 1 -0.001761 0.000000 + -1 1 -1 4 1 -0.000117 0.000000 + -1 1 -1 5 1 0.001789 0.000000 + -1 1 -1 6 1 0.001063 0.000000 + -1 1 -1 7 1 0.000182 0.000000 + -1 1 -1 8 1 0.004941 0.000000 + -1 1 -1 9 1 0.014966 0.000000 + -1 1 -1 10 1 0.001052 0.000000 + -1 1 -1 11 1 0.004249 0.000000 + -1 1 -1 12 1 0.001055 -0.000000 + -1 1 -1 1 2 -0.005064 0.000000 + -1 1 -1 2 2 -0.005524 -0.000000 + -1 1 -1 3 2 -0.000745 0.000000 + -1 1 -1 4 2 -0.002085 0.000000 + -1 1 -1 5 2 -0.000117 0.000000 + -1 1 -1 6 2 -0.000794 -0.000000 + -1 1 -1 7 2 0.001251 -0.000000 + -1 1 -1 8 2 -0.008805 -0.000000 + -1 1 -1 9 2 0.003121 0.000000 + -1 1 -1 10 2 -0.000692 -0.000000 + -1 1 -1 11 2 0.001052 -0.000000 + -1 1 -1 12 2 0.000790 0.000000 + -1 1 -1 1 3 -0.001761 -0.000000 + -1 1 -1 2 3 -0.000745 -0.000000 + -1 1 -1 3 3 -0.001184 -0.000000 + -1 1 -1 4 3 -0.000794 -0.000000 + -1 1 -1 5 3 0.001063 0.000000 + -1 1 -1 6 3 0.000522 0.000000 + -1 1 -1 7 3 -0.000792 0.000000 + -1 1 -1 8 3 0.001717 0.000000 + -1 1 -1 9 3 -0.004089 -0.000000 + -1 1 -1 10 3 -0.000790 0.000000 + -1 1 -1 11 3 -0.001055 -0.000000 + -1 1 -1 12 3 0.001687 -0.000000 + -1 1 -1 1 4 0.001100 0.000000 + -1 1 -1 2 4 -0.001519 -0.000000 + -1 1 -1 3 4 0.000143 0.000000 + -1 1 -1 4 4 -0.002725 0.000000 + -1 1 -1 5 4 0.003360 -0.000000 + -1 1 -1 6 4 0.002175 0.000000 + -1 1 -1 7 4 -0.018379 0.000000 + -1 1 -1 8 4 -0.023064 -0.000000 + -1 1 -1 9 4 0.002867 0.000000 + -1 1 -1 10 4 -0.004057 -0.000000 + -1 1 -1 11 4 -0.000661 -0.000000 + -1 1 -1 12 4 -0.002825 0.000000 + -1 1 -1 1 5 0.003927 0.000000 + -1 1 -1 2 5 0.001100 -0.000000 + -1 1 -1 3 5 0.001020 0.000000 + -1 1 -1 4 5 0.003360 -0.000000 + -1 1 -1 5 5 -0.006576 0.000000 + -1 1 -1 6 5 0.000661 0.000000 + -1 1 -1 7 5 0.036873 0.000000 + -1 1 -1 8 5 0.042521 0.000000 + -1 1 -1 9 5 -0.001922 0.000000 + -1 1 -1 10 5 -0.003898 0.000000 + -1 1 -1 11 5 0.000656 -0.000000 + -1 1 -1 12 5 -0.002035 -0.000000 + -1 1 -1 1 6 0.001020 -0.000000 + -1 1 -1 2 6 0.000143 -0.000000 + -1 1 -1 3 6 0.000617 0.000000 + -1 1 -1 4 6 0.002175 -0.000000 + -1 1 -1 5 6 0.000661 -0.000000 + -1 1 -1 6 6 -0.001782 0.000000 + -1 1 -1 7 6 -0.012364 0.000000 + -1 1 -1 8 6 0.003338 0.000000 + -1 1 -1 9 6 0.001533 -0.000000 + -1 1 -1 10 6 0.005418 -0.000000 + -1 1 -1 11 6 0.005132 0.000000 + -1 1 -1 12 6 0.003373 -0.000000 + -1 1 -1 1 7 -0.001131 -0.000000 + -1 1 -1 2 7 0.000633 -0.000000 + -1 1 -1 3 7 -0.000561 -0.000000 + -1 1 -1 4 7 0.001052 -0.000000 + -1 1 -1 5 7 0.004249 0.000000 + -1 1 -1 6 7 -0.001055 0.000000 + -1 1 -1 7 7 -0.004024 -0.000000 + -1 1 -1 8 7 -0.005064 0.000000 + -1 1 -1 9 7 0.001761 -0.000000 + -1 1 -1 10 7 -0.000117 0.000000 + -1 1 -1 11 7 0.001789 0.000000 + -1 1 -1 12 7 -0.001063 -0.000000 + -1 1 -1 1 8 0.000572 0.000000 + -1 1 -1 2 8 -0.000480 -0.000000 + -1 1 -1 3 8 0.000746 -0.000000 + -1 1 -1 4 8 -0.000692 0.000000 + -1 1 -1 5 8 0.001052 0.000000 + -1 1 -1 6 8 -0.000790 0.000000 + -1 1 -1 7 8 -0.005064 0.000000 + -1 1 -1 8 8 -0.005524 -0.000000 + -1 1 -1 9 8 0.000745 -0.000000 + -1 1 -1 10 8 -0.002085 -0.000000 + -1 1 -1 11 8 -0.000117 0.000000 + -1 1 -1 12 8 0.000794 0.000000 + -1 1 -1 1 9 0.000060 -0.000000 + -1 1 -1 2 9 0.002537 0.000000 + -1 1 -1 3 9 0.002086 -0.000000 + -1 1 -1 4 9 0.000790 -0.000000 + -1 1 -1 5 9 0.001055 -0.000000 + -1 1 -1 6 9 0.001687 -0.000000 + -1 1 -1 7 9 0.001761 0.000000 + -1 1 -1 8 9 0.000745 0.000000 + -1 1 -1 9 9 -0.001184 -0.000000 + -1 1 -1 10 9 0.000794 0.000000 + -1 1 -1 11 9 -0.001063 -0.000000 + -1 1 -1 12 9 0.000522 -0.000000 + -1 1 -1 1 10 -0.018379 -0.000000 + -1 1 -1 2 10 -0.023064 -0.000000 + -1 1 -1 3 10 -0.002867 -0.000000 + -1 1 -1 4 10 -0.008805 0.000000 + -1 1 -1 5 10 0.004941 0.000000 + -1 1 -1 6 10 0.001717 -0.000000 + -1 1 -1 7 10 0.011154 -0.000000 + -1 1 -1 8 10 -0.004731 0.000000 + -1 1 -1 9 10 -0.004392 -0.000000 + -1 1 -1 10 10 -0.002725 0.000000 + -1 1 -1 11 10 0.003360 0.000000 + -1 1 -1 12 10 -0.002175 -0.000000 + -1 1 -1 1 11 0.036873 0.000000 + -1 1 -1 2 11 0.042521 0.000000 + -1 1 -1 3 11 0.001922 -0.000000 + -1 1 -1 4 11 0.001251 -0.000000 + -1 1 -1 5 11 0.000182 0.000000 + -1 1 -1 6 11 -0.000792 -0.000000 + -1 1 -1 7 11 -0.003540 0.000000 + -1 1 -1 8 11 -0.010651 -0.000000 + -1 1 -1 9 11 -0.000453 -0.000000 + -1 1 -1 10 11 0.003360 -0.000000 + -1 1 -1 11 11 -0.006576 0.000000 + -1 1 -1 12 11 -0.000661 -0.000000 + -1 1 -1 1 12 0.012364 -0.000000 + -1 1 -1 2 12 -0.003338 -0.000000 + -1 1 -1 3 12 0.001533 -0.000000 + -1 1 -1 4 12 0.003121 -0.000000 + -1 1 -1 5 12 0.014966 -0.000000 + -1 1 -1 6 12 -0.004089 0.000000 + -1 1 -1 7 12 0.003444 0.000000 + -1 1 -1 8 12 0.000487 0.000000 + -1 1 -1 9 12 -0.000782 -0.000000 + -1 1 -1 10 12 -0.002175 0.000000 + -1 1 -1 11 12 -0.000661 0.000000 + -1 1 -1 12 12 -0.001782 0.000000 + -1 1 0 1 1 -0.006750 -0.000000 + -1 1 0 2 1 -0.003264 -0.000000 + -1 1 0 3 1 -0.003360 -0.000000 + -1 1 0 4 1 -0.010651 -0.000000 + -1 1 0 5 1 -0.003540 -0.000000 + -1 1 0 6 1 0.000453 0.000000 + -1 1 0 7 1 -0.177076 0.000000 + -1 1 0 8 1 0.021015 -0.000000 + -1 1 0 9 1 0.019597 -0.000000 + -1 1 0 10 1 -0.002409 -0.000000 + -1 1 0 11 1 -0.000864 -0.000000 + -1 1 0 12 1 -0.000583 -0.000000 + -1 1 0 1 2 -0.003264 -0.000000 + -1 1 0 2 2 0.003393 -0.000000 + -1 1 0 3 2 -0.003295 -0.000000 + -1 1 0 4 2 -0.004731 -0.000000 + -1 1 0 5 2 0.011154 -0.000000 + -1 1 0 6 2 0.004392 0.000000 + -1 1 0 7 2 0.021015 -0.000000 + -1 1 0 8 2 -0.223461 -0.000000 + -1 1 0 9 2 0.045911 0.000000 + -1 1 0 10 2 -0.003521 -0.000000 + -1 1 0 11 2 -0.002409 0.000000 + -1 1 0 12 2 -0.003296 0.000000 + -1 1 0 1 3 -0.003360 -0.000000 + -1 1 0 2 3 -0.003295 0.000000 + -1 1 0 3 3 0.000512 0.000000 + -1 1 0 4 3 -0.000487 -0.000000 + -1 1 0 5 3 -0.003444 -0.000000 + -1 1 0 6 3 -0.000782 0.000000 + -1 1 0 7 3 -0.019597 0.000000 + -1 1 0 8 3 -0.045911 -0.000000 + -1 1 0 9 3 -0.039538 -0.000000 + -1 1 0 10 3 0.003296 -0.000000 + -1 1 0 11 3 0.000583 -0.000000 + -1 1 0 12 3 -0.002678 -0.000000 + -1 1 0 1 4 0.001100 0.000000 + -1 1 0 2 4 -0.001519 -0.000000 + -1 1 0 3 4 0.000143 0.000000 + -1 1 0 4 4 0.003393 0.000000 + -1 1 0 5 4 -0.003264 0.000000 + -1 1 0 6 4 -0.003295 0.000000 + -1 1 0 7 4 0.053346 -0.000000 + -1 1 0 8 4 -0.023372 0.000000 + -1 1 0 9 4 -0.001648 0.000000 + -1 1 0 10 4 -0.001053 -0.000000 + -1 1 0 11 4 -0.008855 0.000000 + -1 1 0 12 4 0.005382 0.000000 + -1 1 0 1 5 0.003927 -0.000000 + -1 1 0 2 5 0.001100 -0.000000 + -1 1 0 3 5 0.001020 0.000000 + -1 1 0 4 5 -0.003264 0.000000 + -1 1 0 5 5 -0.006750 -0.000000 + -1 1 0 6 5 -0.003360 0.000000 + -1 1 0 7 5 0.020930 -0.000000 + -1 1 0 8 5 -0.021525 0.000000 + -1 1 0 9 5 0.002735 0.000000 + -1 1 0 10 5 0.001885 0.000000 + -1 1 0 11 5 -0.009884 0.000000 + -1 1 0 12 5 0.003898 0.000000 + -1 1 0 1 6 0.001020 -0.000000 + -1 1 0 2 6 0.000143 -0.000000 + -1 1 0 3 6 0.000617 0.000000 + -1 1 0 4 6 -0.003295 -0.000000 + -1 1 0 5 6 -0.003360 -0.000000 + -1 1 0 6 6 0.000512 -0.000000 + -1 1 0 7 6 0.003970 0.000000 + -1 1 0 8 6 0.008426 0.000000 + -1 1 0 9 6 0.001823 -0.000000 + -1 1 0 10 6 0.012679 0.000000 + -1 1 0 11 6 -0.016241 0.000000 + -1 1 0 12 6 -0.006667 -0.000000 + -1 1 0 1 7 -0.009884 -0.000000 + -1 1 0 2 7 0.001885 -0.000000 + -1 1 0 3 7 -0.003898 -0.000000 + -1 1 0 4 7 -0.002409 0.000000 + -1 1 0 5 7 -0.000864 0.000000 + -1 1 0 6 7 0.000583 0.000000 + -1 1 0 7 7 -0.006750 0.000000 + -1 1 0 8 7 -0.003264 0.000000 + -1 1 0 9 7 0.003360 -0.000000 + -1 1 0 10 7 0.011154 0.000000 + -1 1 0 11 7 -0.003540 -0.000000 + -1 1 0 12 7 0.003444 -0.000000 + -1 1 0 1 8 -0.008855 -0.000000 + -1 1 0 2 8 -0.001053 0.000000 + -1 1 0 3 8 -0.005382 -0.000000 + -1 1 0 4 8 -0.003521 0.000000 + -1 1 0 5 8 -0.002409 0.000000 + -1 1 0 6 8 0.003296 -0.000000 + -1 1 0 7 8 -0.003264 0.000000 + -1 1 0 8 8 0.003393 0.000000 + -1 1 0 9 8 0.003295 0.000000 + -1 1 0 10 8 -0.004731 -0.000000 + -1 1 0 11 8 -0.010651 0.000000 + -1 1 0 12 8 0.000487 -0.000000 + -1 1 0 1 9 0.016241 -0.000000 + -1 1 0 2 9 -0.012679 -0.000000 + -1 1 0 3 9 -0.006667 0.000000 + -1 1 0 4 9 -0.003296 0.000000 + -1 1 0 5 9 -0.000583 0.000000 + -1 1 0 6 9 -0.002678 -0.000000 + -1 1 0 7 9 0.003360 0.000000 + -1 1 0 8 9 0.003295 -0.000000 + -1 1 0 9 9 0.000512 -0.000000 + -1 1 0 10 9 -0.004392 0.000000 + -1 1 0 11 9 -0.000453 0.000000 + -1 1 0 12 9 -0.000782 0.000000 + -1 1 0 1 10 0.053346 -0.000000 + -1 1 0 2 10 -0.023372 0.000000 + -1 1 0 3 10 0.001648 -0.000000 + -1 1 0 4 10 -0.223461 0.000000 + -1 1 0 5 10 0.021015 -0.000000 + -1 1 0 6 10 -0.045911 0.000000 + -1 1 0 7 10 -0.010651 0.000000 + -1 1 0 8 10 -0.004731 0.000000 + -1 1 0 9 10 0.000487 0.000000 + -1 1 0 10 10 0.003393 -0.000000 + -1 1 0 11 10 -0.003264 -0.000000 + -1 1 0 12 10 0.003295 -0.000000 + -1 1 0 1 11 0.020930 0.000000 + -1 1 0 2 11 -0.021525 -0.000000 + -1 1 0 3 11 -0.002735 -0.000000 + -1 1 0 4 11 0.021015 0.000000 + -1 1 0 5 11 -0.177076 -0.000000 + -1 1 0 6 11 -0.019597 0.000000 + -1 1 0 7 11 -0.003540 0.000000 + -1 1 0 8 11 0.011154 0.000000 + -1 1 0 9 11 0.003444 0.000000 + -1 1 0 10 11 -0.003264 0.000000 + -1 1 0 11 11 -0.006750 -0.000000 + -1 1 0 12 11 0.003360 -0.000000 + -1 1 0 1 12 -0.003970 -0.000000 + -1 1 0 2 12 -0.008426 0.000000 + -1 1 0 3 12 0.001823 0.000000 + -1 1 0 4 12 0.045911 0.000000 + -1 1 0 5 12 0.019597 0.000000 + -1 1 0 6 12 -0.039538 0.000000 + -1 1 0 7 12 -0.000453 0.000000 + -1 1 0 8 12 -0.004392 0.000000 + -1 1 0 9 12 -0.000782 0.000000 + -1 1 0 10 12 0.003295 0.000000 + -1 1 0 11 12 0.003360 0.000000 + -1 1 0 12 12 0.000512 0.000000 + -1 1 1 1 1 -0.006576 -0.000000 + -1 1 1 2 1 0.003360 0.000000 + -1 1 1 3 1 0.000661 -0.000000 + -1 1 1 4 1 0.011154 0.000000 + -1 1 1 5 1 -0.003540 -0.000000 + -1 1 1 6 1 -0.003444 0.000000 + -1 1 1 7 1 0.000182 -0.000000 + -1 1 1 8 1 0.001251 0.000000 + -1 1 1 9 1 0.000792 -0.000000 + -1 1 1 10 1 0.001463 -0.000000 + -1 1 1 11 1 0.005262 -0.000000 + -1 1 1 12 1 0.004782 0.000000 + -1 1 1 1 2 0.003360 -0.000000 + -1 1 1 2 2 -0.002725 0.000000 + -1 1 1 3 2 0.002175 -0.000000 + -1 1 1 4 2 -0.004731 -0.000000 + -1 1 1 5 2 -0.010651 0.000000 + -1 1 1 6 2 -0.000487 0.000000 + -1 1 1 7 2 0.004941 -0.000000 + -1 1 1 8 2 -0.008805 0.000000 + -1 1 1 9 2 -0.001717 0.000000 + -1 1 1 10 2 0.002999 -0.000000 + -1 1 1 11 2 0.001463 0.000000 + -1 1 1 12 2 -0.000263 0.000000 + -1 1 1 1 3 0.000661 -0.000000 + -1 1 1 2 3 0.002175 -0.000000 + -1 1 1 3 3 -0.001782 0.000000 + -1 1 1 4 3 0.004392 -0.000000 + -1 1 1 5 3 0.000453 -0.000000 + -1 1 1 6 3 -0.000782 0.000000 + -1 1 1 7 3 -0.014966 -0.000000 + -1 1 1 8 3 -0.003121 0.000000 + -1 1 1 9 3 -0.004089 0.000000 + -1 1 1 10 3 0.000263 -0.000000 + -1 1 1 11 3 -0.004782 -0.000000 + -1 1 1 12 3 -0.004078 -0.000000 + -1 1 1 1 4 -0.000136 0.000000 + -1 1 1 2 4 -0.000701 -0.000000 + -1 1 1 3 4 -0.000218 0.000000 + -1 1 1 4 4 -0.005524 -0.000000 + -1 1 1 5 4 -0.005064 -0.000000 + -1 1 1 6 4 -0.000745 0.000000 + -1 1 1 7 4 -0.000808 -0.000000 + -1 1 1 8 4 -0.000289 -0.000000 + -1 1 1 9 4 0.004567 -0.000000 + -1 1 1 10 4 -0.000480 -0.000000 + -1 1 1 11 4 0.000572 0.000000 + -1 1 1 12 4 -0.000746 0.000000 + -1 1 1 1 5 -0.000898 -0.000000 + -1 1 1 2 5 -0.000136 0.000000 + -1 1 1 3 5 -0.000411 0.000000 + -1 1 1 4 5 -0.005064 0.000000 + -1 1 1 5 5 -0.004024 0.000000 + -1 1 1 6 5 -0.001761 0.000000 + -1 1 1 7 5 -0.001067 -0.000000 + -1 1 1 8 5 -0.000059 0.000000 + -1 1 1 9 5 -0.003255 -0.000000 + -1 1 1 10 5 0.000633 -0.000000 + -1 1 1 11 5 -0.001131 -0.000000 + -1 1 1 12 5 0.000561 -0.000000 + -1 1 1 1 6 -0.000411 0.000000 + -1 1 1 2 6 -0.000218 -0.000000 + -1 1 1 3 6 0.000726 -0.000000 + -1 1 1 4 6 -0.000745 -0.000000 + -1 1 1 5 6 -0.001761 -0.000000 + -1 1 1 6 6 -0.001184 -0.000000 + -1 1 1 7 6 0.000143 -0.000000 + -1 1 1 8 6 0.002151 0.000000 + -1 1 1 9 6 -0.000284 0.000000 + -1 1 1 10 6 -0.002537 0.000000 + -1 1 1 11 6 -0.000060 0.000000 + -1 1 1 12 6 0.002086 -0.000000 + -1 1 1 1 7 0.000656 -0.000000 + -1 1 1 2 7 -0.003898 -0.000000 + -1 1 1 3 7 0.002035 -0.000000 + -1 1 1 4 7 0.001463 -0.000000 + -1 1 1 5 7 0.005262 0.000000 + -1 1 1 6 7 -0.004782 0.000000 + -1 1 1 7 7 -0.006576 0.000000 + -1 1 1 8 7 0.003360 -0.000000 + -1 1 1 9 7 -0.000661 -0.000000 + -1 1 1 10 7 -0.010651 -0.000000 + -1 1 1 11 7 -0.003540 -0.000000 + -1 1 1 12 7 -0.000453 -0.000000 + -1 1 1 1 8 -0.000661 -0.000000 + -1 1 1 2 8 -0.004057 0.000000 + -1 1 1 3 8 0.002825 0.000000 + -1 1 1 4 8 0.002999 -0.000000 + -1 1 1 5 8 0.001463 0.000000 + -1 1 1 6 8 0.000263 -0.000000 + -1 1 1 7 8 0.003360 -0.000000 + -1 1 1 8 8 -0.002725 -0.000000 + -1 1 1 9 8 -0.002175 -0.000000 + -1 1 1 10 8 -0.004731 -0.000000 + -1 1 1 11 8 0.011154 -0.000000 + -1 1 1 12 8 -0.004392 -0.000000 + -1 1 1 1 9 -0.005132 -0.000000 + -1 1 1 2 9 -0.005418 0.000000 + -1 1 1 3 9 0.003373 -0.000000 + -1 1 1 4 9 -0.000263 -0.000000 + -1 1 1 5 9 0.004782 -0.000000 + -1 1 1 6 9 -0.004078 -0.000000 + -1 1 1 7 9 -0.000661 0.000000 + -1 1 1 8 9 -0.002175 0.000000 + -1 1 1 9 9 -0.001782 -0.000000 + -1 1 1 10 9 0.000487 -0.000000 + -1 1 1 11 9 0.003444 -0.000000 + -1 1 1 12 9 -0.000782 -0.000000 + -1 1 1 1 10 -0.000808 -0.000000 + -1 1 1 2 10 -0.000289 0.000000 + -1 1 1 3 10 -0.004567 0.000000 + -1 1 1 4 10 -0.008805 0.000000 + -1 1 1 5 10 0.001251 0.000000 + -1 1 1 6 10 -0.003121 -0.000000 + -1 1 1 7 10 -0.000117 0.000000 + -1 1 1 8 10 -0.002085 -0.000000 + -1 1 1 9 10 0.000794 -0.000000 + -1 1 1 10 10 -0.005524 -0.000000 + -1 1 1 11 10 -0.005064 -0.000000 + -1 1 1 12 10 0.000745 -0.000000 + -1 1 1 1 11 -0.001067 -0.000000 + -1 1 1 2 11 -0.000059 -0.000000 + -1 1 1 3 11 0.003255 0.000000 + -1 1 1 4 11 0.004941 -0.000000 + -1 1 1 5 11 0.000182 0.000000 + -1 1 1 6 11 -0.014966 -0.000000 + -1 1 1 7 11 0.001789 -0.000000 + -1 1 1 8 11 -0.000117 -0.000000 + -1 1 1 9 11 -0.001063 0.000000 + -1 1 1 10 11 -0.005064 0.000000 + -1 1 1 11 11 -0.004024 -0.000000 + -1 1 1 12 11 0.001761 0.000000 + -1 1 1 1 12 -0.000143 0.000000 + -1 1 1 2 12 -0.002151 -0.000000 + -1 1 1 3 12 -0.000284 0.000000 + -1 1 1 4 12 -0.001717 -0.000000 + -1 1 1 5 12 0.000792 -0.000000 + -1 1 1 6 12 -0.004089 -0.000000 + -1 1 1 7 12 -0.001063 0.000000 + -1 1 1 8 12 0.000794 -0.000000 + -1 1 1 9 12 0.000522 -0.000000 + -1 1 1 10 12 0.000745 0.000000 + -1 1 1 11 12 0.001761 0.000000 + -1 1 1 12 12 -0.001184 0.000000 + 0 -1 -1 1 1 0.001281 0.000000 + 0 -1 -1 2 1 0.000516 0.000000 + 0 -1 -1 3 1 0.000711 -0.000000 + 0 -1 -1 4 1 -0.000117 0.000000 + 0 -1 -1 5 1 0.001789 -0.000000 + 0 -1 -1 6 1 0.001063 0.000000 + 0 -1 -1 7 1 -0.001131 0.000000 + 0 -1 -1 8 1 0.000633 -0.000000 + 0 -1 -1 9 1 0.000561 0.000000 + 0 -1 -1 10 1 -0.000059 0.000000 + 0 -1 -1 11 1 -0.001067 -0.000000 + 0 -1 -1 12 1 -0.003255 -0.000000 + 0 -1 -1 1 2 0.000516 -0.000000 + 0 -1 -1 2 2 -0.005886 -0.000000 + 0 -1 -1 3 2 -0.000662 0.000000 + 0 -1 -1 4 2 -0.002085 0.000000 + 0 -1 -1 5 2 -0.000117 0.000000 + 0 -1 -1 6 2 -0.000794 -0.000000 + 0 -1 -1 7 2 0.000572 0.000000 + 0 -1 -1 8 2 -0.000480 0.000000 + 0 -1 -1 9 2 -0.000746 0.000000 + 0 -1 -1 10 2 -0.000289 0.000000 + 0 -1 -1 11 2 -0.000808 0.000000 + 0 -1 -1 12 2 0.004567 0.000000 + 0 -1 -1 1 3 0.000711 0.000000 + 0 -1 -1 2 3 -0.000662 0.000000 + 0 -1 -1 3 3 0.000793 -0.000000 + 0 -1 -1 4 3 -0.000794 -0.000000 + 0 -1 -1 5 3 0.001063 0.000000 + 0 -1 -1 6 3 0.000522 0.000000 + 0 -1 -1 7 3 -0.000060 0.000000 + 0 -1 -1 8 3 -0.002537 0.000000 + 0 -1 -1 9 3 0.002086 0.000000 + 0 -1 -1 10 3 0.002151 -0.000000 + 0 -1 -1 11 3 0.000143 0.000000 + 0 -1 -1 12 3 -0.000284 0.000000 + 0 -1 -1 1 4 -0.010651 0.000000 + 0 -1 -1 2 4 -0.004731 0.000000 + 0 -1 -1 3 4 -0.000487 0.000000 + 0 -1 -1 4 4 -0.005886 0.000000 + 0 -1 -1 5 4 0.000516 -0.000000 + 0 -1 -1 6 4 -0.000662 0.000000 + 0 -1 -1 7 4 0.042521 -0.000000 + 0 -1 -1 8 4 -0.023064 0.000000 + 0 -1 -1 9 4 -0.003338 0.000000 + 0 -1 -1 10 4 -0.000480 0.000000 + 0 -1 -1 11 4 0.000633 0.000000 + 0 -1 -1 12 4 0.002537 0.000000 + 0 -1 -1 1 5 -0.003540 0.000000 + 0 -1 -1 2 5 0.011154 0.000000 + 0 -1 -1 3 5 -0.003444 0.000000 + 0 -1 -1 4 5 0.000516 0.000000 + 0 -1 -1 5 5 0.001281 0.000000 + 0 -1 -1 6 5 0.000711 -0.000000 + 0 -1 -1 7 5 0.036873 -0.000000 + 0 -1 -1 8 5 -0.018379 -0.000000 + 0 -1 -1 9 5 0.012364 0.000000 + 0 -1 -1 10 5 0.000572 -0.000000 + 0 -1 -1 11 5 -0.001131 -0.000000 + 0 -1 -1 12 5 0.000060 -0.000000 + 0 -1 -1 1 6 0.000453 -0.000000 + 0 -1 -1 2 6 0.004392 0.000000 + 0 -1 -1 3 6 -0.000782 0.000000 + 0 -1 -1 4 6 -0.000662 -0.000000 + 0 -1 -1 5 6 0.000711 0.000000 + 0 -1 -1 6 6 0.000793 0.000000 + 0 -1 -1 7 6 0.001922 0.000000 + 0 -1 -1 8 6 -0.002867 -0.000000 + 0 -1 -1 9 6 0.001533 0.000000 + 0 -1 -1 10 6 0.000746 0.000000 + 0 -1 -1 11 6 -0.000561 0.000000 + 0 -1 -1 12 6 0.002086 -0.000000 + 0 -1 -1 1 7 0.000656 -0.000000 + 0 -1 -1 2 7 -0.000661 0.000000 + 0 -1 -1 3 7 0.005132 0.000000 + 0 -1 -1 4 7 -0.000059 0.000000 + 0 -1 -1 5 7 -0.001067 -0.000000 + 0 -1 -1 6 7 0.003255 0.000000 + 0 -1 -1 7 7 0.001281 -0.000000 + 0 -1 -1 8 7 0.000516 0.000000 + 0 -1 -1 9 7 -0.000711 0.000000 + 0 -1 -1 10 7 -0.000136 -0.000000 + 0 -1 -1 11 7 -0.000898 0.000000 + 0 -1 -1 12 7 0.000411 -0.000000 + 0 -1 -1 1 8 -0.003898 0.000000 + 0 -1 -1 2 8 -0.004057 -0.000000 + 0 -1 -1 3 8 0.005418 0.000000 + 0 -1 -1 4 8 -0.000289 -0.000000 + 0 -1 -1 5 8 -0.000808 -0.000000 + 0 -1 -1 6 8 -0.004567 -0.000000 + 0 -1 -1 7 8 0.000516 -0.000000 + 0 -1 -1 8 8 -0.005886 0.000000 + 0 -1 -1 9 8 0.000662 -0.000000 + 0 -1 -1 10 8 -0.000701 -0.000000 + 0 -1 -1 11 8 -0.000136 0.000000 + 0 -1 -1 12 8 0.000218 0.000000 + 0 -1 -1 1 9 -0.002035 -0.000000 + 0 -1 -1 2 9 -0.002825 0.000000 + 0 -1 -1 3 9 0.003373 -0.000000 + 0 -1 -1 4 9 -0.002151 0.000000 + 0 -1 -1 5 9 -0.000143 0.000000 + 0 -1 -1 6 9 -0.000284 -0.000000 + 0 -1 -1 7 9 -0.000711 0.000000 + 0 -1 -1 8 9 0.000662 0.000000 + 0 -1 -1 9 9 0.000793 0.000000 + 0 -1 -1 10 9 0.000218 -0.000000 + 0 -1 -1 11 9 0.000411 0.000000 + 0 -1 -1 12 9 0.000726 -0.000000 + 0 -1 -1 1 10 0.042521 -0.000000 + 0 -1 -1 2 10 -0.023064 0.000000 + 0 -1 -1 3 10 0.003338 -0.000000 + 0 -1 -1 4 10 -0.004057 0.000000 + 0 -1 -1 5 10 -0.000661 -0.000000 + 0 -1 -1 6 10 0.002825 0.000000 + 0 -1 -1 7 10 0.001100 0.000000 + 0 -1 -1 8 10 -0.001519 0.000000 + 0 -1 -1 9 10 -0.000143 -0.000000 + 0 -1 -1 10 10 -0.005886 -0.000000 + 0 -1 -1 11 10 0.000516 -0.000000 + 0 -1 -1 12 10 0.000662 -0.000000 + 0 -1 -1 1 11 0.036873 -0.000000 + 0 -1 -1 2 11 -0.018379 -0.000000 + 0 -1 -1 3 11 -0.012364 -0.000000 + 0 -1 -1 4 11 -0.003898 0.000000 + 0 -1 -1 5 11 0.000656 -0.000000 + 0 -1 -1 6 11 0.002035 0.000000 + 0 -1 -1 7 11 0.003927 -0.000000 + 0 -1 -1 8 11 0.001100 -0.000000 + 0 -1 -1 9 11 -0.001020 -0.000000 + 0 -1 -1 10 11 0.000516 0.000000 + 0 -1 -1 11 11 0.001281 0.000000 + 0 -1 -1 12 11 -0.000711 0.000000 + 0 -1 -1 1 12 -0.001922 -0.000000 + 0 -1 -1 2 12 0.002867 0.000000 + 0 -1 -1 3 12 0.001533 -0.000000 + 0 -1 -1 4 12 -0.005418 0.000000 + 0 -1 -1 5 12 -0.005132 -0.000000 + 0 -1 -1 6 12 0.003373 0.000000 + 0 -1 -1 7 12 -0.001020 0.000000 + 0 -1 -1 8 12 -0.000143 0.000000 + 0 -1 -1 9 12 0.000617 -0.000000 + 0 -1 -1 10 12 0.000662 0.000000 + 0 -1 -1 11 12 -0.000711 -0.000000 + 0 -1 -1 12 12 0.000793 -0.000000 + 0 -1 0 1 1 -0.033978 0.000000 + 0 -1 0 2 1 -0.011489 -0.000000 + 0 -1 0 3 1 0.002081 0.000000 + 0 -1 0 4 1 0.011154 -0.000000 + 0 -1 0 5 1 -0.003540 -0.000000 + 0 -1 0 6 1 -0.003444 0.000000 + 0 -1 0 7 1 -0.009884 0.000000 + 0 -1 0 8 1 0.001885 0.000000 + 0 -1 0 9 1 0.003898 0.000000 + 0 -1 0 10 1 -0.021525 -0.000000 + 0 -1 0 11 1 0.020930 -0.000000 + 0 -1 0 12 1 0.002735 0.000000 + 0 -1 0 1 2 -0.011489 0.000000 + 0 -1 0 2 2 0.026358 0.000000 + 0 -1 0 3 2 -0.005567 0.000000 + 0 -1 0 4 2 -0.004731 -0.000000 + 0 -1 0 5 2 -0.010651 0.000000 + 0 -1 0 6 2 -0.000487 0.000000 + 0 -1 0 7 2 -0.008855 0.000000 + 0 -1 0 8 2 -0.001053 -0.000000 + 0 -1 0 9 2 0.005382 0.000000 + 0 -1 0 10 2 -0.023372 0.000000 + 0 -1 0 11 2 0.053346 -0.000000 + 0 -1 0 12 2 -0.001648 0.000000 + 0 -1 0 1 3 0.002081 -0.000000 + 0 -1 0 2 3 -0.005567 -0.000000 + 0 -1 0 3 3 0.003402 0.000000 + 0 -1 0 4 3 0.004392 -0.000000 + 0 -1 0 5 3 0.000453 -0.000000 + 0 -1 0 6 3 -0.000782 -0.000000 + 0 -1 0 7 3 -0.016241 0.000000 + 0 -1 0 8 3 0.012679 0.000000 + 0 -1 0 9 3 -0.006667 0.000000 + 0 -1 0 10 3 0.008426 0.000000 + 0 -1 0 11 3 0.003970 0.000000 + 0 -1 0 12 3 0.001823 0.000000 + 0 -1 0 1 4 0.011154 0.000000 + 0 -1 0 2 4 -0.004731 0.000000 + 0 -1 0 3 4 0.004392 0.000000 + 0 -1 0 4 4 0.026358 0.000000 + 0 -1 0 5 4 -0.011489 0.000000 + 0 -1 0 6 4 -0.005567 0.000000 + 0 -1 0 7 4 -0.021525 0.000000 + 0 -1 0 8 4 -0.023372 -0.000000 + 0 -1 0 9 4 -0.008426 0.000000 + 0 -1 0 10 4 -0.001053 0.000000 + 0 -1 0 11 4 0.001885 0.000000 + 0 -1 0 12 4 -0.012679 0.000000 + 0 -1 0 1 5 -0.003540 0.000000 + 0 -1 0 2 5 -0.010651 -0.000000 + 0 -1 0 3 5 0.000453 0.000000 + 0 -1 0 4 5 -0.011489 -0.000000 + 0 -1 0 5 5 -0.033978 0.000000 + 0 -1 0 6 5 0.002081 -0.000000 + 0 -1 0 7 5 0.020930 0.000000 + 0 -1 0 8 5 0.053346 0.000000 + 0 -1 0 9 5 -0.003970 0.000000 + 0 -1 0 10 5 -0.008855 0.000000 + 0 -1 0 11 5 -0.009884 -0.000000 + 0 -1 0 12 5 0.016241 0.000000 + 0 -1 0 1 6 -0.003444 -0.000000 + 0 -1 0 2 6 -0.000487 -0.000000 + 0 -1 0 3 6 -0.000782 0.000000 + 0 -1 0 4 6 -0.005567 -0.000000 + 0 -1 0 5 6 0.002081 0.000000 + 0 -1 0 6 6 0.003402 0.000000 + 0 -1 0 7 6 -0.002735 0.000000 + 0 -1 0 8 6 0.001648 0.000000 + 0 -1 0 9 6 0.001823 -0.000000 + 0 -1 0 10 6 -0.005382 0.000000 + 0 -1 0 11 6 -0.003898 0.000000 + 0 -1 0 12 6 -0.006667 0.000000 + 0 -1 0 1 7 -0.009884 -0.000000 + 0 -1 0 2 7 -0.008855 -0.000000 + 0 -1 0 3 7 -0.016241 -0.000000 + 0 -1 0 4 7 -0.021525 -0.000000 + 0 -1 0 5 7 0.020930 -0.000000 + 0 -1 0 6 7 -0.002735 -0.000000 + 0 -1 0 7 7 -0.033978 0.000000 + 0 -1 0 8 7 -0.011489 -0.000000 + 0 -1 0 9 7 -0.002081 -0.000000 + 0 -1 0 10 7 0.001100 -0.000000 + 0 -1 0 11 7 0.003927 0.000000 + 0 -1 0 12 7 -0.001020 -0.000000 + 0 -1 0 1 8 0.001885 -0.000000 + 0 -1 0 2 8 -0.001053 0.000000 + 0 -1 0 3 8 0.012679 -0.000000 + 0 -1 0 4 8 -0.023372 0.000000 + 0 -1 0 5 8 0.053346 -0.000000 + 0 -1 0 6 8 0.001648 -0.000000 + 0 -1 0 7 8 -0.011489 0.000000 + 0 -1 0 8 8 0.026358 0.000000 + 0 -1 0 9 8 0.005567 -0.000000 + 0 -1 0 10 8 -0.001519 0.000000 + 0 -1 0 11 8 0.001100 0.000000 + 0 -1 0 12 8 -0.000143 -0.000000 + 0 -1 0 1 9 0.003898 -0.000000 + 0 -1 0 2 9 0.005382 -0.000000 + 0 -1 0 3 9 -0.006667 -0.000000 + 0 -1 0 4 9 -0.008426 -0.000000 + 0 -1 0 5 9 -0.003970 -0.000000 + 0 -1 0 6 9 0.001823 0.000000 + 0 -1 0 7 9 -0.002081 0.000000 + 0 -1 0 8 9 0.005567 0.000000 + 0 -1 0 9 9 0.003402 0.000000 + 0 -1 0 10 9 -0.000143 0.000000 + 0 -1 0 11 9 -0.001020 0.000000 + 0 -1 0 12 9 0.000617 -0.000000 + 0 -1 0 1 10 -0.021525 0.000000 + 0 -1 0 2 10 -0.023372 -0.000000 + 0 -1 0 3 10 0.008426 -0.000000 + 0 -1 0 4 10 -0.001053 -0.000000 + 0 -1 0 5 10 -0.008855 -0.000000 + 0 -1 0 6 10 -0.005382 -0.000000 + 0 -1 0 7 10 0.001100 0.000000 + 0 -1 0 8 10 -0.001519 -0.000000 + 0 -1 0 9 10 -0.000143 -0.000000 + 0 -1 0 10 10 0.026358 0.000000 + 0 -1 0 11 10 -0.011489 -0.000000 + 0 -1 0 12 10 0.005567 -0.000000 + 0 -1 0 1 11 0.020930 0.000000 + 0 -1 0 2 11 0.053346 0.000000 + 0 -1 0 3 11 0.003970 -0.000000 + 0 -1 0 4 11 0.001885 -0.000000 + 0 -1 0 5 11 -0.009884 0.000000 + 0 -1 0 6 11 -0.003898 -0.000000 + 0 -1 0 7 11 0.003927 -0.000000 + 0 -1 0 8 11 0.001100 -0.000000 + 0 -1 0 9 11 -0.001020 -0.000000 + 0 -1 0 10 11 -0.011489 0.000000 + 0 -1 0 11 11 -0.033978 0.000000 + 0 -1 0 12 11 -0.002081 -0.000000 + 0 -1 0 1 12 0.002735 -0.000000 + 0 -1 0 2 12 -0.001648 -0.000000 + 0 -1 0 3 12 0.001823 -0.000000 + 0 -1 0 4 12 -0.012679 -0.000000 + 0 -1 0 5 12 0.016241 -0.000000 + 0 -1 0 6 12 -0.006667 -0.000000 + 0 -1 0 7 12 -0.001020 0.000000 + 0 -1 0 8 12 -0.000143 0.000000 + 0 -1 0 9 12 0.000617 0.000000 + 0 -1 0 10 12 0.005567 0.000000 + 0 -1 0 11 12 -0.002081 0.000000 + 0 -1 0 12 12 0.003402 0.000000 + 0 -1 1 1 1 0.001281 -0.000000 + 0 -1 1 2 1 0.000516 0.000000 + 0 -1 1 3 1 0.000711 -0.000000 + 0 -1 1 4 1 -0.010651 -0.000000 + 0 -1 1 5 1 -0.003540 -0.000000 + 0 -1 1 6 1 0.000453 0.000000 + 0 -1 1 7 1 0.000656 0.000000 + 0 -1 1 8 1 -0.003898 -0.000000 + 0 -1 1 9 1 -0.002035 0.000000 + 0 -1 1 10 1 0.042521 0.000000 + 0 -1 1 11 1 0.036873 0.000000 + 0 -1 1 12 1 -0.001922 0.000000 + 0 -1 1 1 2 0.000516 -0.000000 + 0 -1 1 2 2 -0.005886 0.000000 + 0 -1 1 3 2 -0.000662 -0.000000 + 0 -1 1 4 2 -0.004731 -0.000000 + 0 -1 1 5 2 0.011154 -0.000000 + 0 -1 1 6 2 0.004392 -0.000000 + 0 -1 1 7 2 -0.000661 -0.000000 + 0 -1 1 8 2 -0.004057 0.000000 + 0 -1 1 9 2 -0.002825 -0.000000 + 0 -1 1 10 2 -0.023064 -0.000000 + 0 -1 1 11 2 -0.018379 0.000000 + 0 -1 1 12 2 0.002867 -0.000000 + 0 -1 1 1 3 0.000711 0.000000 + 0 -1 1 2 3 -0.000662 -0.000000 + 0 -1 1 3 3 0.000793 0.000000 + 0 -1 1 4 3 -0.000487 -0.000000 + 0 -1 1 5 3 -0.003444 -0.000000 + 0 -1 1 6 3 -0.000782 -0.000000 + 0 -1 1 7 3 0.005132 -0.000000 + 0 -1 1 8 3 0.005418 -0.000000 + 0 -1 1 9 3 0.003373 0.000000 + 0 -1 1 10 3 0.003338 0.000000 + 0 -1 1 11 3 -0.012364 0.000000 + 0 -1 1 12 3 0.001533 0.000000 + 0 -1 1 1 4 -0.000117 -0.000000 + 0 -1 1 2 4 -0.002085 -0.000000 + 0 -1 1 3 4 -0.000794 0.000000 + 0 -1 1 4 4 -0.005886 -0.000000 + 0 -1 1 5 4 0.000516 -0.000000 + 0 -1 1 6 4 -0.000662 0.000000 + 0 -1 1 7 4 -0.000059 -0.000000 + 0 -1 1 8 4 -0.000289 0.000000 + 0 -1 1 9 4 -0.002151 -0.000000 + 0 -1 1 10 4 -0.004057 -0.000000 + 0 -1 1 11 4 -0.003898 -0.000000 + 0 -1 1 12 4 -0.005418 -0.000000 + 0 -1 1 1 5 0.001789 0.000000 + 0 -1 1 2 5 -0.000117 -0.000000 + 0 -1 1 3 5 0.001063 -0.000000 + 0 -1 1 4 5 0.000516 0.000000 + 0 -1 1 5 5 0.001281 -0.000000 + 0 -1 1 6 5 0.000711 -0.000000 + 0 -1 1 7 5 -0.001067 0.000000 + 0 -1 1 8 5 -0.000808 0.000000 + 0 -1 1 9 5 -0.000143 -0.000000 + 0 -1 1 10 5 -0.000661 0.000000 + 0 -1 1 11 5 0.000656 0.000000 + 0 -1 1 12 5 -0.005132 0.000000 + 0 -1 1 1 6 0.001063 -0.000000 + 0 -1 1 2 6 -0.000794 0.000000 + 0 -1 1 3 6 0.000522 -0.000000 + 0 -1 1 4 6 -0.000662 -0.000000 + 0 -1 1 5 6 0.000711 0.000000 + 0 -1 1 6 6 0.000793 -0.000000 + 0 -1 1 7 6 0.003255 -0.000000 + 0 -1 1 8 6 -0.004567 0.000000 + 0 -1 1 9 6 -0.000284 0.000000 + 0 -1 1 10 6 0.002825 -0.000000 + 0 -1 1 11 6 0.002035 -0.000000 + 0 -1 1 12 6 0.003373 -0.000000 + 0 -1 1 1 7 -0.001131 -0.000000 + 0 -1 1 2 7 0.000572 -0.000000 + 0 -1 1 3 7 -0.000060 -0.000000 + 0 -1 1 4 7 0.042521 0.000000 + 0 -1 1 5 7 0.036873 0.000000 + 0 -1 1 6 7 0.001922 -0.000000 + 0 -1 1 7 7 0.001281 0.000000 + 0 -1 1 8 7 0.000516 0.000000 + 0 -1 1 9 7 -0.000711 -0.000000 + 0 -1 1 10 7 0.001100 -0.000000 + 0 -1 1 11 7 0.003927 0.000000 + 0 -1 1 12 7 -0.001020 -0.000000 + 0 -1 1 1 8 0.000633 0.000000 + 0 -1 1 2 8 -0.000480 -0.000000 + 0 -1 1 3 8 -0.002537 -0.000000 + 0 -1 1 4 8 -0.023064 -0.000000 + 0 -1 1 5 8 -0.018379 0.000000 + 0 -1 1 6 8 -0.002867 0.000000 + 0 -1 1 7 8 0.000516 -0.000000 + 0 -1 1 8 8 -0.005886 -0.000000 + 0 -1 1 9 8 0.000662 -0.000000 + 0 -1 1 10 8 -0.001519 -0.000000 + 0 -1 1 11 8 0.001100 0.000000 + 0 -1 1 12 8 -0.000143 -0.000000 + 0 -1 1 1 9 0.000561 -0.000000 + 0 -1 1 2 9 -0.000746 -0.000000 + 0 -1 1 3 9 0.002086 -0.000000 + 0 -1 1 4 9 -0.003338 -0.000000 + 0 -1 1 5 9 0.012364 -0.000000 + 0 -1 1 6 9 0.001533 -0.000000 + 0 -1 1 7 9 -0.000711 -0.000000 + 0 -1 1 8 9 0.000662 0.000000 + 0 -1 1 9 9 0.000793 -0.000000 + 0 -1 1 10 9 -0.000143 0.000000 + 0 -1 1 11 9 -0.001020 0.000000 + 0 -1 1 12 9 0.000617 0.000000 + 0 -1 1 1 10 -0.000059 -0.000000 + 0 -1 1 2 10 -0.000289 -0.000000 + 0 -1 1 3 10 0.002151 0.000000 + 0 -1 1 4 10 -0.000480 -0.000000 + 0 -1 1 5 10 0.000572 0.000000 + 0 -1 1 6 10 0.000746 -0.000000 + 0 -1 1 7 10 -0.000136 0.000000 + 0 -1 1 8 10 -0.000701 0.000000 + 0 -1 1 9 10 0.000218 0.000000 + 0 -1 1 10 10 -0.005886 0.000000 + 0 -1 1 11 10 0.000516 -0.000000 + 0 -1 1 12 10 0.000662 -0.000000 + 0 -1 1 1 11 -0.001067 0.000000 + 0 -1 1 2 11 -0.000808 -0.000000 + 0 -1 1 3 11 0.000143 -0.000000 + 0 -1 1 4 11 0.000633 -0.000000 + 0 -1 1 5 11 -0.001131 0.000000 + 0 -1 1 6 11 -0.000561 -0.000000 + 0 -1 1 7 11 -0.000898 -0.000000 + 0 -1 1 8 11 -0.000136 -0.000000 + 0 -1 1 9 11 0.000411 -0.000000 + 0 -1 1 10 11 0.000516 0.000000 + 0 -1 1 11 11 0.001281 -0.000000 + 0 -1 1 12 11 -0.000711 0.000000 + 0 -1 1 1 12 -0.003255 0.000000 + 0 -1 1 2 12 0.004567 -0.000000 + 0 -1 1 3 12 -0.000284 -0.000000 + 0 -1 1 4 12 0.002537 -0.000000 + 0 -1 1 5 12 0.000060 0.000000 + 0 -1 1 6 12 0.002086 0.000000 + 0 -1 1 7 12 0.000411 0.000000 + 0 -1 1 8 12 0.000218 -0.000000 + 0 -1 1 9 12 0.000726 0.000000 + 0 -1 1 10 12 0.000662 0.000000 + 0 -1 1 11 12 -0.000711 -0.000000 + 0 -1 1 12 12 0.000793 0.000000 + 0 0 -1 1 1 -0.008104 0.000000 + 0 0 -1 2 1 0.006634 0.000000 + 0 0 -1 3 1 -0.003940 0.000000 + 0 0 -1 4 1 0.000046 0.000000 + 0 0 -1 5 1 -0.000356 0.000000 + 0 0 -1 6 1 -0.007908 0.000000 + 0 0 -1 7 1 -0.001131 -0.000000 + 0 0 -1 8 1 0.000572 -0.000000 + 0 0 -1 9 1 0.000060 0.000000 + 0 0 -1 10 1 -0.000808 0.000000 + 0 0 -1 11 1 -0.001067 -0.000000 + 0 0 -1 12 1 -0.000143 0.000000 + 0 0 -1 1 2 0.006634 -0.000000 + 0 0 -1 2 2 0.010240 -0.000000 + 0 0 -1 3 2 0.002203 0.000000 + 0 0 -1 4 2 0.004160 0.000000 + 0 0 -1 5 2 0.000046 0.000000 + 0 0 -1 6 2 0.003257 0.000000 + 0 0 -1 7 2 0.000633 0.000000 + 0 0 -1 8 2 -0.000480 0.000000 + 0 0 -1 9 2 0.002537 0.000000 + 0 0 -1 10 2 -0.000289 0.000000 + 0 0 -1 11 2 -0.000059 0.000000 + 0 0 -1 12 2 -0.002151 0.000000 + 0 0 -1 1 3 -0.003940 -0.000000 + 0 0 -1 2 3 0.002203 -0.000000 + 0 0 -1 3 3 -0.054625 -0.000000 + 0 0 -1 4 3 0.003257 -0.000000 + 0 0 -1 5 3 -0.007908 -0.000000 + 0 0 -1 6 3 -0.001138 0.000000 + 0 0 -1 7 3 -0.000561 0.000000 + 0 0 -1 8 3 0.000746 0.000000 + 0 0 -1 9 3 0.002086 0.000000 + 0 0 -1 10 3 -0.004567 -0.000000 + 0 0 -1 11 3 0.003255 -0.000000 + 0 0 -1 12 3 -0.000284 0.000000 + 0 0 -1 1 4 -0.029678 0.000000 + 0 0 -1 2 4 -0.114958 -0.000000 + 0 0 -1 3 4 0.080588 0.000000 + 0 0 -1 4 4 0.010240 -0.000000 + 0 0 -1 5 4 0.006634 0.000000 + 0 0 -1 6 4 0.002203 0.000000 + 0 0 -1 7 4 0.053346 -0.000000 + 0 0 -1 8 4 -0.023372 0.000000 + 0 0 -1 9 4 -0.001648 0.000000 + 0 0 -1 10 4 -0.000480 0.000000 + 0 0 -1 11 4 0.000572 0.000000 + 0 0 -1 12 4 -0.000746 0.000000 + 0 0 -1 1 5 0.117955 -0.000000 + 0 0 -1 2 5 0.131177 -0.000000 + 0 0 -1 3 5 -0.042312 0.000000 + 0 0 -1 4 5 0.006634 -0.000000 + 0 0 -1 5 5 -0.008104 0.000000 + 0 0 -1 6 5 -0.003940 0.000000 + 0 0 -1 7 5 0.020930 -0.000000 + 0 0 -1 8 5 -0.021525 0.000000 + 0 0 -1 9 5 0.002735 0.000000 + 0 0 -1 10 5 0.000633 -0.000000 + 0 0 -1 11 5 -0.001131 0.000000 + 0 0 -1 12 5 0.000561 0.000000 + 0 0 -1 1 6 -0.021868 -0.000000 + 0 0 -1 2 6 -0.031897 -0.000000 + 0 0 -1 3 6 -0.191389 -0.000000 + 0 0 -1 4 6 0.002203 -0.000000 + 0 0 -1 5 6 -0.003940 -0.000000 + 0 0 -1 6 6 -0.054625 -0.000000 + 0 0 -1 7 6 0.003970 0.000000 + 0 0 -1 8 6 0.008426 -0.000000 + 0 0 -1 9 6 0.001823 0.000000 + 0 0 -1 10 6 -0.002537 0.000000 + 0 0 -1 11 6 -0.000060 -0.000000 + 0 0 -1 12 6 0.002086 -0.000000 + 0 0 -1 1 7 0.000656 -0.000000 + 0 0 -1 2 7 -0.003898 -0.000000 + 0 0 -1 3 7 0.002035 -0.000000 + 0 0 -1 4 7 -0.000808 0.000000 + 0 0 -1 5 7 -0.001067 -0.000000 + 0 0 -1 6 7 0.000143 0.000000 + 0 0 -1 7 7 -0.008104 -0.000000 + 0 0 -1 8 7 0.006634 -0.000000 + 0 0 -1 9 7 0.003940 -0.000000 + 0 0 -1 10 7 -0.002049 0.000000 + 0 0 -1 11 7 -0.007888 -0.000000 + 0 0 -1 12 7 -0.000537 0.000000 + 0 0 -1 1 8 -0.000661 -0.000000 + 0 0 -1 2 8 -0.004057 -0.000000 + 0 0 -1 3 8 0.002825 0.000000 + 0 0 -1 4 8 -0.000289 0.000000 + 0 0 -1 5 8 -0.000059 -0.000000 + 0 0 -1 6 8 0.002151 -0.000000 + 0 0 -1 7 8 0.006634 0.000000 + 0 0 -1 8 8 0.010240 -0.000000 + 0 0 -1 9 8 -0.002203 -0.000000 + 0 0 -1 10 8 0.001565 -0.000000 + 0 0 -1 11 8 -0.002049 -0.000000 + 0 0 -1 12 8 -0.011447 0.000000 + 0 0 -1 1 9 -0.005132 -0.000000 + 0 0 -1 2 9 -0.005418 0.000000 + 0 0 -1 3 9 0.003373 0.000000 + 0 0 -1 4 9 0.004567 -0.000000 + 0 0 -1 5 9 -0.003255 0.000000 + 0 0 -1 6 9 -0.000284 0.000000 + 0 0 -1 7 9 0.003940 0.000000 + 0 0 -1 8 9 -0.002203 0.000000 + 0 0 -1 9 9 -0.054625 0.000000 + 0 0 -1 10 9 -0.011447 -0.000000 + 0 0 -1 11 9 -0.000537 0.000000 + 0 0 -1 12 9 0.017130 -0.000000 + 0 0 -1 1 10 0.053346 -0.000000 + 0 0 -1 2 10 -0.023372 0.000000 + 0 0 -1 3 10 0.001648 0.000000 + 0 0 -1 4 10 -0.004057 0.000000 + 0 0 -1 5 10 -0.003898 -0.000000 + 0 0 -1 6 10 0.005418 0.000000 + 0 0 -1 7 10 -0.001355 0.000000 + 0 0 -1 8 10 0.006074 0.000000 + 0 0 -1 9 10 -0.008388 0.000000 + 0 0 -1 10 10 0.010240 -0.000000 + 0 0 -1 11 10 0.006634 0.000000 + 0 0 -1 12 10 -0.002203 -0.000000 + 0 0 -1 1 11 0.020930 0.000000 + 0 0 -1 2 11 -0.021525 -0.000000 + 0 0 -1 3 11 -0.002735 -0.000000 + 0 0 -1 4 11 -0.000661 0.000000 + 0 0 -1 5 11 0.000656 0.000000 + 0 0 -1 6 11 0.005132 0.000000 + 0 0 -1 7 11 -0.001701 0.000000 + 0 0 -1 8 11 -0.001355 -0.000000 + 0 0 -1 9 11 -0.002485 -0.000000 + 0 0 -1 10 11 0.006634 -0.000000 + 0 0 -1 11 11 -0.008104 0.000000 + 0 0 -1 12 11 0.003940 -0.000000 + 0 0 -1 1 12 -0.003970 -0.000000 + 0 0 -1 2 12 -0.008426 0.000000 + 0 0 -1 3 12 0.001823 -0.000000 + 0 0 -1 4 12 -0.002825 0.000000 + 0 0 -1 5 12 -0.002035 -0.000000 + 0 0 -1 6 12 0.003373 -0.000000 + 0 0 -1 7 12 -0.002485 0.000000 + 0 0 -1 8 12 -0.008388 -0.000000 + 0 0 -1 9 12 -0.009679 -0.000000 + 0 0 -1 10 12 -0.002203 -0.000000 + 0 0 -1 11 12 0.003940 0.000000 + 0 0 -1 12 12 -0.054625 -0.000000 + 0 0 0 1 1 15.615711 0.000000 + 0 0 0 2 1 -0.003319 -0.000000 + 0 0 0 3 1 0.002152 0.000000 + 0 0 0 4 1 0.131177 0.000000 + 0 0 0 5 1 0.117955 0.000000 + 0 0 0 6 1 -0.042312 -0.000000 + 0 0 0 7 1 -0.009884 0.000000 + 0 0 0 8 1 -0.008855 0.000000 + 0 0 0 9 1 0.016241 0.000000 + 0 0 0 10 1 -0.018379 -0.000000 + 0 0 0 11 1 0.036873 -0.000000 + 0 0 0 12 1 0.012364 0.000000 + 0 0 0 1 2 -0.003319 0.000000 + 0 0 0 2 2 15.625243 -0.000000 + 0 0 0 3 2 0.022611 0.000000 + 0 0 0 4 2 -0.114958 0.000000 + 0 0 0 5 2 -0.029678 0.000000 + 0 0 0 6 2 0.080588 0.000000 + 0 0 0 7 2 0.001885 0.000000 + 0 0 0 8 2 -0.001053 -0.000000 + 0 0 0 9 2 -0.012679 0.000000 + 0 0 0 10 2 -0.023064 0.000000 + 0 0 0 11 2 0.042521 -0.000000 + 0 0 0 12 2 -0.003338 0.000000 + 0 0 0 1 3 0.002152 -0.000000 + 0 0 0 2 3 0.022611 -0.000000 + 0 0 0 3 3 15.645007 -0.000000 + 0 0 0 4 3 -0.031897 -0.000000 + 0 0 0 5 3 -0.021868 -0.000000 + 0 0 0 6 3 -0.191389 0.000000 + 0 0 0 7 3 -0.003898 0.000000 + 0 0 0 8 3 -0.005382 0.000000 + 0 0 0 9 3 -0.006667 -0.000000 + 0 0 0 10 3 -0.002867 0.000000 + 0 0 0 11 3 0.001922 0.000000 + 0 0 0 12 3 0.001533 0.000000 + 0 0 0 1 4 0.131177 -0.000000 + 0 0 0 2 4 -0.114958 -0.000000 + 0 0 0 3 4 -0.031897 0.000000 + 0 0 0 4 4 15.625243 -0.000000 + 0 0 0 5 4 -0.003319 -0.000000 + 0 0 0 6 4 0.022611 0.000000 + 0 0 0 7 4 -0.018379 0.000000 + 0 0 0 8 4 -0.023064 -0.000000 + 0 0 0 9 4 0.002867 0.000000 + 0 0 0 10 4 -0.001053 -0.000000 + 0 0 0 11 4 -0.008855 0.000000 + 0 0 0 12 4 0.005382 0.000000 + 0 0 0 1 5 0.117955 -0.000000 + 0 0 0 2 5 -0.029678 -0.000000 + 0 0 0 3 5 -0.021868 0.000000 + 0 0 0 4 5 -0.003319 0.000000 + 0 0 0 5 5 15.615711 -0.000000 + 0 0 0 6 5 0.002152 0.000000 + 0 0 0 7 5 0.036873 -0.000000 + 0 0 0 8 5 0.042521 0.000000 + 0 0 0 9 5 -0.001922 0.000000 + 0 0 0 10 5 0.001885 0.000000 + 0 0 0 11 5 -0.009884 0.000000 + 0 0 0 12 5 0.003898 0.000000 + 0 0 0 1 6 -0.042312 0.000000 + 0 0 0 2 6 0.080588 -0.000000 + 0 0 0 3 6 -0.191389 -0.000000 + 0 0 0 4 6 0.022611 -0.000000 + 0 0 0 5 6 0.002152 -0.000000 + 0 0 0 6 6 15.645007 0.000000 + 0 0 0 7 6 -0.012364 0.000000 + 0 0 0 8 6 0.003338 0.000000 + 0 0 0 9 6 0.001533 -0.000000 + 0 0 0 10 6 0.012679 0.000000 + 0 0 0 11 6 -0.016241 0.000000 + 0 0 0 12 6 -0.006667 0.000000 + 0 0 0 1 7 -0.009884 -0.000000 + 0 0 0 2 7 0.001885 -0.000000 + 0 0 0 3 7 -0.003898 -0.000000 + 0 0 0 4 7 -0.018379 -0.000000 + 0 0 0 5 7 0.036873 0.000000 + 0 0 0 6 7 -0.012364 -0.000000 + 0 0 0 7 7 15.615711 -0.000000 + 0 0 0 8 7 -0.003319 -0.000000 + 0 0 0 9 7 -0.002152 -0.000000 + 0 0 0 10 7 -0.001355 -0.000000 + 0 0 0 11 7 -0.001701 -0.000000 + 0 0 0 12 7 -0.002485 -0.000000 + 0 0 0 1 8 -0.008855 -0.000000 + 0 0 0 2 8 -0.001053 0.000000 + 0 0 0 3 8 -0.005382 -0.000000 + 0 0 0 4 8 -0.023064 0.000000 + 0 0 0 5 8 0.042521 -0.000000 + 0 0 0 6 8 0.003338 -0.000000 + 0 0 0 7 8 -0.003319 0.000000 + 0 0 0 8 8 15.625243 -0.000000 + 0 0 0 9 8 -0.022611 -0.000000 + 0 0 0 10 8 0.006074 -0.000000 + 0 0 0 11 8 -0.001355 0.000000 + 0 0 0 12 8 -0.008388 0.000000 + 0 0 0 1 9 0.016241 -0.000000 + 0 0 0 2 9 -0.012679 -0.000000 + 0 0 0 3 9 -0.006667 0.000000 + 0 0 0 4 9 0.002867 -0.000000 + 0 0 0 5 9 -0.001922 -0.000000 + 0 0 0 6 9 0.001533 0.000000 + 0 0 0 7 9 -0.002152 0.000000 + 0 0 0 8 9 -0.022611 0.000000 + 0 0 0 9 9 15.645007 -0.000000 + 0 0 0 10 9 -0.008388 -0.000000 + 0 0 0 11 9 -0.002485 0.000000 + 0 0 0 12 9 -0.009679 0.000000 + 0 0 0 1 10 -0.018379 0.000000 + 0 0 0 2 10 -0.023064 -0.000000 + 0 0 0 3 10 -0.002867 -0.000000 + 0 0 0 4 10 -0.001053 0.000000 + 0 0 0 5 10 0.001885 -0.000000 + 0 0 0 6 10 0.012679 -0.000000 + 0 0 0 7 10 -0.001355 0.000000 + 0 0 0 8 10 0.006074 0.000000 + 0 0 0 9 10 -0.008388 0.000000 + 0 0 0 10 10 15.625243 0.000000 + 0 0 0 11 10 -0.003319 0.000000 + 0 0 0 12 10 -0.022611 -0.000000 + 0 0 0 1 11 0.036873 0.000000 + 0 0 0 2 11 0.042521 0.000000 + 0 0 0 3 11 0.001922 -0.000000 + 0 0 0 4 11 -0.008855 -0.000000 + 0 0 0 5 11 -0.009884 -0.000000 + 0 0 0 6 11 -0.016241 -0.000000 + 0 0 0 7 11 -0.001701 0.000000 + 0 0 0 8 11 -0.001355 -0.000000 + 0 0 0 9 11 -0.002485 -0.000000 + 0 0 0 10 11 -0.003319 -0.000000 + 0 0 0 11 11 15.615711 0.000000 + 0 0 0 12 11 -0.002152 -0.000000 + 0 0 0 1 12 0.012364 -0.000000 + 0 0 0 2 12 -0.003338 -0.000000 + 0 0 0 3 12 0.001533 -0.000000 + 0 0 0 4 12 0.005382 -0.000000 + 0 0 0 5 12 0.003898 -0.000000 + 0 0 0 6 12 -0.006667 -0.000000 + 0 0 0 7 12 -0.002485 0.000000 + 0 0 0 8 12 -0.008388 -0.000000 + 0 0 0 9 12 -0.009679 -0.000000 + 0 0 0 10 12 -0.022611 0.000000 + 0 0 0 11 12 -0.002152 0.000000 + 0 0 0 12 12 15.645007 -0.000000 + 0 0 1 1 1 -0.008104 -0.000000 + 0 0 1 2 1 0.006634 0.000000 + 0 0 1 3 1 -0.003940 0.000000 + 0 0 1 4 1 -0.029678 -0.000000 + 0 0 1 5 1 0.117955 0.000000 + 0 0 1 6 1 -0.021868 0.000000 + 0 0 1 7 1 0.000656 0.000000 + 0 0 1 8 1 -0.000661 0.000000 + 0 0 1 9 1 -0.005132 0.000000 + 0 0 1 10 1 0.053346 0.000000 + 0 0 1 11 1 0.020930 -0.000000 + 0 0 1 12 1 -0.003970 0.000000 + 0 0 1 1 2 0.006634 -0.000000 + 0 0 1 2 2 0.010240 0.000000 + 0 0 1 3 2 0.002203 0.000000 + 0 0 1 4 2 -0.114958 0.000000 + 0 0 1 5 2 0.131177 0.000000 + 0 0 1 6 2 -0.031897 0.000000 + 0 0 1 7 2 -0.003898 0.000000 + 0 0 1 8 2 -0.004057 0.000000 + 0 0 1 9 2 -0.005418 -0.000000 + 0 0 1 10 2 -0.023372 -0.000000 + 0 0 1 11 2 -0.021525 0.000000 + 0 0 1 12 2 -0.008426 -0.000000 + 0 0 1 1 3 -0.003940 -0.000000 + 0 0 1 2 3 0.002203 -0.000000 + 0 0 1 3 3 -0.054625 0.000000 + 0 0 1 4 3 0.080588 -0.000000 + 0 0 1 5 3 -0.042312 -0.000000 + 0 0 1 6 3 -0.191389 0.000000 + 0 0 1 7 3 0.002035 0.000000 + 0 0 1 8 3 0.002825 -0.000000 + 0 0 1 9 3 0.003373 -0.000000 + 0 0 1 10 3 0.001648 -0.000000 + 0 0 1 11 3 -0.002735 0.000000 + 0 0 1 12 3 0.001823 0.000000 + 0 0 1 1 4 0.000046 -0.000000 + 0 0 1 2 4 0.004160 -0.000000 + 0 0 1 3 4 0.003257 0.000000 + 0 0 1 4 4 0.010240 0.000000 + 0 0 1 5 4 0.006634 0.000000 + 0 0 1 6 4 0.002203 0.000000 + 0 0 1 7 4 -0.000808 -0.000000 + 0 0 1 8 4 -0.000289 -0.000000 + 0 0 1 9 4 0.004567 0.000000 + 0 0 1 10 4 -0.004057 -0.000000 + 0 0 1 11 4 -0.000661 -0.000000 + 0 0 1 12 4 -0.002825 -0.000000 + 0 0 1 1 5 -0.000356 -0.000000 + 0 0 1 2 5 0.000046 -0.000000 + 0 0 1 3 5 -0.007908 0.000000 + 0 0 1 4 5 0.006634 -0.000000 + 0 0 1 5 5 -0.008104 -0.000000 + 0 0 1 6 5 -0.003940 0.000000 + 0 0 1 7 5 -0.001067 0.000000 + 0 0 1 8 5 -0.000059 0.000000 + 0 0 1 9 5 -0.003255 -0.000000 + 0 0 1 10 5 -0.003898 0.000000 + 0 0 1 11 5 0.000656 -0.000000 + 0 0 1 12 5 -0.002035 0.000000 + 0 0 1 1 6 -0.007908 -0.000000 + 0 0 1 2 6 0.003257 -0.000000 + 0 0 1 3 6 -0.001138 -0.000000 + 0 0 1 4 6 0.002203 -0.000000 + 0 0 1 5 6 -0.003940 -0.000000 + 0 0 1 6 6 -0.054625 0.000000 + 0 0 1 7 6 0.000143 -0.000000 + 0 0 1 8 6 0.002151 0.000000 + 0 0 1 9 6 -0.000284 -0.000000 + 0 0 1 10 6 0.005418 -0.000000 + 0 0 1 11 6 0.005132 -0.000000 + 0 0 1 12 6 0.003373 0.000000 + 0 0 1 1 7 -0.001131 0.000000 + 0 0 1 2 7 0.000633 -0.000000 + 0 0 1 3 7 -0.000561 -0.000000 + 0 0 1 4 7 0.053346 0.000000 + 0 0 1 5 7 0.020930 0.000000 + 0 0 1 6 7 0.003970 -0.000000 + 0 0 1 7 7 -0.008104 0.000000 + 0 0 1 8 7 0.006634 -0.000000 + 0 0 1 9 7 0.003940 -0.000000 + 0 0 1 10 7 -0.001355 -0.000000 + 0 0 1 11 7 -0.001701 -0.000000 + 0 0 1 12 7 -0.002485 -0.000000 + 0 0 1 1 8 0.000572 0.000000 + 0 0 1 2 8 -0.000480 -0.000000 + 0 0 1 3 8 0.000746 -0.000000 + 0 0 1 4 8 -0.023372 -0.000000 + 0 0 1 5 8 -0.021525 -0.000000 + 0 0 1 6 8 0.008426 0.000000 + 0 0 1 7 8 0.006634 0.000000 + 0 0 1 8 8 0.010240 0.000000 + 0 0 1 9 8 -0.002203 -0.000000 + 0 0 1 10 8 0.006074 -0.000000 + 0 0 1 11 8 -0.001355 0.000000 + 0 0 1 12 8 -0.008388 0.000000 + 0 0 1 1 9 0.000060 -0.000000 + 0 0 1 2 9 0.002537 -0.000000 + 0 0 1 3 9 0.002086 -0.000000 + 0 0 1 4 9 -0.001648 -0.000000 + 0 0 1 5 9 0.002735 -0.000000 + 0 0 1 6 9 0.001823 -0.000000 + 0 0 1 7 9 0.003940 0.000000 + 0 0 1 8 9 -0.002203 0.000000 + 0 0 1 9 9 -0.054625 -0.000000 + 0 0 1 10 9 -0.008388 -0.000000 + 0 0 1 11 9 -0.002485 0.000000 + 0 0 1 12 9 -0.009679 0.000000 + 0 0 1 1 10 -0.000808 -0.000000 + 0 0 1 2 10 -0.000289 -0.000000 + 0 0 1 3 10 -0.004567 0.000000 + 0 0 1 4 10 -0.000480 -0.000000 + 0 0 1 5 10 0.000633 0.000000 + 0 0 1 6 10 -0.002537 -0.000000 + 0 0 1 7 10 -0.002049 -0.000000 + 0 0 1 8 10 0.001565 0.000000 + 0 0 1 9 10 -0.011447 0.000000 + 0 0 1 10 10 0.010240 0.000000 + 0 0 1 11 10 0.006634 0.000000 + 0 0 1 12 10 -0.002203 0.000000 + 0 0 1 1 11 -0.001067 0.000000 + 0 0 1 2 11 -0.000059 -0.000000 + 0 0 1 3 11 0.003255 0.000000 + 0 0 1 4 11 0.000572 -0.000000 + 0 0 1 5 11 -0.001131 -0.000000 + 0 0 1 6 11 -0.000060 0.000000 + 0 0 1 7 11 -0.007888 0.000000 + 0 0 1 8 11 -0.002049 0.000000 + 0 0 1 9 11 -0.000537 -0.000000 + 0 0 1 10 11 0.006634 -0.000000 + 0 0 1 11 11 -0.008104 -0.000000 + 0 0 1 12 11 0.003940 -0.000000 + 0 0 1 1 12 -0.000143 -0.000000 + 0 0 1 2 12 -0.002151 -0.000000 + 0 0 1 3 12 -0.000284 -0.000000 + 0 0 1 4 12 -0.000746 -0.000000 + 0 0 1 5 12 0.000561 -0.000000 + 0 0 1 6 12 0.002086 0.000000 + 0 0 1 7 12 -0.000537 -0.000000 + 0 0 1 8 12 -0.011447 -0.000000 + 0 0 1 9 12 0.017130 0.000000 + 0 0 1 10 12 -0.002203 0.000000 + 0 0 1 11 12 0.003940 0.000000 + 0 0 1 12 12 -0.054625 0.000000 + 0 1 -1 1 1 0.001281 0.000000 + 0 1 -1 2 1 0.000516 0.000000 + 0 1 -1 3 1 0.000711 -0.000000 + 0 1 -1 4 1 -0.000117 0.000000 + 0 1 -1 5 1 0.001789 -0.000000 + 0 1 -1 6 1 0.001063 0.000000 + 0 1 -1 7 1 -0.001131 0.000000 + 0 1 -1 8 1 0.000633 -0.000000 + 0 1 -1 9 1 0.000561 0.000000 + 0 1 -1 10 1 -0.000059 0.000000 + 0 1 -1 11 1 -0.001067 -0.000000 + 0 1 -1 12 1 -0.003255 -0.000000 + 0 1 -1 1 2 0.000516 -0.000000 + 0 1 -1 2 2 -0.005886 -0.000000 + 0 1 -1 3 2 -0.000662 0.000000 + 0 1 -1 4 2 -0.002085 0.000000 + 0 1 -1 5 2 -0.000117 0.000000 + 0 1 -1 6 2 -0.000794 -0.000000 + 0 1 -1 7 2 0.000572 0.000000 + 0 1 -1 8 2 -0.000480 0.000000 + 0 1 -1 9 2 -0.000746 0.000000 + 0 1 -1 10 2 -0.000289 0.000000 + 0 1 -1 11 2 -0.000808 0.000000 + 0 1 -1 12 2 0.004567 0.000000 + 0 1 -1 1 3 0.000711 0.000000 + 0 1 -1 2 3 -0.000662 0.000000 + 0 1 -1 3 3 0.000793 -0.000000 + 0 1 -1 4 3 -0.000794 -0.000000 + 0 1 -1 5 3 0.001063 0.000000 + 0 1 -1 6 3 0.000522 0.000000 + 0 1 -1 7 3 -0.000060 0.000000 + 0 1 -1 8 3 -0.002537 0.000000 + 0 1 -1 9 3 0.002086 0.000000 + 0 1 -1 10 3 0.002151 -0.000000 + 0 1 -1 11 3 0.000143 0.000000 + 0 1 -1 12 3 -0.000284 0.000000 + 0 1 -1 1 4 -0.010651 0.000000 + 0 1 -1 2 4 -0.004731 0.000000 + 0 1 -1 3 4 -0.000487 0.000000 + 0 1 -1 4 4 -0.005886 0.000000 + 0 1 -1 5 4 0.000516 -0.000000 + 0 1 -1 6 4 -0.000662 0.000000 + 0 1 -1 7 4 0.042521 -0.000000 + 0 1 -1 8 4 -0.023064 0.000000 + 0 1 -1 9 4 -0.003338 0.000000 + 0 1 -1 10 4 -0.000480 0.000000 + 0 1 -1 11 4 0.000633 0.000000 + 0 1 -1 12 4 0.002537 0.000000 + 0 1 -1 1 5 -0.003540 0.000000 + 0 1 -1 2 5 0.011154 0.000000 + 0 1 -1 3 5 -0.003444 0.000000 + 0 1 -1 4 5 0.000516 0.000000 + 0 1 -1 5 5 0.001281 0.000000 + 0 1 -1 6 5 0.000711 -0.000000 + 0 1 -1 7 5 0.036873 -0.000000 + 0 1 -1 8 5 -0.018379 -0.000000 + 0 1 -1 9 5 0.012364 0.000000 + 0 1 -1 10 5 0.000572 -0.000000 + 0 1 -1 11 5 -0.001131 -0.000000 + 0 1 -1 12 5 0.000060 -0.000000 + 0 1 -1 1 6 0.000453 -0.000000 + 0 1 -1 2 6 0.004392 0.000000 + 0 1 -1 3 6 -0.000782 0.000000 + 0 1 -1 4 6 -0.000662 -0.000000 + 0 1 -1 5 6 0.000711 0.000000 + 0 1 -1 6 6 0.000793 0.000000 + 0 1 -1 7 6 0.001922 0.000000 + 0 1 -1 8 6 -0.002867 -0.000000 + 0 1 -1 9 6 0.001533 0.000000 + 0 1 -1 10 6 0.000746 0.000000 + 0 1 -1 11 6 -0.000561 0.000000 + 0 1 -1 12 6 0.002086 -0.000000 + 0 1 -1 1 7 0.000656 -0.000000 + 0 1 -1 2 7 -0.000661 0.000000 + 0 1 -1 3 7 0.005132 0.000000 + 0 1 -1 4 7 -0.000059 0.000000 + 0 1 -1 5 7 -0.001067 -0.000000 + 0 1 -1 6 7 0.003255 0.000000 + 0 1 -1 7 7 0.001281 -0.000000 + 0 1 -1 8 7 0.000516 0.000000 + 0 1 -1 9 7 -0.000711 0.000000 + 0 1 -1 10 7 -0.000136 -0.000000 + 0 1 -1 11 7 -0.000898 0.000000 + 0 1 -1 12 7 0.000411 -0.000000 + 0 1 -1 1 8 -0.003898 0.000000 + 0 1 -1 2 8 -0.004057 -0.000000 + 0 1 -1 3 8 0.005418 0.000000 + 0 1 -1 4 8 -0.000289 -0.000000 + 0 1 -1 5 8 -0.000808 -0.000000 + 0 1 -1 6 8 -0.004567 -0.000000 + 0 1 -1 7 8 0.000516 -0.000000 + 0 1 -1 8 8 -0.005886 0.000000 + 0 1 -1 9 8 0.000662 -0.000000 + 0 1 -1 10 8 -0.000701 -0.000000 + 0 1 -1 11 8 -0.000136 0.000000 + 0 1 -1 12 8 0.000218 0.000000 + 0 1 -1 1 9 -0.002035 -0.000000 + 0 1 -1 2 9 -0.002825 0.000000 + 0 1 -1 3 9 0.003373 -0.000000 + 0 1 -1 4 9 -0.002151 0.000000 + 0 1 -1 5 9 -0.000143 0.000000 + 0 1 -1 6 9 -0.000284 -0.000000 + 0 1 -1 7 9 -0.000711 0.000000 + 0 1 -1 8 9 0.000662 0.000000 + 0 1 -1 9 9 0.000793 0.000000 + 0 1 -1 10 9 0.000218 -0.000000 + 0 1 -1 11 9 0.000411 0.000000 + 0 1 -1 12 9 0.000726 -0.000000 + 0 1 -1 1 10 0.042521 -0.000000 + 0 1 -1 2 10 -0.023064 0.000000 + 0 1 -1 3 10 0.003338 -0.000000 + 0 1 -1 4 10 -0.004057 0.000000 + 0 1 -1 5 10 -0.000661 -0.000000 + 0 1 -1 6 10 0.002825 0.000000 + 0 1 -1 7 10 0.001100 0.000000 + 0 1 -1 8 10 -0.001519 0.000000 + 0 1 -1 9 10 -0.000143 -0.000000 + 0 1 -1 10 10 -0.005886 -0.000000 + 0 1 -1 11 10 0.000516 -0.000000 + 0 1 -1 12 10 0.000662 -0.000000 + 0 1 -1 1 11 0.036873 -0.000000 + 0 1 -1 2 11 -0.018379 -0.000000 + 0 1 -1 3 11 -0.012364 -0.000000 + 0 1 -1 4 11 -0.003898 0.000000 + 0 1 -1 5 11 0.000656 -0.000000 + 0 1 -1 6 11 0.002035 0.000000 + 0 1 -1 7 11 0.003927 -0.000000 + 0 1 -1 8 11 0.001100 -0.000000 + 0 1 -1 9 11 -0.001020 -0.000000 + 0 1 -1 10 11 0.000516 0.000000 + 0 1 -1 11 11 0.001281 0.000000 + 0 1 -1 12 11 -0.000711 0.000000 + 0 1 -1 1 12 -0.001922 -0.000000 + 0 1 -1 2 12 0.002867 0.000000 + 0 1 -1 3 12 0.001533 -0.000000 + 0 1 -1 4 12 -0.005418 0.000000 + 0 1 -1 5 12 -0.005132 -0.000000 + 0 1 -1 6 12 0.003373 0.000000 + 0 1 -1 7 12 -0.001020 0.000000 + 0 1 -1 8 12 -0.000143 0.000000 + 0 1 -1 9 12 0.000617 -0.000000 + 0 1 -1 10 12 0.000662 0.000000 + 0 1 -1 11 12 -0.000711 -0.000000 + 0 1 -1 12 12 0.000793 -0.000000 + 0 1 0 1 1 -0.033978 -0.000000 + 0 1 0 2 1 -0.011489 -0.000000 + 0 1 0 3 1 0.002081 0.000000 + 0 1 0 4 1 0.011154 -0.000000 + 0 1 0 5 1 -0.003540 -0.000000 + 0 1 0 6 1 -0.003444 0.000000 + 0 1 0 7 1 -0.009884 0.000000 + 0 1 0 8 1 0.001885 0.000000 + 0 1 0 9 1 0.003898 0.000000 + 0 1 0 10 1 -0.021525 -0.000000 + 0 1 0 11 1 0.020930 -0.000000 + 0 1 0 12 1 0.002735 0.000000 + 0 1 0 1 2 -0.011489 0.000000 + 0 1 0 2 2 0.026358 -0.000000 + 0 1 0 3 2 -0.005567 0.000000 + 0 1 0 4 2 -0.004731 -0.000000 + 0 1 0 5 2 -0.010651 0.000000 + 0 1 0 6 2 -0.000487 0.000000 + 0 1 0 7 2 -0.008855 0.000000 + 0 1 0 8 2 -0.001053 -0.000000 + 0 1 0 9 2 0.005382 0.000000 + 0 1 0 10 2 -0.023372 0.000000 + 0 1 0 11 2 0.053346 -0.000000 + 0 1 0 12 2 -0.001648 0.000000 + 0 1 0 1 3 0.002081 -0.000000 + 0 1 0 2 3 -0.005567 -0.000000 + 0 1 0 3 3 0.003402 -0.000000 + 0 1 0 4 3 0.004392 -0.000000 + 0 1 0 5 3 0.000453 -0.000000 + 0 1 0 6 3 -0.000782 -0.000000 + 0 1 0 7 3 -0.016241 0.000000 + 0 1 0 8 3 0.012679 0.000000 + 0 1 0 9 3 -0.006667 0.000000 + 0 1 0 10 3 0.008426 0.000000 + 0 1 0 11 3 0.003970 0.000000 + 0 1 0 12 3 0.001823 0.000000 + 0 1 0 1 4 0.011154 0.000000 + 0 1 0 2 4 -0.004731 0.000000 + 0 1 0 3 4 0.004392 0.000000 + 0 1 0 4 4 0.026358 -0.000000 + 0 1 0 5 4 -0.011489 0.000000 + 0 1 0 6 4 -0.005567 0.000000 + 0 1 0 7 4 -0.021525 0.000000 + 0 1 0 8 4 -0.023372 -0.000000 + 0 1 0 9 4 -0.008426 0.000000 + 0 1 0 10 4 -0.001053 0.000000 + 0 1 0 11 4 0.001885 0.000000 + 0 1 0 12 4 -0.012679 0.000000 + 0 1 0 1 5 -0.003540 0.000000 + 0 1 0 2 5 -0.010651 -0.000000 + 0 1 0 3 5 0.000453 0.000000 + 0 1 0 4 5 -0.011489 -0.000000 + 0 1 0 5 5 -0.033978 -0.000000 + 0 1 0 6 5 0.002081 -0.000000 + 0 1 0 7 5 0.020930 0.000000 + 0 1 0 8 5 0.053346 0.000000 + 0 1 0 9 5 -0.003970 0.000000 + 0 1 0 10 5 -0.008855 0.000000 + 0 1 0 11 5 -0.009884 -0.000000 + 0 1 0 12 5 0.016241 0.000000 + 0 1 0 1 6 -0.003444 -0.000000 + 0 1 0 2 6 -0.000487 -0.000000 + 0 1 0 3 6 -0.000782 0.000000 + 0 1 0 4 6 -0.005567 -0.000000 + 0 1 0 5 6 0.002081 0.000000 + 0 1 0 6 6 0.003402 -0.000000 + 0 1 0 7 6 -0.002735 0.000000 + 0 1 0 8 6 0.001648 0.000000 + 0 1 0 9 6 0.001823 -0.000000 + 0 1 0 10 6 -0.005382 0.000000 + 0 1 0 11 6 -0.003898 0.000000 + 0 1 0 12 6 -0.006667 0.000000 + 0 1 0 1 7 -0.009884 -0.000000 + 0 1 0 2 7 -0.008855 -0.000000 + 0 1 0 3 7 -0.016241 -0.000000 + 0 1 0 4 7 -0.021525 -0.000000 + 0 1 0 5 7 0.020930 -0.000000 + 0 1 0 6 7 -0.002735 -0.000000 + 0 1 0 7 7 -0.033978 -0.000000 + 0 1 0 8 7 -0.011489 -0.000000 + 0 1 0 9 7 -0.002081 -0.000000 + 0 1 0 10 7 0.001100 -0.000000 + 0 1 0 11 7 0.003927 0.000000 + 0 1 0 12 7 -0.001020 -0.000000 + 0 1 0 1 8 0.001885 -0.000000 + 0 1 0 2 8 -0.001053 0.000000 + 0 1 0 3 8 0.012679 -0.000000 + 0 1 0 4 8 -0.023372 0.000000 + 0 1 0 5 8 0.053346 -0.000000 + 0 1 0 6 8 0.001648 -0.000000 + 0 1 0 7 8 -0.011489 0.000000 + 0 1 0 8 8 0.026358 -0.000000 + 0 1 0 9 8 0.005567 -0.000000 + 0 1 0 10 8 -0.001519 0.000000 + 0 1 0 11 8 0.001100 0.000000 + 0 1 0 12 8 -0.000143 -0.000000 + 0 1 0 1 9 0.003898 -0.000000 + 0 1 0 2 9 0.005382 -0.000000 + 0 1 0 3 9 -0.006667 -0.000000 + 0 1 0 4 9 -0.008426 -0.000000 + 0 1 0 5 9 -0.003970 -0.000000 + 0 1 0 6 9 0.001823 0.000000 + 0 1 0 7 9 -0.002081 0.000000 + 0 1 0 8 9 0.005567 0.000000 + 0 1 0 9 9 0.003402 -0.000000 + 0 1 0 10 9 -0.000143 0.000000 + 0 1 0 11 9 -0.001020 0.000000 + 0 1 0 12 9 0.000617 -0.000000 + 0 1 0 1 10 -0.021525 0.000000 + 0 1 0 2 10 -0.023372 -0.000000 + 0 1 0 3 10 0.008426 -0.000000 + 0 1 0 4 10 -0.001053 -0.000000 + 0 1 0 5 10 -0.008855 -0.000000 + 0 1 0 6 10 -0.005382 -0.000000 + 0 1 0 7 10 0.001100 0.000000 + 0 1 0 8 10 -0.001519 -0.000000 + 0 1 0 9 10 -0.000143 -0.000000 + 0 1 0 10 10 0.026358 -0.000000 + 0 1 0 11 10 -0.011489 -0.000000 + 0 1 0 12 10 0.005567 -0.000000 + 0 1 0 1 11 0.020930 0.000000 + 0 1 0 2 11 0.053346 0.000000 + 0 1 0 3 11 0.003970 -0.000000 + 0 1 0 4 11 0.001885 -0.000000 + 0 1 0 5 11 -0.009884 0.000000 + 0 1 0 6 11 -0.003898 -0.000000 + 0 1 0 7 11 0.003927 -0.000000 + 0 1 0 8 11 0.001100 -0.000000 + 0 1 0 9 11 -0.001020 -0.000000 + 0 1 0 10 11 -0.011489 0.000000 + 0 1 0 11 11 -0.033978 -0.000000 + 0 1 0 12 11 -0.002081 -0.000000 + 0 1 0 1 12 0.002735 -0.000000 + 0 1 0 2 12 -0.001648 -0.000000 + 0 1 0 3 12 0.001823 -0.000000 + 0 1 0 4 12 -0.012679 -0.000000 + 0 1 0 5 12 0.016241 -0.000000 + 0 1 0 6 12 -0.006667 -0.000000 + 0 1 0 7 12 -0.001020 0.000000 + 0 1 0 8 12 -0.000143 0.000000 + 0 1 0 9 12 0.000617 0.000000 + 0 1 0 10 12 0.005567 0.000000 + 0 1 0 11 12 -0.002081 0.000000 + 0 1 0 12 12 0.003402 -0.000000 + 0 1 1 1 1 0.001281 -0.000000 + 0 1 1 2 1 0.000516 0.000000 + 0 1 1 3 1 0.000711 -0.000000 + 0 1 1 4 1 -0.010651 -0.000000 + 0 1 1 5 1 -0.003540 -0.000000 + 0 1 1 6 1 0.000453 0.000000 + 0 1 1 7 1 0.000656 0.000000 + 0 1 1 8 1 -0.003898 -0.000000 + 0 1 1 9 1 -0.002035 0.000000 + 0 1 1 10 1 0.042521 0.000000 + 0 1 1 11 1 0.036873 0.000000 + 0 1 1 12 1 -0.001922 0.000000 + 0 1 1 1 2 0.000516 -0.000000 + 0 1 1 2 2 -0.005886 0.000000 + 0 1 1 3 2 -0.000662 -0.000000 + 0 1 1 4 2 -0.004731 -0.000000 + 0 1 1 5 2 0.011154 -0.000000 + 0 1 1 6 2 0.004392 -0.000000 + 0 1 1 7 2 -0.000661 -0.000000 + 0 1 1 8 2 -0.004057 0.000000 + 0 1 1 9 2 -0.002825 -0.000000 + 0 1 1 10 2 -0.023064 -0.000000 + 0 1 1 11 2 -0.018379 0.000000 + 0 1 1 12 2 0.002867 -0.000000 + 0 1 1 1 3 0.000711 0.000000 + 0 1 1 2 3 -0.000662 -0.000000 + 0 1 1 3 3 0.000793 0.000000 + 0 1 1 4 3 -0.000487 -0.000000 + 0 1 1 5 3 -0.003444 -0.000000 + 0 1 1 6 3 -0.000782 -0.000000 + 0 1 1 7 3 0.005132 -0.000000 + 0 1 1 8 3 0.005418 -0.000000 + 0 1 1 9 3 0.003373 0.000000 + 0 1 1 10 3 0.003338 0.000000 + 0 1 1 11 3 -0.012364 0.000000 + 0 1 1 12 3 0.001533 0.000000 + 0 1 1 1 4 -0.000117 -0.000000 + 0 1 1 2 4 -0.002085 -0.000000 + 0 1 1 3 4 -0.000794 0.000000 + 0 1 1 4 4 -0.005886 -0.000000 + 0 1 1 5 4 0.000516 -0.000000 + 0 1 1 6 4 -0.000662 0.000000 + 0 1 1 7 4 -0.000059 -0.000000 + 0 1 1 8 4 -0.000289 0.000000 + 0 1 1 9 4 -0.002151 -0.000000 + 0 1 1 10 4 -0.004057 -0.000000 + 0 1 1 11 4 -0.003898 -0.000000 + 0 1 1 12 4 -0.005418 -0.000000 + 0 1 1 1 5 0.001789 0.000000 + 0 1 1 2 5 -0.000117 -0.000000 + 0 1 1 3 5 0.001063 -0.000000 + 0 1 1 4 5 0.000516 0.000000 + 0 1 1 5 5 0.001281 -0.000000 + 0 1 1 6 5 0.000711 -0.000000 + 0 1 1 7 5 -0.001067 0.000000 + 0 1 1 8 5 -0.000808 0.000000 + 0 1 1 9 5 -0.000143 -0.000000 + 0 1 1 10 5 -0.000661 0.000000 + 0 1 1 11 5 0.000656 0.000000 + 0 1 1 12 5 -0.005132 0.000000 + 0 1 1 1 6 0.001063 -0.000000 + 0 1 1 2 6 -0.000794 0.000000 + 0 1 1 3 6 0.000522 -0.000000 + 0 1 1 4 6 -0.000662 -0.000000 + 0 1 1 5 6 0.000711 0.000000 + 0 1 1 6 6 0.000793 -0.000000 + 0 1 1 7 6 0.003255 -0.000000 + 0 1 1 8 6 -0.004567 0.000000 + 0 1 1 9 6 -0.000284 0.000000 + 0 1 1 10 6 0.002825 -0.000000 + 0 1 1 11 6 0.002035 -0.000000 + 0 1 1 12 6 0.003373 -0.000000 + 0 1 1 1 7 -0.001131 -0.000000 + 0 1 1 2 7 0.000572 -0.000000 + 0 1 1 3 7 -0.000060 -0.000000 + 0 1 1 4 7 0.042521 0.000000 + 0 1 1 5 7 0.036873 0.000000 + 0 1 1 6 7 0.001922 -0.000000 + 0 1 1 7 7 0.001281 0.000000 + 0 1 1 8 7 0.000516 0.000000 + 0 1 1 9 7 -0.000711 -0.000000 + 0 1 1 10 7 0.001100 -0.000000 + 0 1 1 11 7 0.003927 0.000000 + 0 1 1 12 7 -0.001020 -0.000000 + 0 1 1 1 8 0.000633 0.000000 + 0 1 1 2 8 -0.000480 -0.000000 + 0 1 1 3 8 -0.002537 -0.000000 + 0 1 1 4 8 -0.023064 -0.000000 + 0 1 1 5 8 -0.018379 0.000000 + 0 1 1 6 8 -0.002867 0.000000 + 0 1 1 7 8 0.000516 -0.000000 + 0 1 1 8 8 -0.005886 -0.000000 + 0 1 1 9 8 0.000662 -0.000000 + 0 1 1 10 8 -0.001519 -0.000000 + 0 1 1 11 8 0.001100 0.000000 + 0 1 1 12 8 -0.000143 -0.000000 + 0 1 1 1 9 0.000561 -0.000000 + 0 1 1 2 9 -0.000746 -0.000000 + 0 1 1 3 9 0.002086 -0.000000 + 0 1 1 4 9 -0.003338 -0.000000 + 0 1 1 5 9 0.012364 -0.000000 + 0 1 1 6 9 0.001533 -0.000000 + 0 1 1 7 9 -0.000711 -0.000000 + 0 1 1 8 9 0.000662 0.000000 + 0 1 1 9 9 0.000793 -0.000000 + 0 1 1 10 9 -0.000143 0.000000 + 0 1 1 11 9 -0.001020 0.000000 + 0 1 1 12 9 0.000617 0.000000 + 0 1 1 1 10 -0.000059 -0.000000 + 0 1 1 2 10 -0.000289 -0.000000 + 0 1 1 3 10 0.002151 0.000000 + 0 1 1 4 10 -0.000480 -0.000000 + 0 1 1 5 10 0.000572 0.000000 + 0 1 1 6 10 0.000746 -0.000000 + 0 1 1 7 10 -0.000136 0.000000 + 0 1 1 8 10 -0.000701 0.000000 + 0 1 1 9 10 0.000218 0.000000 + 0 1 1 10 10 -0.005886 0.000000 + 0 1 1 11 10 0.000516 -0.000000 + 0 1 1 12 10 0.000662 -0.000000 + 0 1 1 1 11 -0.001067 0.000000 + 0 1 1 2 11 -0.000808 -0.000000 + 0 1 1 3 11 0.000143 -0.000000 + 0 1 1 4 11 0.000633 -0.000000 + 0 1 1 5 11 -0.001131 0.000000 + 0 1 1 6 11 -0.000561 -0.000000 + 0 1 1 7 11 -0.000898 -0.000000 + 0 1 1 8 11 -0.000136 -0.000000 + 0 1 1 9 11 0.000411 -0.000000 + 0 1 1 10 11 0.000516 0.000000 + 0 1 1 11 11 0.001281 -0.000000 + 0 1 1 12 11 -0.000711 0.000000 + 0 1 1 1 12 -0.003255 0.000000 + 0 1 1 2 12 0.004567 -0.000000 + 0 1 1 3 12 -0.000284 -0.000000 + 0 1 1 4 12 0.002537 -0.000000 + 0 1 1 5 12 0.000060 0.000000 + 0 1 1 6 12 0.002086 0.000000 + 0 1 1 7 12 0.000411 0.000000 + 0 1 1 8 12 0.000218 -0.000000 + 0 1 1 9 12 0.000726 0.000000 + 0 1 1 10 12 0.000662 0.000000 + 0 1 1 11 12 -0.000711 -0.000000 + 0 1 1 12 12 0.000793 0.000000 + 1 -1 -1 1 1 -0.006576 0.000000 + 1 -1 -1 2 1 0.003360 0.000000 + 1 -1 -1 3 1 0.000661 0.000000 + 1 -1 -1 4 1 -0.000136 -0.000000 + 1 -1 -1 5 1 -0.000898 0.000000 + 1 -1 -1 6 1 -0.000411 -0.000000 + 1 -1 -1 7 1 0.000656 0.000000 + 1 -1 -1 8 1 -0.000661 0.000000 + 1 -1 -1 9 1 -0.005132 0.000000 + 1 -1 -1 10 1 -0.000808 0.000000 + 1 -1 -1 11 1 -0.001067 0.000000 + 1 -1 -1 12 1 -0.000143 -0.000000 + 1 -1 -1 1 2 0.003360 -0.000000 + 1 -1 -1 2 2 -0.002725 -0.000000 + 1 -1 -1 3 2 0.002175 0.000000 + 1 -1 -1 4 2 -0.000701 0.000000 + 1 -1 -1 5 2 -0.000136 -0.000000 + 1 -1 -1 6 2 -0.000218 0.000000 + 1 -1 -1 7 2 -0.003898 0.000000 + 1 -1 -1 8 2 -0.004057 -0.000000 + 1 -1 -1 9 2 -0.005418 -0.000000 + 1 -1 -1 10 2 -0.000289 -0.000000 + 1 -1 -1 11 2 -0.000059 0.000000 + 1 -1 -1 12 2 -0.002151 0.000000 + 1 -1 -1 1 3 0.000661 0.000000 + 1 -1 -1 2 3 0.002175 0.000000 + 1 -1 -1 3 3 -0.001782 -0.000000 + 1 -1 -1 4 3 -0.000218 -0.000000 + 1 -1 -1 5 3 -0.000411 -0.000000 + 1 -1 -1 6 3 0.000726 0.000000 + 1 -1 -1 7 3 0.002035 0.000000 + 1 -1 -1 8 3 0.002825 -0.000000 + 1 -1 -1 9 3 0.003373 0.000000 + 1 -1 -1 10 3 -0.004567 -0.000000 + 1 -1 -1 11 3 0.003255 -0.000000 + 1 -1 -1 12 3 -0.000284 -0.000000 + 1 -1 -1 1 4 0.011154 -0.000000 + 1 -1 -1 2 4 -0.004731 0.000000 + 1 -1 -1 3 4 0.004392 0.000000 + 1 -1 -1 4 4 -0.005524 0.000000 + 1 -1 -1 5 4 -0.005064 -0.000000 + 1 -1 -1 6 4 -0.000745 0.000000 + 1 -1 -1 7 4 0.001463 0.000000 + 1 -1 -1 8 4 0.002999 0.000000 + 1 -1 -1 9 4 -0.000263 0.000000 + 1 -1 -1 10 4 -0.008805 -0.000000 + 1 -1 -1 11 4 0.004941 0.000000 + 1 -1 -1 12 4 -0.001717 0.000000 + 1 -1 -1 1 5 -0.003540 0.000000 + 1 -1 -1 2 5 -0.010651 -0.000000 + 1 -1 -1 3 5 0.000453 0.000000 + 1 -1 -1 4 5 -0.005064 0.000000 + 1 -1 -1 5 5 -0.004024 -0.000000 + 1 -1 -1 6 5 -0.001761 0.000000 + 1 -1 -1 7 5 0.005262 -0.000000 + 1 -1 -1 8 5 0.001463 -0.000000 + 1 -1 -1 9 5 0.004782 0.000000 + 1 -1 -1 10 5 0.001251 -0.000000 + 1 -1 -1 11 5 0.000182 -0.000000 + 1 -1 -1 12 5 0.000792 0.000000 + 1 -1 -1 1 6 -0.003444 -0.000000 + 1 -1 -1 2 6 -0.000487 -0.000000 + 1 -1 -1 3 6 -0.000782 -0.000000 + 1 -1 -1 4 6 -0.000745 -0.000000 + 1 -1 -1 5 6 -0.001761 -0.000000 + 1 -1 -1 6 6 -0.001184 0.000000 + 1 -1 -1 7 6 -0.004782 -0.000000 + 1 -1 -1 8 6 0.000263 0.000000 + 1 -1 -1 9 6 -0.004078 0.000000 + 1 -1 -1 10 6 -0.003121 0.000000 + 1 -1 -1 11 6 -0.014966 0.000000 + 1 -1 -1 12 6 -0.004089 0.000000 + 1 -1 -1 1 7 0.000182 0.000000 + 1 -1 -1 2 7 0.004941 0.000000 + 1 -1 -1 3 7 -0.014966 0.000000 + 1 -1 -1 4 7 -0.000808 0.000000 + 1 -1 -1 5 7 -0.001067 0.000000 + 1 -1 -1 6 7 0.000143 0.000000 + 1 -1 -1 7 7 -0.006576 -0.000000 + 1 -1 -1 8 7 0.003360 0.000000 + 1 -1 -1 9 7 -0.000661 -0.000000 + 1 -1 -1 10 7 -0.000117 -0.000000 + 1 -1 -1 11 7 0.001789 0.000000 + 1 -1 -1 12 7 -0.001063 -0.000000 + 1 -1 -1 1 8 0.001251 -0.000000 + 1 -1 -1 2 8 -0.008805 -0.000000 + 1 -1 -1 3 8 -0.003121 -0.000000 + 1 -1 -1 4 8 -0.000289 0.000000 + 1 -1 -1 5 8 -0.000059 -0.000000 + 1 -1 -1 6 8 0.002151 -0.000000 + 1 -1 -1 7 8 0.003360 0.000000 + 1 -1 -1 8 8 -0.002725 0.000000 + 1 -1 -1 9 8 -0.002175 -0.000000 + 1 -1 -1 10 8 -0.002085 0.000000 + 1 -1 -1 11 8 -0.000117 0.000000 + 1 -1 -1 12 8 0.000794 0.000000 + 1 -1 -1 1 9 0.000792 0.000000 + 1 -1 -1 2 9 -0.001717 -0.000000 + 1 -1 -1 3 9 -0.004089 -0.000000 + 1 -1 -1 4 9 0.004567 0.000000 + 1 -1 -1 5 9 -0.003255 0.000000 + 1 -1 -1 6 9 -0.000284 -0.000000 + 1 -1 -1 7 9 -0.000661 0.000000 + 1 -1 -1 8 9 -0.002175 0.000000 + 1 -1 -1 9 9 -0.001782 0.000000 + 1 -1 -1 10 9 0.000794 0.000000 + 1 -1 -1 11 9 -0.001063 -0.000000 + 1 -1 -1 12 9 0.000522 0.000000 + 1 -1 -1 1 10 0.001463 0.000000 + 1 -1 -1 2 10 0.002999 0.000000 + 1 -1 -1 3 10 0.000263 0.000000 + 1 -1 -1 4 10 -0.000480 0.000000 + 1 -1 -1 5 10 0.000633 0.000000 + 1 -1 -1 6 10 -0.002537 -0.000000 + 1 -1 -1 7 10 -0.010651 0.000000 + 1 -1 -1 8 10 -0.004731 0.000000 + 1 -1 -1 9 10 0.000487 0.000000 + 1 -1 -1 10 10 -0.005524 0.000000 + 1 -1 -1 11 10 -0.005064 -0.000000 + 1 -1 -1 12 10 0.000745 -0.000000 + 1 -1 -1 1 11 0.005262 0.000000 + 1 -1 -1 2 11 0.001463 -0.000000 + 1 -1 -1 3 11 -0.004782 0.000000 + 1 -1 -1 4 11 0.000572 -0.000000 + 1 -1 -1 5 11 -0.001131 0.000000 + 1 -1 -1 6 11 -0.000060 -0.000000 + 1 -1 -1 7 11 -0.003540 0.000000 + 1 -1 -1 8 11 0.011154 0.000000 + 1 -1 -1 9 11 0.003444 0.000000 + 1 -1 -1 10 11 -0.005064 0.000000 + 1 -1 -1 11 11 -0.004024 0.000000 + 1 -1 -1 12 11 0.001761 -0.000000 + 1 -1 -1 1 12 0.004782 -0.000000 + 1 -1 -1 2 12 -0.000263 -0.000000 + 1 -1 -1 3 12 -0.004078 0.000000 + 1 -1 -1 4 12 -0.000746 -0.000000 + 1 -1 -1 5 12 0.000561 0.000000 + 1 -1 -1 6 12 0.002086 0.000000 + 1 -1 -1 7 12 -0.000453 0.000000 + 1 -1 -1 8 12 -0.004392 0.000000 + 1 -1 -1 9 12 -0.000782 0.000000 + 1 -1 -1 10 12 0.000745 0.000000 + 1 -1 -1 11 12 0.001761 -0.000000 + 1 -1 -1 12 12 -0.001184 -0.000000 + 1 -1 0 1 1 -0.006750 0.000000 + 1 -1 0 2 1 -0.003264 0.000000 + 1 -1 0 3 1 -0.003360 0.000000 + 1 -1 0 4 1 0.001100 -0.000000 + 1 -1 0 5 1 0.003927 0.000000 + 1 -1 0 6 1 0.001020 0.000000 + 1 -1 0 7 1 -0.009884 0.000000 + 1 -1 0 8 1 -0.008855 0.000000 + 1 -1 0 9 1 0.016241 0.000000 + 1 -1 0 10 1 0.053346 0.000000 + 1 -1 0 11 1 0.020930 -0.000000 + 1 -1 0 12 1 -0.003970 0.000000 + 1 -1 0 1 2 -0.003264 0.000000 + 1 -1 0 2 2 0.003393 0.000000 + 1 -1 0 3 2 -0.003295 -0.000000 + 1 -1 0 4 2 -0.001519 0.000000 + 1 -1 0 5 2 0.001100 0.000000 + 1 -1 0 6 2 0.000143 0.000000 + 1 -1 0 7 2 0.001885 0.000000 + 1 -1 0 8 2 -0.001053 -0.000000 + 1 -1 0 9 2 -0.012679 0.000000 + 1 -1 0 10 2 -0.023372 -0.000000 + 1 -1 0 11 2 -0.021525 0.000000 + 1 -1 0 12 2 -0.008426 -0.000000 + 1 -1 0 1 3 -0.003360 0.000000 + 1 -1 0 2 3 -0.003295 0.000000 + 1 -1 0 3 3 0.000512 -0.000000 + 1 -1 0 4 3 0.000143 -0.000000 + 1 -1 0 5 3 0.001020 -0.000000 + 1 -1 0 6 3 0.000617 -0.000000 + 1 -1 0 7 3 -0.003898 0.000000 + 1 -1 0 8 3 -0.005382 0.000000 + 1 -1 0 9 3 -0.006667 -0.000000 + 1 -1 0 10 3 0.001648 0.000000 + 1 -1 0 11 3 -0.002735 0.000000 + 1 -1 0 12 3 0.001823 -0.000000 + 1 -1 0 1 4 -0.010651 0.000000 + 1 -1 0 2 4 -0.004731 0.000000 + 1 -1 0 3 4 -0.000487 0.000000 + 1 -1 0 4 4 0.003393 -0.000000 + 1 -1 0 5 4 -0.003264 -0.000000 + 1 -1 0 6 4 -0.003295 0.000000 + 1 -1 0 7 4 -0.002409 -0.000000 + 1 -1 0 8 4 -0.003521 -0.000000 + 1 -1 0 9 4 -0.003296 -0.000000 + 1 -1 0 10 4 -0.223461 -0.000000 + 1 -1 0 11 4 0.021015 -0.000000 + 1 -1 0 12 4 0.045911 -0.000000 + 1 -1 0 1 5 -0.003540 0.000000 + 1 -1 0 2 5 0.011154 0.000000 + 1 -1 0 3 5 -0.003444 0.000000 + 1 -1 0 4 5 -0.003264 -0.000000 + 1 -1 0 5 5 -0.006750 0.000000 + 1 -1 0 6 5 -0.003360 0.000000 + 1 -1 0 7 5 -0.000864 -0.000000 + 1 -1 0 8 5 -0.002409 -0.000000 + 1 -1 0 9 5 -0.000583 -0.000000 + 1 -1 0 10 5 0.021015 0.000000 + 1 -1 0 11 5 -0.177076 0.000000 + 1 -1 0 12 5 0.019597 -0.000000 + 1 -1 0 1 6 0.000453 -0.000000 + 1 -1 0 2 6 0.004392 -0.000000 + 1 -1 0 3 6 -0.000782 -0.000000 + 1 -1 0 4 6 -0.003295 -0.000000 + 1 -1 0 5 6 -0.003360 -0.000000 + 1 -1 0 6 6 0.000512 0.000000 + 1 -1 0 7 6 0.000583 -0.000000 + 1 -1 0 8 6 0.003296 0.000000 + 1 -1 0 9 6 -0.002678 0.000000 + 1 -1 0 10 6 -0.045911 -0.000000 + 1 -1 0 11 6 -0.019597 -0.000000 + 1 -1 0 12 6 -0.039538 -0.000000 + 1 -1 0 1 7 -0.177076 -0.000000 + 1 -1 0 2 7 0.021015 0.000000 + 1 -1 0 3 7 -0.019597 -0.000000 + 1 -1 0 4 7 0.053346 0.000000 + 1 -1 0 5 7 0.020930 0.000000 + 1 -1 0 6 7 0.003970 -0.000000 + 1 -1 0 7 7 -0.006750 -0.000000 + 1 -1 0 8 7 -0.003264 -0.000000 + 1 -1 0 9 7 0.003360 -0.000000 + 1 -1 0 10 7 -0.010651 -0.000000 + 1 -1 0 11 7 -0.003540 -0.000000 + 1 -1 0 12 7 -0.000453 -0.000000 + 1 -1 0 1 8 0.021015 0.000000 + 1 -1 0 2 8 -0.223461 0.000000 + 1 -1 0 3 8 -0.045911 0.000000 + 1 -1 0 4 8 -0.023372 -0.000000 + 1 -1 0 5 8 -0.021525 -0.000000 + 1 -1 0 6 8 0.008426 -0.000000 + 1 -1 0 7 8 -0.003264 -0.000000 + 1 -1 0 8 8 0.003393 -0.000000 + 1 -1 0 9 8 0.003295 0.000000 + 1 -1 0 10 8 -0.004731 -0.000000 + 1 -1 0 11 8 0.011154 -0.000000 + 1 -1 0 12 8 -0.004392 -0.000000 + 1 -1 0 1 9 0.019597 0.000000 + 1 -1 0 2 9 0.045911 -0.000000 + 1 -1 0 3 9 -0.039538 0.000000 + 1 -1 0 4 9 -0.001648 -0.000000 + 1 -1 0 5 9 0.002735 -0.000000 + 1 -1 0 6 9 0.001823 0.000000 + 1 -1 0 7 9 0.003360 0.000000 + 1 -1 0 8 9 0.003295 -0.000000 + 1 -1 0 9 9 0.000512 0.000000 + 1 -1 0 10 9 0.000487 -0.000000 + 1 -1 0 11 9 0.003444 -0.000000 + 1 -1 0 12 9 -0.000782 -0.000000 + 1 -1 0 1 10 -0.002409 0.000000 + 1 -1 0 2 10 -0.003521 0.000000 + 1 -1 0 3 10 0.003296 0.000000 + 1 -1 0 4 10 -0.001053 0.000000 + 1 -1 0 5 10 0.001885 -0.000000 + 1 -1 0 6 10 0.012679 -0.000000 + 1 -1 0 7 10 0.011154 -0.000000 + 1 -1 0 8 10 -0.004731 0.000000 + 1 -1 0 9 10 -0.004392 -0.000000 + 1 -1 0 10 10 0.003393 0.000000 + 1 -1 0 11 10 -0.003264 -0.000000 + 1 -1 0 12 10 0.003295 -0.000000 + 1 -1 0 1 11 -0.000864 0.000000 + 1 -1 0 2 11 -0.002409 -0.000000 + 1 -1 0 3 11 0.000583 0.000000 + 1 -1 0 4 11 -0.008855 -0.000000 + 1 -1 0 5 11 -0.009884 -0.000000 + 1 -1 0 6 11 -0.016241 -0.000000 + 1 -1 0 7 11 -0.003540 0.000000 + 1 -1 0 8 11 -0.010651 -0.000000 + 1 -1 0 9 11 -0.000453 -0.000000 + 1 -1 0 10 11 -0.003264 0.000000 + 1 -1 0 11 11 -0.006750 0.000000 + 1 -1 0 12 11 0.003360 -0.000000 + 1 -1 0 1 12 -0.000583 0.000000 + 1 -1 0 2 12 -0.003296 -0.000000 + 1 -1 0 3 12 -0.002678 0.000000 + 1 -1 0 4 12 0.005382 -0.000000 + 1 -1 0 5 12 0.003898 -0.000000 + 1 -1 0 6 12 -0.006667 0.000000 + 1 -1 0 7 12 0.003444 0.000000 + 1 -1 0 8 12 0.000487 0.000000 + 1 -1 0 9 12 -0.000782 -0.000000 + 1 -1 0 10 12 0.003295 0.000000 + 1 -1 0 11 12 0.003360 0.000000 + 1 -1 0 12 12 0.000512 -0.000000 + 1 -1 1 1 1 -0.004024 0.000000 + 1 -1 1 2 1 -0.005064 -0.000000 + 1 -1 1 3 1 -0.001761 0.000000 + 1 -1 1 4 1 0.001100 -0.000000 + 1 -1 1 5 1 0.003927 -0.000000 + 1 -1 1 6 1 0.001020 0.000000 + 1 -1 1 7 1 -0.001131 0.000000 + 1 -1 1 8 1 0.000572 -0.000000 + 1 -1 1 9 1 0.000060 0.000000 + 1 -1 1 10 1 -0.018379 0.000000 + 1 -1 1 11 1 0.036873 -0.000000 + 1 -1 1 12 1 0.012364 0.000000 + 1 -1 1 1 2 -0.005064 -0.000000 + 1 -1 1 2 2 -0.005524 0.000000 + 1 -1 1 3 2 -0.000745 0.000000 + 1 -1 1 4 2 -0.001519 0.000000 + 1 -1 1 5 2 0.001100 0.000000 + 1 -1 1 6 2 0.000143 0.000000 + 1 -1 1 7 2 0.000633 0.000000 + 1 -1 1 8 2 -0.000480 0.000000 + 1 -1 1 9 2 0.002537 -0.000000 + 1 -1 1 10 2 -0.023064 0.000000 + 1 -1 1 11 2 0.042521 -0.000000 + 1 -1 1 12 2 -0.003338 0.000000 + 1 -1 1 1 3 -0.001761 -0.000000 + 1 -1 1 2 3 -0.000745 -0.000000 + 1 -1 1 3 3 -0.001184 0.000000 + 1 -1 1 4 3 0.000143 -0.000000 + 1 -1 1 5 3 0.001020 -0.000000 + 1 -1 1 6 3 0.000617 -0.000000 + 1 -1 1 7 3 -0.000561 0.000000 + 1 -1 1 8 3 0.000746 0.000000 + 1 -1 1 9 3 0.002086 0.000000 + 1 -1 1 10 3 -0.002867 0.000000 + 1 -1 1 11 3 0.001922 0.000000 + 1 -1 1 12 3 0.001533 0.000000 + 1 -1 1 1 4 -0.000117 -0.000000 + 1 -1 1 2 4 -0.002085 -0.000000 + 1 -1 1 3 4 -0.000794 0.000000 + 1 -1 1 4 4 -0.002725 -0.000000 + 1 -1 1 5 4 0.003360 0.000000 + 1 -1 1 6 4 0.002175 0.000000 + 1 -1 1 7 4 0.001052 0.000000 + 1 -1 1 8 4 -0.000692 -0.000000 + 1 -1 1 9 4 0.000790 0.000000 + 1 -1 1 10 4 -0.008805 -0.000000 + 1 -1 1 11 4 0.001251 0.000000 + 1 -1 1 12 4 0.003121 0.000000 + 1 -1 1 1 5 0.001789 -0.000000 + 1 -1 1 2 5 -0.000117 -0.000000 + 1 -1 1 3 5 0.001063 -0.000000 + 1 -1 1 4 5 0.003360 0.000000 + 1 -1 1 5 5 -0.006576 -0.000000 + 1 -1 1 6 5 0.000661 0.000000 + 1 -1 1 7 5 0.004249 -0.000000 + 1 -1 1 8 5 0.001052 -0.000000 + 1 -1 1 9 5 0.001055 0.000000 + 1 -1 1 10 5 0.004941 -0.000000 + 1 -1 1 11 5 0.000182 -0.000000 + 1 -1 1 12 5 0.014966 0.000000 + 1 -1 1 1 6 0.001063 -0.000000 + 1 -1 1 2 6 -0.000794 0.000000 + 1 -1 1 3 6 0.000522 -0.000000 + 1 -1 1 4 6 0.002175 -0.000000 + 1 -1 1 5 6 0.000661 -0.000000 + 1 -1 1 6 6 -0.001782 -0.000000 + 1 -1 1 7 6 -0.001055 -0.000000 + 1 -1 1 8 6 -0.000790 -0.000000 + 1 -1 1 9 6 0.001687 0.000000 + 1 -1 1 10 6 0.001717 0.000000 + 1 -1 1 11 6 -0.000792 0.000000 + 1 -1 1 12 6 -0.004089 -0.000000 + 1 -1 1 1 7 0.000182 -0.000000 + 1 -1 1 2 7 0.001251 0.000000 + 1 -1 1 3 7 -0.000792 -0.000000 + 1 -1 1 4 7 -0.018379 -0.000000 + 1 -1 1 5 7 0.036873 -0.000000 + 1 -1 1 6 7 -0.012364 -0.000000 + 1 -1 1 7 7 -0.004024 0.000000 + 1 -1 1 8 7 -0.005064 -0.000000 + 1 -1 1 9 7 0.001761 -0.000000 + 1 -1 1 10 7 0.011154 0.000000 + 1 -1 1 11 7 -0.003540 -0.000000 + 1 -1 1 12 7 0.003444 -0.000000 + 1 -1 1 1 8 0.004941 -0.000000 + 1 -1 1 2 8 -0.008805 0.000000 + 1 -1 1 3 8 0.001717 -0.000000 + 1 -1 1 4 8 -0.023064 0.000000 + 1 -1 1 5 8 0.042521 -0.000000 + 1 -1 1 6 8 0.003338 -0.000000 + 1 -1 1 7 8 -0.005064 -0.000000 + 1 -1 1 8 8 -0.005524 0.000000 + 1 -1 1 9 8 0.000745 -0.000000 + 1 -1 1 10 8 -0.004731 -0.000000 + 1 -1 1 11 8 -0.010651 0.000000 + 1 -1 1 12 8 0.000487 -0.000000 + 1 -1 1 1 9 0.014966 -0.000000 + 1 -1 1 2 9 0.003121 -0.000000 + 1 -1 1 3 9 -0.004089 0.000000 + 1 -1 1 4 9 0.002867 -0.000000 + 1 -1 1 5 9 -0.001922 -0.000000 + 1 -1 1 6 9 0.001533 0.000000 + 1 -1 1 7 9 0.001761 0.000000 + 1 -1 1 8 9 0.000745 0.000000 + 1 -1 1 9 9 -0.001184 0.000000 + 1 -1 1 10 9 -0.004392 0.000000 + 1 -1 1 11 9 -0.000453 0.000000 + 1 -1 1 12 9 -0.000782 0.000000 + 1 -1 1 1 10 0.001052 -0.000000 + 1 -1 1 2 10 -0.000692 0.000000 + 1 -1 1 3 10 -0.000790 -0.000000 + 1 -1 1 4 10 -0.004057 0.000000 + 1 -1 1 5 10 -0.003898 -0.000000 + 1 -1 1 6 10 0.005418 0.000000 + 1 -1 1 7 10 -0.000117 -0.000000 + 1 -1 1 8 10 -0.002085 0.000000 + 1 -1 1 9 10 0.000794 -0.000000 + 1 -1 1 10 10 -0.002725 -0.000000 + 1 -1 1 11 10 0.003360 0.000000 + 1 -1 1 12 10 -0.002175 -0.000000 + 1 -1 1 1 11 0.004249 -0.000000 + 1 -1 1 2 11 0.001052 0.000000 + 1 -1 1 3 11 -0.001055 0.000000 + 1 -1 1 4 11 -0.000661 0.000000 + 1 -1 1 5 11 0.000656 0.000000 + 1 -1 1 6 11 0.005132 -0.000000 + 1 -1 1 7 11 0.001789 -0.000000 + 1 -1 1 8 11 -0.000117 -0.000000 + 1 -1 1 9 11 -0.001063 0.000000 + 1 -1 1 10 11 0.003360 -0.000000 + 1 -1 1 11 11 -0.006576 -0.000000 + 1 -1 1 12 11 -0.000661 -0.000000 + 1 -1 1 1 12 0.001055 0.000000 + 1 -1 1 2 12 0.000790 -0.000000 + 1 -1 1 3 12 0.001687 0.000000 + 1 -1 1 4 12 -0.002825 -0.000000 + 1 -1 1 5 12 -0.002035 0.000000 + 1 -1 1 6 12 0.003373 0.000000 + 1 -1 1 7 12 -0.001063 0.000000 + 1 -1 1 8 12 0.000794 -0.000000 + 1 -1 1 9 12 0.000522 0.000000 + 1 -1 1 10 12 -0.002175 0.000000 + 1 -1 1 11 12 -0.000661 0.000000 + 1 -1 1 12 12 -0.001782 -0.000000 + 1 0 -1 1 1 -0.002576 -0.000000 + 1 0 -1 2 1 -0.002479 -0.000000 + 1 0 -1 3 1 0.012014 0.000000 + 1 0 -1 4 1 -0.002049 -0.000000 + 1 0 -1 5 1 -0.007888 -0.000000 + 1 0 -1 6 1 0.000537 -0.000000 + 1 0 -1 7 1 0.000656 -0.000000 + 1 0 -1 8 1 -0.003898 0.000000 + 1 0 -1 9 1 -0.002035 0.000000 + 1 0 -1 10 1 -0.000059 0.000000 + 1 0 -1 11 1 -0.001067 0.000000 + 1 0 -1 12 1 -0.003255 0.000000 + 1 0 -1 1 2 -0.002479 0.000000 + 1 0 -1 2 2 0.005370 0.000000 + 1 0 -1 3 2 -0.013477 0.000000 + 1 0 -1 4 2 0.001565 0.000000 + 1 0 -1 5 2 -0.002049 -0.000000 + 1 0 -1 6 2 0.011447 -0.000000 + 1 0 -1 7 2 -0.000661 0.000000 + 1 0 -1 8 2 -0.004057 0.000000 + 1 0 -1 9 2 -0.002825 -0.000000 + 1 0 -1 10 2 -0.000289 -0.000000 + 1 0 -1 11 2 -0.000808 0.000000 + 1 0 -1 12 2 0.004567 0.000000 + 1 0 -1 1 3 0.012014 -0.000000 + 1 0 -1 2 3 -0.013477 0.000000 + 1 0 -1 3 3 -0.011804 0.000000 + 1 0 -1 4 3 0.011447 0.000000 + 1 0 -1 5 3 0.000537 -0.000000 + 1 0 -1 6 3 0.017130 0.000000 + 1 0 -1 7 3 0.005132 -0.000000 + 1 0 -1 8 3 0.005418 -0.000000 + 1 0 -1 9 3 0.003373 0.000000 + 1 0 -1 10 3 0.002151 -0.000000 + 1 0 -1 11 3 0.000143 0.000000 + 1 0 -1 12 3 -0.000284 0.000000 + 1 0 -1 1 4 0.131177 -0.000000 + 1 0 -1 2 4 -0.114958 -0.000000 + 1 0 -1 3 4 -0.031897 -0.000000 + 1 0 -1 4 4 0.000971 -0.000000 + 1 0 -1 5 4 -0.001875 -0.000000 + 1 0 -1 6 4 -0.016089 0.000000 + 1 0 -1 7 4 -0.002409 0.000000 + 1 0 -1 8 4 -0.003521 -0.000000 + 1 0 -1 9 4 -0.003296 0.000000 + 1 0 -1 10 4 -0.008805 -0.000000 + 1 0 -1 11 4 0.001251 0.000000 + 1 0 -1 12 4 0.003121 0.000000 + 1 0 -1 1 5 0.117955 -0.000000 + 1 0 -1 2 5 -0.029678 -0.000000 + 1 0 -1 3 5 -0.021868 0.000000 + 1 0 -1 4 5 -0.001875 0.000000 + 1 0 -1 5 5 -0.003709 0.000000 + 1 0 -1 6 5 -0.010883 0.000000 + 1 0 -1 7 5 -0.000864 0.000000 + 1 0 -1 8 5 -0.002409 -0.000000 + 1 0 -1 9 5 -0.000583 -0.000000 + 1 0 -1 10 5 0.004941 -0.000000 + 1 0 -1 11 5 0.000182 0.000000 + 1 0 -1 12 5 0.014966 0.000000 + 1 0 -1 1 6 -0.042312 -0.000000 + 1 0 -1 2 6 0.080588 -0.000000 + 1 0 -1 3 6 -0.191389 -0.000000 + 1 0 -1 4 6 -0.016089 -0.000000 + 1 0 -1 5 6 -0.010883 -0.000000 + 1 0 -1 6 6 -0.005433 0.000000 + 1 0 -1 7 6 0.000583 -0.000000 + 1 0 -1 8 6 0.003296 -0.000000 + 1 0 -1 9 6 -0.002678 0.000000 + 1 0 -1 10 6 0.001717 0.000000 + 1 0 -1 11 6 -0.000792 -0.000000 + 1 0 -1 12 6 -0.004089 -0.000000 + 1 0 -1 1 7 0.000182 0.000000 + 1 0 -1 2 7 0.001251 0.000000 + 1 0 -1 3 7 -0.000792 0.000000 + 1 0 -1 4 7 -0.000059 0.000000 + 1 0 -1 5 7 -0.001067 -0.000000 + 1 0 -1 6 7 0.003255 -0.000000 + 1 0 -1 7 7 -0.002576 -0.000000 + 1 0 -1 8 7 -0.002479 -0.000000 + 1 0 -1 9 7 -0.012014 -0.000000 + 1 0 -1 10 7 0.000046 0.000000 + 1 0 -1 11 7 -0.000356 -0.000000 + 1 0 -1 12 7 0.007908 -0.000000 + 1 0 -1 1 8 0.004941 -0.000000 + 1 0 -1 2 8 -0.008805 0.000000 + 1 0 -1 3 8 0.001717 -0.000000 + 1 0 -1 4 8 -0.000289 0.000000 + 1 0 -1 5 8 -0.000808 -0.000000 + 1 0 -1 6 8 -0.004567 -0.000000 + 1 0 -1 7 8 -0.002479 0.000000 + 1 0 -1 8 8 0.005370 0.000000 + 1 0 -1 9 8 0.013477 0.000000 + 1 0 -1 10 8 0.004160 -0.000000 + 1 0 -1 11 8 0.000046 0.000000 + 1 0 -1 12 8 -0.003257 -0.000000 + 1 0 -1 1 9 0.014966 -0.000000 + 1 0 -1 2 9 0.003121 -0.000000 + 1 0 -1 3 9 -0.004089 0.000000 + 1 0 -1 4 9 -0.002151 0.000000 + 1 0 -1 5 9 -0.000143 0.000000 + 1 0 -1 6 9 -0.000284 0.000000 + 1 0 -1 7 9 -0.012014 0.000000 + 1 0 -1 8 9 0.013477 -0.000000 + 1 0 -1 9 9 -0.011804 0.000000 + 1 0 -1 10 9 -0.003257 0.000000 + 1 0 -1 11 9 0.007908 0.000000 + 1 0 -1 12 9 -0.001138 -0.000000 + 1 0 -1 1 10 -0.002409 -0.000000 + 1 0 -1 2 10 -0.003521 0.000000 + 1 0 -1 3 10 0.003296 0.000000 + 1 0 -1 4 10 -0.000480 -0.000000 + 1 0 -1 5 10 0.000572 0.000000 + 1 0 -1 6 10 0.000746 -0.000000 + 1 0 -1 7 10 -0.029678 0.000000 + 1 0 -1 8 10 -0.114958 -0.000000 + 1 0 -1 9 10 -0.080588 0.000000 + 1 0 -1 10 10 0.000971 -0.000000 + 1 0 -1 11 10 -0.001875 -0.000000 + 1 0 -1 12 10 0.016089 -0.000000 + 1 0 -1 1 11 -0.000864 0.000000 + 1 0 -1 2 11 -0.002409 0.000000 + 1 0 -1 3 11 0.000583 0.000000 + 1 0 -1 4 11 0.000633 -0.000000 + 1 0 -1 5 11 -0.001131 0.000000 + 1 0 -1 6 11 -0.000561 0.000000 + 1 0 -1 7 11 0.117955 0.000000 + 1 0 -1 8 11 0.131177 0.000000 + 1 0 -1 9 11 0.042312 0.000000 + 1 0 -1 10 11 -0.001875 0.000000 + 1 0 -1 11 11 -0.003709 0.000000 + 1 0 -1 12 11 0.010883 -0.000000 + 1 0 -1 1 12 -0.000583 0.000000 + 1 0 -1 2 12 -0.003296 0.000000 + 1 0 -1 3 12 -0.002678 -0.000000 + 1 0 -1 4 12 0.002537 -0.000000 + 1 0 -1 5 12 0.000060 -0.000000 + 1 0 -1 6 12 0.002086 -0.000000 + 1 0 -1 7 12 0.021868 -0.000000 + 1 0 -1 8 12 0.031897 0.000000 + 1 0 -1 9 12 -0.191389 -0.000000 + 1 0 -1 10 12 0.016089 0.000000 + 1 0 -1 11 12 0.010883 0.000000 + 1 0 -1 12 12 -0.005433 -0.000000 + 1 0 0 1 1 0.001945 -0.000000 + 1 0 0 2 1 0.005620 0.000000 + 1 0 0 3 1 0.009668 0.000000 + 1 0 0 4 1 -0.001355 -0.000000 + 1 0 0 5 1 -0.001701 -0.000000 + 1 0 0 6 1 0.002485 0.000000 + 1 0 0 7 1 -0.009884 0.000000 + 1 0 0 8 1 0.001885 0.000000 + 1 0 0 9 1 0.003898 0.000000 + 1 0 0 10 1 0.042521 0.000000 + 1 0 0 11 1 0.036873 0.000000 + 1 0 0 12 1 -0.001922 0.000000 + 1 0 0 1 2 0.005620 -0.000000 + 1 0 0 2 2 -0.000637 0.000000 + 1 0 0 3 2 0.014431 0.000000 + 1 0 0 4 2 0.006074 -0.000000 + 1 0 0 5 2 -0.001355 0.000000 + 1 0 0 6 2 0.008388 0.000000 + 1 0 0 7 2 -0.008855 0.000000 + 1 0 0 8 2 -0.001053 -0.000000 + 1 0 0 9 2 0.005382 0.000000 + 1 0 0 10 2 -0.023064 -0.000000 + 1 0 0 11 2 -0.018379 0.000000 + 1 0 0 12 2 0.002867 -0.000000 + 1 0 0 1 3 0.009668 -0.000000 + 1 0 0 2 3 0.014431 -0.000000 + 1 0 0 3 3 -0.073208 0.000000 + 1 0 0 4 3 0.008388 -0.000000 + 1 0 0 5 3 0.002485 -0.000000 + 1 0 0 6 3 -0.009679 0.000000 + 1 0 0 7 3 -0.016241 0.000000 + 1 0 0 8 3 0.012679 0.000000 + 1 0 0 9 3 -0.006667 -0.000000 + 1 0 0 10 3 0.003338 0.000000 + 1 0 0 11 3 -0.012364 0.000000 + 1 0 0 12 3 0.001533 -0.000000 + 1 0 0 1 4 -0.029678 -0.000000 + 1 0 0 2 4 -0.114958 -0.000000 + 1 0 0 3 4 0.080588 0.000000 + 1 0 0 4 4 -0.000637 -0.000000 + 1 0 0 5 4 0.005620 0.000000 + 1 0 0 6 4 0.014431 -0.000000 + 1 0 0 7 4 0.001463 -0.000000 + 1 0 0 8 4 0.002999 0.000000 + 1 0 0 9 4 -0.000263 -0.000000 + 1 0 0 10 4 -0.223461 -0.000000 + 1 0 0 11 4 0.021015 -0.000000 + 1 0 0 12 4 0.045911 -0.000000 + 1 0 0 1 5 0.117955 -0.000000 + 1 0 0 2 5 0.131177 0.000000 + 1 0 0 3 5 -0.042312 0.000000 + 1 0 0 4 5 0.005620 -0.000000 + 1 0 0 5 5 0.001945 0.000000 + 1 0 0 6 5 0.009668 0.000000 + 1 0 0 7 5 0.005262 -0.000000 + 1 0 0 8 5 0.001463 0.000000 + 1 0 0 9 5 0.004782 -0.000000 + 1 0 0 10 5 0.021015 0.000000 + 1 0 0 11 5 -0.177076 0.000000 + 1 0 0 12 5 0.019597 -0.000000 + 1 0 0 1 6 -0.021868 -0.000000 + 1 0 0 2 6 -0.031897 -0.000000 + 1 0 0 3 6 -0.191389 -0.000000 + 1 0 0 4 6 0.014431 -0.000000 + 1 0 0 5 6 0.009668 -0.000000 + 1 0 0 6 6 -0.073208 -0.000000 + 1 0 0 7 6 -0.004782 -0.000000 + 1 0 0 8 6 0.000263 0.000000 + 1 0 0 9 6 -0.004078 -0.000000 + 1 0 0 10 6 -0.045911 -0.000000 + 1 0 0 11 6 -0.019597 -0.000000 + 1 0 0 12 6 -0.039538 0.000000 + 1 0 0 1 7 -0.177076 -0.000000 + 1 0 0 2 7 0.021015 0.000000 + 1 0 0 3 7 -0.019597 0.000000 + 1 0 0 4 7 0.042521 0.000000 + 1 0 0 5 7 0.036873 0.000000 + 1 0 0 6 7 0.001922 -0.000000 + 1 0 0 7 7 0.001945 -0.000000 + 1 0 0 8 7 0.005620 0.000000 + 1 0 0 9 7 -0.009668 -0.000000 + 1 0 0 10 7 -0.029678 -0.000000 + 1 0 0 11 7 0.117955 -0.000000 + 1 0 0 12 7 0.021868 0.000000 + 1 0 0 1 8 0.021015 0.000000 + 1 0 0 2 8 -0.223461 0.000000 + 1 0 0 3 8 -0.045911 0.000000 + 1 0 0 4 8 -0.023064 -0.000000 + 1 0 0 5 8 -0.018379 -0.000000 + 1 0 0 6 8 -0.002867 -0.000000 + 1 0 0 7 8 0.005620 -0.000000 + 1 0 0 8 8 -0.000637 -0.000000 + 1 0 0 9 8 -0.014431 -0.000000 + 1 0 0 10 8 -0.114958 0.000000 + 1 0 0 11 8 0.131177 -0.000000 + 1 0 0 12 8 0.031897 -0.000000 + 1 0 0 1 9 0.019597 0.000000 + 1 0 0 2 9 0.045911 -0.000000 + 1 0 0 3 9 -0.039538 0.000000 + 1 0 0 4 9 -0.003338 -0.000000 + 1 0 0 5 9 0.012364 -0.000000 + 1 0 0 6 9 0.001533 0.000000 + 1 0 0 7 9 -0.009668 0.000000 + 1 0 0 8 9 -0.014431 0.000000 + 1 0 0 9 9 -0.073208 0.000000 + 1 0 0 10 9 -0.080588 -0.000000 + 1 0 0 11 9 0.042312 -0.000000 + 1 0 0 12 9 -0.191389 0.000000 + 1 0 0 1 10 0.001463 0.000000 + 1 0 0 2 10 0.002999 0.000000 + 1 0 0 3 10 0.000263 0.000000 + 1 0 0 4 10 -0.001053 -0.000000 + 1 0 0 5 10 -0.008855 -0.000000 + 1 0 0 6 10 -0.005382 -0.000000 + 1 0 0 7 10 0.131177 -0.000000 + 1 0 0 8 10 -0.114958 0.000000 + 1 0 0 9 10 0.031897 0.000000 + 1 0 0 10 10 -0.000637 0.000000 + 1 0 0 11 10 0.005620 0.000000 + 1 0 0 12 10 -0.014431 -0.000000 + 1 0 0 1 11 0.005262 0.000000 + 1 0 0 2 11 0.001463 -0.000000 + 1 0 0 3 11 -0.004782 0.000000 + 1 0 0 4 11 0.001885 -0.000000 + 1 0 0 5 11 -0.009884 0.000000 + 1 0 0 6 11 -0.003898 -0.000000 + 1 0 0 7 11 0.117955 -0.000000 + 1 0 0 8 11 -0.029678 -0.000000 + 1 0 0 9 11 0.021868 -0.000000 + 1 0 0 10 11 0.005620 -0.000000 + 1 0 0 11 11 0.001945 0.000000 + 1 0 0 12 11 -0.009668 -0.000000 + 1 0 0 1 12 0.004782 0.000000 + 1 0 0 2 12 -0.000263 -0.000000 + 1 0 0 3 12 -0.004078 0.000000 + 1 0 0 4 12 -0.012679 -0.000000 + 1 0 0 5 12 0.016241 -0.000000 + 1 0 0 6 12 -0.006667 -0.000000 + 1 0 0 7 12 0.042312 -0.000000 + 1 0 0 8 12 -0.080588 0.000000 + 1 0 0 9 12 -0.191389 -0.000000 + 1 0 0 10 12 -0.014431 0.000000 + 1 0 0 11 12 -0.009668 0.000000 + 1 0 0 12 12 -0.073208 -0.000000 + 1 0 1 1 1 -0.003709 -0.000000 + 1 0 1 2 1 -0.001875 -0.000000 + 1 0 1 3 1 -0.010883 0.000000 + 1 0 1 4 1 -0.001355 -0.000000 + 1 0 1 5 1 -0.001701 -0.000000 + 1 0 1 6 1 0.002485 0.000000 + 1 0 1 7 1 -0.001131 -0.000000 + 1 0 1 8 1 0.000633 -0.000000 + 1 0 1 9 1 0.000561 0.000000 + 1 0 1 10 1 -0.021525 0.000000 + 1 0 1 11 1 0.020930 -0.000000 + 1 0 1 12 1 0.002735 0.000000 + 1 0 1 1 2 -0.001875 -0.000000 + 1 0 1 2 2 0.000971 -0.000000 + 1 0 1 3 2 -0.016089 0.000000 + 1 0 1 4 2 0.006074 -0.000000 + 1 0 1 5 2 -0.001355 0.000000 + 1 0 1 6 2 0.008388 0.000000 + 1 0 1 7 2 0.000572 0.000000 + 1 0 1 8 2 -0.000480 0.000000 + 1 0 1 9 2 -0.000746 0.000000 + 1 0 1 10 2 -0.023372 0.000000 + 1 0 1 11 2 0.053346 -0.000000 + 1 0 1 12 2 -0.001648 0.000000 + 1 0 1 1 3 -0.010883 -0.000000 + 1 0 1 2 3 -0.016089 -0.000000 + 1 0 1 3 3 -0.005433 0.000000 + 1 0 1 4 3 0.008388 -0.000000 + 1 0 1 5 3 0.002485 -0.000000 + 1 0 1 6 3 -0.009679 0.000000 + 1 0 1 7 3 -0.000060 0.000000 + 1 0 1 8 3 -0.002537 0.000000 + 1 0 1 9 3 0.002086 -0.000000 + 1 0 1 10 3 0.008426 0.000000 + 1 0 1 11 3 0.003970 0.000000 + 1 0 1 12 3 0.001823 0.000000 + 1 0 1 1 4 0.000046 -0.000000 + 1 0 1 2 4 0.004160 -0.000000 + 1 0 1 3 4 0.003257 0.000000 + 1 0 1 4 4 0.005370 -0.000000 + 1 0 1 5 4 -0.002479 0.000000 + 1 0 1 6 4 -0.013477 -0.000000 + 1 0 1 7 4 0.001052 0.000000 + 1 0 1 8 4 -0.000692 -0.000000 + 1 0 1 9 4 0.000790 -0.000000 + 1 0 1 10 4 -0.008805 -0.000000 + 1 0 1 11 4 0.004941 0.000000 + 1 0 1 12 4 -0.001717 0.000000 + 1 0 1 1 5 -0.000356 -0.000000 + 1 0 1 2 5 0.000046 0.000000 + 1 0 1 3 5 -0.007908 0.000000 + 1 0 1 4 5 -0.002479 0.000000 + 1 0 1 5 5 -0.002576 0.000000 + 1 0 1 6 5 0.012014 0.000000 + 1 0 1 7 5 0.004249 -0.000000 + 1 0 1 8 5 0.001052 -0.000000 + 1 0 1 9 5 0.001055 0.000000 + 1 0 1 10 5 0.001251 0.000000 + 1 0 1 11 5 0.000182 -0.000000 + 1 0 1 12 5 0.000792 0.000000 + 1 0 1 1 6 -0.007908 -0.000000 + 1 0 1 2 6 0.003257 -0.000000 + 1 0 1 3 6 -0.001138 -0.000000 + 1 0 1 4 6 -0.013477 0.000000 + 1 0 1 5 6 0.012014 -0.000000 + 1 0 1 6 6 -0.011804 -0.000000 + 1 0 1 7 6 -0.001055 -0.000000 + 1 0 1 8 6 -0.000790 -0.000000 + 1 0 1 9 6 0.001687 0.000000 + 1 0 1 10 6 -0.003121 0.000000 + 1 0 1 11 6 -0.014966 -0.000000 + 1 0 1 12 6 -0.004089 0.000000 + 1 0 1 1 7 0.000182 0.000000 + 1 0 1 2 7 0.004941 0.000000 + 1 0 1 3 7 -0.014966 0.000000 + 1 0 1 4 7 -0.021525 -0.000000 + 1 0 1 5 7 0.020930 -0.000000 + 1 0 1 6 7 -0.002735 0.000000 + 1 0 1 7 7 -0.003709 0.000000 + 1 0 1 8 7 -0.001875 -0.000000 + 1 0 1 9 7 0.010883 -0.000000 + 1 0 1 10 7 0.131177 0.000000 + 1 0 1 11 7 0.117955 0.000000 + 1 0 1 12 7 0.042312 0.000000 + 1 0 1 1 8 0.001251 -0.000000 + 1 0 1 2 8 -0.008805 0.000000 + 1 0 1 3 8 -0.003121 -0.000000 + 1 0 1 4 8 -0.023372 0.000000 + 1 0 1 5 8 0.053346 -0.000000 + 1 0 1 6 8 0.001648 -0.000000 + 1 0 1 7 8 -0.001875 -0.000000 + 1 0 1 8 8 0.000971 -0.000000 + 1 0 1 9 8 0.016089 -0.000000 + 1 0 1 10 8 -0.114958 -0.000000 + 1 0 1 11 8 -0.029678 0.000000 + 1 0 1 12 8 -0.080588 -0.000000 + 1 0 1 1 9 0.000792 -0.000000 + 1 0 1 2 9 -0.001717 -0.000000 + 1 0 1 3 9 -0.004089 -0.000000 + 1 0 1 4 9 -0.008426 -0.000000 + 1 0 1 5 9 -0.003970 -0.000000 + 1 0 1 6 9 0.001823 0.000000 + 1 0 1 7 9 0.010883 0.000000 + 1 0 1 8 9 0.016089 0.000000 + 1 0 1 9 9 -0.005433 -0.000000 + 1 0 1 10 9 0.031897 -0.000000 + 1 0 1 11 9 0.021868 0.000000 + 1 0 1 12 9 -0.191389 0.000000 + 1 0 1 1 10 0.001052 0.000000 + 1 0 1 2 10 -0.000692 -0.000000 + 1 0 1 3 10 -0.000790 -0.000000 + 1 0 1 4 10 -0.004057 0.000000 + 1 0 1 5 10 -0.000661 -0.000000 + 1 0 1 6 10 0.002825 0.000000 + 1 0 1 7 10 0.000046 -0.000000 + 1 0 1 8 10 0.004160 0.000000 + 1 0 1 9 10 -0.003257 -0.000000 + 1 0 1 10 10 0.005370 -0.000000 + 1 0 1 11 10 -0.002479 0.000000 + 1 0 1 12 10 0.013477 0.000000 + 1 0 1 1 11 0.004249 -0.000000 + 1 0 1 2 11 0.001052 0.000000 + 1 0 1 3 11 -0.001055 -0.000000 + 1 0 1 4 11 -0.003898 0.000000 + 1 0 1 5 11 0.000656 -0.000000 + 1 0 1 6 11 0.002035 0.000000 + 1 0 1 7 11 -0.000356 -0.000000 + 1 0 1 8 11 0.000046 0.000000 + 1 0 1 9 11 0.007908 -0.000000 + 1 0 1 10 11 -0.002479 -0.000000 + 1 0 1 11 11 -0.002576 -0.000000 + 1 0 1 12 11 -0.012014 -0.000000 + 1 0 1 1 12 0.001055 -0.000000 + 1 0 1 2 12 0.000790 -0.000000 + 1 0 1 3 12 0.001687 0.000000 + 1 0 1 4 12 -0.005418 0.000000 + 1 0 1 5 12 -0.005132 -0.000000 + 1 0 1 6 12 0.003373 0.000000 + 1 0 1 7 12 0.007908 0.000000 + 1 0 1 8 12 -0.003257 0.000000 + 1 0 1 9 12 -0.001138 -0.000000 + 1 0 1 10 12 0.013477 -0.000000 + 1 0 1 11 12 -0.012014 0.000000 + 1 0 1 12 12 -0.011804 0.000000 + 1 1 -1 1 1 -0.006576 0.000000 + 1 1 -1 2 1 0.003360 0.000000 + 1 1 -1 3 1 0.000661 0.000000 + 1 1 -1 4 1 -0.000136 -0.000000 + 1 1 -1 5 1 -0.000898 0.000000 + 1 1 -1 6 1 -0.000411 -0.000000 + 1 1 -1 7 1 0.000656 0.000000 + 1 1 -1 8 1 -0.000661 0.000000 + 1 1 -1 9 1 -0.005132 0.000000 + 1 1 -1 10 1 -0.000808 0.000000 + 1 1 -1 11 1 -0.001067 0.000000 + 1 1 -1 12 1 -0.000143 -0.000000 + 1 1 -1 1 2 0.003360 -0.000000 + 1 1 -1 2 2 -0.002725 -0.000000 + 1 1 -1 3 2 0.002175 0.000000 + 1 1 -1 4 2 -0.000701 0.000000 + 1 1 -1 5 2 -0.000136 -0.000000 + 1 1 -1 6 2 -0.000218 0.000000 + 1 1 -1 7 2 -0.003898 0.000000 + 1 1 -1 8 2 -0.004057 -0.000000 + 1 1 -1 9 2 -0.005418 -0.000000 + 1 1 -1 10 2 -0.000289 -0.000000 + 1 1 -1 11 2 -0.000059 0.000000 + 1 1 -1 12 2 -0.002151 0.000000 + 1 1 -1 1 3 0.000661 0.000000 + 1 1 -1 2 3 0.002175 0.000000 + 1 1 -1 3 3 -0.001782 -0.000000 + 1 1 -1 4 3 -0.000218 -0.000000 + 1 1 -1 5 3 -0.000411 -0.000000 + 1 1 -1 6 3 0.000726 0.000000 + 1 1 -1 7 3 0.002035 0.000000 + 1 1 -1 8 3 0.002825 -0.000000 + 1 1 -1 9 3 0.003373 0.000000 + 1 1 -1 10 3 -0.004567 -0.000000 + 1 1 -1 11 3 0.003255 -0.000000 + 1 1 -1 12 3 -0.000284 -0.000000 + 1 1 -1 1 4 0.011154 -0.000000 + 1 1 -1 2 4 -0.004731 0.000000 + 1 1 -1 3 4 0.004392 0.000000 + 1 1 -1 4 4 -0.005524 0.000000 + 1 1 -1 5 4 -0.005064 -0.000000 + 1 1 -1 6 4 -0.000745 0.000000 + 1 1 -1 7 4 0.001463 0.000000 + 1 1 -1 8 4 0.002999 0.000000 + 1 1 -1 9 4 -0.000263 0.000000 + 1 1 -1 10 4 -0.008805 -0.000000 + 1 1 -1 11 4 0.004941 0.000000 + 1 1 -1 12 4 -0.001717 0.000000 + 1 1 -1 1 5 -0.003540 0.000000 + 1 1 -1 2 5 -0.010651 -0.000000 + 1 1 -1 3 5 0.000453 0.000000 + 1 1 -1 4 5 -0.005064 0.000000 + 1 1 -1 5 5 -0.004024 -0.000000 + 1 1 -1 6 5 -0.001761 0.000000 + 1 1 -1 7 5 0.005262 -0.000000 + 1 1 -1 8 5 0.001463 -0.000000 + 1 1 -1 9 5 0.004782 0.000000 + 1 1 -1 10 5 0.001251 -0.000000 + 1 1 -1 11 5 0.000182 -0.000000 + 1 1 -1 12 5 0.000792 0.000000 + 1 1 -1 1 6 -0.003444 -0.000000 + 1 1 -1 2 6 -0.000487 -0.000000 + 1 1 -1 3 6 -0.000782 -0.000000 + 1 1 -1 4 6 -0.000745 -0.000000 + 1 1 -1 5 6 -0.001761 -0.000000 + 1 1 -1 6 6 -0.001184 0.000000 + 1 1 -1 7 6 -0.004782 -0.000000 + 1 1 -1 8 6 0.000263 0.000000 + 1 1 -1 9 6 -0.004078 0.000000 + 1 1 -1 10 6 -0.003121 0.000000 + 1 1 -1 11 6 -0.014966 0.000000 + 1 1 -1 12 6 -0.004089 0.000000 + 1 1 -1 1 7 0.000182 0.000000 + 1 1 -1 2 7 0.004941 0.000000 + 1 1 -1 3 7 -0.014966 0.000000 + 1 1 -1 4 7 -0.000808 0.000000 + 1 1 -1 5 7 -0.001067 0.000000 + 1 1 -1 6 7 0.000143 0.000000 + 1 1 -1 7 7 -0.006576 -0.000000 + 1 1 -1 8 7 0.003360 0.000000 + 1 1 -1 9 7 -0.000661 -0.000000 + 1 1 -1 10 7 -0.000117 -0.000000 + 1 1 -1 11 7 0.001789 0.000000 + 1 1 -1 12 7 -0.001063 -0.000000 + 1 1 -1 1 8 0.001251 -0.000000 + 1 1 -1 2 8 -0.008805 -0.000000 + 1 1 -1 3 8 -0.003121 -0.000000 + 1 1 -1 4 8 -0.000289 0.000000 + 1 1 -1 5 8 -0.000059 -0.000000 + 1 1 -1 6 8 0.002151 -0.000000 + 1 1 -1 7 8 0.003360 0.000000 + 1 1 -1 8 8 -0.002725 0.000000 + 1 1 -1 9 8 -0.002175 -0.000000 + 1 1 -1 10 8 -0.002085 0.000000 + 1 1 -1 11 8 -0.000117 0.000000 + 1 1 -1 12 8 0.000794 0.000000 + 1 1 -1 1 9 0.000792 0.000000 + 1 1 -1 2 9 -0.001717 -0.000000 + 1 1 -1 3 9 -0.004089 -0.000000 + 1 1 -1 4 9 0.004567 0.000000 + 1 1 -1 5 9 -0.003255 0.000000 + 1 1 -1 6 9 -0.000284 -0.000000 + 1 1 -1 7 9 -0.000661 0.000000 + 1 1 -1 8 9 -0.002175 0.000000 + 1 1 -1 9 9 -0.001782 0.000000 + 1 1 -1 10 9 0.000794 0.000000 + 1 1 -1 11 9 -0.001063 -0.000000 + 1 1 -1 12 9 0.000522 0.000000 + 1 1 -1 1 10 0.001463 0.000000 + 1 1 -1 2 10 0.002999 0.000000 + 1 1 -1 3 10 0.000263 0.000000 + 1 1 -1 4 10 -0.000480 0.000000 + 1 1 -1 5 10 0.000633 0.000000 + 1 1 -1 6 10 -0.002537 -0.000000 + 1 1 -1 7 10 -0.010651 0.000000 + 1 1 -1 8 10 -0.004731 0.000000 + 1 1 -1 9 10 0.000487 0.000000 + 1 1 -1 10 10 -0.005524 0.000000 + 1 1 -1 11 10 -0.005064 -0.000000 + 1 1 -1 12 10 0.000745 -0.000000 + 1 1 -1 1 11 0.005262 0.000000 + 1 1 -1 2 11 0.001463 -0.000000 + 1 1 -1 3 11 -0.004782 0.000000 + 1 1 -1 4 11 0.000572 -0.000000 + 1 1 -1 5 11 -0.001131 0.000000 + 1 1 -1 6 11 -0.000060 -0.000000 + 1 1 -1 7 11 -0.003540 0.000000 + 1 1 -1 8 11 0.011154 0.000000 + 1 1 -1 9 11 0.003444 0.000000 + 1 1 -1 10 11 -0.005064 0.000000 + 1 1 -1 11 11 -0.004024 0.000000 + 1 1 -1 12 11 0.001761 -0.000000 + 1 1 -1 1 12 0.004782 -0.000000 + 1 1 -1 2 12 -0.000263 -0.000000 + 1 1 -1 3 12 -0.004078 0.000000 + 1 1 -1 4 12 -0.000746 -0.000000 + 1 1 -1 5 12 0.000561 0.000000 + 1 1 -1 6 12 0.002086 0.000000 + 1 1 -1 7 12 -0.000453 0.000000 + 1 1 -1 8 12 -0.004392 0.000000 + 1 1 -1 9 12 -0.000782 0.000000 + 1 1 -1 10 12 0.000745 0.000000 + 1 1 -1 11 12 0.001761 -0.000000 + 1 1 -1 12 12 -0.001184 -0.000000 + 1 1 0 1 1 -0.006750 0.000000 + 1 1 0 2 1 -0.003264 0.000000 + 1 1 0 3 1 -0.003360 0.000000 + 1 1 0 4 1 0.001100 -0.000000 + 1 1 0 5 1 0.003927 0.000000 + 1 1 0 6 1 0.001020 0.000000 + 1 1 0 7 1 -0.009884 0.000000 + 1 1 0 8 1 -0.008855 0.000000 + 1 1 0 9 1 0.016241 0.000000 + 1 1 0 10 1 0.053346 0.000000 + 1 1 0 11 1 0.020930 -0.000000 + 1 1 0 12 1 -0.003970 0.000000 + 1 1 0 1 2 -0.003264 0.000000 + 1 1 0 2 2 0.003393 0.000000 + 1 1 0 3 2 -0.003295 -0.000000 + 1 1 0 4 2 -0.001519 0.000000 + 1 1 0 5 2 0.001100 0.000000 + 1 1 0 6 2 0.000143 0.000000 + 1 1 0 7 2 0.001885 0.000000 + 1 1 0 8 2 -0.001053 -0.000000 + 1 1 0 9 2 -0.012679 0.000000 + 1 1 0 10 2 -0.023372 -0.000000 + 1 1 0 11 2 -0.021525 0.000000 + 1 1 0 12 2 -0.008426 -0.000000 + 1 1 0 1 3 -0.003360 0.000000 + 1 1 0 2 3 -0.003295 0.000000 + 1 1 0 3 3 0.000512 -0.000000 + 1 1 0 4 3 0.000143 -0.000000 + 1 1 0 5 3 0.001020 -0.000000 + 1 1 0 6 3 0.000617 -0.000000 + 1 1 0 7 3 -0.003898 0.000000 + 1 1 0 8 3 -0.005382 0.000000 + 1 1 0 9 3 -0.006667 -0.000000 + 1 1 0 10 3 0.001648 0.000000 + 1 1 0 11 3 -0.002735 0.000000 + 1 1 0 12 3 0.001823 -0.000000 + 1 1 0 1 4 -0.010651 0.000000 + 1 1 0 2 4 -0.004731 0.000000 + 1 1 0 3 4 -0.000487 0.000000 + 1 1 0 4 4 0.003393 -0.000000 + 1 1 0 5 4 -0.003264 -0.000000 + 1 1 0 6 4 -0.003295 0.000000 + 1 1 0 7 4 -0.002409 -0.000000 + 1 1 0 8 4 -0.003521 -0.000000 + 1 1 0 9 4 -0.003296 -0.000000 + 1 1 0 10 4 -0.223461 -0.000000 + 1 1 0 11 4 0.021015 -0.000000 + 1 1 0 12 4 0.045911 -0.000000 + 1 1 0 1 5 -0.003540 0.000000 + 1 1 0 2 5 0.011154 0.000000 + 1 1 0 3 5 -0.003444 0.000000 + 1 1 0 4 5 -0.003264 -0.000000 + 1 1 0 5 5 -0.006750 0.000000 + 1 1 0 6 5 -0.003360 0.000000 + 1 1 0 7 5 -0.000864 -0.000000 + 1 1 0 8 5 -0.002409 -0.000000 + 1 1 0 9 5 -0.000583 -0.000000 + 1 1 0 10 5 0.021015 0.000000 + 1 1 0 11 5 -0.177076 0.000000 + 1 1 0 12 5 0.019597 -0.000000 + 1 1 0 1 6 0.000453 -0.000000 + 1 1 0 2 6 0.004392 -0.000000 + 1 1 0 3 6 -0.000782 -0.000000 + 1 1 0 4 6 -0.003295 -0.000000 + 1 1 0 5 6 -0.003360 -0.000000 + 1 1 0 6 6 0.000512 0.000000 + 1 1 0 7 6 0.000583 -0.000000 + 1 1 0 8 6 0.003296 0.000000 + 1 1 0 9 6 -0.002678 0.000000 + 1 1 0 10 6 -0.045911 -0.000000 + 1 1 0 11 6 -0.019597 -0.000000 + 1 1 0 12 6 -0.039538 -0.000000 + 1 1 0 1 7 -0.177076 -0.000000 + 1 1 0 2 7 0.021015 0.000000 + 1 1 0 3 7 -0.019597 -0.000000 + 1 1 0 4 7 0.053346 0.000000 + 1 1 0 5 7 0.020930 0.000000 + 1 1 0 6 7 0.003970 -0.000000 + 1 1 0 7 7 -0.006750 -0.000000 + 1 1 0 8 7 -0.003264 -0.000000 + 1 1 0 9 7 0.003360 -0.000000 + 1 1 0 10 7 -0.010651 -0.000000 + 1 1 0 11 7 -0.003540 -0.000000 + 1 1 0 12 7 -0.000453 -0.000000 + 1 1 0 1 8 0.021015 0.000000 + 1 1 0 2 8 -0.223461 0.000000 + 1 1 0 3 8 -0.045911 0.000000 + 1 1 0 4 8 -0.023372 -0.000000 + 1 1 0 5 8 -0.021525 -0.000000 + 1 1 0 6 8 0.008426 -0.000000 + 1 1 0 7 8 -0.003264 -0.000000 + 1 1 0 8 8 0.003393 -0.000000 + 1 1 0 9 8 0.003295 0.000000 + 1 1 0 10 8 -0.004731 -0.000000 + 1 1 0 11 8 0.011154 -0.000000 + 1 1 0 12 8 -0.004392 -0.000000 + 1 1 0 1 9 0.019597 0.000000 + 1 1 0 2 9 0.045911 -0.000000 + 1 1 0 3 9 -0.039538 0.000000 + 1 1 0 4 9 -0.001648 -0.000000 + 1 1 0 5 9 0.002735 -0.000000 + 1 1 0 6 9 0.001823 0.000000 + 1 1 0 7 9 0.003360 0.000000 + 1 1 0 8 9 0.003295 -0.000000 + 1 1 0 9 9 0.000512 0.000000 + 1 1 0 10 9 0.000487 -0.000000 + 1 1 0 11 9 0.003444 -0.000000 + 1 1 0 12 9 -0.000782 -0.000000 + 1 1 0 1 10 -0.002409 0.000000 + 1 1 0 2 10 -0.003521 0.000000 + 1 1 0 3 10 0.003296 0.000000 + 1 1 0 4 10 -0.001053 0.000000 + 1 1 0 5 10 0.001885 -0.000000 + 1 1 0 6 10 0.012679 -0.000000 + 1 1 0 7 10 0.011154 -0.000000 + 1 1 0 8 10 -0.004731 0.000000 + 1 1 0 9 10 -0.004392 -0.000000 + 1 1 0 10 10 0.003393 0.000000 + 1 1 0 11 10 -0.003264 -0.000000 + 1 1 0 12 10 0.003295 -0.000000 + 1 1 0 1 11 -0.000864 0.000000 + 1 1 0 2 11 -0.002409 -0.000000 + 1 1 0 3 11 0.000583 0.000000 + 1 1 0 4 11 -0.008855 -0.000000 + 1 1 0 5 11 -0.009884 -0.000000 + 1 1 0 6 11 -0.016241 -0.000000 + 1 1 0 7 11 -0.003540 0.000000 + 1 1 0 8 11 -0.010651 -0.000000 + 1 1 0 9 11 -0.000453 -0.000000 + 1 1 0 10 11 -0.003264 0.000000 + 1 1 0 11 11 -0.006750 0.000000 + 1 1 0 12 11 0.003360 -0.000000 + 1 1 0 1 12 -0.000583 0.000000 + 1 1 0 2 12 -0.003296 -0.000000 + 1 1 0 3 12 -0.002678 0.000000 + 1 1 0 4 12 0.005382 -0.000000 + 1 1 0 5 12 0.003898 -0.000000 + 1 1 0 6 12 -0.006667 0.000000 + 1 1 0 7 12 0.003444 0.000000 + 1 1 0 8 12 0.000487 0.000000 + 1 1 0 9 12 -0.000782 -0.000000 + 1 1 0 10 12 0.003295 0.000000 + 1 1 0 11 12 0.003360 0.000000 + 1 1 0 12 12 0.000512 -0.000000 + 1 1 1 1 1 -0.004024 0.000000 + 1 1 1 2 1 -0.005064 -0.000000 + 1 1 1 3 1 -0.001761 0.000000 + 1 1 1 4 1 0.001100 -0.000000 + 1 1 1 5 1 0.003927 -0.000000 + 1 1 1 6 1 0.001020 0.000000 + 1 1 1 7 1 -0.001131 0.000000 + 1 1 1 8 1 0.000572 -0.000000 + 1 1 1 9 1 0.000060 0.000000 + 1 1 1 10 1 -0.018379 0.000000 + 1 1 1 11 1 0.036873 -0.000000 + 1 1 1 12 1 0.012364 0.000000 + 1 1 1 1 2 -0.005064 -0.000000 + 1 1 1 2 2 -0.005524 0.000000 + 1 1 1 3 2 -0.000745 0.000000 + 1 1 1 4 2 -0.001519 0.000000 + 1 1 1 5 2 0.001100 0.000000 + 1 1 1 6 2 0.000143 0.000000 + 1 1 1 7 2 0.000633 0.000000 + 1 1 1 8 2 -0.000480 0.000000 + 1 1 1 9 2 0.002537 -0.000000 + 1 1 1 10 2 -0.023064 0.000000 + 1 1 1 11 2 0.042521 -0.000000 + 1 1 1 12 2 -0.003338 0.000000 + 1 1 1 1 3 -0.001761 -0.000000 + 1 1 1 2 3 -0.000745 -0.000000 + 1 1 1 3 3 -0.001184 0.000000 + 1 1 1 4 3 0.000143 -0.000000 + 1 1 1 5 3 0.001020 -0.000000 + 1 1 1 6 3 0.000617 -0.000000 + 1 1 1 7 3 -0.000561 0.000000 + 1 1 1 8 3 0.000746 0.000000 + 1 1 1 9 3 0.002086 0.000000 + 1 1 1 10 3 -0.002867 0.000000 + 1 1 1 11 3 0.001922 0.000000 + 1 1 1 12 3 0.001533 0.000000 + 1 1 1 1 4 -0.000117 -0.000000 + 1 1 1 2 4 -0.002085 -0.000000 + 1 1 1 3 4 -0.000794 0.000000 + 1 1 1 4 4 -0.002725 -0.000000 + 1 1 1 5 4 0.003360 0.000000 + 1 1 1 6 4 0.002175 0.000000 + 1 1 1 7 4 0.001052 0.000000 + 1 1 1 8 4 -0.000692 -0.000000 + 1 1 1 9 4 0.000790 0.000000 + 1 1 1 10 4 -0.008805 -0.000000 + 1 1 1 11 4 0.001251 0.000000 + 1 1 1 12 4 0.003121 0.000000 + 1 1 1 1 5 0.001789 -0.000000 + 1 1 1 2 5 -0.000117 -0.000000 + 1 1 1 3 5 0.001063 -0.000000 + 1 1 1 4 5 0.003360 0.000000 + 1 1 1 5 5 -0.006576 -0.000000 + 1 1 1 6 5 0.000661 0.000000 + 1 1 1 7 5 0.004249 -0.000000 + 1 1 1 8 5 0.001052 -0.000000 + 1 1 1 9 5 0.001055 0.000000 + 1 1 1 10 5 0.004941 -0.000000 + 1 1 1 11 5 0.000182 -0.000000 + 1 1 1 12 5 0.014966 0.000000 + 1 1 1 1 6 0.001063 -0.000000 + 1 1 1 2 6 -0.000794 0.000000 + 1 1 1 3 6 0.000522 -0.000000 + 1 1 1 4 6 0.002175 -0.000000 + 1 1 1 5 6 0.000661 -0.000000 + 1 1 1 6 6 -0.001782 -0.000000 + 1 1 1 7 6 -0.001055 -0.000000 + 1 1 1 8 6 -0.000790 -0.000000 + 1 1 1 9 6 0.001687 0.000000 + 1 1 1 10 6 0.001717 0.000000 + 1 1 1 11 6 -0.000792 0.000000 + 1 1 1 12 6 -0.004089 -0.000000 + 1 1 1 1 7 0.000182 -0.000000 + 1 1 1 2 7 0.001251 0.000000 + 1 1 1 3 7 -0.000792 -0.000000 + 1 1 1 4 7 -0.018379 -0.000000 + 1 1 1 5 7 0.036873 -0.000000 + 1 1 1 6 7 -0.012364 -0.000000 + 1 1 1 7 7 -0.004024 0.000000 + 1 1 1 8 7 -0.005064 -0.000000 + 1 1 1 9 7 0.001761 -0.000000 + 1 1 1 10 7 0.011154 0.000000 + 1 1 1 11 7 -0.003540 -0.000000 + 1 1 1 12 7 0.003444 -0.000000 + 1 1 1 1 8 0.004941 -0.000000 + 1 1 1 2 8 -0.008805 0.000000 + 1 1 1 3 8 0.001717 -0.000000 + 1 1 1 4 8 -0.023064 0.000000 + 1 1 1 5 8 0.042521 -0.000000 + 1 1 1 6 8 0.003338 -0.000000 + 1 1 1 7 8 -0.005064 -0.000000 + 1 1 1 8 8 -0.005524 0.000000 + 1 1 1 9 8 0.000745 -0.000000 + 1 1 1 10 8 -0.004731 -0.000000 + 1 1 1 11 8 -0.010651 0.000000 + 1 1 1 12 8 0.000487 -0.000000 + 1 1 1 1 9 0.014966 -0.000000 + 1 1 1 2 9 0.003121 -0.000000 + 1 1 1 3 9 -0.004089 0.000000 + 1 1 1 4 9 0.002867 -0.000000 + 1 1 1 5 9 -0.001922 -0.000000 + 1 1 1 6 9 0.001533 0.000000 + 1 1 1 7 9 0.001761 0.000000 + 1 1 1 8 9 0.000745 0.000000 + 1 1 1 9 9 -0.001184 0.000000 + 1 1 1 10 9 -0.004392 0.000000 + 1 1 1 11 9 -0.000453 0.000000 + 1 1 1 12 9 -0.000782 0.000000 + 1 1 1 1 10 0.001052 -0.000000 + 1 1 1 2 10 -0.000692 0.000000 + 1 1 1 3 10 -0.000790 -0.000000 + 1 1 1 4 10 -0.004057 0.000000 + 1 1 1 5 10 -0.003898 -0.000000 + 1 1 1 6 10 0.005418 0.000000 + 1 1 1 7 10 -0.000117 -0.000000 + 1 1 1 8 10 -0.002085 0.000000 + 1 1 1 9 10 0.000794 -0.000000 + 1 1 1 10 10 -0.002725 -0.000000 + 1 1 1 11 10 0.003360 0.000000 + 1 1 1 12 10 -0.002175 -0.000000 + 1 1 1 1 11 0.004249 -0.000000 + 1 1 1 2 11 0.001052 0.000000 + 1 1 1 3 11 -0.001055 0.000000 + 1 1 1 4 11 -0.000661 0.000000 + 1 1 1 5 11 0.000656 0.000000 + 1 1 1 6 11 0.005132 -0.000000 + 1 1 1 7 11 0.001789 -0.000000 + 1 1 1 8 11 -0.000117 -0.000000 + 1 1 1 9 11 -0.001063 0.000000 + 1 1 1 10 11 0.003360 -0.000000 + 1 1 1 11 11 -0.006576 -0.000000 + 1 1 1 12 11 -0.000661 -0.000000 + 1 1 1 1 12 0.001055 0.000000 + 1 1 1 2 12 0.000790 -0.000000 + 1 1 1 3 12 0.001687 0.000000 + 1 1 1 4 12 -0.002825 -0.000000 + 1 1 1 5 12 -0.002035 0.000000 + 1 1 1 6 12 0.003373 0.000000 + 1 1 1 7 12 -0.001063 0.000000 + 1 1 1 8 12 0.000794 -0.000000 + 1 1 1 9 12 0.000522 0.000000 + 1 1 1 10 12 -0.002175 0.000000 + 1 1 1 11 12 -0.000661 0.000000 + 1 1 1 12 12 -0.001782 -0.000000 diff --git a/test/w90_convert.py b/test/w90_convert.py new file mode 100644 index 00000000..e5c18ffd --- /dev/null +++ b/test/w90_convert.py @@ -0,0 +1,34 @@ + +################################################################################ +# +# 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 . +# +################################################################################ + + +from pytriqs.applications.dft.converters import * +from pytriqs.archive import * +from pytriqs.utility.h5diff import h5diff +import pytriqs.utility.mpi as mpi + +Converter = Wannier90Converter(seedname='LaVO3-Pnma',hdf_filename='w90_convert.out.h5') + +Converter.convert_dft_input() + +if mpi.is_master_node(): + h5diff("w90_convert.out.h5","w90_convert.ref.h5") diff --git a/test/w90_convert.ref.h5 b/test/w90_convert.ref.h5 new file mode 100644 index 0000000000000000000000000000000000000000..3829a31c0a07154b2cd76fa9f64469ff951f5fcb GIT binary patch literal 128048 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�t1mN@{6zJ-VZc5C`#A6x&!OJj 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

*MpJ|LdRFPSLK^wAl?Mo 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 uR&LEWFq9mK`}j8h3;|g`Qnh0kmn41v*~R|FXHh Date: Tue, 23 Feb 2016 15:10:22 +0100 Subject: [PATCH 20/20] [wannier] few minor tidying changes while reading through --- python/converters/wannier90_converter.py | 314 ++++++++++++----------- 1 file changed, 168 insertions(+), 146 deletions(-) diff --git a/python/converters/wannier90_converter.py b/python/converters/wannier90_converter.py index f204bc4c..ae748172 100644 --- a/python/converters/wannier90_converter.py +++ b/python/converters/wannier90_converter.py @@ -1,5 +1,5 @@ -################################################################################ +########################################################################## # # TRIQS: a Toolbox for Research in Interacting Quantum Systems # @@ -18,7 +18,7 @@ # You should have received a copy of the GNU General Public License along with # TRIQS. If not, see . # -################################################################################ +########################################################################## ### # Wannier90 to HDF5 converter for the SumkDFT class of dfttools/TRIQS; @@ -31,7 +31,7 @@ # - the case with SO=1 is not considered at the moment # - the T rotation matrices are not used in this implementation # - projectors for uncorrelated shells (proj_mat_all) cannot be set -# +# # Things to be improved/checked: # - the case with SP=1 might work, but was never tested (do we need to define # rot_mat_time_inv also if symm_op = 0?) @@ -49,15 +49,17 @@ import numpy import math from pytriqs.archive import * from converter_tools import * +from itertools import product import os.path + class Wannier90Converter(ConverterTools): """ Conversion from Wannier90 output to an hdf5 file that can be used as input for the SumkDFT class. """ - def __init__(self, seedname, hdf_filename = None, dft_subgrp = 'dft_input', - symmcorr_subgrp = 'dft_symmcorr_input', repacking = False): + def __init__(self, seedname, hdf_filename=None, dft_subgrp='dft_input', + symmcorr_subgrp='dft_symmcorr_input', repacking=False): """ Initialise the class. @@ -73,19 +75,22 @@ class Wannier90Converter(ConverterTools): Name of subgroup storing correlated-shell symmetry data repacking : boolean, optional Does the hdf5 archive need to be repacked to save space? - + """ self._name = "Wannier90Converter" - assert type(seedname)==StringType, self._name + ": Please provide the DFT files' base name as a string." - if hdf_filename is None: hdf_filename = seedname+'.h5' + assert type(seedname) == StringType, self._name + \ + ": Please provide the DFT files' base name as a string." + if hdf_filename is None: + hdf_filename = seedname + '.h5' self.hdf_file = hdf_filename - # if the w90 output is seedname_hr.dat, the input file for the converter must be called seedname.inp - self.inp_file = seedname+'.inp' + # if the w90 output is seedname_hr.dat, the input file for the + # converter must be called seedname.inp + self.inp_file = seedname + '.inp' self.w90_seed = seedname self.dft_subgrp = dft_subgrp self.symmcorr_subgrp = symmcorr_subgrp - self.fortran_to_replace = {'D':'E'} + self.fortran_to_replace = {'D': 'E'} # threshold below which matrix elements from wannier90 should be considered equal self._w90zero = 2.e-6 @@ -93,7 +98,6 @@ class Wannier90Converter(ConverterTools): if (os.path.exists(self.hdf_file) and repacking): ConverterTools.repack(self) - def convert_dft_input(self): """ Reads the appropriate files and stores the data for the @@ -104,43 +108,52 @@ class Wannier90Converter(ConverterTools): in the hdf5 archive. """ - + # Read and write only on the master node - if not (mpi.is_master_node()): return - mpi.report("Reading input from %s..."%self.inp_file) + if not (mpi.is_master_node()): + return + mpi.report("Reading input from %s..." % self.inp_file) # R is a generator : each R.Next() will return the next number in the file - R = ConverterTools.read_fortran_file(self,self.inp_file,self.fortran_to_replace) + R = ConverterTools.read_fortran_file( + self, self.inp_file, self.fortran_to_replace) shell_entries = ['atom', 'sort', 'l', 'dim'] corr_shell_entries = ['atom', 'sort', 'l', 'dim', 'SO', 'irep'] # First, let's read the input file with the parameters needed for the conversion try: - kmesh_mode = int(R.next()) # read k-point mesh generation option + # read k - point mesh generation option + kmesh_mode = int(R.next()) if kmesh_mode >= 0: # read k-point mesh size from input nki = [int(R.next()) for idir in range(3)] else: # some default grid, if everything else fails... nki = [8, 8, 8] - density_required = float(R.next()) # read the total number of electrons per cell + # read the total number of electrons per cell + density_required = float(R.next()) # we do not read shells, because we have no additional shells beyond correlated ones, # and the data will be copied from corr_shells into shells (see below) - n_corr_shells = int(R.next()) # number of corr. shells (e.g. Fe d, Ce f) in the unit cell, + # number of corr. shells (e.g. Fe d, Ce f) in the unit cell, + n_corr_shells = int(R.next()) # now read the information about the correlated shells (atom, sort, l, dim, SO flag, irep): - corr_shells = [ {name: int(val) for name, val in zip(corr_shell_entries, R)} for icrsh in range(n_corr_shells) ] - except StopIteration: # a more explicit error if the file is corrupted. - mpi.report(self._name + ": reading input file %s failed!"%self.inp_file) + corr_shells = [{name: int(val) for name, val in zip( + corr_shell_entries, R)} for icrsh in range(n_corr_shells)] + except StopIteration: # a more explicit error if the file is corrupted. + mpi.report(self._name + ": reading input file %s failed!" % + self.inp_file) # close the input file R.close() # Set or derive some quantities - symm_op = 0 # Wannier90 does not use symmetries to reduce the k-points + # Wannier90 does not use symmetries to reduce the k-points # the following might change in future versions - ### copy corr_shells into shells (see above) + symm_op = 0 + # copy corr_shells into shells (see above) n_shells = n_corr_shells shells = [] for ish in range(n_shells): - shells.append({key: corr_shells[ish].get(key,None) for key in shell_entries}) + shells.append({key: corr_shells[ish].get( + key, None) for key in shell_entries}) ### SP = 0 # NO spin-polarised calculations for now SO = 0 # NO spin-orbit calculation for now @@ -150,19 +163,22 @@ class Wannier90Converter(ConverterTools): # this is more general n_spin = SP + 1 - SO dim_corr_shells = sum([sh['dim'] for sh in corr_shells]) - mpi.report("Total number of WFs expected in the correlated shells: %d"%dim_corr_shells) + mpi.report( + "Total number of WFs expected in the correlated shells: %d" % dim_corr_shells) # determine the number of inequivalent correlated shells and maps, needed for further processing - n_inequiv_shells, corr_to_inequiv, inequiv_to_corr = ConverterTools.det_shell_equivalence(self,corr_shells) - mpi.report("Number of inequivalent shells: %d"%n_inequiv_shells) + n_inequiv_shells, corr_to_inequiv, inequiv_to_corr = ConverterTools.det_shell_equivalence( + self, corr_shells) + mpi.report("Number of inequivalent shells: %d" % n_inequiv_shells) mpi.report("Shell representatives: " + format(inequiv_to_corr)) - shells_map = [inequiv_to_corr[corr_to_inequiv[ish]] for ish in range(n_corr_shells)] + shells_map = [inequiv_to_corr[corr_to_inequiv[ish]] + for ish in range(n_corr_shells)] mpi.report("Mapping: " + format(shells_map)) # build the k-point mesh, if its size was given on input (kmesh_mode >= 0), # otherwise it is built according to the data in the hr file (see below) if kmesh_mode >= 0: - n_k, k_mesh, bz_weights = self.kmesh_build(nki,kmesh_mode) + n_k, k_mesh, bz_weights = self.kmesh_build(nki, kmesh_mode) self.n_k = n_k self.k_mesh = k_mesh @@ -171,10 +187,9 @@ class Wannier90Converter(ConverterTools): dim_reps = [0 for i in range(n_inequiv_shells)] T = [] for ish in range(n_inequiv_shells): - ll = 2*corr_shells[inequiv_to_corr[ish]]['l']+1 + ll = 2 * corr_shells[inequiv_to_corr[ish]]['l'] + 1 lmax = ll * (corr_shells[inequiv_to_corr[ish]]['SO'] + 1) - T.append(numpy.zeros([lmax,lmax],numpy.complex_)) - + T.append(numpy.zeros([lmax, lmax], numpy.complex_)) spin_w90name = ['_up', '_down'] hamr_full = [] @@ -182,22 +197,23 @@ class Wannier90Converter(ConverterTools): # TODO: generalise to SP=1 (only partially done) rot_mat_time_inv = [0 for i in range(n_corr_shells)] - # Second, let's read the file containing the Hamiltonian in WF basis produced by Wannier90 for isp in range(n_spin): - ### begin loop on isp + # begin loop on isp # build filename according to wannier90 conventions if SP == 1: - mpi.report("Reading information for spin component n. %d"%isp) + mpi.report( + "Reading information for spin component n. %d" % isp) hr_file = self.w90_seed + spin_w90name[isp] + '_hr.dat' else: hr_file = self.w90_seed + '_hr.dat' # now grab the data from the H(R) file - mpi.report("The Hamiltonian in MLWF basis is extracted from %s ..."%hr_file) + mpi.report( + "The Hamiltonian in MLWF basis is extracted from %s ..." % hr_file) nr, rvec, rdeg, nw, hamr = self.read_wannier90hr(hr_file) # number of R vectors, their indices, their degeneracy, number of WFs, H(R) - mpi.report("... done: %d R vectors, %d WFs found"%(nr, nw)) + mpi.report("... done: %d R vectors, %d WFs found" % (nr, nw)) if isp == 0: # set or check some quantities that must be the same for both spins @@ -206,7 +222,7 @@ class Wannier90Converter(ConverterTools): # k-point grid: (if not defined before) if kmesh_mode == -1: # the size of the k-point mesh is determined from the largest R vector - nki = [2*rvec[:,idir].max()+1 for idir in range(3)] + nki = [2 * rvec[:, idir].max() + 1 for idir in range(3)] # it will be the same as in the win only when nki is odd, because of the # wannier90 convention: if we have nki k-points along the i-th direction, # then we should get 2*(nki/2)+nki%2 R points along that direction @@ -225,30 +241,33 @@ class Wannier90Converter(ConverterTools): elif self.nwfs > dim_corr_shells: # NOTE: correlated shells must appear before uncorrelated ones inside the file mpi.report("Number of WFs larger than correlated orbitals:\n" + - "WFs from %d to %d treated as uncorrelated"%(dim_corr_shells+1,self.nwfs)) + "WFs from %d to %d treated as uncorrelated" % (dim_corr_shells + 1, self.nwfs)) else: mpi.report("Number of WFs equal to number of correlated orbitals") # we assume spin up and spin down always have same total number of WFs - n_orbitals = numpy.ones([self.n_k,n_spin],numpy.int)*self.nwfs + n_orbitals = numpy.ones( + [self.n_k, n_spin], numpy.int) * self.nwfs else: # consistency check between the _up and _down file contents - if nr != self.nrpt: mpi.report("Different number of R vectors for spin-up/spin-down!") - if nw != self.nwfs: mpi.report("Different number of WFs for spin-up/spin-down!") + if nr != self.nrpt: + mpi.report("Different number of R vectors for spin-up/spin-down!") + if nw != self.nwfs: + mpi.report("Different number of WFs for spin-up/spin-down!") hamr_full.append(hamr) - ##FIXME: when do we actually need deepcopy()? - #hamr_full.append(deepcopy(hamr)) + # FIXME: when do we actually need deepcopy()? + # hamr_full.append(deepcopy(hamr)) for ir in range(nr): # checks if the Hamiltonian is real (it should, if wannierisation worked fine) if numpy.abs((hamr[ir].imag.max()).max()) > self._w90zero: - mpi.report("H(R) has large complex components at R %d"%ir) + mpi.report("H(R) has large complex components at R %d" % ir) # copy the R=0 block corresponding to the correlated shells # into another variable (needed later for finding rot_mat) - if rvec[ir,0] == 0 and rvec[ir,1] == 0 and rvec[ir,2] == 0: - ham_corr0 = hamr[ir][0:dim_corr_shells,0:dim_corr_shells] + if rvec[ir, 0] == 0 and rvec[ir, 1] == 0 and rvec[ir, 2] == 0: + ham_corr0 = hamr[ir][0:dim_corr_shells, 0:dim_corr_shells] # checks if ham0 is Hermitian if not numpy.allclose(ham_corr0.transpose().conjugate(), ham_corr0, atol=self._w90zero, rtol=1.e-9): @@ -258,56 +277,58 @@ class Wannier90Converter(ConverterTools): if isp == 0: use_rotations, rot_mat = self.find_rot_mat(n_corr_shells, corr_shells, shells_map, ham_corr0) else: - # consistency check + # consistency check use_rotations_, rot_mat_ = self.find_rot_mat(n_corr_shells, corr_shells, shells_map, ham_corr0) if (use_rotations and not use_rotations_): - mpi.report("Rotations cannot be used for spin component n. %d"%isp) + mpi.report("Rotations cannot be used for spin component n. %d" % isp) for icrsh in range(n_corr_shells): if not numpy.allclose(rot_mat_[icrsh], rot_mat[icrsh], atol=self._w90zero, rtol=1.e-15): - mpi.report("Rotations for spin component n. %d do not match!"%isp) - ### end loop on isp + mpi.report("Rotations for spin component n. %d do not match!" % isp) + # end loop on isp - - mpi.report("The k-point grid has dimensions: %d, %d, %d"%tuple(nki)) + mpi.report("The k-point grid has dimensions: %d, %d, %d" % tuple(nki)) # if calculations are spin-polarized, then renormalize k-point weights - if SP == 1: bz_weights = 0.5 * bz_weights + if SP == 1: + bz_weights = 0.5 * bz_weights # Third, compute the hoppings in reciprocal space - hopping = numpy.zeros([self.n_k,n_spin,numpy.max(n_orbitals),numpy.max(n_orbitals)],numpy.complex_) + hopping = numpy.zeros([self.n_k, n_spin, numpy.max(n_orbitals), numpy.max(n_orbitals)], numpy.complex_) for isp in range(n_spin): # make Fourier transform H(R) -> H(k) : it can be done one spin at a time - hamk = self.fourierham(self.nwfs, hamr_full[isp]) + hamk = self.fourier_ham(self.nwfs, hamr_full[isp]) # copy the H(k) in the right place of hoppings... is there a better way to do this?? for ik in range(self.n_k): #hopping[ik,isp,:,:] = deepcopy(hamk[ik][:,:])*energy_unit - hopping[ik,isp,:,:] = hamk[ik][:,:]*energy_unit + hopping[ik, isp, :, :] = hamk[ik][:, :] * energy_unit # Then, initialise the projectors - k_dep_projection = 0 # we always have the same number of WFs at each k-point - proj_mat = numpy.zeros([self.n_k,n_spin,n_corr_shells,max([crsh['dim'] for crsh in corr_shells]),numpy.max(n_orbitals)],numpy.complex_) + k_dep_projection = 0 # we always have the same number of WFs at each k-point + proj_mat = numpy.zeros([self.n_k, n_spin, n_corr_shells, max( + [crsh['dim'] for crsh in corr_shells]), numpy.max(n_orbitals)], numpy.complex_) iorb = 0 - # Projectors simply consist in identity matrix blocks selecting those MLWFs that + # Projectors simply consist in identity matrix blocks selecting those MLWFs that # correspond to the specific correlated shell indexed by icrsh. # NOTE: we assume that the correlated orbitals appear at the beginning of the H(R) # file and that the ordering of MLWFs matches the corr_shell info from the input. for icrsh in range(n_corr_shells): norb = corr_shells[icrsh]['dim'] - proj_mat[:,:,icrsh,0:norb,iorb:iorb+norb] = numpy.identity(norb,numpy.complex_) + proj_mat[:, :, icrsh, 0:norb, iorb:iorb + + norb] = numpy.identity(norb, numpy.complex_) iorb += norb - + # Finally, save all required data into the HDF archive: - ar = HDFArchive(self.hdf_file,'a') - if not (self.dft_subgrp in ar): ar.create_group(self.dft_subgrp) + ar = HDFArchive(self.hdf_file, 'a') + if not (self.dft_subgrp in ar): + ar.create_group(self.dft_subgrp) # The subgroup containing the data. If it does not exist, it is created. If it exists, the data is overwritten! - things_to_save = ['energy_unit','n_k','k_dep_projection','SP','SO','charge_below','density_required', - 'symm_op','n_shells','shells','n_corr_shells','corr_shells','use_rotations','rot_mat', - 'rot_mat_time_inv','n_reps','dim_reps','T','n_orbitals','proj_mat','bz_weights','hopping', + things_to_save = ['energy_unit', 'n_k', 'k_dep_projection', 'SP', 'SO', 'charge_below', 'density_required', + 'symm_op', 'n_shells', 'shells', 'n_corr_shells', 'corr_shells', 'use_rotations', 'rot_mat', + 'rot_mat_time_inv', 'n_reps', 'dim_reps', 'T', 'n_orbitals', 'proj_mat', 'bz_weights', 'hopping', 'n_inequiv_shells', 'corr_to_inequiv', 'inequiv_to_corr'] - for it in things_to_save: ar[self.dft_subgrp][it] = locals()[it] + for it in things_to_save: + ar[self.dft_subgrp][it] = locals()[it] del ar - - def read_wannier90hr(self, hr_filename="wannier_hr.dat"): """ Method for reading the seedname_hr.dat file produced by Wannier90 (http://wannier.org) @@ -316,7 +337,7 @@ class Wannier90Converter(ConverterTools): ---------- hr_filename : string full name of the H(R) file produced by Wannier90 (usually seedname_hr.dat) - + Returns ------- nrpt : integer @@ -333,27 +354,30 @@ class Wannier90Converter(ConverterTools): """ # Read only from the master node - if not (mpi.is_master_node()): return + if not (mpi.is_master_node()): + return try: with open(hr_filename, "r") as hr_filedesc: hr_data = hr_filedesc.readlines() hr_filedesc.close() except IOError: - mpi.report("The file %s could not be read!"%hr_filename) + mpi.report("The file %s could not be read!" % hr_filename) - mpi.report("Reading %s..."%hr_filename + hr_data[0]) + mpi.report("Reading %s..." % hr_filename + hr_data[0]) try: - num_wf = int(hr_data[1]) # reads number of Wannier functions per spin - nrpt = int(hr_data[2]) + # reads number of Wannier functions per spin + num_wf = int(hr_data[1]) + nrpt = int(hr_data[2]) except ValueError: mpi.report("Could not read number of WFs or R vectors") # allocate arrays to save the R vector indexes and degeneracies and the Hamiltonian rvec_idx = numpy.zeros((nrpt, 3), dtype=int) rvec_deg = numpy.zeros(nrpt, dtype=int) - h_of_r = [numpy.zeros((num_wf, num_wf), dtype=numpy.complex_) for n in range(nrpt)] + h_of_r = [numpy.zeros((num_wf, num_wf), dtype=numpy.complex_) + for n in range(nrpt)] # variable currpos points to the current line in the file currpos = 2 @@ -367,37 +391,36 @@ class Wannier90Converter(ConverterTools): raise IndexError("wrong number of R vectors??") rvec_deg[ir] = int(x) ir += 1 - # for each direct lattice vector R - for ir in range(nrpt): - # read the block of the Hamiltonian H(R) - for jj in range(num_wf): - for ii in range(num_wf): - # advance one line, split the line into tokens - currpos += 1 - cline = hr_data[currpos].split() - # check if the orbital indexes in the file make sense - if int(cline[3]) != ii+1 or int(cline[4]) != jj+1: - mpi.report("Inconsistent indices at %s%s of R n. %s"%(ii,jj,ir)) - rcurr = numpy.array([int(cline[0]), int(cline[1]), int(cline[2])]) - if ii == 0 and jj == 0: - rvec_idx[ir] = rcurr - rprec = rcurr - else: - # check if the vector indices are consistent - if not numpy.array_equal(rcurr, rprec): - mpi.report("Inconsistent indices for R vector n. %s"%ir) + # for each direct lattice vector R read the block of the + # Hamiltonian H(R) + for ir, jj, ii in product(range(nrpt), range(num_wf), range(num_wf)): + # advance one line, split the line into tokens + currpos += 1 + cline = hr_data[currpos].split() + # check if the orbital indexes in the file make sense + if int(cline[3]) != ii + 1 or int(cline[4]) != jj + 1: + mpi.report( + "Inconsistent indices at %s%s of R n. %s" % (ii, jj, ir)) + rcurr = numpy.array( + [int(cline[0]), int(cline[1]), int(cline[2])]) + if ii == 0 and jj == 0: + rvec_idx[ir] = rcurr + rprec = rcurr + else: + # check if the vector indices are consistent + if not numpy.array_equal(rcurr, rprec): + mpi.report( + "Inconsistent indices for R vector n. %s" % ir) - # fill h_of_r with the matrix elements of the Hamiltonian - h_of_r[ir][ii, jj] = complex(float(cline[5]), float(cline[6])) + # fill h_of_r with the matrix elements of the Hamiltonian + h_of_r[ir][ii, jj] = complex(float(cline[5]), float(cline[6])) except ValueError: - mpi.report("Wrong data or structure in file %s"%hr_filename) + mpi.report("Wrong data or structure in file %s" % hr_filename) # return the data into variables return nrpt, rvec_idx, rvec_deg, num_wf, h_of_r - - def find_rot_mat(self, n_sh, sh_lst, sh_map, ham0): """ Method for finding the matrices that bring from local to global coordinate systems @@ -424,12 +447,14 @@ class Wannier90Converter(ConverterTools): """ # initialize the rotation matrices to identities - rot_mat = [numpy.identity(sh_lst[ish]['dim'], dtype=complex) for ish in range(n_sh)] + rot_mat = [numpy.identity(sh_lst[ish]['dim'], dtype=complex) + for ish in range(n_sh)] istatus = 0 hs = ham0.shape if hs[0] != hs[1] or hs[0] != sum([sh['dim'] for sh in sh_lst]): - mpi.report("find_rot_mat: wrong block structure of input Hamiltonian!") + mpi.report( + "find_rot_mat: wrong block structure of input Hamiltonian!") istatus = 0 # this error will lead into troubles later... early return return istatus, rot_mat @@ -443,7 +468,8 @@ class Wannier90Converter(ConverterTools): # nw = number of orbitals in this shell nw = sh_lst[ish]["dim"] # diagonalize the sub-block of H(0) corresponding to this shell - eigval, eigvec = numpy.linalg.eigh(ham0[iwf:iwf+nw, iwf:iwf+nw]) + eigval, eigvec = numpy.linalg.eigh( + ham0[iwf:iwf + nw, iwf:iwf + nw]) # find the indices sorting the eigenvalues in ascending order eigsrt = eigval[0:nw].argsort() # order eigenvalues and eigenvectors and save in a list @@ -451,34 +477,37 @@ class Wannier90Converter(ConverterTools): eigvec_lst.append(eigvec[eigsrt]) iwf += nw # TODO: better handling of degenerate eigenvalue case - if sh_map[ish] != ish: # issue warning only when there are equivalent shells + if sh_map[ish] != ish: # issue warning only when there are equivalent shells for i in range(nw): - for j in range(i+1,nw): - if ( abs(eigval[j] - eigval[i]) < self._w90zero ): - mpi.report("WARNING: degenerate eigenvalue of H(0) detected for shell %d: "%(ish) + - "global-to-local transformation might not work!") + for j in range(i + 1, nw): + if (abs(eigval[j] - eigval[i]) < self._w90zero): + mpi.report("WARNING: degenerate eigenvalue of H(0) detected for shell %d: " % (ish) + + "global-to-local transformation might not work!") for ish in range(n_sh): try: - # build rotation matrices by combining the unitary transformations that diagonalize H(0) - rot_mat[ish] = numpy.dot(eigvec_lst[ish],eigvec_lst[sh_map[ish]].conjugate().transpose()) + # build rotation matrices by combining the unitary + # transformations that diagonalize H(0) + rot_mat[ish] = numpy.dot(eigvec_lst[ish], eigvec_lst[ + sh_map[ish]].conjugate().transpose()) except ValueError: - mpi.report("Global-to-local rotation matrices cannot be constructed!") + mpi.report( + "Global-to-local rotation matrices cannot be constructed!") istatus = 1 - # check that eigenvalues are the same (within accuracy) for equivalent shells + # check that eigenvalues are the same (within accuracy) for + # equivalent shells if not numpy.allclose(eigval_lst[ish], eigval_lst[sh_map[ish]], atol=self._w90zero, rtol=1.e-15): - mpi.report("ERROR: eigenvalue mismatch between equivalent shells! %d"%ish) + mpi.report( + "ERROR: eigenvalue mismatch between equivalent shells! %d" % ish) eigval_diff = eigval_lst[ish] - eigval_lst[sh_map[ish]] mpi.report("Eigenvalue difference: " + format(eigval_diff)) istatus = 0 - - #TODO: add additional consistency check on rot_mat matrices? + + # TODO: add additional consistency check on rot_mat matrices? return istatus, rot_mat - - def kmesh_build(self, msize=None, mmode=0): """ Method for the generation of the k-point mesh. @@ -502,27 +531,24 @@ class Wannier90Converter(ConverterTools): """ - if mmode == 0: - # a regular mesh including Gamma point - nkpt = msize[0] * msize[1] * msize[2] # total number of k-points - kmesh = numpy.zeros((nkpt, 3), dtype=float) - ii = 0 - for ix in range(msize[0]): - for iy in range(msize[1]): - for iz in range(msize[2]): - kmesh[ii,:] = [float(ix)/msize[0], float(iy)/msize[1], float(iz)/msize[2]] - ii += 1 - # weight is equal for all k-points because wannier90 uses uniform grid on whole BZ - # (normalization is always 1 and takes into account spin degeneracy) - wk = numpy.ones([nkpt], dtype=float) / float(nkpt) - else: - raise ValueError("Mesh generation mode not supported: %s"%mmode) + if mmode != 0: + raise ValueError("Mesh generation mode not supported: %s" % mmode) + + # a regular mesh including Gamma point + # total number of k-points + nkpt = msize[0] * msize[1] * msize[2] + kmesh = numpy.zeros((nkpt, 3), dtype=float) + ii = 0 + for ix, iy, iz in product(range(msize[0]), range(msize[1]), range(msize[2])): + kmesh[ii, :] = [float(ix) / msize[0], float(iy) / msize[1], float(iz) / msize[2]] + ii += 1 + # weight is equal for all k-points because wannier90 uses uniform grid on whole BZ + # (normalization is always 1 and takes into account spin degeneracy) + wk = numpy.ones([nkpt], dtype=float) / float(nkpt) return nkpt, kmesh, wk - - - def fourierham(self, norb, h_of_r): + def fourier_ham(self, norb, h_of_r): """ Method for obtaining H(k) from H(R) via Fourier transform The R vectors and k-point mesh are read from global module variables @@ -541,16 +567,12 @@ class Wannier90Converter(ConverterTools): """ - imag = 1j twopi = 2 * numpy.pi - h_of_k = [numpy.zeros((norb, norb), dtype=numpy.complex_) for ik in range(self.n_k)] - for ik in range(self.n_k): - ridx = numpy.array(range(self.nrpt)) - for ir in ridx: - rdotk = twopi * numpy.dot(self.k_mesh[ik], self.rvec[ir]) - factor = (math.cos(rdotk) + imag * math.sin(rdotk)) / float(self.rdeg[ir]) - h_of_k[ik][:, :] += factor * h_of_r[ir][:,:] + ridx = numpy.array(range(self.nrpt)) + for ik, ir in product(range(self.n_k), ridx): + rdotk = twopi * numpy.dot(self.k_mesh[ik], self.rvec[ir]) + factor = (math.cos(rdotk) + 1j * math.sin(rdotk)) / float(self.rdeg[ir]) + h_of_k[ik][:, :] += factor * h_of_r[ir][:, :] return h_of_k -